diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a03915a264..a769c20dfc 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,4 @@
/types/abbrev/ @BendingBender
-/types/ably/ @ably
/types/abs/ @AyaMorisawa
/types/absolute/ @AyaMorisawa
/types/acc-wizard/ @cyrilschumacher
@@ -14,8 +13,11 @@
/types/activex-access/ @zspitz
/types/activex-adodb/ @zspitz
/types/activex-dao/ @zspitz
+/types/activex-diskquota/ @zspitz
/types/activex-excel/ @zspitz
+/types/activex-faxcomexlib/ @zspitz
/types/activex-infopath/ @zspitz
+/types/activex-iwshruntimelibrary/ @zspitz
/types/activex-libreoffice/ @zspitz
/types/activex-msforms/ @zspitz
/types/activex-mshtml/ @zspitz
@@ -24,6 +26,8 @@
/types/activex-outlook/ @zspitz
/types/activex-powerpoint/ @zspitz
/types/activex-scripting/ @zspitz
+/types/activex-shdocvw/ @zspitz
+/types/activex-shell/ @zspitz
/types/activex-stdole/ @zspitz
/types/activex-vbide/ @zspitz
/types/activex-wia/ @zspitz
@@ -36,7 +40,7 @@
/types/agenda/ @meirgottlieb
/types/aggregate-error/ @BendingBender
/types/alertify/ @jjeffery
-/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7
+/types/alexa-sdk/ @petebeegle @hoo29 @pascalwhoop @blforce @rk-7 @alexmalcoci
/types/alexa-voice-service/ @dolanmiu
/types/algebra.js/ @CaselIT
/types/algoliasearch/ @cbaptiste @haroenv @aherve
@@ -49,7 +53,7 @@
/types/amqp/ @seikho @jonnysparkplugs
/types/amqp-rpc/ @wokim
/types/amqplib/ @mnahkies @abreits @nfantone
-/types/analytics-node/ @fongandrew
+/types/analytics-node/ @fongandrew @thomasthiebaud
/types/angular/ @diegovilar @thorn0 @calebstdenis @leonard-thieu
/types/angular-agility/ @rolandzwaga
/types/angular-animate/ @michelsalib @adidahiya @rasch @codyschaaf
@@ -136,12 +140,14 @@
/types/api-error-handler/ @tkrotoff
/types/apigee-access/ @CasperSkydt
/types/apollo-codegen/ @bradleyayers
+/types/app-root-dir/ @chenyang-biu
/types/app-root-path/ @shantmarouti
/types/appdmg/ @unindented
/types/appframework/ @kyo-ago
/types/applepayjs/ @martincostello
/types/appletvjs/ @brainded
/types/applicationinsights-js/ @kamilszostak
+/types/aqb/ @Athenkosi-Mase
/types/arbiter/ @arash16
/types/arcgis-js-api/v3/ @Esri
/types/arcgis-js-api/ @Esri
@@ -167,15 +173,16 @@
/types/aspnet-identity-pw/ @jt000
/types/assert-equal-jsx/ @seryl
/types/assert-plus/ @KostyaTretyak
-/types/assertion-error/ @Bartvds
/types/assertsharp/ @brunolm
/types/assets-webpack-plugin/ @kryops
/types/async/ @borisyankov @kern0 @Penryn @fenying @pascalmartin
/types/async-cache/ @BendingBender
-/types/async-lock/ @elisee
+/types/async-lock/ @elisee @afharo @rhymmor
/types/async-polling/ @Goldsmith42
+/types/async-retry/ @albertywu
/types/async.nexttick/ @pyrho
/types/asynciterator/ @rubensworks
+/types/atlaskit__button/ @dijimsta
/types/atmosphere.js/ @toedter @Mory1879
/types/atom/ @GlenCFL @smhxx @lierdakil
/types/atom-keymap/ @GlenCFL
@@ -186,7 +193,7 @@
/types/auth0-angular/ @homesar
/types/auth0-js/v7/ @advancedrei
/types/auth0-js/ @adrianchia @mdurrant @peterblazejewicz
-/types/auth0-lock/ @carusology @goldcaddy77
+/types/auth0-lock/ @carusology @goldcaddy77 @lfaudreejr
/types/auth0.widget/ @advancedrei
/types/auto-launch/ @rhysd @unindented
/types/auto-sni/ @janwo
@@ -194,10 +201,11 @@
/types/autolinker/ @leonyu
/types/autoprefixer/ @odnamrataizem
/types/autosize/ @kingdango @keika299 @NeekSandhu
+/types/autosuggest-highlight/ @senukartur
/types/awesomplete/ @webbiesdk @bmdixon @tbekolay
/types/aws-iot-device-sdk/ @niik @mlamp
-/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart
-/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye
+/types/aws-lambda/ @skarum @tobyhede @buggy @y13i @wwwy3y3 @OrthoDex @MichaelMarner @daniel-cottone @kostya-misura @coderbyheart @palmithor @daniloraisi @simonbuchan @Haydabase
+/types/aws-serverless-express/ @threesquared @jcaffey @mattmeye @albertovasquez
/types/aws4/ @ajcrites
/types/axel/ @ruslan-molodyko
/types/azure/ @AndrewGaspar @antiveeranna @SomaticIT
@@ -237,6 +245,7 @@
/types/base-x/ @chrootsu
/types/base16/ @alechill
/types/base64-js/ @pe8ter
+/types/base64topdf/ @lucasriondel
/types/bases/ @harikv
/types/bash-glob/ @mrmlnc
/types/basic-auth/ @moonpyk @vesse
@@ -267,6 +276,7 @@
/types/bip39/ @micksatana
/types/bit-array/ @mudkipme
/types/bitcoinjs-lib/ @mhegazy @dlebrecht @rbuckton @micksatana @youssefgh
+/types/bitcore-lib/ @lautarodragan
/types/bittorrent-protocol/ @feross @tlaziuk
/types/bitwise-xor/ @rogierschouten
/types/bl/ @Bartvds
@@ -295,8 +305,10 @@
/types/bootbox/ @vbortone @konpikwastaken @kanup @icereed @trodi @stannynuytkens @renjfk
/types/bootpag/ @rdeneau
/types/bootstrap/ @borisyankov
+/types/bootstrap-3-typeahead/ @AndersonFriaca
/types/bootstrap-datepicker/ @borisyankov
/types/bootstrap-fileinput/ @CheCoxshall
+/types/bootstrap-growl-ifightcrime/ @AndersonFriaca
/types/bootstrap-maxlength/ @danmana
/types/bootstrap-notify/ @niemyjski @mouse0270 @robert-voica
/types/bootstrap-select/ @LKay
@@ -334,8 +346,9 @@
/types/buffer-equal/ @Bartvds
/types/buffers/ @rhencke
/types/bufferstream/ @Bartvds
+/types/builtin-modules/ @ajafff
/types/bull/v2/ @bgrieder @JProgrammer
-/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco
+/types/bull/ @bgrieder @JProgrammer @marshall007 @weeco @blaugold
/types/bump-regex/ @silkentrance
/types/bunnymq/ @cyrilschumacher
/types/bunyan/ @amikhalev
@@ -351,27 +364,31 @@
/types/byline/ @reppners
/types/bytebuffer/ @cappellin
/types/bytes/ @danny8002
-/types/c3/ @mcliment @gerinjacob @denyo
+/types/c3/ @mcliment @gerinjacob @denyo @dmitryshindin
/types/cache-manager/ @GausSim
/types/cal-heatmap/ @RetroChrisB
/types/callsite/ @newclear
/types/callsites/ @BendingBender
/types/calq/ @eirikhm
+/types/camaro/ @tuananh
/types/camelcase/ @samverschueren
/types/camelcase-keys/ @mhegazy
/types/camo/ @lucasmciruzzi
/types/cancan/ @Vincent-Pang
/types/cannon/ @clark-stevenson @Gelio
+/types/canvas-confetti/ @matracey
/types/canvas-gauges/ @Mikhus
/types/canvasjs/ @brutalimp
/types/capitalize/ @frederickfogerty
/types/card-validator/ @ChanceM
/types/case-sensitive-paths-webpack-plugin/ @r3nya
-/types/caseless/ @downace
+/types/caseless/ @downace @mastermatt
/types/cash/ @akvlko
/types/casperjs/ @jedmao @urielch
/types/cassandra-driver/ @Svjard
-/types/catbox/ @jasonswearingen @AJamesPhillips
+/types/catalog/ @grossbart @wereHamster
+/types/catbox/v7/ @jasonswearingen @AJamesPhillips
+/types/catbox/ @jasonswearingen @AJamesPhillips @saboya
/types/cbor/ @pushplay
/types/ccap/ @taoqf
/types/chai/v2/ @Bartvds @AGBrown
@@ -382,7 +399,7 @@
/types/chai-dom/ @mattlewis92
/types/chai-enzyme/ @asvetliakov
/types/chai-fuzzy/ @Bartvds
-/types/chai-http/ @Nemo157 @G1itcher @CaselIT
+/types/chai-http/ @Nemo157 @G1itcher @CaselIT @bas-l
/types/chai-jest-snapshot/ @mattvperry
/types/chai-jquery/ @kazimanzurrashid
/types/chai-json-schema/ @ulrichheiniger
@@ -395,7 +412,8 @@
/types/chance/ @cbowdon @brikou
/types/change-emitter/ @iskandersierra
/types/charm/ @Xananax
-/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana
+/types/charset/ @cspotcode
+/types/chart.js/ @anuti @FabienLavocat @KentarouTakeda @larrybahr @mernen @josefpaij @danmana @guillaume-ro-fr @chicoxyzzy
/types/chartist/ @mtgibbs @psimonski @clottman
/types/chayns/ @HenningKuehl
/types/check-sum/ @BendingBender
@@ -403,6 +421,7 @@
/types/checkstyle-formatter/ @mhegazy
/types/checksum/ @rogierschouten
/types/cheerio/ @blittle @wmaurer @umarniz @LiJinyao
+/types/chessboardjs/ @sliverb @davidmpaz
/types/chmodr/ @BendingBender
/types/chokidar/ @reppners @felixfbecker @bayssmekanique
/types/chosen-js/ @borisyankov @denisname
@@ -420,7 +439,7 @@
/types/clean-stack/ @BendingBender
/types/clean-webpack-plugin/ @j-f1
/types/clear-require/ @dan-j
-/types/cleave.js/ @clentfort @jasongi-at-sportsbet
+/types/cleave.js/ @clentfort @jasongi-at-sportsbet @sashashakun
/types/cli/ @kayahr
/types/cli-color/ @ChaosinaCan
/types/cli-spinner/ @janslow
@@ -449,9 +468,11 @@
/types/collections/ @scarabedore
/types/color/v0/ @LKay
/types/color/v1/ @LKay
-/types/color/ @Airlun
+/types/color/v2/ @Airlun
+/types/color/ @Airlun @jameswlane
/types/color-convert/ @Airlun
/types/color-name/ @Ailrun
+/types/color-namer/ @in19farkt
/types/color-string/ @BendingBender @danmarshall
/types/colorbrewer/ @mtraynham
/types/colors/ @Bartvds @staeke
@@ -479,7 +500,7 @@
/types/conf/v0/ @SamVerschueren
/types/conf/ @SamVerschueren @BendingBender
/types/confidence/ @jppellerin
-/types/config/ @RWander @forrestbice @jndonald3
+/types/config/ @RWander @forrestbice @jndonald3 @albertovasquez
/types/configstore/ @ArcticLight
/types/confit/ @ethanresnick
/types/connect/ @SomaticIT
@@ -561,6 +582,7 @@
/types/cron/ @horiuchi
/types/cropperjs/ @stepancar
/types/croppie/ @connor4312 @dklmuc @sarunint
+/types/cross-spawn/ @Alorel
/types/crossfilter/ @schmuli @iebaker @nordfjord
/types/crossroads/ @diullei
/types/cryptiles/ @awendland
@@ -579,6 +601,7 @@
/types/csvrow/ @codeanimal
/types/csvtojson/ @EricByers @wcarson
/types/cucumber/v1/ @abraaoalves @jan-molak @isoung @BendingBender
+/types/cucumber/v3/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom
/types/cucumber/ @abraaoalves @jan-molak @isoung @BendingBender @ErikSchierboom
/types/currency-formatter/ @mhegazy @davidmpaz
/types/custom-error-generator/ @thmiceli
@@ -586,8 +609,9 @@
/types/cwise-compiler/ @taoqf
/types/cwise-parser/ @taoqf
/types/cybozulabs-md5/ @pine613
-/types/cytoscape/ @phreed @wy193777 @ypconstante
+/types/cytoscape/ @phreed @wy193777 @ypconstante @janniclas
/types/d3/v3/ @gustavderdrache @borisyankov @MatthiasJobst
+/types/d3/v4/ @tomwanzek @gustavderdrache @borisyankov
/types/d3/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-array/ @gustavderdrache @borisyankov @tomwanzek
/types/d3-axis/ @tomwanzek @gustavderdrache @borisyankov
@@ -601,6 +625,7 @@
/types/d3-drag/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-dsv/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-ease/ @tomwanzek @gustavderdrache @borisyankov
+/types/d3-fetch/ @ledragon
/types/d3-force/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-format/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-geo/ @Ledragon @tomwanzek @gustavderdrache @borisyankov
@@ -615,6 +640,7 @@
/types/d3-random/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-request/ @Ledragon @gustavderdrache @borisyankov @tomwanzek
/types/d3-sankey/ @tomwanzek @gustavderdrache
+/types/d3-scale/v1/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale/ @tomwanzek @gustavderdrache @borisyankov
/types/d3-scale-chromatic/ @Ledragon @gustavderdrache @borisyankov @henriquefm
/types/d3-selection/ @tomwanzek @gustavderdrache @borisyankov
@@ -635,12 +661,14 @@
/types/dagre-d3/ @markwongsk
/types/dagre-layout/ @qinfchen @Frankrike @vilterp
/types/dargs/ @BendingBender
-/types/dat-gui/ @gyohk @sonic3d @rroylance
+/types/dashify/ @rokt33r
+/types/dat.gui/ @gyohk @sonic3d @rroylance
/types/data-driven/ @mrhen
/types/datadog-metrics/ @pushplay
/types/datatables.net/ @Silver-Connection @omidkrad @pragmatrix @CNBoland
/types/datatables.net-buttons/ @Silver-Connection @SammyG4Free @jimhartford
/types/datatables.net-fixedheader/ @szechyjs @Silver-Connection
+/types/datatables.net-rowgroup/ @maixiu
/types/datatables.net-rowreorder/ @baywet
/types/datatables.net-select/ @szechyjs
/types/date-arithmetic/ @HeeL
@@ -659,6 +687,7 @@
/types/decamelize/ @samverschueren
/types/decay/ @enaeseth
/types/decompress/ @plantain-00
+/types/decompress-response/ @DanielRosenwasser
/types/decorum/ @dflor003
/types/dedent/ @douglasduteil
/types/deep-assign/ @souldreamer
@@ -706,7 +735,7 @@
/types/discontinuous-range/ @OiCMudkips
/types/disposable-email-domains/ @geoffreak
/types/doccookies/ @jonegerton
-/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl
+/types/dockerode/ @seikho @nlaplante @isac322 @lazarusx @meisenzahl @thegecko
/types/docopt/ @giggio
/types/doctrine/ @rictic
/types/documentdb/ @NoelAbrahams @brettferdosi @ctstone @yifanwu
@@ -761,6 +790,7 @@
/types/dynatable/ @francoismassart
/types/dynogels/ @SpartanLabs
/types/each/ @misak113
+/types/earcut/ @NaridaL
/types/easeljs/ @evilangelist
/types/easy-api-request/ @DeadAlready
/types/easy-jsend/ @DeadAlready
@@ -772,6 +802,7 @@
/types/echarts/ @xieisabug @AntiMoron
/types/ecurve/ @mhegazy
/types/ed25519/ @erikma
+/types/ed2curve/ @ffflorian
/types/egg-mock/ @sheperdwind
/types/egg.js/ @ToastHawaii
/types/egjs__axes/ @naver
@@ -788,11 +819,11 @@
/types/electron-json-storage/ @stpettersens @nrlquaker @jbw91
/types/electron-notifications/ @djpereira
/types/electron-notify/ @djpereira
-/types/electron-packager/ @SomaticIT @cortopy
+/types/electron-packager/ @SomaticIT @cortopy @jkleinsc
/types/electron-settings/v2/ @leonard-thieu
/types/electron-settings/ @icopp @nrlquaker
/types/electron-spellchecker/ @unindented
-/types/electron-store/ @unindented
+/types/electron-store/ @unindented @jsynowiec
/types/electron-util/ @kputh
/types/electron-window-state/ @rhysd
/types/electron-winstaller/ @shiftkey @unindented
@@ -803,7 +834,7 @@
/types/email-templates/ @cyrilschumacher @gurisko @blankstar85
/types/ember/v1/ @jedmao
/types/ember/ @jedmao @bttf @dwickern @chriskrycho @theroncross @mfeckie
-/types/ember-data/ @dwickern @mike-north
+/types/ember-data/ @dwickern @mike-north @chriskrycho
/types/ember-feature-flags/ @tansongyang
/types/ember-mocha/ @dwickern
/types/ember-modal-dialog/ @tansongyang
@@ -827,6 +858,7 @@
/types/envify/ @tkQubo
/types/enzyme/ @MarianPalkus @NoHomey @jwbay @huhuanming @MartynasZilinskas @thovden
/types/enzyme-adapter-react-15/ @tkrotoff
+/types/enzyme-adapter-react-15.4/ @nali
/types/enzyme-adapter-react-16/ @tkrotoff
/types/enzyme-to-json/ @joscha
/types/eonasdan-bootstrap-datetimepicker/ @ToastHawaii
@@ -836,14 +868,17 @@
/types/eq.js/ @stephenlautier
/types/errorhandler/ @santialbo
/types/es6-collections/ @rbuckton
-/types/es6-promisify/ @harryshipton
+/types/es6-promisify/ @harryshipton @bschlenk
/types/es6-shim/ @rbuckton
/types/es6-weak-map/ @pine
/types/escape-html/ @elisee
/types/escape-latex/ @olsio
/types/escape-string-regexp/ @kruncher @faergeek
/types/escodegen/ @simondel
+/types/eslint/ @pmdartus @j-f1
/types/eslint-plugin-prettier/ @ikatyang
+/types/eslint-scope/ @mysticatea
+/types/eslint-visitor-keys/ @mysticatea
/types/esprima/v2/ @teppeis @RReverser
/types/esprima/ @teppeis @RReverser @peter-scott
/types/esprima-walk/ @tswaters
@@ -872,8 +907,9 @@
/types/expect.js/ @teppeis
/types/expectations/ @vvakame
/types/expo/v23/ @KonstantinKai
-/types/expo/ @KonstantinKai @martynaskadisa
-/types/expr-eval/ @connor4312
+/types/expo/v24/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
+/types/expo/ @KonstantinKai @martynaskadisa @janaagaard75 @ssanchezmarc @fhelwanger
+/types/expo__vector-icons/ @incleaf
/types/express/ @borisyankov
/types/express-brute/ @cyrilschumacher
/types/express-brute-memcached/ @cyrilschumacher
@@ -889,7 +925,7 @@
/types/express-flash-2/ @mathsalmi
/types/express-flash-notification/ @Mister4Eyes
/types/express-formidable/ @tdolsen @evanshortiss
-/types/express-graphql/ @isman-usoh @nitintutlani @hubel
+/types/express-graphql/ @isman-usoh @nitintutlani @hubel @zya
/types/express-handlebars/ @stpettersens @yhaskell
/types/express-jwt/ @wokim @kacepe @Sl1MBoy
/types/express-less/ @xieyubo
@@ -905,8 +941,9 @@
/types/express-rate-limit/ @cyrilschumacher @makepost
/types/express-route-fs/ @kripod
/types/express-sanitized/ @cjbarth
-/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana
-/types/express-session/ @horiuchi @jacobbogers
+/types/express-serve-static-core/ @borisyankov @19majkel94 @kacepe @micksatana @samijaber
+/types/express-session/ @horiuchi @jacobbogers @builtinnya @ry7n
+/types/express-to-koa/ @xiaohanzhang
/types/express-unless/ @wokim
/types/express-winston/ @bricka
/types/extend/ @reppners
@@ -916,7 +953,7 @@
/types/extract-zip/ @mizunashi-mana
/types/eyes/ @brynbellomy
/types/f1/ @neolwc
-/types/fabric/ @oklemencic @joewashear007 @mrand01
+/types/fabric/ @oklemencic @joewashear007 @mrand01 @NotWoods
/types/facebook-js-sdk/ @amritk
/types/facebook-pixel/ @noctishsu
/types/faker/v3/ @Kuniwak
@@ -939,6 +976,22 @@
/types/fb/ @JoshStrobl
/types/fbemitter/ @kmxz
/types/featherlight/ @xStrom
+/types/feathersjs__authentication/ @AbraaoAlves @j2L4e
+/types/feathersjs__authentication-client/ @AbraaoAlves @j2L4e
+/types/feathersjs__authentication-jwt/ @j2L4e
+/types/feathersjs__authentication-local/ @j2L4e
+/types/feathersjs__authentication-oauth1/ @j2L4e
+/types/feathersjs__authentication-oauth2/ @j2L4e
+/types/feathersjs__configuration/ @j2L4e
+/types/feathersjs__errors/ @j2L4e
+/types/feathersjs__express/ @j2L4e
+/types/feathersjs__feathers/ @j2L4e @AbraaoAlves
+/types/feathersjs__primus/ @j2L4e
+/types/feathersjs__primus-client/ @j2L4e
+/types/feathersjs__rest-client/ @j2L4e
+/types/feathersjs__socket-commons/ @j2L4e
+/types/feathersjs__socketio/ @j2L4e
+/types/feathersjs__socketio-client/ @j2L4e
/types/feedme/ @codeanimal
/types/feedparser/ @cortopy
/types/fetch-jsonp/ @tkrotoff
@@ -954,11 +1007,12 @@
/types/file-type/ @tcaesvk @BendingBender
/types/file-url/ @coderslagoon
/types/filenamify/ @rokt33r
-/types/filesize/ @GiedriusGrabauskas
+/types/filesize/ @GiedriusGrabauskas @renchap
/types/fill-pdf/ @westy92
/types/finalhandler/ @chrootsu
/types/finch/ @DavidSichau
/types/find/ @andypyrope
+/types/find-root/ @Alorel
/types/find-up/ @BendingBender
/types/findup-sync/ @Bartvds @ngbrown
/types/fingerprintjs/ @zaneli
@@ -986,6 +1040,7 @@
/types/fm-websync/ @markusmauch
/types/fontfaceobserver/ @RandScullard
/types/fontoxml/ @rolandzwaga
+/types/forever-agent/ @yavanosta
/types/forever-monitor/ @shuntksh
/types/forge-di/ @adamcarr
/types/form-data/ @soywiz @leonyu @BendingBender
@@ -995,6 +1050,7 @@
/types/format-io/ @amitbeck
/types/format-unicorn/ @kruncher
/types/formidable/ @Nemo157
+/types/forms/ @suXinjke
/types/forwarded/ @BendingBender
/types/fossil-delta/ @endel
/types/foundation/ @borisyankov
@@ -1028,12 +1084,11 @@
/types/ftpd/ @rogierschouten
/types/fullname/ @kayahr
/types/fullpage.js/ @jodiwarren
-/types/fuse/ @smrq
/types/fusioncharts/ @rohitkr @shivarajkv
/types/fuzzaldrin/ @mhegazy
/types/fuzzaldrin-plus/ @jeancroy @jkillian
-/types/fuzzyset/ @lgrignon
-/types/fuzzyset.js/ @lgrignon
+/types/fuzzyset/ @lgrignon @narainsagar
+/types/fuzzyset.js/ @lgrignon @narainsagar
/types/fxn/ @charrondev
/types/gae.channel.api/ @vvakame
/types/gamequery/ @Laubi
@@ -1176,6 +1231,7 @@
/types/gapi.youtube/ @sgtfrankieboy
/types/gapi.youtubeanalytics/ @sgtfrankieboy
/types/gaussian/ @scttcper
+/types/geetest/ @plantain-00
/types/gen-readlines/ @CodeAnimal
/types/generic-functions/ @stpettersens
/types/generic-pool/ @jerray
@@ -1186,9 +1242,12 @@
/types/geokdbush/ @DenisCarriere
/types/geometry-dom/ @nakakura
/types/geopattern/ @Gaelan
+/types/get-caller-file/ @ajafff
/types/get-node-dimensions/ @vincekovacs
/types/get-stdin/ @DanielRosenwasser
/types/get-stream/ @douglasduteil @BendingBender
+/types/get-value/ @DanielRosenwasser
+/types/getopts/ @azasypkin
/types/getos/ @BendingBender
/types/gettext.js/ @jucrouzet
/types/gifffer/ @gatimus
@@ -1214,7 +1273,7 @@
/types/gm/ @ChaosinaCan @maartenvanvliet
/types/go/ @NorthwoodsSoftware
/types/google-adwords-scripts/ @jafaircl
-/types/google-apps-script/ @motemen
+/types/google-apps-script/ @motemen @grant
/types/google-apps-script-oauth2/ @dhayab
/types/google-cloud__datastore/ @beaulac
/types/google-cloud__pubsub/ @pheromonez
@@ -1238,9 +1297,11 @@
/types/graceful-fs/ @Bartvds @BendingBender
/types/graham_scan/ @hberntsen
/types/graphite-udp/ @EricByers
-/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal
+/types/graphql/ @TonyPythoneer @calebmer @intellix @firede @kepennar @freiksenet @IvanGoncharov @DxCx @rportugal @tgriesser @dyst5422 @adnsio
/types/graphql-date/ @enaeseth
+/types/graphql-iso-date/ @jwaldrip
/types/graphql-relay/ @arvitaly @nitintutlani @Grelinfo
+/types/graphql-resolve-batch/ @nayni
/types/graphql-type-json/ @schfkt
/types/graphviz/ @mhfrantz
/types/grasp/ @agnoster
@@ -1250,10 +1311,11 @@
/types/grecaptcha/v0/ @brentj73
/types/grecaptcha/ @DethAriel
/types/gregorian-calendar/ @cwalv
+/types/grid-styled/ @antonvasin
/types/gridfs-stream/ @liorm
/types/gridstack/ @PascalSenn @ZoolWay @Sl1MBoy
/types/grunt/ @jeffmay @basarat
-/types/gsap/ @codebelt @ProbablePrime
+/types/gsap/ @codebelt @ProbablePrime @philipbulley
/types/guid/ @maroy1986
/types/gulp/ @GiedriusGrabauskas
/types/gulp-angular-templatecache/ @amanmahajan7
@@ -1331,7 +1393,8 @@
/types/hapi/v8/ @jasonswearingen
/types/hapi/v12/ @jasonswearingen
/types/hapi/v15/ @jasonswearingen
-/types/hapi/ @jasonswearingen @AJamesPhillips
+/types/hapi/v16/ @jasonswearingen @AJamesPhillips
+/types/hapi/ @BorntraegerMarc @rafaelsouzaf @jhsimms
/types/hapi-auth-basic/ @AJamesPhillips @saboya
/types/hapi-auth-jwt2/ @warrenseymour
/types/hapi-decorators/ @kenhowardpdx
@@ -1346,13 +1409,14 @@
/types/hashids/ @pocesar
/types/hashmap/ @outring
/types/haversine/ @screendriver
+/types/hbs/ @davidm77
/types/he/ @sedwards2009
/types/headroom/ @hakubo
/types/heap/ @ryan10132
/types/heapdump/ @weekens
/types/heatmap.js/ @lookuptable @rhys-vdw
/types/hedron/ @dborysov
-/types/hellojs/ @PavelPZ @vuorinem
+/types/hellojs/ @PavelPZ @vuorinem @baywet
/types/hellosign-embedded/ @xt0rted
/types/helmet/ @cyrilschumacher @EvanHahn @bluehatbrit
/types/heredatalens/ @denyo
@@ -1395,7 +1459,7 @@
/types/http-codes/ @mhegazy
/types/http-context/ @mtraynham
/types/http-errors/ @tkrotoff @BendingBender
-/types/http-proxy/ @SomaticIT
+/types/http-proxy/ @SomaticIT @Raigen
/types/http-proxy-agent/ @mrmlnc
/types/http-proxy-middleware/ @zebMcCorkle @BendingBender
/types/http-server/ @plantain-00
@@ -1406,6 +1470,7 @@
/types/hubspot-pace/ @borislavjivkov
/types/humane/ @jmvrbanac
/types/humanize-plus/ @DenisCarriere
+/types/humanize-string/ @ragnarok56
/types/humanparser/ @MichalPodeszwa
/types/humps/ @nikeee
/types/hyco-ws/ @mrcabellom
@@ -1443,12 +1508,12 @@
/types/imap/ @psnider
/types/imap-simple/ @pushplay
/types/imgur-rest-api/ @lukewestby
-/types/immutability-helper/ @seansfkelley
/types/impress/ @borisyankov
/types/in-range/ @DanielRosenwasser
/types/incremental-dom/ @basarat @lanthaler @vvakame
/types/indent-string/ @mhegazy
-/types/inert/ @nycdotnet @AJamesPhillips
+/types/inert/v4/ @nycdotnet @AJamesPhillips
+/types/inert/ @nycdotnet @AJamesPhillips @lenovouser
/types/inflected/ @dsci
/types/inflection/ @shiwano
/types/inherits/ @chrootsu
@@ -1477,6 +1542,7 @@
/types/iota.lib.js/ @fogsh
/types/ip/ @codeanimal
/types/ip-regex/ @unindented
+/types/ipcheck/ @bengry
/types/irc/ @phillips1012
/types/iron/ @simonschick @rafaelsouzaf
/types/is/ @cabralRodrigo
@@ -1488,6 +1554,7 @@
/types/is-compressed/ @mhegazy
/types/is-finite/ @mhegazy
/types/is-glob/ @mrmlnc
+/types/is-hotkey/ @petester42
/types/is-ip/ @coderslagoon
/types/is-my-json-valid/ @kruncher
/types/is-negated-glob/ @ajafff
@@ -1508,6 +1575,7 @@
/types/is-windows/ @mizunashi-mana
/types/isbn-utils/ @elhaard
/types/iscroll/ @csrakowski
+/types/ismobilejs/ @Ty3uK
/types/iso-3166-2/ @sicilica
/types/iso8601-localizer/ @avielfedida
/types/isomorphic-fetch/ @toddlucas
@@ -1525,7 +1593,7 @@
/types/jade/ @panuhorsmalahti
/types/jalaali-js/ @alitaheri
/types/japanese-holidays/ @syamatoo
-/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software
+/types/jasmine/ @borisyankov @theodorejb @davidparsson @gmoothart @lukas-zech-software @Engineer2B
/types/jasmine-ajax/ @lgrignon
/types/jasmine-data_driven_tests/ @AnthonyMacKinnon
/types/jasmine-enzyme/ @bolatovumar
@@ -1549,7 +1617,7 @@
/types/jdataview/ @RReverser
/types/jdenticon/ @mtr
/types/jest/v16/ @NoHomey @jwbay
-/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil
+/types/jest/ @NoHomey @jwbay @asvetliakov @alexjoverm @epicallan @ikatyang @wsmd @JamieMason @douglasduteil @AhnpGit
/types/jest-diff/ @myabc
/types/jest-docblock/ @ikatyang
/types/jest-get-type/ @myabc
@@ -1562,11 +1630,12 @@
/types/jjv/ @Nemo157
/types/jjve/ @Nemo157
/types/jmespath/ @pushplay
-/types/johnny-five/ @nakakura
+/types/johnny-five/ @nakakura @ujvzolee @workshop2
/types/joi/v6/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW
/types/joi/v10/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku
-/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus
+/types/joi/ @Bartvds @laurence-myers @cglantschnig @DavidBR-SW @GaelMagnan @ralekna @schfkt @rokoroku @dankraus @wanganjun
/types/joigoose/ @boothwhack
+/types/josa/ @vichyssoise
/types/jpeg-js/ @DanielRosenwasser
/types/jpm/ @github-account-because-they-want-it
/types/jqgrid/ @lokeshpeta
@@ -1576,7 +1645,9 @@
/types/jquery/ @leonard-thieu @borisyankov @choffmeister @Steve-Fenton @Diullei @tasoili @jasons-novaleaf @seanski @Guuz @ksummerlin @basarat @nwolverson @derekcicerone @AndrewGaspar @seikichi @benjaminjackman @s093294 @JoshStrobl @johnnyreilly @DickvdBrink @King2500
/types/jquery-ajax-chain/ @humana-fragilitas
/types/jquery-alertable/ @stever
+/types/jquery-awesome-cursor/ @zskovacs
/types/jquery-backstretch/ @dkulyk
+/types/jquery-countdown/ @AndersonFriaca
/types/jquery-cropbox/ @PerKastman
/types/jquery-deparam/ @patsissons
/types/jquery-easy-loading/ @delphinus35
@@ -1587,7 +1658,9 @@
/types/jquery-jcrop/ @joeskeen
/types/jquery-jsonrpcclient/ @Ty3uK
/types/jquery-knob/ @iain8
-/types/jquery-mask-plugin/ @avidenic
+/types/jquery-lazyload/ @AndersonFriaca
+/types/jquery-mask-plugin/ @avidenic @AndersonFriaca
+/types/jquery-maskmoney/ @AndersonFriaca
/types/jquery-match-height/ @kbytesys
/types/jquery-mockjax/ @laszlojakab @vladeck
/types/jquery-mousewheel/ @xt0rted
@@ -1595,6 +1668,8 @@
/types/jquery-param/ @patsissons
/types/jquery-sortable/ @Seltzer
/types/jquery-steps/ @jblank @nickwph
+/types/jquery-sticky/ @maixiu
+/types/jquery-tags-input/ @AndersonFriaca
/types/jquery-timeentry/ @marknadig
/types/jquery-toastmessage-plugin/ @joeskeen
/types/jquery-truncate-html/ @abraaoalves
@@ -1649,6 +1724,7 @@
/types/jquery.slimscroll/ @Promact
/types/jquery.soap/ @tigerxy
/types/jquery.sortelements/ @tbureck
+/types/jquery.stickem/ @davidmpaz
/types/jquery.superlink/ @niemyjski
/types/jquery.tagsmanager/ @vbortone
/types/jquery.tile/ @zaneli
@@ -1679,6 +1755,7 @@
/types/js-quantities/ @wrummler
/types/js-schema/ @marcinporebski @roblabat
/types/js-search/ @guoyunhe
+/types/js-sha512/ @nicojs
/types/js-to-java/ @skyitachi
/types/js-url/ @pine613
/types/js-yaml/ @Bartvds @sclausen
@@ -1696,7 +1773,9 @@
/types/jshamcrest/ @dharkness
/types/jsmockito/ @shiver-me-timbers
/types/jsnox/ @stkb @DovydasNavickas
+/types/json-js/ @NN---
/types/json-merge-patch/ @senyaarseniy
+/types/json-parse-better-errors/ @DanielRosenwasser
/types/json-patch/ @vvakame
/types/json-pointer/ @Bartvds
/types/json-query/ @mtraynham
@@ -1714,12 +1793,14 @@
/types/jsonnet/ @hookclaw
/types/jsonp/ @surenkov
/types/jsonpath/ @horiuchi @ikatyang
-/types/jsonrpc-serializer/ @Akim95
+/types/jsonrpc-serializer/ @Akim95 @many20
/types/jsonstream/ @Bartvds
+/types/jsontoxml/ @benstevens48
/types/jsonwebtoken/ @SomaticIT @danielheim @brikou
/types/jspdf/ @amberjs
/types/jsqrcode/ @lordazzi
/types/jsrender/ @zakki
+/types/jsreport-core/ @taoqf
/types/jsrp/ @harryshipton
/types/jss/ @appsforartists @kof
/types/jssha/ @randombk @SrTobi
@@ -1737,7 +1818,7 @@
/types/jui-core/ @easylogic
/types/jui-grid/ @easylogic
/types/jweixin/ @taoqf @gomydodo
-/types/jwplayer/ @martinduparc @kutomer
+/types/jwplayer/ @martinduparc @kutomer @philippguertler
/types/jws/ @JustinBeckwith
/types/jwt-client/ @timoteoponce
/types/jwt-decode/v1/ @QuatroDevOfficial
@@ -1767,6 +1848,7 @@
/types/klaw/v1/ @mceachen
/types/klaw/ @mceachen
/types/klaw-sync/ @shiftkey
+/types/kms-json/ @sunnyone
/types/knex/ @tkQubo @baronfel @MeLlamoPablo @mastermatt @micksatana
/types/knex-postgis/ @vesse
/types/knockback/ @borisyankov
@@ -1807,7 +1889,8 @@
/types/koa-logger/ @geoffreak @tlaziuk
/types/koa-logger-winston/ @stevehipwell
/types/koa-morgan/ @vesse
-/types/koa-mount/ @amirsaber
+/types/koa-mount/ @amirsaber @tlaziuk
+/types/koa-multer/ @benstevens48
/types/koa-passport/ @horiuchi @tlaziuk @brendtumi
/types/koa-pino-logger/ @khell
/types/koa-pug/ @Xstoudi
@@ -1816,7 +1899,7 @@
/types/koa-route/ @migstopheles
/types/koa-router/ @hellopao @schfkt
/types/koa-send/ @pe8ter @tlaziuk
-/types/koa-session/ @kerol2r20
+/types/koa-session/ @kerol2r20 @tlaziuk
/types/koa-session-minimal/ @longztian
/types/koa-sslify/ @wingsbob
/types/koa-static/ @hellopao @tlaziuk
@@ -1855,6 +1938,7 @@
/types/leaflet-gpx/ @soucekv
/types/leaflet-imageoverlay-rotated/ @tkleinke
/types/leaflet-label/ @Nemo157
+/types/leaflet-mouse-position/ @Hanyon
/types/leaflet-polylinedecorator/ @soucekv
/types/leaflet-providers/ @BendingBender
/types/leaflet-rotatedmarker/ @robert-prib-polestar
@@ -1866,7 +1950,6 @@
/types/leaflet.locatecontrol/ @DenisCarriere
/types/leaflet.markercluster/ @rimig
/types/leaflet.markercluster.layersupport/ @AsamK
-/types/leaflet.mouseposition/ @Hanyon
/types/leaflet.pancontrol/ @Brictarus
/types/leaflet.pm/ @tkleinke
/types/leaflet.polylinemeasure/ @RiON69
@@ -1890,7 +1973,6 @@
/types/line-by-line/ @etomsen
/types/line-reader/ @stpettersens
/types/linkify-it/ @praxxis
-/types/linq4js/ @morrisjdev
/types/lls/ @borislavjivkov
/types/load-json-file/ @SamVerschueren
/types/loader-runner/ @e-cloud
@@ -1898,7 +1980,6 @@
/types/loadware/ @ALyman
/types/lobibox/ @itboy87
/types/local-dynamo/ @Sicilica
-/types/localforage-cordovasqlitedriver/ @thgreasi
/types/localized-countries/ @coderslagoon
/types/localizejs-library/ @salbahra
/types/locate-path/ @me
@@ -1907,7 +1988,7 @@
/types/lockr/ @droritos
/types/locutus/ @hookclaw
/types/lodash/v3/ @bczengel @chrootsu
-/types/lodash/ @bczengel @chrootsu @stepancar @ericanderson @aj-r @ailrun @e-cloud @thorn0 @jtmthf
+/types/lodash/ @bczengel @chrootsu @stepancar @aj-r @ailrun @e-cloud @thorn0 @jtmthf @DomiR
/types/lodash-es/ @stephenlautier @e-cloud
/types/lodash-webpack-plugin/ @bumbleblym
/types/lodash.add/ @bczengel @chrootsu @stepancar
@@ -2197,11 +2278,12 @@
/types/log-symbols/ @BendingBender
/types/log-update/ @BendingBender
/types/logat/ @krvikash35
+/types/logform/ @DABH
/types/logg/ @blittle
/types/loggly/ @rmartone @geoffreak
/types/loglevel/ @Pro @szmeti @screendriver
/types/logrotate-stream/ @rogierschouten
-/types/lokijs/ @TeamworkGuy2
+/types/lokijs/ @TeamworkGuy2 @thomasconner
/types/lolex/ @Nemo157 @joshuakgoldberg @rogierschouten
/types/long/ @peterkooijmans
/types/loopback/ @kattsushi @enko @sequoia @drmikecrowe
@@ -2220,7 +2302,7 @@
/types/lunr/v0/ @sebastian-lenz
/types/lunr/ @seantanly
/types/lusca/ @crutchcorn
-/types/luxon/ @colbydehart @FourwingsY
+/types/luxon/ @colbydehart @FourwingsY @jsiebern
/types/lwip/ @AyaMorisawa
/types/lz-string/ @M0ns1gn0r
/types/magic-number/ @stpettersens
@@ -2255,15 +2337,36 @@
/types/massive/v3/ @swissspidy @clarenceh
/types/massive/ @swissspidy @clarenceh @AmazingTurtle
/types/match-media-mock/ @asvetliakov
+/types/material-components-web/ @BrentDouglas
/types/material-design-lite/ @bradzacher
/types/material-ui/ @ngbrown @theigor @alitaheri @herrmanno @DaIgeb @allienna @schlesingermatthias @InsidersByte @artyomsv @dan-j @minodisk
/types/material-ui-datatables/ @coding2012
-/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote
+/types/material__animation/ @BrentDouglas
+/types/material__auto-init/ @BrentDouglas
+/types/material__base/ @BrentDouglas
+/types/material__checkbox/ @BrentDouglas
+/types/material__dialog/ @BrentDouglas
+/types/material__drawer/ @BrentDouglas
+/types/material__form-field/ @BrentDouglas
+/types/material__grid-list/ @BrentDouglas
+/types/material__icon-toggle/ @BrentDouglas
+/types/material__linear-progress/ @BrentDouglas
+/types/material__menu/ @BrentDouglas
+/types/material__radio/ @BrentDouglas
+/types/material__ripple/ @BrentDouglas
+/types/material__select/ @BrentDouglas
+/types/material__selection-control/ @BrentDouglas
+/types/material__slider/ @BrentDouglas
+/types/material__snackbar/ @BrentDouglas
+/types/material__tabs/ @BrentDouglas
+/types/material__textfield/ @BrentDouglas
+/types/material__toolbar/ @BrentDouglas
+/types/materialize-css/v0/ @eriklieben @leonyu @SinghSukhdeep @jfcere @scote @LiadIdan
/types/materialize-css/ @huww98
/types/math3d/ @laszlojakab @jimsmart
/types/mathjax/ @rolandzwaga
/types/mathjs/ @siavol
-/types/matter-js/ @piranha771
+/types/matter-js/ @piranha771 @hasparus
/types/maxmind/ @geoffreak
/types/mcustomscrollbar/ @flurg
/types/md5/ @arcdev1 @jprogrammer
@@ -2277,10 +2380,11 @@
/types/memory-cache/ @jedigo @thieman
/types/memory-fs/ @e-cloud
/types/memwatch-next/ @cyrilschumacher
-/types/meow/ @KnisterPeter
+/types/meow/ @KnisterPeter @praxxis
/types/merge-descriptors/ @danny8002
/types/merge-stream/ @k-kagurazaka @daniel-zazula
/types/merge2/ @tkrotoff @smac89
+/types/merkle/ @kerol2r20
/types/mersenne-twister/ @KentarouTakeda
/types/meshblu/ @fnipo
/types/mess/ @Nemo157
@@ -2315,6 +2419,7 @@
/types/minimatch/ @vvakame @shantmarouti
/types/minimist/ @Bartvds @Necroskillz @kamranayub
/types/minimist-options/ @ikatyang
+/types/minio/ @barinbritva
/types/minipass/ @BendingBender
/types/mirrorx/ @aaronphy
/types/mithril/ @spacejack @andraaspar @isiahmeadows
@@ -2326,7 +2431,9 @@
/types/mkpath/ @optical
/types/mobx-apollo/ @pselden
/types/mocha/ @kazimanzurrashid @otiai10 @jt000 @enlight
+/types/mocha-each/ @magnostherobot
/types/mocha-phantomjs/ @ErikSchierboom
+/types/mocha-steps/ @Arylo
/types/mochaccino/ @thomas-p
/types/mock-aws-s3/ @bluehatbrit
/types/mock-fs/ @Nemo157 @tkqubo
@@ -2340,15 +2447,18 @@
/types/moji/ @yasupeke
/types/moment-business/ @wonbyte
/types/moment-business-time/ @swist
-/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu
+/types/moment-duration-format/ @SwintDC @TwoStone @leonard-thieu @bendykowski
/types/moment-holiday/ @rwdalpe
/types/moment-jalaali/ @alitaheri
/types/moment-range/ @Burgov @wilgert @franjuan @MartynasZilinskas
/types/moment-round/ @jacobbaskin
/types/moment-strftime2/ @dex4er
/types/moment-timezone/ @michelsalib @alanblins
+/types/mongo-sanitize/ @CedricCazin
+/types/mongodb/v2/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi
/types/mongodb/ @CaselIT @alanmarcell @kikar @bitjson @dante-101 @mcortesi
-/types/mongoose/ @simonxca @horiuchi @sindrenm @lukasz-zak
+/types/mongoose/v4/ @simonxca @horiuchi @sindrenm @lukasz-zak
+/types/mongoose/ @simonxca @horiuchi @sindrenm @lukasz-zak @Alorel @jendrikw @ethanresnick
/types/mongoose-auto-increment/ @AyaMorisawa
/types/mongoose-deep-populate/ @AyaMorisawa
/types/mongoose-geojson-schema/ @bondz
@@ -2367,6 +2477,7 @@
/types/move-concurrently/ @mgroenhoff
/types/moviedb/ @basarat @0x6368656174
/types/moxios/ @itoasuka
+/types/mozilla-readability/ @charlesvdv
/types/mpromise/ @sgkim126
/types/mri/ @shiftkey @j-f1
/types/ms/ @danny8002
@@ -2385,7 +2496,7 @@
/types/multiparty/ @kenfdev
/types/multiplexjs/ @KamyarNazeri
/types/multisort/ @CzBuCHi
-/types/multistream/ @mrmlnc
+/types/multistream/ @mrmlnc @kenzierocks
/types/murmurhash-js/ @cvle
/types/murmurhash3js/ @dlee-nvisia
/types/musicmetadata/ @Xstoudi
@@ -2396,6 +2507,7 @@
/types/n3/ @phreed
/types/nano/ @timjacobi @vincekovacs
/types/nanoajax/ @nathancahill
+/types/nanoid/ @bash
/types/nanomsg/ @titan
/types/nanoscroller/ @zihark17
/types/nanp/ @karn
@@ -2405,7 +2517,7 @@
/types/natural-sort/ @a-morales
/types/navigation/ @grahammendick
/types/navigation-react/ @grahammendick
-/types/navigo/ @aersamkull
+/types/navigo/ @aersamkull @dancespiele
/types/nblas/ @erikgerrits
/types/nconf/ @jedigo @jmthibault
/types/ncp/ @bartvds
@@ -2421,6 +2533,9 @@
/types/nes/ @NoHomey @saboya
/types/net-keepalive/ @hertzg
/types/netmask/ @mhfrantz
+/types/new-relic-browser/ @renehamburger @piotrkubisa
+/types/newline-remove/ @OpenByteDev
+/types/newrelic/ @mastermatt
/types/nexpect/ @vvakame
/types/next/ @dru89 @brikou
/types/next-redux-wrapper/ @stevegeek
@@ -2447,19 +2562,20 @@
/types/nightmare/ @horiuchi @samyang-au
/types/nightwatch/ @rkavalap @schlesiger
/types/noble/ @swook @wind-rider @shantanubhadoria @lukel99 @bioball @keton
-/types/nock/ @bonnici @horiuchi @afharo @mastermatt
+/types/nock/ @bonnici @horiuchi @afharo @mastermatt @damour
/types/nodal/ @charrondev
/types/node/v4/ @eps1lon
-/types/node/v6/ @WilcoBakker @inlined @eps1lon
+/types/node/v6/ @WilcoBakker @inlined @eps1lon @Alorel
/types/node/v7/ @parambirs @tellnes @WilcoBakker @eps1lon
-/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno
-/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff
+/types/node/v8/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @hoo29
+/types/node/ @parambirs @tellnes @WilcoBakker @octo-sniffle @smac89 @Flarna @mwiktorczyk @wwwy3y3 @DeividasBakanas @kjin @alvis @OliverJAsh @eps1lon @Hannes-Magnusson-CK @jkomyno @ajafff @hoo29
/types/node-7z/ @erkie
/types/node-array-ext/ @Beng89
/types/node-cache/ @chrootsu @dthunell @useltmann
/types/node-calendar/ @luzianz
/types/node-cleanup/ @agadar
/types/node-common-errors/ @icopp
+/types/node-cron/ @maximelkin
/types/node-dir/ @panuhorsmalahti
/types/node-dogstatsd/ @chrisbobo
/types/node-emoji/ @jonestristand @styu
@@ -2478,7 +2594,6 @@
/types/node-json-db/ @kuzn-ilya
/types/node-mysql-wrapper/ @kataras
/types/node-notifier/ @tkQubo
-/types/node-pg-migrate/ @bradleyayers
/types/node-polyglot/ @timjk
/types/node-powershell/ @rodrigoff
/types/node-ral/ @ssddi456
@@ -2494,7 +2609,6 @@
/types/node-uuid/ @jeffmay
/types/node-validator/ @kengorab
/types/node-vault/ @YuJianrong
-/types/node-waves/ @stephenlautier
/types/node-wit/ @julienduf
/types/node-xmpp-client/ @PJakcson
/types/node-xmpp-core/ @PJakcson
@@ -2527,6 +2641,7 @@
/types/novnc-core/ @smithkl42 @BendingBender
/types/npm/ @SomaticIT
/types/npm-package-arg/ @mgroenhoff
+/types/npm-packlist/ @ajafff
/types/ns-api/ @Archcry
/types/nslog/ @unindented
/types/nsqjs/ @cezaryrk
@@ -2549,6 +2664,7 @@
/types/object-hash/ @misak113
/types/object-inspect/ @demurgos
/types/object-map/ @wolfgang42
+/types/object-merge/ @OpenByteDev
/types/object-path/ @pocesar
/types/object-refs/ @3fd
/types/oblo-util/ @Oblosys
@@ -2557,10 +2673,11 @@
/types/oclazyload/ @rolandzwaga
/types/odata/ @janhommes @jcchalte
/types/ofe/ @Morfent
-/types/office-js/ @OfficeDev @LanceEA
+/types/office-js/ @OfficeDev @LanceEA @Zlatkovsky @kbrandl @Rick-Kirkham
/types/offline-js/ @cgwrench
/types/oibackoff/ @geoffreak
/types/oidc-token-manager/ @rosieks
+/types/ol/ @yairtawil
/types/on-finished/ @czechboy0 @BendingBender
/types/on-headers/ @jjeffery @BendingBender
/types/once/ @denis-sokolov @BendingBender
@@ -2574,16 +2691,16 @@
/types/openjscad/ @danmarshall
/types/openlayers/v2/ @bolhovsky
/types/openlayers/v3/ @osechet @matthiasdailey-ccri
-/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana
+/types/openlayers/ @osechet @wb14123 @ailrun @mylen @iamthechad @danmana @yairtawil @pierremarc
/types/openstack-wrapper/ @sanjaymadane
/types/opentok/ @westy92 @CatGuardian
-/types/opentype.js/ @danmarshall
+/types/opentype.js/ @danmarshall @edzis
/types/opn/ @shinnn @SomaticIT @tlent
/types/optics-agent/ @crevil
/types/optimist/ @soywiz @chbrown
/types/optimize-css-assets-webpack-plugin/ @odnamrataizem
/types/ora/v0/ @screendriver
-/types/ora/ @basarat @screendriver @BendingBender
+/types/ora/ @basarat @screendriver @BendingBender @azasypkin
/types/oracledb/ @Bigous
/types/orchestrator/ @tkQubo @TeamworkGuy2
/types/orderedmap/ @bradleyayers
@@ -2593,7 +2710,7 @@
/types/os-locale/ @AyaMorisawa @BendingBender
/types/os-name/ @BendingBender
/types/os-tmpdir/ @mhegazy
-/types/osmosis/ @jurajkocan
+/types/osmosis/ @jurajkocan @evanshortiss
/types/osmtogeojson/ @tkqubo
/types/osrm/ @DenisCarriere
/types/otplib/ @renjfk
@@ -2611,6 +2728,7 @@
/types/p-every/ @BendingBender
/types/p-lazy/ @BendingBender
/types/p-limit/ @BendingBender
+/types/p-loading/ @renjfk
/types/p-locate/ @BendingBender
/types/p-log/ @BendingBender
/types/p-map/ @BendingBender
@@ -2641,7 +2759,10 @@
/types/paper/ @clark-stevenson @Xakaloz
/types/paralleljs/ @jbaldwin
/types/parent-package-json/ @sgmccli
-/types/parse/ @dpoetzsch @jaeggerr @flavionegrao
+/types/parity-pmd/ @leovujanic @jewbre
+/types/parity-pmr/ @leovujanic
+/types/parity-poe/ @leovujanic
+/types/parse/ @dpoetzsch @jaeggerr @flavionegrao @wesleygrimes
/types/parse-git-config/ @leonard-thieu
/types/parse-glob/ @glen-84
/types/parse-json/ @mrmlnc
@@ -2653,7 +2774,7 @@
/types/parse-unit/ @Jack-Works
/types/parseurl/ @bomret
/types/parsimmon/ @Bartvds @mizunashi-mana @bcherny @bvanreeven @leonard-thieu
-/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk
+/types/passport/ @horiuchi @enaeseth @theigor @tlaziuk @danielpa9708
/types/passport-anonymous/ @0x6368656174
/types/passport-beam/ @AtlasDev
/types/passport-discord/ @kzay
@@ -2663,10 +2784,13 @@
/types/passport-github2/ @yasupeke @mthmulders
/types/passport-google-oauth/ @staticfunction
/types/passport-google-oauth2/ @bluehatbrit
-/types/passport-http/ @krizalys
+/types/passport-http/ @krizalys @tlaziuk @cjbarth
/types/passport-http-bearer/ @isman-usoh
+/types/passport-jwt/ @jindev
+/types/passport-kakao/ @Park9eon
/types/passport-local/ @SomaticIT
/types/passport-local-mongoose/ @linusbrolin
+/types/passport-naver/ @Park9eon
/types/passport-oauth2/ @pasieronen
/types/passport-oauth2-client-password/ @akaNightmare
/types/passport-saml/ @cjbarth
@@ -2741,7 +2865,7 @@
/types/playcanvas/ @Neoflash1979
/types/playerframework/ @ricardosabino
/types/pleasejs/ @nakakura
-/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf
+/types/plotly.js/ @chrisgervang @martinduparc @frederikaalund @taoqf @Dadstart
/types/plugapi/ @BNedry
/types/plugin-error/ @rogierschouten
/types/plupload/ @patrickbussmann
@@ -2802,6 +2926,7 @@
/types/promise-pg/ @coldacid
/types/promise-polyfill/ @skysteve
/types/promise-pool/ @vilic
+/types/promise-queue/ @LachlanStuart
/types/promise-retry/ @shirakaba
/types/promise.prototype.finally/ @slavik57 @BendingBender
/types/promised-temp/ @rokadias
@@ -2820,7 +2945,7 @@
/types/prosemirror-keymap/ @bradleyayers @davidka @timjb
/types/prosemirror-markdown/ @bradleyayers @davidka @timjb
/types/prosemirror-menu/ @bradleyayers @davidka @timjb
-/types/prosemirror-model/ @bradleyayers @davidka @timjb
+/types/prosemirror-model/ @bradleyayers @davidka @timjb @neknalb
/types/prosemirror-schema-basic/ @bradleyayers @davidka @timjb
/types/prosemirror-schema-list/ @bradleyayers @davidka @timjb
/types/prosemirror-state/ @bradleyayers @davidka @timjb
@@ -2835,18 +2960,19 @@
/types/proxyquire/ @jt000
/types/pty.js/ @enlight
/types/public-ip/ @BendingBender
-/types/pubnub/ @bitbankinc @rollymaduk
+/types/pubnub/ @bitbankinc @rollymaduk @vitosamson
/types/pubsub-js/ @borisyankov
/types/pug/ @TonyPythoneer @19majkel94
-/types/pulltorefreshjs/ @DanielRosenwasser
+/types/pulltorefreshjs/ @DanielRosenwasser @humpedli
/types/pump/ @tlaziuk
/types/pupa/ @nju33
-/types/puppeteer/ @marvinhagemeister @cdeutsch
+/types/puppeteer/v0/ @marvinhagemeister @cdeutsch
+/types/puppeteer/ @marvinhagemeister @cdeutsch @jwbay
/types/pure-render-decorator/ @seansfkelley
/types/purl/ @danfma
/types/pusher-js/ @tkqubo
/types/pvutils/ @microshine
-/types/python-shell/ @dolanmiu
+/types/python-shell/ @dolanmiu @WORMSS
/types/q/v0/ @bnemetchek @johnnyreilly
/types/q/ @bnemetchek @AndrewGaspar @johnnyreilly @mboudreau
/types/q-io/ @Bartvds
@@ -2859,7 +2985,7 @@
/types/qrcode.react/ @mleko
/types/qs/ @RWander @leonyu @tehbelinda @zyml @artursvonda @CarlosBonetti
/types/qtip2/ @Seltzer @leonard-thieu
-/types/query-string/ @SamVerschueren @tkrotoff @huhuanming
+/types/query-string/ @SamVerschueren @tkrotoff @huhuanming @MadaraUchiha
/types/quick-lru/ @BendingBender
/types/quill/ @sumitkm @guillaume-ro-fr @43081j
/types/quixote/ @greybax
@@ -2871,8 +2997,9 @@
/types/rabbit.js/ @wokim
/types/radium/ @alexgorbatchev @nupplaphil @asvetliakov @mihe
/types/radius/ @codeanimal
-/types/ramda/ @donnut @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky
+/types/ramda/ @donnut @mdekrey @mrdziuban @sbking @afharo @teves-castro @1M0reBug @hojberg @charlespwd @samsonkeung @angeloocana @raynerd @googol @moshensky @ethanresnick
/types/random-js/ @pistacchio
+/types/random-number/ @OpenByteDev
/types/random-seed/ @endel
/types/random-string/ @stpettersens
/types/randomcolor/ @feitzi @BradyLiles
@@ -2882,7 +3009,14 @@
/types/rappid/ @DenEwout
/types/raspi/ @nebrius
/types/raspi-board/ @nebrius
+/types/raspi-gpio/ @nebrius
+/types/raspi-i2c/ @nebrius
+/types/raspi-led/ @nebrius
+/types/raspi-onewire/ @nebrius
/types/raspi-peripheral/ @nebrius
+/types/raspi-pwm/ @nebrius
+/types/raspi-serial/ @nebrius
+/types/raspi-soft-pwm/ @nebrius
/types/ratelimiter/ @AyaMorisawa
/types/raty/ @terrawheat
/types/raven/ @scttcper @1999
@@ -2904,13 +3038,14 @@
/types/react-aria-menubutton/ @forabi @crohlfs
/types/react-autosuggest/ @nicolas-schmitt @pjo256 @robessog @tbayne @cdeutsch @rosskevin
/types/react-beautiful-dnd/ @varHarrie @bradleyayers
+/types/react-big-calendar/ @piotrwitek @paustint @pikpok
/types/react-body-classname/ @mhegazy
/types/react-bootstrap/ @walkerburgin @vsiao @danilojrr @Batbold-Gansukh @octatone @chengsieuly @mretolaza @katbusch @vitosamson @LKay @aaronbeall
/types/react-bootstrap-date-picker/ @LKay @ssi-hu-antal-bodnar
/types/react-bootstrap-daterangepicker/ @ianks
/types/react-bootstrap-table/v2/ @flaub @alelode @UJosue10
/types/react-bootstrap-table/ @flaub @alelode @UJosue10 @dawnmist @Ogglas
-/types/react-bootstrap-typeahead/ @Guymestef
+/types/react-bootstrap-typeahead/ @Guymestef @radziksh
/types/react-breadcrumbs/ @KostyaEsmukov
/types/react-breadcrumbs-dynamic/ @mitsuruog
/types/react-broadcast/ @kandros
@@ -2918,12 +3053,13 @@
/types/react-calendar-heatmap/ @9renpoto
/types/react-calendar-timeline/ @radziksh
/types/react-cartographer/ @trevonmckay
+/types/react-click-outside/ @screendriver
/types/react-codemirror/ @velveret @rudi-c
/types/react-collapse/ @Kimahriman
/types/react-color/ @LKay @markspolakovs @mntdn
/types/react-confirm/ @santiagodoldan
/types/react-content-loader/ @alaatm
-/types/react-copy-to-clipboard/ @mabels
+/types/react-copy-to-clipboard/ @mabels @BernabeFelix
/types/react-cropper/ @stepancar
/types/react-css-modules/ @KostyaEsmukov @skirsdeda
/types/react-css-transition-replace/ @LKay
@@ -2933,7 +3069,7 @@
/types/react-data-grid/ @SupernaviX @KieranPeat @martinnov92
/types/react-datagrid/ @stephenjelfs
/types/react-date-range/ @Junbong
-/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue
+/types/react-datepicker/ @radziksh @andrewBalekha @smrq @Rogach @royxue @KoalaHuman
/types/react-daterange-picker/ @uncovertruth @MartynasZilinskas
/types/react-dates/ @Artur-A
/types/react-daum-postcode/ @Sa-ryong
@@ -2948,13 +3084,15 @@
/types/react-dropzone/v2/ @matdube @LynxEyes @goblindegook @benbayard
/types/react-dropzone/v3/ @matdube @LynxEyes @goblindegook @benbayard @LKay
/types/react-dropzone/ @matdube @LynxEyes @goblindegook @benbayard @LKay @codeaid @jurosh
+/types/react-dynamic-number/ @eugrdn
/types/react-easy-chart/ @danzel
/types/react-event-listener/ @asvetliakov
/types/react-fa/ @flaub @patsissons @LKay
/types/react-facebook-login/ @apare @jankarres
-/types/react-faux-dom/ @alitaheri @cleverguy25
+/types/react-faux-dom/ @alitaheri @cleverguy25 @deviousm
/types/react-file-input/ @dmitryrogozhny
/types/react-file-reader-input/ @dmitryrogozhny @alitaheri
+/types/react-flags-select/ @senukartur
/types/react-flatpickr/ @begincalendar
/types/react-flex/ @pushplay
/types/react-flexr/ @pushplay
@@ -2969,6 +3107,7 @@
/types/react-hamburger-menu/ @grzesie2k
/types/react-helmet/v4/ @evanbb @isman-usoh
/types/react-helmet/ @evanbb @isman-usoh @lith-light-g @sammkj @yuit
+/types/react-helmet-async/ @forabi
/types/react-highlight-words/ @mhegazy
/types/react-highlighter/ @oizie
/types/react-holder/ @isman-usoh
@@ -2986,7 +3125,7 @@
/types/react-input-calendar/ @stepancar
/types/react-input-mask/ @apare
/types/react-intl/v1/ @bgrieder
-/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari
+/types/react-intl/ @bgrieder @cdroulers @gyzerok @tillwolff @LKay @bhouser @kristerkari @formatlos
/types/react-intl-redux/ @LKay
/types/react-is-deprecated/ @seansfkelley
/types/react-joyride/ @DanielRosenwasser @bendxn
@@ -2997,7 +3136,7 @@
/types/react-lazyload/ @m0a
/types/react-leaflet/ @danzel @davschne @yuit
/types/react-list/ @buptyyf @tomshen
-/types/react-loadable/ @Kovensky @odensc
+/types/react-loadable/ @Kovensky @odensc @ianks @tlaziuk
/types/react-loader/ @artfuldev
/types/react-maskedinput/ @LKay @lavoaster @CarlosBonetti
/types/react-mce/ @morphologue
@@ -3006,7 +3145,7 @@
/types/react-mixin/ @tkqubo
/types/react-modal/ @radziksh @drewnoakes @homburg @ttamminen @hallowatcher @peterblazejewicz
/types/react-monaco-editor/ @jnetterf
-/types/react-motion/ @stepancar @asvetliakov
+/types/react-motion/ @stepancar @asvetliakov @dimitarnestorov
/types/react-motion-slider/ @asvetliakov
/types/react-native/ @alloy @huhuanming @iRoachie @timwangdev @kamal @nelyousfi
/types/react-native-collapsible/ @iRoachie
@@ -3023,19 +3162,21 @@
/types/react-native-google-signin/ @j-fro
/types/react-native-keep-awake/ @huhuanming
/types/react-native-linear-gradient/ @j-fro
+/types/react-native-loading-spinner-overlay/ @fhelwanger
/types/react-native-material-design-searchbar/ @iRoachie
/types/react-native-material-kit/ @iRoachie @timwangdev
/types/react-native-material-ui/ @iRoachie
/types/react-native-mixpanel/ @r3nya
/types/react-native-modalbox/ @iRoachie
+/types/react-native-navigation/ @egorshulga
/types/react-native-orientation/ @MoLow
/types/react-native-popup-dialog/ @PaitoAnderson @connectdotz
-/types/react-native-push-notification/ @PaitoAnderson
+/types/react-native-push-notification/ @PaitoAnderson @tomSawkins
/types/react-native-qrcode/ @plantain-00
/types/react-native-safari-view/ @mrand01
-/types/react-native-scrollable-tab-view/ @CaiHuan
+/types/react-native-scrollable-tab-view/ @CaiHuan @egorshulga
/types/react-native-sensor-manager/ @SahinVardar
-/types/react-native-snap-carousel/ @jnbt
+/types/react-native-snap-carousel/ @jnbt @j-fro
/types/react-native-sortable-grid/ @j-fro
/types/react-native-sortable-list/ @sivolobov
/types/react-native-svg-uri/ @iRoachie
@@ -3045,12 +3186,13 @@
/types/react-native-touch-id/ @huhuanming
/types/react-native-vector-icons/ @iRoachie @timwangdev
/types/react-native-video/ @huhuanming @abrahambotros
-/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @abrahambotros @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko
+/types/react-navigation/ @huhuanming @mhcgrq @fangpenlin @abrahambotros @petejkim @iRoachie @phanalpha @charlesfamu @timwangdev @bang88 @svbutko @levito @robertohuertasm @YourGamesBeOver
/types/react-notification-system/ @GiedriusGrabauskas @DeividasBakanas @LKay @sztobar
/types/react-notification-system-redux/ @LKay
/types/react-numeric-input/ @heatherbooker
/types/react-onclickoutside/v5/ @LKay
/types/react-onclickoutside/ @LKay
+/types/react-onsenui/ @salim7 @jemmyw
/types/react-overlays/ @aaronbeall @vitosamson
/types/react-paginate/ @deevus @wouterhardeman @pegel03 @archy-bold
/types/react-pointable/ @istefo @mdibyo
@@ -3058,29 +3200,32 @@
/types/react-props-decorators/ @tkqubo
/types/react-recaptcha/ @mhegazy @zzanol
/types/react-redux/ @tkqubo @thasner @kenzierocks @clayne11 @tansongyang @nicholasboll @mdibyo @pdeva
+/types/react-redux-epic/ @forabi
/types/react-redux-i18n/ @clementdevos
/types/react-redux-toastr/ @Smiche @artyomsv @kulmajaba
-/types/react-relay/ @graphcool @voxmatt @alloy
+/types/react-relay/ @graphcool @voxmatt @alloy @npirotte
/types/react-resolver/ @forabi
/types/react-responsive/v1/ @asvetliakov
/types/react-responsive/ @asvetliakov @alechill @xaviergonz
/types/react-router/v2/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov
/types/react-router/v3/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @ssorallen
-/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga
+/types/react-router/ @sergey-buturlakin @mrk21 @vasek17 @ngbrown @awendland @KostyaEsmukov @johnnyreilly @LKay @DovydasNavickas @tkrotoff @huy-nguyen @grmiade @DaIgeb @egorshulga @neuoy
/types/react-router-bootstrap/ @vlesierse @LKay @olmobrutall
/types/react-router-config/ @lith-light-g
/types/react-router-dom/ @tkrotoff @huy-nguyen
/types/react-router-native/ @ezintz
+/types/react-router-navigation/ @kaoDev
+/types/react-router-navigation-core/ @kaoDev
/types/react-router-redux/v3/ @isman-usoh @noah79 @rosendi
/types/react-router-redux/v4/ @isman-usoh @noah79 @rosendi @LKay @DovydasNavickas
/types/react-router-redux/ @huy-nguyen @8398a7
/types/react-s-alert/ @mitsuruog
/types/react-scroll/ @sudoplz @GiedriusGrabauskas
/types/react-scrollbar/ @stephenjelfs
-/types/react-select/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4
+/types/react-select/ @Hesquibet @giladgray @iebaker @skirsdeda @vujevits @devrelm @MartynasZilinskas @onatm @ninjaferret @tehbi4 @misantronic
/types/react-side-effect/ @remojansen
/types/react-sidebar/ @jeroenvervaeke
-/types/react-sketchapp/ @ricokahler
+/types/react-sketchapp/ @ricokahler @DomiR
/types/react-slick/ @andrewBalekha @GiedriusGrabauskas @r3nya
/types/react-smooth-scrollbar/ @asvetliakov
/types/react-sortable-hoc/ @NoHomey @charlesrey
@@ -3105,6 +3250,7 @@
/types/react-test-renderer/v15/ @arvitaly @lochbrunner @lochbrunner @johnnyreilly
/types/react-test-renderer/ @arvitaly @lochbrunner @johnnyreilly @jgoz
/types/react-tether/ @ryprice
+/types/react-text-mask/ @guilhermehubner
/types/react-textarea-autosize/ @asvetliakov @zry656565
/types/react-toastr/ @shssoichiro
/types/react-toggle/v2/ @LKay
@@ -3116,28 +3262,31 @@
/types/react-transition-group/ @LKay
/types/react-treeview/ @janslow
/types/react-truncate/ @mattvperry
+/types/react-twitter-auth/ @paulfasola
/types/react-user-tour/ @ccancellieri
/types/react-virtual-keyboard/ @bsurai
/types/react-virtualized/ @kaoDev @guntherjh @wasd171 @szabolcsx @kraenhansen
/types/react-virtualized-select/ @seansfkelley
/types/react-weui/ @tairan
-/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2
+/types/react-widgets/ @rogierschouten @sanyatuning @frodehansen2 @r3nya
/types/react-widgets-moment/ @dawnmist
/types/react-youtube/ @kgtkr
/types/reactable/ @spielc
/types/reactcss/ @chrisgervang @LKay
/types/reactstrap/v4/ @alihammad @mfal @danilobjr @fabiopaiva
-/types/reactstrap/ @alihammad @mfal @danilobjr @fabiopaiva @FaithForHumans @KurtPreston
+/types/reactstrap/ @alihammad @mfal @danilobjr @fabiopaiva @FaithForHumans @KurtPreston @kraenhansen @timc13
/types/read/ @timjk
/types/read-chunk/ @crispybee
/types/read-package-tree/ @mgroenhoff
/types/read-pkg/ @jdxcode
/types/read-pkg-up/ @dudeofawesome @jdxcode
+/types/readdir-enhanced/ @mrmlnc
/types/readdir-stream/ @Bartvds
/types/readline-sync/ @jonestristand
+/types/readline-transform/ @dex4er
/types/reapop/ @Barrokgl
/types/recase/ @18steps
-/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong
+/types/recharts/ @mthmulders @rapmue @royxue @ZheyangSong @richbai90
/types/recompose/ @iskandersierra @mrapogee @clayne11
/types/reconnectingwebsocket/ @nguarracino
/types/recursive-readdir/v1/ @elisee
@@ -3171,6 +3320,7 @@
/types/redux-immutable-state-invariant/ @remojansen @highflying
/types/redux-infinite-scroll/ @silkyfray
/types/redux-injectable-store/ @unindented
+/types/redux-little-router/ @priecint
/types/redux-localstorage/ @LKay
/types/redux-localstorage-debounce/ @LKay
/types/redux-localstorage-filter/ @LKay
@@ -3184,6 +3334,7 @@
/types/redux-promise-middleware/ @ianks
/types/redux-recycle/ @LKay
/types/redux-router/ @stepancar
+/types/redux-socket.io/ @snakeego
/types/redux-storage/ @asvetliakov
/types/redux-storage-engine-jsurl/ @screendriver
/types/redux-storage-engine-localstorage/ @screendriver
@@ -3196,20 +3347,23 @@
/types/relateurl/ @tkrotoff
/types/relaxed-json/ @18steps
/types/relay-runtime/ @voxmatt @alloy
+/types/remarkable/ @makepost
/types/remote-redux-devtools/ @ColinEberhardt @unindented
/types/remove-markdown/ @RagibHasin
/types/replace-ext/ @DeividasBakanas
/types/request/ @soywiz @bonnici @Bartvds @joeskeen @ccurrens @lookfirst @mastermatt
/types/request-ip/ @mrhen
-/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa
-/types/request-promise-native/ @gustavohenke
+/types/request-promise/ @cglantschnig @joeskeen @AyaMorisawa @mastermatt
+/types/request-promise-native/ @gustavohenke @mastermatt
/types/requestretry/ @EricByers @trainerbill
/types/require-dir/ @weekens
/types/require-directory/ @Igmat
/types/require-from-string/ @ikatyang
+/types/require-relative/ @MattiasBuelens
/types/requirejs/ @jbaldwin
/types/requirejs-domready/ @lefb766
/types/resemblejs/ @pimterry
+/types/reservoir/ @danvk
/types/resolve/ @marionebl @ajafff
/types/resolve-from/ @unional
/types/resourcejs/ @shaunluttin
@@ -3228,12 +3382,14 @@
/types/resumablejs/ @DanielMcAssey
/types/rethinkdb/ @alexgorbatchev
/types/retry/ @krenor
+/types/retry-as-promised/ @Raigen
/types/rev-hash/ @ikatyang
/types/revalidate/ @alex3165
/types/revalidator/ @brewsoftware
/types/reveal/ @robertop87 @Nava2
/types/rewire/ @borislavjivkov @CaselIT
/types/rfc2047/ @mugifly
+/types/rgrove__parse-xml/ @petejohanson
/types/rheostat/ @SashaBayan @kourge
/types/rickshaw/ @niemyjski
/types/rimraf/ @soywiz @e-cloud @bash
@@ -3244,16 +3400,16 @@
/types/riotjs/ @vvakame
/types/rison/ @impworks
/types/rivets/ @TrevorDev @matjanos
-/types/rollup/ @flying-sheep @csvn
+/types/roads/ @dancespiele
/types/rollup-plugin-json/ @asmockler
/types/ronomon__crypto-async/ @BendingBender
/types/rosie/ @abner @subvertallchris
-/types/roslib/ @Pro @skycoop
+/types/roslib/ @Pro @skycoop @dgorobopec
/types/rot-js/ @atiaxi
/types/route-parser/ @ianks @bobbuehler
/types/routie/ @Adilson
/types/royalslider/ @csrakowski
-/types/rpio/ @DominikPalo
+/types/rpio/ @DominikPalo @Pencl
/types/rrc/ @DeividasBakanas
/types/rrule/ @waratuman
/types/rsmq/ @MugeSo
@@ -3280,6 +3436,7 @@
/types/rx-lite-time/ @Igorbek
/types/rx-lite-virtualtime/ @Igorbek
/types/rx.wamp/ @darkl
+/types/s3-download-stream/ @everettcaleb
/types/s3-upload-stream/ @geoffreak
/types/safari-extension/ @luukd
/types/safari-extension-content/ @luukd
@@ -3298,6 +3455,7 @@
/types/sanitize-html/ @rogierschouten @afshin @BehindTheMath
/types/sap__xsenv/ @mad-mike
/types/sass-graph/ @marvinhagemeister
+/types/sass-webpack-plugin/ @AepKill
/types/sat/ @omni360
/types/satnav/ @DotNetNerd
/types/saywhen/ @SeanSobey
@@ -3310,7 +3468,7 @@
/types/scroller/ @haskellcamargo
/types/scrollreveal/ @Davidblkx
/types/scrolltofixed/ @bmdixon
-/types/scrypt-async/ @xStrom
+/types/scrypt-async/ @xStrom @stesix
/types/scryptsy/ @micksatana
/types/seamless/ @danmana
/types/seamless-immutable/ @alex3165 @xsburg @geirsagberg
@@ -3350,7 +3508,7 @@
/types/send/ @MikeJerred
/types/seneca/ @psnider
/types/sequelize/v3/ @samuelneff @codeanimal @drinchev @morpheusxaut @torhal
-/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01
+/types/sequelize/ @samuelneff @codeanimal @drinchev @babolivier @kukoo1 @oktapodia @morpheusxaut @TitaneBoy @zjy01 @nidzov @Raigen @todd
/types/sequelize-fixtures/ @cschwarz
/types/sequencify/ @npenin
/types/sequester/ @Strate
@@ -3363,6 +3521,7 @@
/types/server-destroy/ @gyszalai
/types/session-file-store/ @blendsdk @rokt33r
/types/set-cookie-parser/ @nickp10
+/types/set-value/ @DanielRosenwasser
/types/sha1/ @arcdev1
/types/shallowequal/ @seansfkelley
/types/shapefile/ @DenisCarriere
@@ -3379,6 +3538,7 @@
/types/shopify-buy/ @openminder
/types/shortid/ @stpettersens @despairblue
/types/shot/ @AJamesPhillips
+/types/should-sinon/ @Arylo
/types/showdown/ @cbowdon @tan9
/types/shrink-ray/ @forabi
/types/siema/ @Irmiz @0x6368656174 @samnau
@@ -3391,33 +3551,37 @@
/types/signature_pad/ @AbubakerB @jrmihalick
/types/simple-assign/ @NoHomey
/types/simple-cw-node/ @vvakame
+/types/simple-lru/ @NN---
/types/simple-mock/ @leonyu
/types/simple-oauth2/ @mad-mike
/types/simple-peer/ @tlaziuk
/types/simple-url-cache/ @a-lucas
/types/simple-xml/ @notVitaliy
/types/simplebar/v1/ @gregonnet @leonard-thieu
-/types/simplebar/ @leonard-thieu
+/types/simplebar/ @gregonnet @leonard-thieu
/types/simplemde/ @Scalesoft
/types/simplesmtp/ @rogierschouten
/types/simplestorage.js/ @axelcostaspena @mxl
+/types/single-line-log/ @ffflorian
/types/sinon/ @mrbigdog2u @rationull @lumaxis @nicojs @43081j
/types/sinon-as-promised/ @igrayson
/types/sinon-chai/ @kazimanzurrashid @jedmao
-/types/sinon-chrome/ @pimterry
+/types/sinon-chrome/ @pimterry @crimx
/types/sinon-express-mock/ @jpchip @tlaziuk
/types/sinon-mongoose/ @stevehipwell
-/types/sinon-stub-promise/ @vintem
+/types/sinon-stub-promise/ @vintem @tstackhouse
/types/sinon-test/ @mummybot
/types/sip.js/ @decyrus
/types/sipml/ @chookies
/types/sitemap2/ @shundy
/types/sizzle/ @leonard-thieu
/types/sjcl/ @Evgenus
+/types/skatejs/ @Hotell
/types/ski/ @AyaMorisawa
/types/skyway/ @nakakura
/types/slack-node/ @geoffreak
/types/slack-winston/ @BlueHatbRit
+/types/slackdown/ @nju33
/types/slackify-html/ @hypexr
/types/slate-irc/ @elisee
/types/sleep/ @rajarz
@@ -3439,8 +3603,9 @@
/types/socket.io/ @progre @divillysausages @florentpoujol @KentarouTakeda @gigi
/types/socket.io-client/ @progre @divillysausages @florentpoujol
/types/socket.io-parser/ @plantain-00
-/types/socket.io-redis/ @nupplaphil
+/types/socket.io-redis/ @nupplaphil @seeLuck
/types/socket.io.users/ @kataras
+/types/socketio-jwt-auth/ @codeanimal
/types/socketio-wildcard/ @BendingBender
/types/socketty/ @Nax
/types/sockjs/ @pmccloghrylaing
@@ -3461,7 +3626,7 @@
/types/spdx-correct/ @jinwoo
/types/spdx-satisfies/ @jinwoo
/types/spdy/ @tony19
-/types/speakeasy/ @legendecas @mrOlorin
+/types/speakeasy/ @legendecas @mrOlorin @xeoneux
/types/speakingurl/ @Goldsmith42
/types/spectacle/ @zmaybury
/types/spectrum/ @M-Zuber
@@ -3469,7 +3634,7 @@
/types/split.js/ @icholy
/types/split2/ @mugeso
/types/spotify-api/ @skovmand
-/types/spotify-web-playback-sdk/ @Festify
+/types/spotify-web-playback-sdk/ @Festify @mraerino @NeoLegends
/types/sprintf/ @soywiz @BendingBender
/types/sprintf-js/ @jasonswearingen @BendingBender
/types/sql.js/ @Hozuki
@@ -3493,21 +3658,24 @@
/types/stats.js/ @gregolai @hberntsen @danvk
/types/statsd-client/ @peterkooijmans @chrisleck
/types/statuses/ @tkrotoff @BendingBender
+/types/std-mocks/ @jdxcode
/types/steam/ @kant2002
/types/steed/ @Paul-Isache
/types/stemmer/ @will-ockmore
/types/sticky-cluster/ @paustint
-/types/stompjs/ @jimic
+/types/stompjs/ @jimic @Dr4k4n
/types/stoppable/ @EricByers
/types/storejs/ @vbortone @harry0000
+/types/storybook__addon-a11y/ @hyunseob
/types/storybook__addon-actions/ @joscha
/types/storybook__addon-backgrounds/ @hyunseob
/types/storybook__addon-info/ @mkornblum @fyrkant
/types/storybook__addon-knobs/ @joscha @martynaskadisa
-/types/storybook__addon-links/ @joscha
+/types/storybook__addon-links/ @joscha @jessepinho
/types/storybook__addon-notes/ @joscha
/types/storybook__addon-options/ @joscha
/types/storybook__react/ @joscha @wapgear
+/types/storybook__vue/ @pntgupta
/types/stream-buffers/ @Jason3S
/types/stream-meter/ @mugeso
/types/stream-series/ @k-kagurazaka
@@ -3530,7 +3698,9 @@
/types/stripe-v2/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/stripe-v3/ @ejsmith @amritk @adamcmiel @jleider @galuszkak
/types/strong-cluster-control/ @shuntksh
+/types/strong-log-transformer/ @azasypkin
/types/strophe/ @DavidKDeutsch
+/types/structured-source/ @azu
/types/styled-jsx/ @R1ZZU
/types/stylelint/ @alan-agius4
/types/stylelint-webpack-plugin/ @bahlo
@@ -3541,7 +3711,7 @@
/types/suitescript/ @darrenhillconsulting
/types/sumo-logger/ @forabi
/types/superagent/v2/ @varju @NicoZelaya @mxl
-/types/superagent/ @NicoZelaya @mxl @paplorinc
+/types/superagent/ @NicoZelaya @mxl @paplorinc @shreyjain1994
/types/superagent-no-cache/ @mxl
/types/superagent-prefix/ @mxl
/types/supercluster/ @DenisCarriere
@@ -3555,7 +3725,7 @@
/types/svg4everybody/ @BendingBender
/types/svgjs.draggable/ @LiFeleSs
/types/svgjs.resize/ @jkevingutierrez
-/types/svgo/ @bradleyayers
+/types/svgo/ @bradleyayers @giladgray
/types/swag/ @shiwano
/types/swagger-express-middleware/ @alexandreroba
/types/swagger-express-mw/ @micmro
@@ -3588,6 +3758,7 @@
/types/tapable/ @e-cloud
/types/tape/ @Bartvds @sodatea @DennisSchwartz @mikehenrty
/types/tar/ @SomaticIT @connor4312
+/types/tar-fs/ @Umoxfo
/types/tcp-ping/ @stegano
/types/tedious/ @rogierschouten @cjthompson
/types/tedious-connection-pool/ @sandorfr
@@ -3604,7 +3775,7 @@
/types/text-buffer/ @GlenCFL
/types/text-encoding/ @pine613
/types/text-encoding-utf-8/ @trxcllnt
-/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv
+/types/three/ @gyohk @florentpoujol @SereznoKot @omni360 @ivoisbelongtous @piranha771 @qszhusightp @nakakura @s093294 @Pro @efokschaner @PsychoSTS @dhritzkiv @apurvaojas
/types/thrift/ @kamek-pf @kevin-greene-ck @jessezhang91
/types/throng/ @cyrilschumacher @tatethurston
/types/throttle/ @BendingBender
@@ -3623,7 +3794,7 @@
/types/tinder/ @pingec
/types/tinycolor2/ @M-Zuber @geertjansen @nvh
/types/tinycopy/ @vvatanabe
-/types/tinymce/ @martinduparc @ipoul
+/types/tinymce/ @martinduparc @ipoul @nicohartto
/types/titanium/ @cyounkins
/types/title/ @fa7ad
/types/tldjs/ @geoffreak
@@ -3660,17 +3831,19 @@
/types/tweezer.js/ @praxxis
/types/twig/ @soywiz @enko
/types/twilio/ @nickiannone @ashleybrener
-/types/twit/ @Volox @lostfictions
+/types/twit/ @Volox @lostfictions @sapphiredev
/types/twitter/ @chitoku-k
/types/twitter-stream-channels/ @adrianbardan
/types/twitter-text/ @rhysd
/types/twix/ @j3ko
/types/type-check/ @hansrwindhoff
+/types/type-detect/v0/ @Bartvds
/types/type-detect/ @Bartvds
/types/type-is/ @BendingBender
/types/type-name/ @armorik83
/types/typeahead/ @igochkov @gjunge
/types/typedarray-pool/ @pawsong
+/types/typeof/ @OpenByteDev
/types/typescript-deferred/ @DirtyHairy
/types/tz-format/ @samverschueren
/types/ua-parser-js/ @superduper @legendecas @MeLlamoPablo
@@ -3703,26 +3876,31 @@
/types/untildify/ @BendingBender
/types/unused-filename/ @BendingBender
/types/unzip/ @coding2012
+/types/unzipper/ @s73obrien
+/types/update-notifier/v1/ @vvakame @nchen63
/types/update-notifier/ @vvakame @nchen63
+/types/upng-js/ @plantain-00
/types/uppercamelcase/ @plantain-00
/types/urbanairship-cordova/ @Justin-Credible
/types/uri-templates/ @Bartvds
-/types/urijs/ @RodneyJT @xt0rted
+/types/urijs/ @RodneyJT @xt0rted @petejohanson
/types/uritemplate/ @teyc @rubensworks
/types/url-assembler/ @wolfgang42
/types/url-join/ @rogierschouten @devrelm
/types/url-metadata/ @mrkmg
/types/url-parse/ @ChernenkoPaul
/types/url-regex/ @unindented
-/types/url-search-params/ @nick121212
+/types/url-search-params/ @nick121212 @nrathi
/types/url-template/ @marcinporebski
+/types/urllib/ @sorayama
+/types/urlparser/ @OpenByteDev
/types/urlrouter/ @soywiz
/types/urlsafe-base64/ @tkrotoff
/types/usage/ @pvomhoff
-/types/usb/ @underscorebrody
+/types/usb/ @underscorebrody @thegecko
/types/user-home/ @mhegazy
/types/useragent/ @geoffreak
-/types/username/ @kayahr
+/types/username/ @kayahr @krivachy
/types/utf8/ @zelein
/types/util-deprecate/ @BendingBender
/types/util.promisify/ @adamvoss
@@ -3752,13 +3930,14 @@
/types/vex-js/ @gdcohan
/types/vexflow/ @rquiring @sebastianhaas @bohoffi
/types/vfile/ @bizen241 @rokt33r
+/types/vfile-location/ @ikatyang
/types/victory/ @asvetliakov @snerks @Havret
/types/video.js/ @vbortone @scleriot @SWBennett06 @IgelCampus
/types/viewability-helper/ @lironzluf
/types/viewerjs/ @lrh3321
/types/viewporter/ @borisyankov
/types/vimeo/ @DazWilkin
-/types/vimeo__player/ @denisyilmaz
+/types/vimeo__player/ @denisyilmaz @timc13
/types/vinyl/v0/ @jedmao
/types/vinyl/ @vvakame @jedmao @thorn0
/types/vinyl-buffer/ @tkQubo
@@ -3767,11 +3946,14 @@
/types/virtual-dom/ @chbrown
/types/virtual-keyboard/ @bsurai
/types/vis/ @MichaelBitard @macleodbroad-wf @adripanico @seveves @kaktus40 @mmaitre314 @supercargo @takato1314
-/types/vision/ @jasonswearingen @AJamesPhillips
+/types/vision/v4/ @jasonswearingen @AJamesPhillips
+/types/vision/ @jasonswearingen @AJamesPhillips @lenovouser
/types/vitalsigns/ @cyrilschumacher
/types/vivus/ @DanielRosenwasser @lekhmanrus
/types/vkbeautify/ @sch3lp
+/types/vnu-jar/ @Umoxfo
/types/voca/ @pine
+/types/void-elements/ @ajafff
/types/voronoi-diagram/ @michaelneu
/types/vortex-web-client/ @Pro
/types/voximplant-websdk/ @aylarov
@@ -3794,7 +3976,7 @@
/types/watchpack/ @e-cloud
/types/waterline/ @arvitaly
/types/watson-developer-cloud/ @waldo000000 @Naktibalda
-/types/waypoints/ @dominikbulaj @Koloto
+/types/waypoints/ @dominikbulaj @Koloto @evil-shrike
/types/wcwidth/ @rokt33r
/types/weak/ @int0h
/types/weapp-api/ @vargeek
@@ -3809,9 +3991,8 @@
/types/webfontloader/ @doskallemaskin
/types/webgl-ext/ @zenmumbler
/types/webgl2/ @nkemnitz
-/types/webix/ @mkozhukh
/types/webmidi/ @lostfictions
-/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4
+/types/webpack/ @tkqubo @bumbleblym @bcherny @tommytroylin @mohsen1 @jcreamer898 @ahmed-taj @alan-agius4 @elliottsj @jason0x43
/types/webpack-bundle-analyzer/ @kryops
/types/webpack-chain/ @eirikurn @psachs21
/types/webpack-chunk-hash/ @mtraynham
@@ -3832,7 +4013,7 @@
/types/webpack-stream/ @iclanton @bumbleblym
/types/webpack-validator/ @deevus
/types/webrtc/ @nakakura
-/types/websocket/ @loyd @flynetworks @zhaoleimxd
+/types/websocket/ @loyd @flynetworks @zhaoleimxd @jdneo
/types/webspeechapi/ @saschanaz
/types/websql/ @TeamworkGuy2
/types/webtorrent/ @niieani @tlaziuk
@@ -3869,7 +4050,8 @@
/types/wrench/ @soywiz
/types/write-file-atomic/ @BendingBender
/types/write-json-file/ @DenisCarriere
-/types/ws/ @loyd @elithrar @mlamp
+/types/write-pkg/ @azasypkin
+/types/ws/ @loyd @elithrar @mlamp @TitaneBoy
/types/wtfnode/ @dex4er
/types/wu/ @phiresky
/types/wx-js-sdk-dt/ @agasbzj
@@ -3878,13 +4060,12 @@
/types/x-ray-crawler/ @mtraynham
/types/xdate/ @yamada28go
/types/xdg-basedir/ @tlaziuk
-/types/xhr-mock/ @joscha
/types/xml/ @YuJianrong
/types/xml-parser/ @mhfrantz
/types/xml2js/ @michelsalib @jasonrm @ccurrens @edwardhinkle @BehindTheMath
/types/xml2json/ @dolanmiu
/types/xmlbuilder/ @wallymathieu
-/types/xmldoc/ @Xstoudi @ajsheehan
+/types/xmldoc/ @Xstoudi @ajsheehan @notlaforge
/types/xmldom/ @tkqubo
/types/xmlpoke/ @garthk
/types/xmltojson/ @traviscrowe
@@ -3895,18 +4076,19 @@
/types/xrm/ @6ix4our @mattngan @markusmauch @daryllabar @clownwilleatme @scottdurow
/types/xsd-schema-validator/ @Goldsmith42
/types/xsockets/ @pushplay
-/types/xterm/ @blink1073 @LucianBuzzo
/types/xxhashjs/ @mDibyo
/types/yallist/ @BendingBender
/types/yandex-maps/ @Delagen
/types/yandex-money-sdk/ @chrootsu
+/types/yar/ @SimonSchick
/types/yargs/v8/ @poelstra @mizunashi-mana @pushplay @jeffkenney
+/types/yargs/v10/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
/types/yargs/ @poelstra @mizunashi-mana @pushplay @jeffkenney @JimiC
+/types/yauzl/ @ffflorian
/types/yayson/ @Codesleuth
/types/ydn-db/ @yathit @gabrielmaldi
/types/yeoman-generator/ @armorik83 @janslow @ikatyang
/types/yeoman-test/ @ikatyang
-/types/yfiles/ @yGuy
/types/yog-bigpipe/ @ssddi456
/types/yog-log/ @ssddi456
/types/yog2-kernel/ @ssddi456
@@ -3914,7 +4096,7 @@
/types/youtube/ @DazWilkin @JoshuaKGoldberg @eliotfallon213
/types/youtube-dl/ @bsurai
/types/yui/ @giabao
-/types/yup/ @dhardtke @vtserman
+/types/yup/ @dhardtke @vtserman @MoretonBayRC
/types/z-schema/ @pgonzal
/types/zapier-platform-core/ @bradleyayers
/types/zen-observable/ @aicest
@@ -3923,9 +4105,13 @@
/types/zepto/ @jbaldwin
/types/zeroclipboard/v1/ @ejsmith @niemyjski @balassy @leonyu
/types/zeroclipboard/ @ejsmith @niemyjski @balassy @leonyu
-/types/zeromq/ @davemckeown @erikma
+/types/zeromq/ @davemckeown @erikma @TitaneBoy
/types/zip.js/ @lgrignon
/types/zipcodes/ @headdetect
+/types/zipkin-context-cls/ @plantain-00
+/types/zipkin-instrumentation-express/ @plantain-00
+/types/zipkin-instrumentation-fetch/ @plantain-00
+/types/zipkin-transport-http/ @plantain-00
/types/zmq/ @davemckeown
/types/zookeeper/ @xialeistudio
/types/zui/ @yuanxu
diff --git a/README.es.md b/README.es.md
new file mode 100644
index 0000000000..ce94bb0298
--- /dev/null
+++ b/README.es.md
@@ -0,0 +1,335 @@
+# DefinitelyTyped [](https://travis-ci.org/DefinitelyTyped/DefinitelyTyped)
+
+[](https://gitter.im/borisyankov/DefinitelyTyped?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
+> El repositorio de definiciones de TypeScript de alta calidad.
+
+Vea también el sitio web [definitelytyped.org](http://definitelytyped.org), aunque la información en este README está más actualizada.
+
+
+## ¿Qué son los `declaration files`?
+
+Vea el [Manual de TypeScript](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html).
+
+
+## ¿Cómo los obtengo?
+
+### npm
+
+Este es el método preferido. Solo está disponible para usuarios TypeScript 2.0+. Por ejemplo:
+
+```sh
+npm install --save-dev @types/node
+```
+
+Los types deberían ser incluidos automaticamente por el compilador.
+Vea más en el [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html).
+
+Para un paquete NPM "foo", Estos `typings` estarán en "@types/foo".
+Si no puedes encontrar tu paquete, búscalo en [TypeSearch](https://microsoft.github.io/TypeSearch/).
+
+Si aún no puedes encontrarlo, comprueba si el paquete ya [incluye](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) los typings.
+Esto es provisto usualmente en el campo `"types"` o `"typings"` en el `package.json`,
+o solo busca por cualquier archivo ".d.ts" en el paquete e incluyelo manualmente con un `/// `.
+
+
+### Otros métodos
+
+Estos pueden ser utilizados por TypeScript 1.0.
+
+* [Typings](https://github.com/typings/typings)
+* ~~[NuGet](http://nuget.org/packages?q=DefinitelyTyped)~~ (use las alternativas preferidas, la publicación DT type de nuget ha sido desactivada)
+* Descarguelo manualmente desde la `master` branch de este repositorio
+
+Tal vez debas añadir manualmente las [referencias](http://www.typescriptlang.org/docs/handbook/triple-slash-directives.html).
+
+
+## ¿Cómo puedo contribuir?
+
+¡DefinitelyTyped solo trabaja gracias a contribuidores como tú!
+
+### Prueba
+
+Antes de compartir tu mejora con el mundo, úselo usted mismo.
+
+#### Prueba editando un paquete existente
+
+Para agregar nuevas funciones puedes usar el [module augmentation](http://www.typescriptlang.org/docs/handbook/declaration-merging.html).
+También puedes editar directamente los types en `node_modules/@types/foo/index.d.ts`, o copiarlos de ahí y seguir los pasos explicados a continuación.
+
+
+#### Prueba un nuevo paquete
+
+Añade a tu `tsconfig.json`:
+
+```json
+"baseUrl": "types",
+"typeRoots": ["types"],
+```
+
+(También puedes usar `src/types`.)
+Crea un `types/foo/index.d.ts` que contenga declaraciones del módulo "foo".
+Ahora deberías poder importar desde `"foo"` a tu código y te enviara a un nuevo tipo de definición.
+Entonces compila *y* ejecuta el código para asegurarte que el tipo de definición en realidad corresponde a lo que suceda en el momento de la ejecución.
+Una vez que hayas probado tus definiciones con el código real, haz un [PR](#make-a-pull-request)
+luego sigue las instrucciones para [editar un paquete existente](#edit-an-existing-package) o
+[crear un nuevo paquete](#create-a-new-package).
+
+
+### Haz un pull request
+
+Una vez que hayas probado tu paquete, podrás compartirlo en DefinitelyTyped.
+
+Primero, haz un [fork](https://guides.github.com/activities/forking/) en este repositorio, instala [node](https://nodejs.org/), y luego ejecuta la `npm install`.
+
+
+#### Editar un paquete existente
+
+* `cd types/my-package-to-edit`
+* Haz cambios. Recuerda editar las pruebas.
+* También puede que quieras añadirte la sección "Definitions by" en el encabezado del paquete.
+ - Esto hará que seas notificado (a través de tu nombre de usuario en GitHub) cada vez que alguien haga un pull request o issue sobre el paquete.
+ - Haz esto añadiendo tu nombre al final de la línea, así como en `// Definitions by: Alice , Bob `.
+ - O si hay más personas, puede ser multiline
+ ```typescript
+ // Definitions by: Alice
+ // Bob
+ // Steve
+ // John
+ ```
+* Si hay un `tslint.json`, ejecuta `npm run lint package-name`. De lo contrario, ejecuta `tsc` en el directorio del paquete.
+
+Cuando hagas un PR para editar un paquete existente, `dt-bot` deberá @-mencionar a los autores previos.
+Si no lo hace, puedes hacerlo en el comentario asociado con el PR.
+
+
+#### Crear un nuevo paquete
+
+Si eres el autor de la librería, o puedes hacer un pull request a la biblioteca, [bundle types](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) en vez de publicarlo en DefinitelyTyped.
+
+Si estás agregando typings para un paquete NPM, crea un directorio con el mismo nombre.
+Si el paquete al que le estás agregando typings no es para NPM, asegurate de que el nombre que escojas no genere problemas con el nombre del paquete en NPM.
+(Puedes usar `npm info foo` para verificar la existencia del paquete `foo`.)
+
+Tu paquete debería tener esta estructura:
+
+| Archivo | Propósito |
+| --- | --- |
+| index.d.ts | Este contiene los typings del paquete. |
+| foo-tests.ts | Este contiene una muestra del código con el que se realiza la prueba de escritura. Este código *no* es ejecutable, pero sí es type-checked. |
+| tsconfig.json | Este permite ejecutar `tsc` dentro del paquete. |
+| tslint.json | Permite linting. |
+
+Generalas ejecutando `npm install -g dts-gen` y `dts-gen --dt --name my-package-name --template module`.
+Ve todas las opciones en [dts-gen](https://github.com/Microsoft/dts-gen).
+
+También puedes configurar el `tsconfig.json` para añadir nuevos archivos, para agregar un `"target": "es6"` (necesitado por las funciones asíncronas), para agregar a la `"lib"`, o para agregar la opción de compilación `"jsx"`.
+
+Los miembros de DefinitelyTyped frecuentemente monitorean nuevos PRs, pero ten en mente que la cantidad de PRs podrian ralentizar el proceso.
+
+Para un buen paquete de ejemplo, vea [base64-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/base64-js).
+
+
+#### Errores comunes
+
+* Primero, sigue el consejo del [manual](http://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html).
+* Formatear: Ya sea utilizar todo en tabs, o siempre utiliza 4 espacios.
+* `function sum(nums: number[]): number`: Utiliza `ReadonlyArray` si una funcion no escribe a sus parámetros.
+* `interface Foo { new(): Foo; }`:
+ Este define el tipo de objeto que esten nuevos. Probablemente quieras `declare class Foo { constructor(); }`.
+* `const Class: { new(): IClass; }`:
+ Prefiere usar una declaración de clase `class Class { constructor(); }` En vez de una nueva constante.
+* `getMeAT(): T`:
+ Si un tipo de parámetro no aparece en los tipos de ningún parámetro, no tienes una función genérica, solo tienes un afirmación del tipo disfrazado.
+ Prefiera utilizar una afirmación de tipo real, p.ej. `getMeAT() as number`.
+ Un ejemplo donde un tipo de parámetro es aceptable: `function id(value: T): T;`.
+ Un ejemplo donde no es aceptable: `function parseJson(json: string): T;`.
+ Una excepción: `new Map()` está bien.
+* Utilizando los tipos `Function` y `Object` casi nunca es una buena idea. En 99% de los casos es posible especificar un tipo más especifico. Los ejemplos son `(x: number) => number` para [funciones](http://www.typescriptlang.org/docs/handbook/functions.html#function-types) y `{ x: number, y: number }` para objetos. Si no hay certeza en lo absoluto del tipo, [`any`](http://www.typescriptlang.org/docs/handbook/basic-types.html#any) es la opción correcta, no `Object`. Si el único hecho conocido sobre el tipo es que es un objecto, usa el tipo [`object`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#object-type), no `Object` o `{ [key: string]: any }`.
+* `var foo: string | any`:
+ Cuando es usado `any` en un tipo de unión, el tipo resultante todavía es `any`. Así que mientras la porción `string` de este tipo de anotación puede _verse_ útil, de hecho, no ofrece ningún typechecking adicional más que un simple `any`.
+ Dependiendo de la intención, una alternativa aceptable puede ser `any`, `string`, o `string | object`.
+
+
+#### Remover un paquete
+
+Cuando un paquete [bundles](http://www.typescriptlang.org/docs/handbook/declaration-files/publishing.html) sus propios tipos, estos tipos deberán ser removidos de DefinitelyTyped para evitar que generen confusión.
+
+Se puede remover ejecutando `npm run not-needed -- typingsPackageName asOfVersion sourceRepoURL [libraryName]`.
+- `typingsPackageName`: Este es el nombre del directorio que tienes que eliminar.
+- `asOfVersion`: Un stub será publicado a `@types/foo` con esta versión. Debería ser más grande que cualquier versión publicada actualmente.
+- `sourceRepoURL`: Esto debería señalar el repositorio que contiene los typings.
+- `libraryName`: Un nombre descriptivo de la librería, p.ej. "Angular 2" en vez de "angular2". (Si es omitido, será idéntico a "typingsPackageName".)
+
+Cualquier otro paquete en DefinitelyTyped que referencie el paquete eliminado deberá ser actualizado para referenciar los tipos bundled. para hacer esto, añade `package.json` con `"dependencies": { "foo": "x.y.z" }`.
+
+Si un paquete nunca estuvo en DefinitelyTyped, no será necesario añadirlo a `notNeededPackages.json`.
+
+
+#### Lint
+
+Para realizar el lint a un paquete, solo añade `tslint.json` al paquete que contiene `{ "extends": "dtslint/dt.json" }`. Todos los paquetes nuevos deberán pasar por el proceso de linted.
+Si el `tslint.json` deshabilita algunas reglas esto se debe a que aún no se ha acomodado. Por ejemplo:
+
+```js
+{
+ "extends": "dtslint/dt.json",
+ "rules": {
+ // This package uses the Function type, and it will take effort to fix.
+ "ban-types": false
+ }
+}
+```
+
+(Para indicar que la regla lint realmente no es utilizada, usa `// tslint:disable rule-name` o mejor, `//tslint:disable-next-line rule-name`.)
+
+Para afirmar que una expresión es de un tipo dado, utilice `$ExpectType`. Para afirmar que una expresión causa un error de compilación, utilice `$ExpectError`.
+
+```js
+// $ExpectType void
+f(1);
+
+// $ExpectError
+f("one");
+```
+
+Para más detalles, vea el [dtslint](https://github.com/Microsoft/dtslint#write-tests) readme.
+
+Realiza una prueba ejecutando `npm run lint package-name` donde `package-name` es el nombre de tu paquete.
+Este script utiliza [dtslint](https://github.com/Microsoft/dtslint).
+
+
+## FAQ
+
+#### ¿Cuál es exactamente la relación entre este repositorio y los paquetes de `@types` en NPM?
+
+La `master` branch es automaticamente publicada en el alcance de los `@types` en NPM gracias a los [types-publisher](https://github.com/Microsoft/types-publisher).
+
+#### He enviado un pull request. ¿Cuánto tardará en ser merged?
+
+Esto depende, pero la mayoría de los pull requests serán merged en alrededor de una semana. PRs que hayan sido aprovados por un autor listado en el encabezado de las definiciones usualmente son merged más rápidamente; PRs para nuevas definiciones tomarán más tiempo ya que requieren más revisiones de los mantenedores. Cada PR es revisado por un miembro de TypeScript o DefinitelyTyped antes de ser merged, por favor se paciente debido a que factores humanos pueden causar retrasos. Revisa el [PR Burndown Board](https://github.com/DefinitelyTyped/DefinitelyTyped/projects/3?card_filter_query=is%3Aopen) para ver el progreso mientras los mantenedores trabajan on los PRs abiertos.
+
+#### Mi PR ha sido merged; ¿cuándo será actualizado el paquete de `@types` NPM?
+
+Los paquetes NPM deberán ser actualizados en unas cuantas horas. Si ha pasado más de 24 horas, menciona a @RyanCavanaugh y/o a @andy-ms en el PR para investigar.
+
+#### Estoy escribiendo una definición que depende de otra definición. Debería utilizar `` o una import?
+
+Si el modulo al cual te estás refiriendo es un módulo externo (utiliza `export`), utilice una import.
+Si el módulo al cual te refieres es un módulo ambiente (utiliza `declare module`, o simplemente declara las globales), utilice ``.
+
+#### He notado que algunos paquetes aquí tienen `package.json`.
+
+Normalmente no lo necesitaras. Cuando publicas un paquete normalmente nosotros automáticamente crearemos un `package.json` para eso.
+Un `package.json` puede ser incluido por el bien de especificar dependencias. Aquí tienen un [ejemplo](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pikaday/package.json).
+No aceptamos otros campos, tales como `"description"`, para que sean definidos manualmente.
+Además, si necesitas referencia a una versión anterior de typings, debes hacerlo añadiendo `"dependencies": { "@types/foo": "x.y.z" }` al package.json.
+
+#### Algunos paquetes no tienen `tslint.json`, y algunos `tsconfig.json` no contienen `"noImplicitAny": true`, `"noImplicitThis": true`, o `"strictNullChecks": true`.
+
+Entonces están equivocados. Puedes ayudar enviando un pull request para arreglarlos.
+
+#### Puedo pedir una definition?
+
+Aquí están las [definiciones solicitadas actualmente](https://github.com/DefinitelyTyped/DefinitelyTyped/labels/Definition%3ARequest).
+
+#### ¿Qué pasa con las type definitions para el DOM?
+
+Si las types son parte de los estándares web, estas deberán ser contribuidas a [TSJS-lib-generator](https://github.com/Microsoft/TSJS-lib-generator) para que se hagan parte de la librería predeterminada `lib.dom.d.ts`.
+
+#### Un paquete utiliza `export =`, pero prefiero utilizar las import predeterminadas. ¿Puedo cambiar `export =` por `export default`?
+
+Si la import predeterminada trabaja en tu ambiente, considera hacer un cambio en la opción de compilación [`--allowSyntheticDefaultImports`](http://www.typescriptlang.org/docs/handbook/compiler-options.html) opción compilar.
+No cambies la type definition si es preciso.
+Para un paquete NPM, `export =` es exacto si `node -p 'require("foo")'` es la export, y `export default` es exacto si `node -p 'require("foo").default'` es el export.
+
+#### Quiero usar las características de TypeScript 2.1 o superior.
+
+Entonces deberás añadir un comentario a la última línea de la definición en el encabezado (despues de `// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped`): `// TypeScript Version: 2.1`.
+
+#### Quiero añadir un DOM API que no está presente en TypeScript por defecto.
+
+Esto puede pertenecer a [TSJS-Lib-Generator](https://github.com/Microsoft/TSJS-lib-generator#readme). Vea las guías allí.
+Si el estándar sigue siendo un borrador, este pertenece aquí.
+Utilice un nombre que empiece con `dom-` e incluya un link al estándar como el "Project" con el link en el encabezado.
+Cuando ya no sea un borrador, lo podremos eliminar desde DefinitelyType y hacer obsoleto el paquete `@types` asociado.
+
+#### Quiero actualizar un paquete a una nueva versión principal
+
+Si planeas continuar actualizando la versión anterior del paquete, puedes crear una subcarpeta con la versión actual p.ej. `v2`, y copia los archivos existentes. Si es así, necesitarás:
+
+1. Actualiza las rutas relativas en `tsconfig.json` al igual que `tslint.json`.
+2. Añadir reglas de mapeo de rutas para asegurart de que la prueba se está ejecutando contra la versión prevista.
+
+Por ejemplo [history v2 `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/history/v2/tsconfig.json) se ve así:
+
+```json
+{
+ "compilerOptions": {
+ "baseUrl": "../../",
+ "typeRoots": ["../../"],
+ "paths": {
+ "history": [ "history/v2" ]
+ },
+ },
+ "files": [
+ "index.d.ts",
+ "history-tests.ts"
+ ]
+}
+```
+
+Si hay otros paquetes en DefinitelyTyped que son incompatibles con la nueva versión, necesitaras mapear las rutas a la versión anterior. También deberá hacer esto para los paquetes que dependen de paquetes que dependen de una version anterior.
+
+Por ejemplo, `react-router` depende de `history@2`, así que [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/tsconfig.json) tiene una ruta mapeada a "history": `[ "history/v2" ]`;
+transitivo así mismo, `react-router-bootstrap` (que depende de `react-router`) también añade una ruta mapeada en su [tsconfig.json](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router-bootstrap/tsconfig.json).
+
+Además, `/// ` no trabajara con rutas mapeadas, así que las dependencias deberán utilizar `import`.
+
+#### ¿Cómo escribo definitions para paquetes que pueden ser usados globalmente y como un módulo?
+
+El manual de TypeScript contiene excelente [información general para escribir definiciones](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html), ademas [este archivo de definiciones de ejemplo](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html) el cual muestra como crear una definición utilizando la sintaxis de módulo en ES6, asi como también especificando objetos que son disponibles en el alcance global. Esta técnica es demostrada practicamente en la [definición para big.js](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/big.js/index.d.ts), el cual es una librería que puede ser cargada globalmente a travéz de una etiqueta script en una página web, o importada via require o imports estilo ES6.
+
+Para probar como puede ser usada tu definición cuando se refieren globalmente o como un módulo importado, crea una carpeta `test`, y coloca dos archivos de prueba en él. nombra uno `YourLibraryName-global.test.ts` y el otro `YourLibraryName-module.test.ts`. El archivo de prueba _global_ debe ejercer la definición de acuerdo como va a ser usado en un script cargado en una página web donde la librería estará disponible en el alcance global - en este escenario no debes de especificar la sentencia de import. El archivo _módulo_ de prueba debe de ejercer la definición de acuerdo a como va a ser utilizado cuando sea importado (incluyendo las sentencias `import`). Si especificas un propiedad `files` en tu archivo tsconfig.json, asegurate de incluir ambos archivos de prueba. Un [ejemplo práctico de esto](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/big.js/test) es también disponible en la definición de big.js.
+
+Por favor tenga en cuenta que no es necesario para ejercer plenamente la definición en cada archivo de prueba - Es suficiente con probar solo los elementos globalmente accesibles en la prueba de archivos globales y ejercer la definición en el módulo del archivo de prueba, o viceversa.
+
+#### ¿Qué pasa con paquetes scoped?
+
+Types para un paquete scoped `@foo/bar` deberán ir en `types/foo__bar`. tenga en cuenta el doble guion bajo.
+
+Cuando `dts-gen` es utilizado como scaffold en un paquete scoped, las propiedades `paths` deberán ser adaptadas manualmente en el paquete generado
+`tsconfig.json` para referenciar correctamente el paquete scoped:
+
+```json
+{
+ "paths":{
+ "@foo/bar": ["foo__bar"]
+ }
+}
+```
+
+#### El historial de archivos en GitHub parece incompleto.
+
+GitHub no le hace [support](http://stackoverflow.com/questions/5646174/how-to-make-github-follow-directory-history-after-renames) historial de archivos para archivos renombrados. Utilice [`git log --follow`](https://www.git-scm.com/docs/git-log) en su lugar.
+
+#### Debería añadir un namespace que no exporte un módulo que utilice que utilice imports estilo ES6?
+
+Algunos paquetes, como [chai-http](https://github.com/chaijs/chai-http), exportan una función.
+
+importar este módulo con un ES6 style import de forma `import * as foo from "foo";` conduce al error:
+
+> error ts2497: El módulo 'foo' se resuelve en una entidad que no es un módulo y no se puede importar mediante esta construcción
+
+Este error puede ser suprimido al unir la declaración de una función con un namespace vacío del mismo nombre pero esta práctica no es recomendable.
+Esto es un citado común [Respuestas de Stack Overflow](https://stackoverflow.com/questions/39415661/what-does-resolves-to-a-non-module-entity-and-cannot-be-imported-using-this) con respecto a este asunto.
+
+Es más apropiado importar este módulo utilizando la sintaxis `import foo = require("foo");`, o utilizando una importación predeterminada como `import foo from "foo";` si usas la bandera `--allowSyntheticDefaultImports` si la ejecución de tu módulo soporta un esquema de interoperación para módulos no ECMAScript como tal.
+
+## Licencia
+
+Este proyecto es licenciado bajo la licencia MIT.
+
+Los derechos de autor de cada archivo de definición son respectivos de cada contribuidor listado al comienzo de cada archivo de definición.
+
+[](https://github.com/igrigorik/ga-beacon)
diff --git a/README.md b/README.md
index 854cae7e40..cc59284394 100644
--- a/README.md
+++ b/README.md
@@ -6,12 +6,12 @@
Also see the [definitelytyped.org](http://definitelytyped.org) website, although information in this README is more up-to-date.
+*[You can also read this README in Spanish!](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/README.es.md)*
## What are declaration files?
See the [TypeScript handbook](http://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html).
-
## How do I get them?
### npm
@@ -256,7 +256,7 @@ When it graduates draft mode, we may remove it from DefinitelyTyped and deprecat
#### I want to update a package to a new major version
-Before making your change, please create a new subfolder with the current version e.g. `v2`, and copy existing files to it. You will need to:
+If you intend to continue updating the older version of the package, you may create a new subfolder with the current version e.g. `v2`, and copy existing files to it. If so, you will need to:
1. Update the relative paths in `tsconfig.json` as well as `tslint.json`.
2. Add path mapping rules to ensure that tests are running against the intended version.
@@ -279,7 +279,8 @@ For example [history v2 `tsconfig.json`](https://github.com/DefinitelyTyped/Defi
}
```
-Please note that unless upgrading something backwards-compatible like `node`, all packages depending of the updated package need a path mapping to it, as well as packages depending on *those*.
+If there are other packages on DefinitelyTyped that are incompatible with the new version, you will need to add path mappings to the old version. You will also need to do this for packages depending on packages depending on the old version.
+
For example, `react-router` depends on `history@2`, so [react-router `tsconfig.json`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router/tsconfig.json) has a path mapping to `"history": [ "history/v2" ]`;
transitively `react-router-bootstrap` (which depends on `react-router`) also adds a path mapping in its [tsconfig.json](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react-router-bootstrap/tsconfig.json).
diff --git a/notNeededPackages.json b/notNeededPackages.json
index 8f3270392f..a3423d479c 100644
--- a/notNeededPackages.json
+++ b/notNeededPackages.json
@@ -6,6 +6,12 @@
"sourceRepoURL": "https://github.com/betterwaysystems/packer",
"asOfVersion": "1.1.3"
},
+ {
+ "libraryName": "Ably Realtime and Rest client library",
+ "typingsPackageName": "ably",
+ "sourceRepoURL": "https://www.ably.io/",
+ "asOfVersion": "1.0.0"
+ },
{
"libraryName": "ag-grid",
"typingsPackageName": "ag-grid",
@@ -18,6 +24,12 @@
"sourceRepoURL": "https://github.com/epoberezkin/ajv",
"asOfVersion": "1.0.0"
},
+ {
+ "libraryName": "angular-touchspin",
+ "typingsPackageName": "angular-touchspin",
+ "sourceRepoURL": "https://github.com/nkovacic/angular-touchspin",
+ "asOfVersion": "1.8.2"
+ },
{
"libraryName": "angular-ui-router-default",
"typingsPackageName": "angular-ui-router-default",
@@ -78,6 +90,12 @@
"sourceRepoURL": "https://github.com/AlexTeixeira/Askmethat-Rating",
"asOfVersion": "0.4.0"
},
+ {
+ "libraryName": "assertion-error",
+ "typingsPackageName": "assertion-error",
+ "sourceRepoURL": "https://github.com/chaijs/assertion-error",
+ "asOfVersion": "1.1.0"
+ },
{
"libraryName": "asyncblock",
"typingsPackageName": "asyncblock",
@@ -546,6 +564,12 @@
"sourceRepoURL": "http://arshaw.com/fullcalendar/",
"asOfVersion": "3.8.0"
},
+ {
+ "libraryName": "fuse",
+ "typingsPackageName": "fuse",
+ "sourceRepoURL": "https://github.com/krisk/Fuse",
+ "asOfVersion": "2.6.0"
+ },
{
"libraryName": "gaea-model",
"typingsPackageName": "gaea-model",
@@ -582,6 +606,12 @@
"sourceRepoURL": "https://github.com/panuhorsmalahti/gulp-tslint",
"asOfVersion": "4.2.0"
},
+ {
+ "libraryName": "gulp-typedoc",
+ "typingsPackageName": "gulp-typedoc",
+ "sourceRepoURL": "https://github.com/rogierschouten/gulp-typedoc",
+ "asOfVersion": "2.2.0"
+ },
{
"libraryName": "gulp-typescript",
"typingsPackageName": "gulp-typescript",
@@ -798,6 +828,12 @@
"sourceRepoURL": "https://linqjs.codeplex.com/",
"asOfVersion": "2.2.33"
},
+ {
+ "libraryName": "Linq4JS",
+ "typingsPackageName": "linq4js",
+ "sourceRepoURL": "https://github.com/morrisjdev/Linq4JS",
+ "asOfVersion": "2.1.8"
+ },
{
"libraryName": "LinqSharp",
"typingsPackageName": "linqsharp",
@@ -810,6 +846,12 @@
"sourceRepoURL": "https://github.com/localForage/localForage",
"asOfVersion": "0.0.34"
},
+ {
+ "libraryName": "localforage-cordovasqlitedriver",
+ "typingsPackageName": "localforage-cordovasqlitedriver",
+ "sourceRepoURL": "https://github.com/thgreasi/localForage-cordovaSQLiteDriver",
+ "asOfVersion": "1.5.0"
+ },
{
"libraryName": "lodash-decorators",
"typingsPackageName": "lodash-decorators",
@@ -912,6 +954,12 @@
"sourceRepoURL": "https://github.com/theoephraim/node-pg-migrate#readme",
"asOfVersion": "2.15.0"
},
+ {
+ "libraryName": "node-waves",
+ "typingsPackageName": "node-waves",
+ "sourceRepoURL": "http://fian.my.id/Waves",
+ "asOfVersion": "0.7.6"
+ },
{
"libraryName": "Normalizr",
"typingsPackageName": "normalizr",
@@ -1194,6 +1242,12 @@
"sourceRepoURL": "https://github.com/EnoF/rest-io",
"asOfVersion": "4.1.0"
},
+ {
+ "libraryName": "rollup",
+ "typingsPackageName": "rollup",
+ "sourceRepoURL": "https://github.com/rollup/rollup",
+ "asOfVersion": "0.54.0"
+ },
{
"libraryName": "route-recognizer",
"typingsPackageName": "route-recognizer",
@@ -1482,6 +1536,12 @@
"sourceRepoURL": "https://webgme.org",
"asOfVersion": "2.11.0"
},
+ {
+ "libraryName": "Webix UI",
+ "typingsPackageName": "webix",
+ "sourceRepoURL": "http://webix.com",
+ "asOfVersion": "5.1.1"
+ },
{
"libraryName": "wolfy87-eventemitter",
"typingsPackageName": "wolfy87-eventemitter",
@@ -1512,6 +1572,12 @@
"sourceRepoURL": "https://github.com/PeculiarVentures/xadesjs",
"asOfVersion": "2.0.2"
},
+ {
+ "libraryName": "xhr-mock",
+ "typingsPackageName": "xhr-mock",
+ "sourceRepoURL": "https://github.com/jameslnewell/xhr-mock#readme",
+ "asOfVersion": "2.0.0"
+ },
{
"libraryName": "xlsx",
"typingsPackageName": "xlsx",
@@ -1530,6 +1596,18 @@
"sourceRepoURL": "github.com/node-xmpp/node-xmpp/",
"asOfVersion": "1.2.0"
},
+ {
+ "libraryName": "xterm.js",
+ "typingsPackageName": "xterm",
+ "sourceRepoURL": "https://github.com/sourcelair/xterm.js/",
+ "asOfVersion": "3.0.0"
+ },
+ {
+ "libraryName": "yFiles for HTML",
+ "typingsPackageName": "yfiles",
+ "sourceRepoURL": "none",
+ "asOfVersion": "2.1.0"
+ },
{
"libraryName": "zetapush-js",
"typingsPackageName": "zetapush-js",
diff --git a/scripts/generate-tsconfigs.ts b/scripts/generate-tsconfigs.ts
index 0115067e34..e1e1998950 100644
--- a/scripts/generate-tsconfigs.ts
+++ b/scripts/generate-tsconfigs.ts
@@ -5,7 +5,7 @@
import * as fs from 'fs';
import * as path from 'path';
-const home = path.join(__dirname, '..');
+const home = path.join(__dirname, "..", "types");
for (const dirName of fs.readdirSync(home)) {
if (dirName.startsWith(".") || dirName === "node_modules" || dirName === "scripts") {
diff --git a/types/ably/ably-tests.ts b/types/ably/ably-tests.ts
deleted file mode 100644
index bc50d03ce6..0000000000
--- a/types/ably/ably-tests.ts
+++ /dev/null
@@ -1,253 +0,0 @@
-import * as Ably from 'ably';
-
-declare const console: { log(message: any): void };
-
-const ApiKey = 'appId.keyId:secret';
-const client = new Ably.Realtime(ApiKey);
-const restClient = new Ably.Rest(ApiKey);
-
-// Connection
-// Successful connection:
-
-client.connection.on('connected', () => {
- // successful connection
-});
-
-// Failed connection:
-
-client.connection.on('failed', () => {
- // failed connection
-});
-
-// Subscribing to a channel
-
-const channel = client.channels.get('test');
-channel.subscribe(message => {
- message.name; // 'greeting'
- message.data; // 'Hello World!'
-});
-
-// Only certain events:
-
-channel.subscribe('myEvent', message => {
- message.name; // 'myEvent'
- message.data; // 'myData'
-});
-
-// Publishing to a channel
-
-// Publish a single message with name and data
-channel.publish('greeting', 'Hello World!');
-
-// Optionally, you can use a callback to be notified of success or failure
-channel.publish('greeting', 'Hello World!', err => {
- if (err) {
- console.log('publish failed with error ' + err);
- } else {
- console.log('publish succeeded');
- }
-});
-
-// Publish several messages at once
-channel.publish([{name: 'greeting', data: 'Hello World!'}], () => { });
-
-// Querying the History
-
-channel.history((err, messagesPage) => {
- messagesPage.items; // array of Message
- messagesPage.items[0].data; // payload for first message
- messagesPage.items.length; // number of messages in the current page of history
- messagesPage.hasNext(); // true if there are further pages
- messagesPage.isLast(); // true if this page is the last page
- messagesPage.next(nextPage => { nextPage; }); // retrieves the next page as PaginatedResult
-});
-
-// Can optionally take an options param, see https://www.ably.io/documentation/rest-api/#message-history
-channel.history({ start: Date.now() - 10000, end: Date.now(), limit: 100, direction: 'forwards'}, (err, messagesPage) => {
- console.log(messagesPage.items.length);
-});
-
-// Presence on a channel
-// Getting presence:
-
-channel.presence.get(presenceSet => {
- presenceSet; // array of PresenceMessages
-});
-
-// Note that presence#get on a realtime channel does not return a PaginatedResult, as the library maintains a local copy of the presence set.
-
-// Entering (and leaving) the presence set:
-
-channel.presence.enter('my status', err => {
- // now I am entered
-});
-
-channel.presence.update('new status', err => {
- // my presence data is updated
-});
-
-channel.presence.leave(null, err => {
- // I've left the presence set
-});
-
-channel.presence.enterClient('myClientId', 'status', err => {
-});
-
-// and similiarly, updateClient and leaveClient
-// Querying the Presence History
-
-channel.presence.history((err, messagesPage) => { // PaginatedResult
- messagesPage.items; // array of PresenceMessage
- messagesPage.items[0].data; // payload for first message
- messagesPage.items.length; // number of messages in the current page of history
- messagesPage.hasNext(); // true if there are further pages
- messagesPage.isLast(); // true if this page is the last page
- messagesPage.next(nextPage => { }); // retrieves the next page as PaginatedResult
-});
-
-// Can optionally take an options param, see https://www.ably.io/documentation/rest-api/#message-history
-channel.history({ start: Date.now() - 10000, end: Date.now(), limit: 100, direction: 'forwards' }, (err, messagesPage) => {});
-
-// Symmetrical end-to-end encrypted payloads on a channel
-
-// When a 128 bit or 256 bit key is provided to the library, the data attributes of all messages are encrypted and decrypted automatically using that key.
-// The secret key is never transmitted to Ably. See https://www.ably.io/documentation/realtime/encryption
-
-// Generate a random 256-bit key for demonstration purposes (in
-// practice you need to create one and distribute it to clients yourselves)
-Ably.Realtime.Crypto.generateRandomKey((err, key) => {
- const channel = client.channels.get('channelName', { cipher: { key } });
-
- channel.subscribe(message => {
- message.name; // 'name is not encrypted'
- message.data; // 'sensitive data is encrypted'
- });
-
- channel.publish('name is not encrypted', 'sensitive data is encrypted');
-});
-
-// You can also change the key on an existing channel using setOptions (which takes a callback which is called after the new encryption settings have taken effect):
-
-channel.setOptions({cipher: {key: ''}}, () => {
- // New encryption settings are in effect
-});
-
-// Using the REST API
-
-const restChannel = restClient.channels.get('test');
-
-// Publishing to a channel
-
-// Publish a single message with name and data
-restChannel.publish('greeting', 'Hello World!');
-
-// Optionally, you can use a callback to be notified of success or failure
-restChannel.publish('greeting', 'Hello World!', err => {
- if (err) {
- console.log('publish failed with error ' + err);
- } else {
- console.log('publish succeeded');
- }
-});
-
-// Publish several messages at once
-restChannel.publish([{name: 'greeting', data: 'Hello World!'}], () => {});
-
-// Querying the History
-
-restChannel.history((err, messagesPage) => {
- messagesPage; // PaginatedResult
- messagesPage.items; // array of Message
- messagesPage.items[0].data; // payload for first message
- messagesPage.items.length; // number of messages in the current page of history
- messagesPage.hasNext(); // true if there are further pages
- messagesPage.isLast(); // true if this page is the last page
- messagesPage.next(nextPage => {}); // retrieves the next page as PaginatedResult
-});
-
-// Can optionally take an options param, see https://www.ably.io/documentation/rest-api/#message-history
-restChannel.history({ start: Date.now() - 10000, end: Date.now(), limit: 100, direction: 'forwards' }, (err, messagesPage) => {});
-
-// Presence on a channel
-
-restChannel.presence.get((err, presencePage) => { // PaginatedResult
- presencePage.items; // array of PresenceMessage
- presencePage.items[0].data; // payload for first message
- presencePage.items.length; // number of messages in the current page of members
- presencePage.hasNext(); // true if there are further pages
- presencePage.isLast(); // true if this page is the last page
- presencePage.next(nextPage => {}); // retrieves the next page as PaginatedResult
-});
-
-// Querying the Presence History
-
-restChannel.presence.history((err, messagesPage) => { // PaginatedResult
- messagesPage.items; // array of PresenceMessage
- messagesPage.items[0].data; // payload for first message
- messagesPage.items.length; // number of messages in the current page of history
- messagesPage.hasNext(); // true if there are further pages
- messagesPage.isLast(); // true if this page is the last page
- messagesPage.next(nextPage => { }); // retrieves the next page as PaginatedResult
-});
-
-// Can optionally take an options param, see https://www.ably.io/documentation/rest-api/#message-history
-restChannel.history({ start: Date.now() - 10000, end: Date.now(), limit: 100, direction: 'forwards' }, (err, messagesPage) => {});
-
-// Generate Token and Token Request
-// See https://www.ably.io/documentation/general/authentication for an explanation of Ably's authentication mechanism.
-
-// Requesting a token:
-
-client.auth.requestToken((err, tokenDetails) => {
- // tokenDetails is instance of TokenDetails
- // see https://www.ably.io/documentation/rest/authentication/#token-details for its properties
-
- // Now we have the token, we can send it to someone who can instantiate a client with it:
- const clientUsingToken = new Ably.Realtime(tokenDetails.token);
-});
-
-// requestToken can take two optional params
-// tokenParams: https://www.ably.io/documentation/rest/authentication/#token-params
-// authOptions: https://www.ably.io/documentation/rest/authentication/#auth-options
-client.auth.requestToken({}, {}, (err, tokenDetails) => { });
-
-// Creating a token request (for example, on a server in response to a request by a client using the authCallback or authUrl mechanisms):
-
-client.auth.createTokenRequest((err, tokenRequest) => {
- // now send the tokenRequest back to the client, which will
- // use it to request a token and connect to Ably
-});
-
-// createTokenRequest can take two optional params
-// tokenParams: https://www.ably.io/documentation/rest/authentication/#token-params
-// authOptions: https://www.ably.io/documentation/rest/authentication/#auth-options
-client.auth.createTokenRequest({}, {}, (err, tokenRequest) => { });
-
-// Fetching your application's stats
-
-client.stats({ limit: 50 }, (err, statsPage) => { // statsPage as PaginatedResult
- statsPage.items; // array of Stats
- statsPage.items[0].inbound.rest.messages.count; // total messages published over REST
- statsPage.items.length; // number of stats in the current page of history
- statsPage.hasNext(); // true if there are wrther pages
- statsPage.isLast(); // true if this page is the last page
- statsPage.next((nextPage) => {}); // retrieves the next page as PaginatedResult
-});
-
-// Fetching the Ably service time
-
-client.time({}, (err, time) => {}); // time is in ms since epoch
-
-// Getting decoded Message objects from JSON
-const messages = Ably.Realtime.Message.fromEncodedArray([{ id: 'foo' }]);
-console.log(messages[0].id);
-
-const message = Ably.Rest.Message.fromEncoded({ id: 'foo' });
-console.log(message.id);
-
-// Getting decoded PresenceMessage objects from JSON
-const presenceMessages = Ably.Realtime.PresenceMessage.fromEncodedArray([{ id: 'foo' }]);
-console.log(presenceMessages[0].action);
-
-const presenceMessage = Ably.Rest.PresenceMessage.fromEncoded({ id: 'foo' });
-console.log(presenceMessage.action);
diff --git a/types/ably/index.d.ts b/types/ably/index.d.ts
deleted file mode 100644
index 3a150257ba..0000000000
--- a/types/ably/index.d.ts
+++ /dev/null
@@ -1,473 +0,0 @@
-// Type definitions for Ably Realtime and Rest client library 0.9
-// Project: https://www.ably.io/
-// Definitions by: Ably
-// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-
-export namespace ablyLib {
- namespace ChannelState {
- type INITIALIZED = 'initialized';
- type ATTACHING = 'attaching';
- type ATTACHED = "attached";
- type DETACHING = "detaching";
- type DETACHED = "detached";
- type SUSPENDED = "suspended";
- type FAILED = "failed";
- }
- type ChannelState = ChannelState.FAILED | ChannelState.INITIALIZED | ChannelState.SUSPENDED | ChannelState.ATTACHED | ChannelState.ATTACHING | ChannelState.DETACHED | ChannelState.DETACHING;
-
- namespace ConnectionState {
- type INITIALIZED = "initialized";
- type CONNECTING = "connecting";
- type CONNECTED = "connected";
- type DISCONNECTED = "disconnected";
- type SUSPENDED = "suspended";
- type CLOSING = "closing";
- type CLOSED = "closed";
- type FAILED = "failed";
- }
- type ConnectionState = ConnectionState.INITIALIZED | ConnectionState.CONNECTED | ConnectionState.CONNECTING | ConnectionState.DISCONNECTED |
- ConnectionState.SUSPENDED | ConnectionState.CLOSED | ConnectionState.CLOSING | ConnectionState.FAILED;
-
- namespace ConnectionEvent {
- type INITIALIZED = "initialized";
- type CONNECTING = "connecting";
- type CONNECTED = "connected";
- type DISCONNECTED = "disconnected";
- type SUSPENDED = "suspended";
- type CLOSING = "closing";
- type CLOSED = "closed";
- type FAILED = "failed";
- type UPDATE = "update";
- }
- type ConnectionEvent = ConnectionEvent.INITIALIZED | ConnectionEvent.CONNECTED | ConnectionEvent.CONNECTING | ConnectionEvent.DISCONNECTED |
- ConnectionEvent.SUSPENDED | ConnectionEvent.CLOSED | ConnectionEvent.CLOSING | ConnectionEvent.FAILED | ConnectionEvent.UPDATE;
-
- namespace PresenceAction {
- type ABSENT = "absent";
- type PRESENT = "present";
- type ENTER = "enter";
- type LEAVE = "leave";
- type UPDATE = "update";
- }
- type PresenceAction = PresenceAction.ABSENT | PresenceAction.PRESENT | PresenceAction.ENTER | PresenceAction.LEAVE | PresenceAction.UPDATE;
-
- namespace StatsIntervalGranularity {
- type MINUTE = "minute";
- type HOUR = "hour";
- type DAY = "day";
- type MONTH = "month";
- }
- type StatsIntervalGranularity = StatsIntervalGranularity.MINUTE | StatsIntervalGranularity.HOUR | StatsIntervalGranularity.DAY | StatsIntervalGranularity.MONTH;
-
- namespace HTTPMethods {
- type POST = "POST";
- type GET = "GET";
- }
- type HTTPMethods = HTTPMethods.GET | HTTPMethods.POST;
-
- // Interfaces
- interface ClientOptions extends AuthOptions {
- /**
- * When true will automatically connect to Ably when library is instanced. This is true by default
- */
- autoConnect?: boolean;
-
- /**
- * Optional clientId that can be used to specify the identity for this client. In most cases
- * it is preferable to instead specift a clientId in the token issued to this client.
- */
- clientId?: string;
-
- defaultTokenParams?: TokenParams;
-
- /**
- * When true, messages published on channels by this client will be echoed back to this client.
- * This is true by default
- */
- echoMessages?: boolean;
-
- /**
- * Use this only if you have been provided a dedicated environment by Ably
- */
- environment?: string;
-
- /**
- * Logger configuration
- */
- log?: LogInfo;
- port?: number;
-
- /**
- * When true, messages will be queued whilst the connection is disconnected. True by default.
- */
- queueMessages?: boolean;
-
- restHost?: string;
- realtimeHost?: string;
- fallbackHosts?: string[];
-
- /**
- * Can be used to explicitly recover a connection.
- * See https://www.ably.io/documentation/realtime/connection#connection-state-recovery
- */
- recover?: standardCallback | string;
-
- /**
- * Use a non-secure connection connection. By default, a TLS connection is used to connect to Ably
- */
- tls?: boolean;
- tlsPort?: number;
-
- /**
- * When true, the more efficient MsgPack binary encoding is used.
- * When false, JSON text encoding is used.
- */
- useBinaryProtocol?: boolean;
- }
-
- interface AuthOptions {
- /**
- * A function which is called when a new token is required.
- * The role of the callback is to either generate a signed TokenRequest which may then be submitted automatically
- * by the library to the Ably REST API requestToken; or to provide a valid token in as a TokenDetails object.
- */
- authCallback?(data: TokenParams, callback: (error: ErrorInfo | string, tokenRequestOrDetails: TokenDetails | TokenRequest | string) => void): void;
- authHeaders?: { [index: string]: string };
- authMethod?: HTTPMethods;
- authParams?: { [index: string]: string };
-
- /**
- * A URL that the library may use to obtain a token string (in plain text format), or a signed TokenRequest or TokenDetails (in JSON format).
- */
- authUrl?: string;
- key?: string;
- queryTime?: boolean;
- token?: TokenDetails | string;
- tokenDetails?: TokenDetails;
- useTokenAuth?: boolean;
- }
-
- interface TokenParams {
- capability?: string;
- clientId?: string;
- nonce?: string;
- timestamp?: number;
- ttl?: number;
- }
-
- interface CipherParams {
- algorithm: string;
- key: any;
- keyLength: number;
- mode: string;
- }
-
- interface ErrorInfo {
- code: number;
- message: string;
- statusCode: number;
- }
-
- interface StatsMessageCount {
- count: number;
- data: number;
- }
-
- interface StatsMessageTypes {
- all: StatsMessageCount;
- messages: StatsMessageCount;
- presence: StatsMessageCount;
- }
-
- interface StatsRequestCount {
- failed: number;
- refused: number;
- succeeded: number;
- }
-
- interface StatsResourceCount {
- mean: number;
- min: number;
- opened: number;
- peak: number;
- refused: number;
- }
-
- interface StatsConnectionTypes {
- all: StatsResourceCount;
- plain: StatsResourceCount;
- tls: StatsResourceCount;
- }
-
- interface StatsMessageTraffic {
- all: StatsMessageTypes;
- realtime: StatsMessageTypes;
- rest: StatsMessageTypes;
- webhook: StatsMessageTypes;
- }
-
- interface TokenDetails {
- capability: string;
- clientId?: string;
- expires: number;
- issued: number;
- token: string;
- }
-
- interface TokenRequest {
- capability: string;
- clientId?: string;
- keyName: string;
- mac: string;
- nonce: string;
- timestamp: number;
- ttl?: number;
- }
-
- interface ChannelOptions {
- cipher: any;
- }
-
- interface RestPresenceHistoryParams {
- start?: number;
- end?: number;
- direction?: string;
- limit?: number;
- }
-
- interface RestPresenceParams {
- limit?: number;
- clientId?: string;
- connectionId?: string;
- }
-
- interface RealtimePresenceParams {
- waitForSync?: boolean;
- clientId?: string;
- connectionId?: string;
- }
-
- interface RealtimePresenceHistoryParams {
- start?: number;
- end?: number;
- direction?: string;
- limit?: number;
- untilAttach?: boolean;
- }
-
- interface LogInfo {
- /**
- * A number controlling the verbosity of the output. Valid values are: 0 (no logs), 1 (errors only),
- * 2 (errors plus connection and channel state changes), 3 (high-level debug output), and 4 (full debug output).
- */
- level?: number;
-
- /**
- * A function to handle each line of log output. If handler is not specified, console.log is used.
- */
- handler?(...args: any[]): void;
- }
-
- interface ChannelEvent {
- state: ChannelState;
- }
-
- interface ChannelStateChange {
- current: ChannelState;
- previous: ChannelState;
- reason?: ErrorInfo;
- resumed: boolean;
- }
-
- interface ConnectionStateChange {
- current: ConnectionState;
- previous: ConnectionState;
- reason?: ErrorInfo;
- retryIn?: number;
- }
-
- // Common Listeners
- type paginatedResultCallback = (error: ErrorInfo, results: PaginatedResult) => void;
- type standardCallback = (error: ErrorInfo, results: any) => void;
- type messageCallback = (message: T) => void;
- type errorCallback = (error: ErrorInfo) => void;
- type channelEventCallback = (channelEvent: ChannelEvent, changeStateChange: ChannelStateChange) => void;
- type connectionEventCallback = (connectionEvent: ConnectionEvent, connectionStateChange: ConnectionStateChange) => void;
- type timeCallback = (error: ErrorInfo, time: number) => void;
- type realtimePresenceGetCallback = (error: ErrorInfo, messages: PresenceMessage[]) => void;
- type tokenDetailsCallback = (error: ErrorInfo, Results: TokenDetails) => void;
- type tokenRequestCallback = (error: ErrorInfo, Results: TokenRequest) => void;
- type fromEncoded = (JsonObject: any, channelOptions?: ChannelOptions) => T;
- type fromEncodedArray = (JsonArray: any[], channelOptions?: ChannelOptions) => T[];
-
- // Internal Classes
- class EventEmitter {
- on: (eventOrCallback: string | T, callback?: T) => void;
- once: (eventOrCallback: string | T, callback?: T) => void;
- off: (eventOrCallback?: string | T, callback?: T) => void;
- }
-
- // Classes
- class Auth {
- clientId: string;
- authorize: (tokenParams?: TokenParams | tokenDetailsCallback, authOptions?: AuthOptions | tokenDetailsCallback, callback?: tokenDetailsCallback) => void;
- createTokenRequest: (tokenParams?: TokenParams | tokenRequestCallback, authOptions?: AuthOptions | tokenRequestCallback, callback?: tokenRequestCallback) => void;
- requestToken: (TokenParams?: TokenParams | tokenDetailsCallback, authOptions?: AuthOptions | tokenDetailsCallback, callback?: tokenDetailsCallback) => void;
- }
-
- class Presence {
- get: (params: RestPresenceParams | paginatedResultCallback, callback?: paginatedResultCallback) => void;
- history: (params: RestPresenceHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void;
- }
-
- class RealtimePresence {
- syncComplete: () => boolean;
- get: (Params: realtimePresenceGetCallback | RealtimePresenceParams, callback?: realtimePresenceGetCallback) => void;
- history: (ParamsOrCallback: RealtimePresenceHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void;
- subscribe: (presenceOrCallback: PresenceAction | messageCallback, listener?: messageCallback) => void;
- unsubscribe: (presence?: PresenceAction, listener?: messageCallback) => void;
- enter: (data?: errorCallback | any, callback?: errorCallback) => void;
- update: (data?: errorCallback | any, callback?: errorCallback) => void;
- leave: (data?: errorCallback | any, callback?: errorCallback) => void;
- enterClient: (clientId: string, data?: errorCallback | any, callback?: errorCallback) => void;
- updateClient: (clientId: string, data?: errorCallback | any, callback?: errorCallback) => void;
- leaveClient: (clientId: string, data?: errorCallback | any, callback?: errorCallback) => void;
- }
-
- class Channel {
- name: string;
- presence: Presence;
- history: (paramsOrCallback?: RestPresenceHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void;
- publish: (messagesOrName: any, messagedataOrCallback?: errorCallback | any, callback?: errorCallback) => void;
- }
-
- class RealtimeChannel extends EventEmitter {
- name: string;
- errorReason: ErrorInfo;
- state: ChannelState;
- presence: RealtimePresence;
- attach: (callback?: standardCallback) => void;
- detach: (callback?: standardCallback) => void;
- history: (paramsOrCallback?: RealtimePresenceHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void;
- subscribe: (eventOrCallback: messageCallback | string, listener?: messageCallback) => void;
- unsubscribe: (eventOrCallback?: messageCallback | string, listener?: messageCallback) => void;
- publish: (messagesOrName: any, messageDataOrCallback?: errorCallback | any, callback?: errorCallback) => void;
- setOptions: (options: any, callback?: errorCallback) => void;
- }
-
- class Channels {
- get: (name: string, channelOptions?: ChannelOptions) => T;
- release: (name: string) => void;
- }
-
- class Message {
- constructor();
- static fromEncoded: fromEncoded;
- static fromEncodedArray: fromEncodedArray;
- clientId: string;
- connectionId: string;
- data: any;
- encoding: string;
- extras: any;
- id: string;
- name: string;
- timestamp: number;
- }
-
- interface MessageStatic {
- fromEncoded: fromEncoded;
- fromEncodedArray: fromEncodedArray;
- }
-
- class PresenceMessage {
- constructor();
- static fromEncoded: fromEncoded;
- static fromEncodedArray: fromEncodedArray;
- action: PresenceAction;
- clientId: string;
- connectionId: string;
- data: any;
- encoding: string;
- id: string;
- timestamp: number;
- }
-
- interface PresenceMessageStatic {
- fromEncoded: fromEncoded;
- fromEncodedArray: fromEncodedArray;
- }
-
- interface Crypto {
- generateRandomKey(callback: (error: ErrorInfo, key: string) => void): void;
- }
-
- class Connection extends EventEmitter {
- errorReason: ErrorInfo;
- id: string;
- key: string;
- recoveryKey: string;
- serial: number;
- state: ConnectionState;
- close: () => void;
- connect: () => void;
- ping: (callback?: (error: ErrorInfo, responseTime: number) => void) => void;
- }
-
- class Stats {
- all: StatsMessageTypes;
- apiRequests: StatsRequestCount;
- channels: StatsResourceCount;
- connections: StatsConnectionTypes;
- inbound: StatsMessageTraffic;
- intervalId: string;
- outbound: StatsMessageTraffic;
- persisted: StatsMessageTypes;
- tokenRequests: StatsRequestCount;
- }
-
- class PaginatedResult {
- items: T[];
- first: (results: paginatedResultCallback) => void;
- next: (results: paginatedResultCallback) => void;
- current: (results: paginatedResultCallback) => void;
- hasNext: () => boolean;
- isLast: () => boolean;
- }
-
- class HttpPaginatedResponse extends PaginatedResult {
- items: string[];
- statusCode: number;
- success: boolean;
- errorCode: number;
- errorMessage: string;
- headers: any;
- }
-}
-
-export class Rest {
- constructor(options: ablyLib.ClientOptions | string);
- static Crypto: ablyLib.Crypto;
- static Message: ablyLib.MessageStatic;
- static PresenceMessage: ablyLib.PresenceMessageStatic;
- auth: ablyLib.Auth;
- channels: ablyLib.Channels;
- request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: (error: ablyLib.ErrorInfo, response: ablyLib.HttpPaginatedResponse) => void) => void;
- stats: (paramsOrCallback?: ablyLib.paginatedResultCallback | any, callback?: ablyLib.paginatedResultCallback) => void;
- time: (paramsOrCallback?: ablyLib.timeCallback | any, callback?: ablyLib.timeCallback) => void;
-}
-
-export class Realtime {
- constructor(options: ablyLib.ClientOptions | string);
- static Crypto: ablyLib.Crypto;
- static Message: ablyLib.MessageStatic;
- static PresenceMessage: ablyLib.PresenceMessageStatic;
- auth: ablyLib.Auth;
- channels: ablyLib.Channels;
- clientId: string;
- connection: ablyLib.Connection;
- request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: (error: ablyLib.ErrorInfo, response: ablyLib.HttpPaginatedResponse) => void) => void;
- stats: (paramsOrCallback?: ablyLib.paginatedResultCallback | any, callback?: ablyLib.paginatedResultCallback) => void;
- close: () => void;
- connect: () => void;
- time: (paramsOrCallback?: ablyLib.timeCallback | any, callback?: ablyLib.timeCallback) => void;
-}
diff --git a/types/accepts/index.d.ts b/types/accepts/index.d.ts
index 33ee0db8a1..02cb0fbb97 100644
--- a/types/accepts/index.d.ts
+++ b/types/accepts/index.d.ts
@@ -12,36 +12,75 @@ declare namespace accepts {
interface Accepts {
/**
* Return the first accepted charset. If nothing in `charsets` is accepted, then `false` is returned.
+ * If no charsets are supplied, all accepted charsets are returned, in the order of the client's preference
+ * (most preferred first).
*/
+ charset(): string[];
charset(charsets: string[]): string | false;
charset(...charsets: string[]): string | false;
/**
- * Return the charsets that the request accepts, in the order of the client's preference (most preferred first).
+ * Return the first accepted charset. If nothing in `charsets` is accepted, then `false` is returned.
+ * If no charsets are supplied, all accepted charsets are returned, in the order of the client's preference
+ * (most preferred first).
*/
charsets(): string[];
+ charsets(charsets: string[]): string | false;
+ charsets(...charsets: string[]): string | false;
/**
* Return the first accepted encoding. If nothing in `encodings` is accepted, then `false` is returned.
+ * If no encodings are supplied, all accepted encodings are returned, in the order of the client's preference
+ * (most preferred first).
*/
+ encoding(): string[];
encoding(encodings: string[]): string | false;
encoding(...encodings: string[]): string | false;
/**
- * Return the encodings that the request accepts, in the order of the client's preference (most preferred first).
+ * Return the first accepted encoding. If nothing in `encodings` is accepted, then `false` is returned.
+ * If no encodings are supplied, all accepted encodings are returned, in the order of the client's preference
+ * (most preferred first).
*/
encodings(): string[];
+ encodings(encodings: string[]): string | false;
+ encodings(...encodings: string[]): string | false;
/**
* Return the first accepted language. If nothing in `languages` is accepted, then `false` is returned.
+ * If no languaes are supplied, all accepted languages are returned, in the order of the client's preference
+ * (most preferred first).
*/
+ language(): string[];
language(languages: string[]): string | false;
language(...languages: string[]): string | false;
/**
- * Return the languages that the request accepts, in the order of the client's preference (most preferred first).
+ * Return the first accepted language. If nothing in `languages` is accepted, then `false` is returned.
+ * If no languaes are supplied, all accepted languages are returned, in the order of the client's preference
+ * (most preferred first).
*/
languages(): string[];
+ languages(languages: string[]): string | false;
+ languages(...languages: string[]): string | false;
+
+ /**
+ * Return the first accepted language. If nothing in `languages` is accepted, then `false` is returned.
+ * If no languaes are supplied, all accepted languages are returned, in the order of the client's preference
+ * (most preferred first).
+ */
+ lang(): string[];
+ lang(languages: string[]): string | false;
+ lang(...languages: string[]): string | false;
+
+ /**
+ * Return the first accepted language. If nothing in `languages` is accepted, then `false` is returned.
+ * If no languaes are supplied, all accepted languages are returned, in the order of the client's preference
+ * (most preferred first).
+ */
+ langs(): string[];
+ langs(languages: string[]): string | false;
+ langs(...languages: string[]): string | false;
/**
* Return the first accepted type (and it is returned as the same text as what appears in the `types` array). If nothing in `types` is accepted, then `false` is returned.
diff --git a/types/actions-on-google/actions-on-google-tests.ts b/types/actions-on-google/actions-on-google-tests.ts
index e57e1e8d98..d24c3093b4 100644
--- a/types/actions-on-google/actions-on-google-tests.ts
+++ b/types/actions-on-google/actions-on-google-tests.ts
@@ -1,6 +1,6 @@
import { ActionsSdkApp, ActionsSdkAppOptions, DialogflowApp, DialogflowAppOptions, AssistantApp,
Responses, Transactions } from 'actions-on-google';
-import * as express from 'express';
+import express = require('express');
function testActionsSdk(request: express.Request, response: express.Response) {
const app = new ActionsSdkApp({request, response});
diff --git a/types/actions-on-google/assistant-app.d.ts b/types/actions-on-google/assistant-app.d.ts
index 58d933baf2..d835915259 100644
--- a/types/actions-on-google/assistant-app.d.ts
+++ b/types/actions-on-google/assistant-app.d.ts
@@ -263,8 +263,8 @@ export interface UserName {
* User's permissioned device location.
*/
export interface DeviceLocation {
- /** {latitude, longitude}. Requested with SupportedPermissions.DEVICE_PRECISE_LOCATION. */
- coordinates: object;
+ /** Coordinates: {latitude, longitude}. Requested with SupportedPermissions.DEVICE_PRECISE_LOCATION. */
+ coordinates: Coordinates;
/** Full, formatted street address. Requested with SupportedPermissions.DEVICE_PRECISE_LOCATION. */
address: string;
/** Zip code. Requested with SupportedPermissions.DEVICE_COARSE_LOCATION. */
@@ -273,6 +273,16 @@ export interface DeviceLocation {
city: string;
}
+/**
+ * Coordinates containing latitude and longitude
+ */
+export interface Coordinates {
+ /** Latitude coordinate. */
+ latitude: number;
+ /** Longitude coordinate. */
+ longitude: number;
+}
+
/**
* User object.
*/
diff --git a/types/actions-on-google/index.d.ts b/types/actions-on-google/index.d.ts
index 23a2c1483d..937943e1f0 100644
--- a/types/actions-on-google/index.d.ts
+++ b/types/actions-on-google/index.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for actions-on-google 1.7
+// Type definitions for actions-on-google 1.8
// Project: https://github.com/actions-on-google/actions-on-google-nodejs
// Definitions by: Joel Hegg
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
diff --git a/types/actions-on-google/response-builder.d.ts b/types/actions-on-google/response-builder.d.ts
index 4ebb9b3007..227d102958 100644
--- a/types/actions-on-google/response-builder.d.ts
+++ b/types/actions-on-google/response-builder.d.ts
@@ -20,7 +20,9 @@ export enum ImageDisplays {
*/
WHITE,
/**
- * Image is centered and resized so the image fits perfectly in the container.
+ * Image is scaled such that the image width matches the container width. This may crop the top
+ * and bottom of the image if the scaled image height is greater than the container height. This
+ * is similar to "Zoom Mode" on a widescreen TV when playing a 4:3 video.
*/
CROPPED
}
diff --git a/types/actions-on-google/transactions.d.ts b/types/actions-on-google/transactions.d.ts
index 59e6cd9b37..06e44b33dd 100644
--- a/types/actions-on-google/transactions.d.ts
+++ b/types/actions-on-google/transactions.d.ts
@@ -594,7 +594,12 @@ export namespace TransactionValues {
/**
* Use external payment gateway tokenization API to tokenize selected payment method.
*/
- PAYMENT_GATEWAY
+ PAYMENT_GATEWAY,
+ /**
+ * Allows payment service to pass public key for payment info encryption and receive encrypted
+ * response.
+ */
+ DIRECT
}
}
diff --git a/types/actions-on-google/tsconfig.json b/types/actions-on-google/tsconfig.json
index 6682b5c194..776b12264b 100644
--- a/types/actions-on-google/tsconfig.json
+++ b/types/actions-on-google/tsconfig.json
@@ -25,4 +25,4 @@
"transactions.d.ts",
"actions-on-google-tests.ts"
]
-}
+}
\ No newline at end of file
diff --git a/types/activex-access/tslint.json b/types/activex-access/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-access/tslint.json
+++ b/types/activex-access/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-adodb/tslint.json b/types/activex-adodb/tslint.json
index 2750cc0197..3224b40b8b 100644
--- a/types/activex-adodb/tslint.json
+++ b/types/activex-adodb/tslint.json
@@ -1 +1,6 @@
-{ "extends": "dtslint/dt.json" }
\ No newline at end of file
+{
+ "extends": "dtslint/dt.json",
+ "rules": {
+ "no-const-enum": false
+ }
+}
diff --git a/types/activex-dao/tslint.json b/types/activex-dao/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-dao/tslint.json
+++ b/types/activex-dao/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-diskquota/activex-diskquota-tests.ts b/types/activex-diskquota/activex-diskquota-tests.ts
new file mode 100644
index 0000000000..2672b590ca
--- /dev/null
+++ b/types/activex-diskquota/activex-diskquota-tests.ts
@@ -0,0 +1,44 @@
+const collectionToArray = (col: any) => { // tslint:disable-line no-unnecessary-generics
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
+ }
+ return results;
+};
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787925(v=vs.85).aspx
+(() => {
+ const enumUsers = (label: string) => {
+ const volume = new ActiveXObject('Microsoft.DiskQuota');
+ volume.Initialize(label, true);
+ collectionToArray(volume).forEach(x => {
+ // Use the QuotaUser object to retrieve or set one or more of the user's disk quota properties
+ });
+ };
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787916(v=vs.85).aspx
+(() => {
+ const volume = new ActiveXObject('Microsoft.DiskQuota');
+ volume.Initialize('MYDISK', true);
+ ActiveXObject.on(volume, 'OnUserNameChanged', ['pUser'], p => {
+ // Code to handle the event.
+ });
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787904(v=vs.85).aspx
+(() => {
+ const dqc = new ActiveXObject('Microsoft.DiskQuota');
+ dqc.Initialize('MYDISK', true);
+ const findName = (name: string) => {
+ try {
+ return dqc.FindUser(name);
+ } catch { }
+ try {
+ return dqc.FindUser(dqc.TranslateLogonNameToSID(name));
+ } catch { }
+ };
+})();
diff --git a/types/activex-diskquota/index.d.ts b/types/activex-diskquota/index.d.ts
new file mode 100644
index 0000000000..d27863de3c
--- /dev/null
+++ b/types/activex-diskquota/index.d.ts
@@ -0,0 +1,152 @@
+// Type definitions for DiskQuotaTypeLibrary 1.0
+// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773938(v=vs.85).aspx
+// Definitions by: Zev Spitz
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.5
+
+declare namespace DiskQuotaTypeLibrary {
+ // tslint:disable-next-line no-const-enum
+ const enum AccountStatusConstants {
+ dqAcctDeleted = 2,
+ dqAcctInvalid = 3,
+ dqAcctResolved = 0,
+ dqAcctUnavailable = 1,
+ dqAcctUnknown = 4,
+ dqAcctUnresolved = 5,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum QuotaStateConstants {
+ dqStateDisable = 0,
+ dqStateEnforce = 2,
+ dqStateTrack = 1,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum UserNameResolutionConstants {
+ dqResolveAsync = 2,
+ dqResolveNone = 0,
+ dqResolveSync = 1,
+ }
+
+ /** Automation interface for DiskQuotaUser */
+ class DIDiskQuotaUser {
+ private 'DiskQuotaTypeLibrary.DIDiskQuotaUser_typekey': DIDiskQuotaUser;
+ private constructor();
+
+ /** Name of user's account container */
+ readonly AccountContainerName: string;
+
+ /** Status of user's account */
+ readonly AccountStatus: AccountStatusConstants;
+
+ /** User's display name */
+ readonly DisplayName: string;
+
+ /** Unique ID number */
+ readonly ID: number;
+
+ /** Invalidate data cached in user object */
+ Invalidate(): void;
+
+ /** User's logon account name */
+ readonly LogonName: string;
+
+ /** User's quota limit (bytes) */
+ QuotaLimit: number;
+
+ /** User's quota limit (text) */
+ readonly QuotaLimitText: string;
+
+ /** User's quota warning threshold (bytes) */
+ QuotaThreshold: number;
+
+ /** User's quota warning threshold (text) */
+ readonly QuotaThresholdText: string;
+
+ /** Quota charged to user (bytes) */
+ readonly QuotaUsed: number;
+
+ /** Quota charged to user (text) */
+ readonly QuotaUsedText: string;
+ }
+
+ /** Microsoft Disk Quota */
+ class DiskQuotaControl {
+ private 'DiskQuotaTypeLibrary.DiskQuotaControl_typekey': DiskQuotaControl;
+ private constructor();
+
+ /** Add a user quota entry by Name */
+ AddUser(LogonName: string): DIDiskQuotaUser;
+
+ /** Default quota limit applied to new volume users (byte value) */
+ DefaultQuotaLimit: number;
+
+ /** Default quota limit applied to new volume users (text string) */
+ readonly DefaultQuotaLimitText: string;
+
+ /** Default warning threshold applied to new volume users (byte value) */
+ DefaultQuotaThreshold: number;
+
+ /** Default warning threshold applied to new volume users (text string) */
+ readonly DefaultQuotaThresholdText: string;
+
+ /** Delete a user quota entry */
+ DeleteUser(pUser: DIDiskQuotaUser): void;
+
+ /** Find a user quota entry by Name */
+ FindUser(LogonName: string): DIDiskQuotaUser;
+
+ /** Promote a user quota entry to the head of the name resolution queue */
+ GiveUserNameResolutionPriority(pUser: DIDiskQuotaUser): void;
+
+ /** Initialize the quota control object for a specified volume */
+ Initialize(path: string, bReadWrite: boolean): void;
+
+ /** Invalidate the cache of user name information */
+ InvalidateSidNameCache(): void;
+
+ /** Write event log entry when user exceeds quota limit */
+ LogQuotaLimit: boolean;
+
+ /** Write event log entry when user exceeds quota warning threshold */
+ LogQuotaThreshold: boolean;
+
+ /** Indicates if quota information is out of date */
+ readonly QuotaFileIncomplete: boolean;
+
+ /** Indicates if quota information is being rebuilt */
+ readonly QuotaFileRebuilding: boolean;
+
+ /** State of the volume's disk quota system */
+ QuotaState: QuotaStateConstants;
+
+ /** Terminate the user name resolution thread */
+ ShutdownNameResolution(): void;
+
+ /** Translates a user logon name to a security ID */
+ TranslateLogonNameToSID(LogonName: string): string;
+
+ /** Control the resolution of user Security IDs to user Names */
+ UserNameResolution: UserNameResolutionConstants;
+ }
+}
+
+interface ActiveXObject {
+ on(
+ obj: DiskQuotaTypeLibrary.DiskQuotaControl, event: 'OnUserNameChanged', argNames: ['pUser'], handler: (
+ this: DiskQuotaTypeLibrary.DiskQuotaControl, parameter: {readonly pUser: DiskQuotaTypeLibrary.DIDiskQuotaUser}) => void): void;
+ new(progid: K): ActiveXObjectNameMap[K];
+}
+
+interface ActiveXObjectNameMap {
+ 'Microsoft.DiskQuota': DiskQuotaTypeLibrary.DiskQuotaControl;
+}
+
+interface EnumeratorConstructor {
+ new(col: DiskQuotaTypeLibrary.DiskQuotaControl): Enumerator;
+}
+
+interface SafeArray {
+ _brand: SafeArray;
+}
diff --git a/types/activex-diskquota/package.json b/types/activex-diskquota/package.json
new file mode 100644
index 0000000000..d9b1031263
--- /dev/null
+++ b/types/activex-diskquota/package.json
@@ -0,0 +1,6 @@
+{
+ "private": true,
+ "dependencies": {
+ "activex-helpers": "*"
+ }
+}
\ No newline at end of file
diff --git a/types/activex-diskquota/tsconfig.json b/types/activex-diskquota/tsconfig.json
new file mode 100644
index 0000000000..597d998a96
--- /dev/null
+++ b/types/activex-diskquota/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es5",
+ "scripthost"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "activex-diskquota-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/activex-diskquota/tslint.json b/types/activex-diskquota/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/activex-diskquota/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/activex-excel/index.d.ts b/types/activex-excel/index.d.ts
index ec2044f1e7..cdf2a79551 100644
--- a/types/activex-excel/index.d.ts
+++ b/types/activex-excel/index.d.ts
@@ -2,13 +2,14 @@
// Project: https://msdn.microsoft.com/en-us/library/fp179694.aspx
// Definitions by: Zev Spitz
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// TypeScript Version: 2.3
+// TypeScript Version: 2.6
///
///
///
declare namespace Excel {
+ // tslint:disable-next-line:no-const-enum
const enum Constants {
xl3DBar = -4099,
xl3DEffects1 = 13,
@@ -179,6 +180,7 @@ declare namespace Excel {
xlWorksheetShort = 5,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAboveBelow {
xlAboveAverage = 0,
xlAboveStdDev = 4,
@@ -188,6 +190,7 @@ declare namespace Excel {
xlEqualBelowAverage = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlActionType {
xlActionTypeDrillthrough = 256,
xlActionTypeReport = 128,
@@ -195,21 +198,25 @@ declare namespace Excel {
xlActionTypeUrl = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAllocation {
xlAutomaticAllocation = 2,
xlManualAllocation = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAllocationMethod {
xlEqualAllocation = 1,
xlWeightedAllocation = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAllocationValue {
xlAllocateIncrement = 2,
xlAllocateValue = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlApplicationInternational {
xl24HourClock = 33,
xl4DigitYears = 43,
@@ -258,11 +265,13 @@ declare namespace Excel {
xlYearCode = 19,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlApplyNamesOrder {
xlColumnThenRow = 2,
xlRowThenColumn = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlArabicModes {
xlArabicBothStrict = 3,
xlArabicNone = 0,
@@ -270,6 +279,7 @@ declare namespace Excel {
xlArabicStrictFinalYaa = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlArrangeStyle {
xlArrangeStyleCascade = 7,
xlArrangeStyleHorizontal = -4128,
@@ -277,12 +287,14 @@ declare namespace Excel {
xlArrangeStyleVertical = -4166,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlArrowHeadLength {
xlArrowHeadLengthLong = 3,
xlArrowHeadLengthMedium = -4138,
xlArrowHeadLengthShort = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlArrowHeadStyle {
xlArrowHeadStyleClosed = 3,
xlArrowHeadStyleDoubleClosed = 5,
@@ -291,12 +303,14 @@ declare namespace Excel {
xlArrowHeadStyleOpen = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlArrowHeadWidth {
xlArrowHeadWidthMedium = -4138,
xlArrowHeadWidthNarrow = 1,
xlArrowHeadWidthWide = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAutoFillType {
xlFillCopy = 1,
xlFillDays = 5,
@@ -311,6 +325,7 @@ declare namespace Excel {
xlLinearTrend = 9,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAutoFilterOperator {
xlAnd = 1,
xlBottom10Items = 4,
@@ -328,6 +343,7 @@ declare namespace Excel {
xlTop10Percent = 5,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAxisCrosses {
xlAxisCrossesAutomatic = -4105,
xlAxisCrossesCustom = -4114,
@@ -335,23 +351,27 @@ declare namespace Excel {
xlAxisCrossesMinimum = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAxisGroup {
xlPrimary = 1,
xlSecondary = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlAxisType {
xlCategory = 1,
xlSeriesAxis = 3,
xlValue = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlBackground {
xlBackgroundAutomatic = -4105,
xlBackgroundOpaque = 3,
xlBackgroundTransparent = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlBarShape {
xlBox = 0,
xlConeToMax = 5,
@@ -361,6 +381,7 @@ declare namespace Excel {
xlPyramidToPoint = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlBordersIndex {
xlDiagonalDown = 5,
xlDiagonalUp = 6,
@@ -372,6 +393,7 @@ declare namespace Excel {
xlInsideVertical = 11,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlBorderWeight {
xlHairline = 1,
xlMedium = -4138,
@@ -379,6 +401,7 @@ declare namespace Excel {
xlThin = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlBuiltInDialog {
_xlDialogChartSourceData = 541,
_xlDialogPhonetic = 538,
@@ -641,53 +664,62 @@ declare namespace Excel {
xlDialogZoom = 256,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCalcFor {
xlAllValues = 0,
xlColGroups = 2,
xlRowGroups = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCalculatedMemberType {
xlCalculatedMember = 0,
xlCalculatedSet = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCalculation {
xlCalculationAutomatic = -4105,
xlCalculationManual = -4135,
xlCalculationSemiautomatic = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCalculationInterruptKey {
xlAnyKey = 2,
xlEscKey = 1,
xlNoKey = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCalculationState {
xlCalculating = 1,
xlDone = 0,
xlPending = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCategoryType {
xlAutomaticScale = -4105,
xlCategoryScale = 2,
xlTimeScale = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCellChangedState {
xlCellChangeApplied = 3,
xlCellChanged = 2,
xlCellNotChanged = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCellInsertionMode {
xlInsertDeleteCells = 1,
xlInsertEntireRows = 2,
xlOverwriteCells = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCellType {
xlCellTypeAllFormatConditions = -4172,
xlCellTypeAllValidation = -4174,
@@ -701,17 +733,20 @@ declare namespace Excel {
xlCellTypeVisible = 12,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartElementPosition {
xlChartElementPositionAutomatic = -4105,
xlChartElementPositionCustom = -4114,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartGallery {
xlAnyGallery = 23,
xlBuiltIn = 21,
xlUserDefined = 22,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartItem {
xlAxis = 21,
xlAxisTitle = 17,
@@ -747,12 +782,14 @@ declare namespace Excel {
xlYErrorBars = 11,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartLocation {
xlLocationAsNewSheet = 1,
xlLocationAsObject = 2,
xlLocationAutomatic = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartPicturePlacement {
xlAllFaces = 7,
xlEnd = 2,
@@ -763,12 +800,14 @@ declare namespace Excel {
xlSides = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartPictureType {
xlStack = 2,
xlStackScale = 3,
xlStretch = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartSplitType {
xlSplitByCustomSplit = 4,
xlSplitByPercentValue = 3,
@@ -776,6 +815,7 @@ declare namespace Excel {
xlSplitByValue = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlChartType {
xl3DArea = -4098,
xl3DAreaStacked = 78,
@@ -852,12 +892,14 @@ declare namespace Excel {
xlXYScatterSmoothNoMarkers = 73,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCheckInVersionType {
xlCheckInMajorVersion = 1,
xlCheckInMinorVersion = 0,
xlCheckInOverwriteVersion = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlClipboardFormat {
xlClipboardFormatBIFF = 8,
xlClipboardFormatBIFF12 = 63,
@@ -895,6 +937,7 @@ declare namespace Excel {
xlClipboardFormatWK1 = 10,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCmdType {
xlCmdCube = 1,
xlCmdDefault = 4,
@@ -903,11 +946,13 @@ declare namespace Excel {
xlCmdTable = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlColorIndex {
xlColorIndexAutomatic = -4105,
xlColorIndexNone = -4142,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlColumnDataType {
xlDMYFormat = 4,
xlDYMFormat = 7,
@@ -921,18 +966,21 @@ declare namespace Excel {
xlYMDFormat = 5,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCommandUnderlines {
xlCommandUnderlinesAutomatic = -4105,
xlCommandUnderlinesOff = -4146,
xlCommandUnderlinesOn = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCommentDisplayMode {
xlCommentAndIndicator = 1,
xlCommentIndicatorOnly = -1,
xlNoIndicator = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlConditionValueTypes {
xlConditionValueAutomaticMax = 7,
xlConditionValueAutomaticMin = 6,
@@ -945,6 +993,7 @@ declare namespace Excel {
xlConditionValuePercentile = 5,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlConnectionType {
xlConnectionTypeODBC = 2,
xlConnectionTypeOLEDB = 1,
@@ -953,6 +1002,7 @@ declare namespace Excel {
xlConnectionTypeXMLMAP = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlConsolidationFunction {
xlAverage = -4106,
xlCount = -4112,
@@ -968,6 +1018,7 @@ declare namespace Excel {
xlVarP = -4165,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlContainsOperator {
xlBeginsWith = 2,
xlContains = 0,
@@ -975,27 +1026,32 @@ declare namespace Excel {
xlEndsWith = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCopyPictureFormat {
xlBitmap = 2,
xlPicture = -4147,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCorruptLoad {
xlExtractData = 2,
xlNormalLoad = 0,
xlRepairFile = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCreator {
xlCreatorCode = 1480803660,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCredentialsMethod {
xlCredentialsMethodIntegrated = 0,
xlCredentialsMethodNone = 1,
xlCredentialsMethodStored = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCubeFieldSubType {
xlCubeAttribute = 4,
xlCubeCalculatedMeasure = 5,
@@ -1009,17 +1065,20 @@ declare namespace Excel {
xlCubeSet = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCubeFieldType {
xlHierarchy = 1,
xlMeasure = 2,
xlSet = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCutCopyMode {
xlCopy = 1,
xlCut = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlCVError {
xlErrDiv0 = 2007,
xlErrNA = 2042,
@@ -1030,27 +1089,32 @@ declare namespace Excel {
xlErrValue = 2015,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataBarAxisPosition {
xlDataBarAxisAutomatic = 0,
xlDataBarAxisMidpoint = 1,
xlDataBarAxisNone = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataBarBorderType {
xlDataBarBorderNone = 0,
xlDataBarBorderSolid = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataBarFillType {
xlDataBarFillGradient = 1,
xlDataBarFillSolid = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataBarNegativeColorType {
xlDataBarColor = 0,
xlDataBarSameAsPositive = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataLabelPosition {
xlLabelPositionAbove = 0,
xlLabelPositionBelow = 1,
@@ -1065,10 +1129,12 @@ declare namespace Excel {
xlLabelPositionRight = -4152,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataLabelSeparator {
xlDataLabelSeparatorDefault = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataLabelsType {
xlDataLabelsShowBubbleSizes = 6,
xlDataLabelsShowLabel = 4,
@@ -1078,6 +1144,7 @@ declare namespace Excel {
xlDataLabelsShowValue = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataSeriesDate {
xlDay = 1,
xlMonth = 3,
@@ -1085,6 +1152,7 @@ declare namespace Excel {
xlYear = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDataSeriesType {
xlAutoFill = 4,
xlChronological = 3,
@@ -1092,11 +1160,13 @@ declare namespace Excel {
xlGrowth = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDeleteShiftDirection {
xlShiftToLeft = -4159,
xlShiftUp = -4162,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDirection {
xlDown = -4121,
xlToLeft = -4159,
@@ -1104,18 +1174,21 @@ declare namespace Excel {
xlUp = -4162,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDisplayBlanksAs {
xlInterpolated = 3,
xlNotPlotted = 1,
xlZero = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDisplayDrawingObjects {
xlDisplayShapes = -4104,
xlHide = 3,
xlPlaceholders = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDisplayUnit {
xlHundredMillions = -8,
xlHundreds = -2,
@@ -1128,17 +1201,20 @@ declare namespace Excel {
xlThousands = -3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDupeUnique {
xlDuplicate = 1,
xlUnique = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDVAlertStyle {
xlValidAlertInformation = 3,
xlValidAlertStop = 1,
xlValidAlertWarning = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDVType {
xlValidateCustom = 7,
xlValidateDate = 4,
@@ -1150,6 +1226,7 @@ declare namespace Excel {
xlValidateWholeNumber = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlDynamicFilterCriteria {
xlFilterAboveAverage = 33,
xlFilterAllDatesInPeriodApril = 24,
@@ -1187,6 +1264,7 @@ declare namespace Excel {
xlFilterYesterday = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEditionFormat {
xlBIFF = 2,
xlPICT = 1,
@@ -1194,6 +1272,7 @@ declare namespace Excel {
xlVALU = 8,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEditionOptionsOption {
xlAutomaticUpdate = 4,
xlCancel = 1,
@@ -1205,33 +1284,39 @@ declare namespace Excel {
xlUpdateSubscriber = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEditionType {
xlPublisher = 1,
xlSubscriber = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEnableCancelKey {
xlDisabled = 0,
xlErrorHandler = 2,
xlInterrupt = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEnableSelection {
xlNoRestrictions = 0,
xlNoSelection = -4142,
xlUnlockedCells = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlEndStyleCap {
xlCap = 1,
xlNoCap = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlErrorBarDirection {
xlX = -4168,
xlY = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlErrorBarInclude {
xlErrorBarIncludeBoth = 1,
xlErrorBarIncludeMinusValues = 3,
@@ -1239,6 +1324,7 @@ declare namespace Excel {
xlErrorBarIncludePlusValues = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlErrorBarType {
xlErrorBarTypeCustom = -4114,
xlErrorBarTypeFixedValue = 1,
@@ -1247,6 +1333,7 @@ declare namespace Excel {
xlErrorBarTypeStError = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlErrorChecks {
xlEmptyCellReferences = 7,
xlEvaluateToError = 1,
@@ -1259,11 +1346,13 @@ declare namespace Excel {
xlUnlockedFormulaCells = 6,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFileAccess {
xlReadOnly = 3,
xlReadWrite = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFileFormat {
xlAddIn = 18,
xlAddIn8 = 18,
@@ -1321,23 +1410,27 @@ declare namespace Excel {
xlXMLSpreadsheet = 46,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFileValidationPivotMode {
xlFileValidationPivotDefault = 0,
xlFileValidationPivotRun = 1,
xlFileValidationPivotSkip = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFillWith {
xlFillWithAll = -4104,
xlFillWithContents = 2,
xlFillWithFormats = -4122,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFilterAction {
xlFilterCopy = 2,
xlFilterInPlace = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFilterAllDatesInPeriod {
xlFilterAllDatesInPeriodDay = 2,
xlFilterAllDatesInPeriodHour = 3,
@@ -1347,22 +1440,26 @@ declare namespace Excel {
xlFilterAllDatesInPeriodYear = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFindLookIn {
xlComments = -4144,
xlFormulas = -4123,
xlValues = -4163,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFixedFormatQuality {
xlQualityMinimum = 1,
xlQualityStandard = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFixedFormatType {
xlTypePDF = 0,
xlTypeXPS = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFormatConditionOperator {
xlBetween = 1,
xlEqual = 3,
@@ -1374,6 +1471,7 @@ declare namespace Excel {
xlNotEqual = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFormatConditionType {
xlAboveAverageCondition = 12,
xlBlanksCondition = 10,
@@ -1391,6 +1489,7 @@ declare namespace Excel {
xlUniqueValues = 8,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFormatFilterTypes {
xlFilterBottom = 0,
xlFilterBottomPercent = 2,
@@ -1398,6 +1497,7 @@ declare namespace Excel {
xlFilterTopPercent = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFormControl {
xlButtonControl = 0,
xlCheckBox = 1,
@@ -1411,6 +1511,7 @@ declare namespace Excel {
xlSpinner = 9,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlFormulaLabel {
xlColumnLabels = 2,
xlMixedLabels = 3,
@@ -1418,16 +1519,19 @@ declare namespace Excel {
xlRowLabels = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlGenerateTableRefs {
xlGenerateTableRefA1 = 0,
xlGenerateTableRefStruct = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlGradientFillType {
xlGradientFillLinear = 0,
xlGradientFillPath = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlHAlign {
xlHAlignCenter = -4108,
xlHAlignCenterAcrossSelection = 7,
@@ -1439,6 +1543,7 @@ declare namespace Excel {
xlHAlignRight = -4152,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlHebrewModes {
xlHebrewFullScript = 0,
xlHebrewMixedAuthorizedScript = 3,
@@ -1446,12 +1551,14 @@ declare namespace Excel {
xlHebrewPartialScript = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlHighlightChangesTime {
xlAllChanges = 2,
xlNotYetReviewed = 3,
xlSinceMyLastSave = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlHtmlType {
xlHtmlCalc = 1,
xlHtmlChart = 3,
@@ -1459,6 +1566,7 @@ declare namespace Excel {
xlHtmlStatic = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlIcon {
xlIcon0Bars = 37,
xlIcon0FilledBoxes = 52,
@@ -1515,6 +1623,7 @@ declare namespace Excel {
xlIconYellowUpInclineArrow = 25,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlIconSet {
xl3Arrows = 1,
xl3ArrowsGray = 2,
@@ -1539,6 +1648,7 @@ declare namespace Excel {
xlCustomSet = -1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlIMEMode {
xlIMEModeAlpha = 8,
xlIMEModeAlphaFull = 7,
@@ -1553,33 +1663,39 @@ declare namespace Excel {
xlIMEModeOn = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlImportDataAs {
xlPivotTableReport = 1,
xlQueryTable = 0,
xlTable = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlInsertFormatOrigin {
xlFormatFromLeftOrAbove = 0,
xlFormatFromRightOrBelow = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlInsertShiftDirection {
xlShiftDown = -4121,
xlShiftToRight = -4161,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLayoutFormType {
xlOutline = 1,
xlTabular = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLayoutRowType {
xlCompactRow = 0,
xlOutlineRow = 2,
xlTabularRow = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLegendPosition {
xlLegendPositionBottom = -4107,
xlLegendPositionCorner = 2,
@@ -1589,6 +1705,7 @@ declare namespace Excel {
xlLegendPositionTop = -4160,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLineStyle {
xlContinuous = 1,
xlDash = -4115,
@@ -1600,6 +1717,7 @@ declare namespace Excel {
xlSlantDashDot = 13,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLink {
xlExcelLinks = 1,
xlOLELinks = 2,
@@ -1607,18 +1725,21 @@ declare namespace Excel {
xlSubscribers = 6,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLinkInfo {
xlEditionDate = 2,
xlLinkInfoStatus = 3,
xlUpdateState = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLinkInfoType {
xlLinkInfoOLELinks = 2,
xlLinkInfoPublishers = 5,
xlLinkInfoSubscribers = 6,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLinkStatus {
xlLinkStatusCopiedValues = 10,
xlLinkStatusIndeterminate = 5,
@@ -1633,11 +1754,13 @@ declare namespace Excel {
xlLinkStatusSourceOpen = 9,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLinkType {
xlLinkTypeExcelLinks = 1,
xlLinkTypeOLELinks = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlListConflict {
xlListConflictDialog = 0,
xlListConflictDiscardAllConflicts = 2,
@@ -1645,6 +1768,7 @@ declare namespace Excel {
xlListConflictRetryAllConflicts = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlListDataType {
xlListDataTypeCheckbox = 9,
xlListDataTypeChoice = 6,
@@ -1661,6 +1785,7 @@ declare namespace Excel {
xlListDataTypeText = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlListObjectSourceType {
xlSrcExternal = 0,
xlSrcQuery = 3,
@@ -1668,6 +1793,7 @@ declare namespace Excel {
xlSrcXml = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLocationInTable {
xlColumnHeader = -4110,
xlColumnItem = 5,
@@ -1680,23 +1806,27 @@ declare namespace Excel {
xlTableBody = 8,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLookAt {
xlPart = 2,
xlWhole = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlLookFor {
xlLookForBlanks = 0,
xlLookForErrors = 1,
xlLookForFormulas = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMailSystem {
xlMAPI = 1,
xlNoMailSystem = 0,
xlPowerTalk = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMarkerStyle {
xlMarkerStyleAutomatic = -4105,
xlMarkerStyleCircle = 8,
@@ -1712,18 +1842,21 @@ declare namespace Excel {
xlMarkerStyleX = -4168,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMeasurementUnits {
xlCentimeters = 1,
xlInches = 0,
xlMillimeters = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMouseButton {
xlNoButton = 0,
xlPrimaryButton = 1,
xlSecondaryButton = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMousePointer {
xlDefault = -4143,
xlIBeam = 3,
@@ -1731,6 +1864,7 @@ declare namespace Excel {
xlWait = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlMSApplication {
xlMicrosoftAccess = 4,
xlMicrosoftFoxPro = 5,
@@ -1741,39 +1875,46 @@ declare namespace Excel {
xlMicrosoftWord = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOartHorizontalOverflow {
xlOartHorizontalOverflowClip = 1,
xlOartHorizontalOverflowOverflow = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOartVerticalOverflow {
xlOartVerticalOverflowClip = 1,
xlOartVerticalOverflowEllipsis = 2,
xlOartVerticalOverflowOverflow = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlObjectSize {
xlFitToPage = 2,
xlFullPage = 3,
xlScreenSize = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOLEType {
xlOLEControl = 2,
xlOLEEmbed = 1,
xlOLELink = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOLEVerb {
xlVerbOpen = 2,
xlVerbPrimary = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOrder {
xlDownThenOver = 1,
xlOverThenDown = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlOrientation {
xlDownward = -4170,
xlHorizontal = -4128,
@@ -1781,22 +1922,26 @@ declare namespace Excel {
xlVertical = -4166,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPageBreak {
xlPageBreakAutomatic = -4105,
xlPageBreakManual = -4135,
xlPageBreakNone = -4142,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPageBreakExtent {
xlPageBreakFull = 1,
xlPageBreakPartial = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPageOrientation {
xlLandscape = 2,
xlPortrait = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPaperSize {
xlPaper10x14 = 16,
xlPaper11x17 = 17,
@@ -1842,6 +1987,7 @@ declare namespace Excel {
xlPaperUser = 256,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlParameterDataType {
xlParamTypeBigInt = -5,
xlParamTypeBinary = -2,
@@ -1866,12 +2012,14 @@ declare namespace Excel {
xlParamTypeWChar = -8,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlParameterType {
xlConstant = 1,
xlPrompt = 0,
xlRange = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPasteSpecialOperation {
xlPasteSpecialOperationAdd = 2,
xlPasteSpecialOperationDivide = 5,
@@ -1880,6 +2028,7 @@ declare namespace Excel {
xlPasteSpecialOperationSubtract = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPasteType {
xlPasteAll = -4104,
xlPasteAllExceptBorders = 7,
@@ -1895,6 +2044,7 @@ declare namespace Excel {
xlPasteValuesAndNumberFormats = 12,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPattern {
xlPatternAutomatic = -4105,
xlPatternChecker = 9,
@@ -1920,6 +2070,7 @@ declare namespace Excel {
xlPatternVertical = -4166,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPhoneticAlignment {
xlPhoneticAlignCenter = 2,
xlPhoneticAlignDistributed = 3,
@@ -1927,6 +2078,7 @@ declare namespace Excel {
xlPhoneticAlignNoControl = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPhoneticCharacterType {
xlHiragana = 2,
xlKatakana = 1,
@@ -1934,11 +2086,13 @@ declare namespace Excel {
xlNoConversion = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPictureAppearance {
xlPrinter = 2,
xlScreen = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPictureConvertorType {
xlBMP = 1,
xlCGM = 7,
@@ -1955,6 +2109,7 @@ declare namespace Excel {
xlWPG = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPieSliceIndex {
xlCenterPoint = 5,
xlInnerCenterPoint = 8,
@@ -1967,11 +2122,13 @@ declare namespace Excel {
xlOuterCounterClockwisePoint = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPieSliceLocation {
xlHorizontalCoordinate = 1,
xlVerticalCoordinate = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotCellType {
xlPivotCellBlankCell = 9,
xlPivotCellCustomSubtotal = 7,
@@ -1985,12 +2142,14 @@ declare namespace Excel {
xlPivotCellValue = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotConditionScope {
xlDataFieldScope = 2,
xlFieldsScope = 1,
xlSelectionScope = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFieldCalculation {
xlDifferenceFrom = 2,
xlIndex = 9,
@@ -2009,12 +2168,14 @@ declare namespace Excel {
xlRunningTotal = 5,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFieldDataType {
xlDate = 2,
xlNumber = -4145,
xlText = -4158,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFieldOrientation {
xlColumnField = 2,
xlDataField = 4,
@@ -2023,11 +2184,13 @@ declare namespace Excel {
xlRowField = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFieldRepeatLabels {
xlDoNotRepeatLabels = 1,
xlRepeatLabels = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFilterType {
xlAfter = 33,
xlAfterOrEqualTo = 34,
@@ -2099,6 +2262,7 @@ declare namespace Excel {
xlYearToDate = 52,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotFormatType {
xlPTClassic = 20,
xlPTNone = 21,
@@ -2124,6 +2288,7 @@ declare namespace Excel {
xlTable9 = 18,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotLineType {
xlPivotLineBlank = 3,
xlPivotLineGrandTotal = 2,
@@ -2131,6 +2296,7 @@ declare namespace Excel {
xlPivotLineSubtotal = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotTableMissingItems {
xlMissingItemsDefault = -1,
xlMissingItemsMax = 32500,
@@ -2138,6 +2304,7 @@ declare namespace Excel {
xlMissingItemsNone = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotTableSourceType {
xlConsolidation = 3,
xlDatabase = 1,
@@ -2146,6 +2313,7 @@ declare namespace Excel {
xlScenario = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPivotTableVersionList {
xlPivotTableVersion10 = 1,
xlPivotTableVersion11 = 2,
@@ -2155,24 +2323,28 @@ declare namespace Excel {
xlPivotTableVersionCurrent = -1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPlacement {
xlFreeFloating = 3,
xlMove = 2,
xlMoveAndSize = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPlatform {
xlMacintosh = 1,
xlMSDOS = 3,
xlWindows = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPortugueseReform {
xlPortugueseBoth = 3,
xlPortuguesePostReform = 2,
xlPortuguesePreReform = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPrintErrors {
xlPrintErrorsBlank = 1,
xlPrintErrorsDash = 2,
@@ -2180,36 +2352,42 @@ declare namespace Excel {
xlPrintErrorsNA = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPrintLocation {
xlPrintInPlace = 16,
xlPrintNoComments = -4142,
xlPrintSheetEnd = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPriority {
xlPriorityHigh = -4127,
xlPriorityLow = -4134,
xlPriorityNormal = -4143,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPropertyDisplayedIn {
xlDisplayPropertyInPivotTable = 1,
xlDisplayPropertyInPivotTableAndTooltip = 3,
xlDisplayPropertyInTooltip = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlProtectedViewCloseReason {
xlProtectedViewCloseEdit = 1,
xlProtectedViewCloseForced = 2,
xlProtectedViewCloseNormal = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlProtectedViewWindowState {
xlProtectedViewWindowMaximized = 2,
xlProtectedViewWindowMinimized = 1,
xlProtectedViewWindowNormal = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlPTSelectionMode {
xlBlanks = 4,
xlButton = 15,
@@ -2220,6 +2398,7 @@ declare namespace Excel {
xlOrigin = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlQueryType {
xlADORecordset = 7,
xlDAORecordset = 2,
@@ -2229,6 +2408,7 @@ declare namespace Excel {
xlWebQuery = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRangeAutoFormat {
xlRangeAutoFormat3DEffects1 = 13,
xlRangeAutoFormat3DEffects2 = 14,
@@ -2275,17 +2455,20 @@ declare namespace Excel {
xlRangeAutoFormatTable9 = 40,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRangeValueDataType {
xlRangeValueDefault = 10,
xlRangeValueMSPersistXML = 12,
xlRangeValueXMLSpreadsheet = 11,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlReferenceStyle {
xlA1 = 1,
xlR1C1 = -4150,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlReferenceType {
xlAbsolute = 1,
xlAbsRowRelColumn = 2,
@@ -2293,6 +2476,7 @@ declare namespace Excel {
xlRelRowAbsColumn = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRemoveDocInfoType {
xlRDIAll = 99,
xlRDIComments = 1,
@@ -2313,6 +2497,7 @@ declare namespace Excel {
xlRDISendForReview = 7,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRgbColor {
rgbAliceBlue = 16775408,
rgbAntiqueWhite = 14150650,
@@ -2460,28 +2645,33 @@ declare namespace Excel {
rgbYellowGreen = 3329434,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRobustConnect {
xlAlways = 1,
xlAsRequired = 0,
xlNever = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRoutingSlipDelivery {
xlAllAtOnce = 2,
xlOneAfterAnother = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRoutingSlipStatus {
xlNotYetRouted = 0,
xlRoutingComplete = 2,
xlRoutingInProgress = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRowCol {
xlColumns = 2,
xlRows = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlRunAutoMacro {
xlAutoActivate = 3,
xlAutoClose = 2,
@@ -2489,43 +2679,51 @@ declare namespace Excel {
xlAutoOpen = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSaveAction {
xlDoNotSaveChanges = 2,
xlSaveChanges = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSaveAsAccessMode {
xlExclusive = 3,
xlNoChange = 1,
xlShared = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSaveConflictResolution {
xlLocalSessionChanges = 2,
xlOtherSessionChanges = 3,
xlUserResolution = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlScaleType {
xlScaleLinear = -4132,
xlScaleLogarithmic = -4133,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSearchDirection {
xlNext = 1,
xlPrevious = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSearchOrder {
xlByColumns = 2,
xlByRows = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSearchWithin {
xlWithinSheet = 1,
xlWithinWorkbook = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSheetType {
xlChart = -4109,
xlDialogSheet = -4116,
@@ -2534,29 +2732,34 @@ declare namespace Excel {
xlWorksheet = -4167,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSheetVisibility {
xlSheetHidden = 0,
xlSheetVeryHidden = 2,
xlSheetVisible = -1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSizeRepresents {
xlSizeIsArea = 1,
xlSizeIsWidth = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSlicerCrossFilterType {
xlSlicerCrossFilterShowItemsWithDataAtTop = 2,
xlSlicerCrossFilterShowItemsWithNoData = 3,
xlSlicerNoCrossFilter = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSlicerSort {
xlSlicerSortAscending = 2,
xlSlicerSortDataSourceOrder = 1,
xlSlicerSortDescending = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSmartTagControlType {
xlSmartTagControlActiveX = 13,
xlSmartTagControlButton = 6,
@@ -2574,27 +2777,32 @@ declare namespace Excel {
xlSmartTagControlTextbox = 10,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSmartTagDisplayMode {
xlButtonOnly = 2,
xlDisplayNone = 1,
xlIndicatorAndButton = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortDataOption {
xlSortNormal = 0,
xlSortTextAsNumbers = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortMethod {
xlPinYin = 1,
xlStroke = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortMethodOld {
xlCodePage = 2,
xlSyllabary = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortOn {
xlSortOnCellColor = 1,
xlSortOnFontColor = 2,
@@ -2602,21 +2810,25 @@ declare namespace Excel {
xlSortOnValues = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortOrder {
xlAscending = 1,
xlDescending = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortOrientation {
xlSortColumns = 1,
xlSortRows = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSortType {
xlSortLabels = 2,
xlSortValues = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSourceType {
xlSourceAutoFilter = 3,
xlSourceChart = 5,
@@ -2628,35 +2840,41 @@ declare namespace Excel {
xlSourceWorkbook = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSpanishModes {
xlSpanishTuteoAndVoseo = 1,
xlSpanishTuteoOnly = 0,
xlSpanishVoseoOnly = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSparklineRowCol {
xlSparklineColumnsSquare = 2,
xlSparklineNonSquare = 0,
xlSparklineRowsSquare = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSparkScale {
xlSparkScaleCustom = 3,
xlSparkScaleGroup = 1,
xlSparkScaleSingle = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSparkType {
xlSparkColumn = 2,
xlSparkColumnStacked100 = 3,
xlSparkLine = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSpeakDirection {
xlSpeakByColumns = 1,
xlSpeakByRows = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSpecialCellsValue {
xlErrors = 16,
xlLogical = 4,
@@ -2664,6 +2882,7 @@ declare namespace Excel {
xlTextValues = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlStdColorScale {
xlColorScaleBlackWhite = 3,
xlColorScaleGYR = 2,
@@ -2671,31 +2890,37 @@ declare namespace Excel {
xlColorScaleWhiteBlack = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSubscribeToFormat {
xlSubscribeToPicture = -4147,
xlSubscribeToText = -4158,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSubtototalLocationType {
xlAtBottom = 2,
xlAtTop = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSummaryColumn {
xlSummaryOnLeft = -4131,
xlSummaryOnRight = -4152,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSummaryReportType {
xlStandardSummary = 1,
xlSummaryPivotTable = -4148,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlSummaryRow {
xlSummaryAbove = 0,
xlSummaryBelow = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTableStyleElementType {
xlBlankRow = 19,
xlColumnStripe1 = 7,
@@ -2737,27 +2962,32 @@ declare namespace Excel {
xlWholeTable = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTabPosition {
xlTabPositionFirst = 0,
xlTabPositionLast = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTextParsingType {
xlDelimited = 1,
xlFixedWidth = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTextQualifier {
xlTextQualifierDoubleQuote = 1,
xlTextQualifierNone = -4142,
xlTextQualifierSingleQuote = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTextVisualLayoutType {
xlTextVisualLTR = 1,
xlTextVisualRTL = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlThemeColor {
xlThemeColorAccent1 = 5,
xlThemeColorAccent2 = 6,
@@ -2773,17 +3003,20 @@ declare namespace Excel {
xlThemeColorLight2 = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlThemeFont {
xlThemeFontMajor = 1,
xlThemeFontMinor = 2,
xlThemeFontNone = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlThreadMode {
xlThreadModeAutomatic = 0,
xlThreadModeManual = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTickLabelOrientation {
xlTickLabelOrientationAutomatic = -4105,
xlTickLabelOrientationDownward = -4170,
@@ -2792,6 +3025,7 @@ declare namespace Excel {
xlTickLabelOrientationVertical = -4166,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTickLabelPosition {
xlTickLabelPositionHigh = -4127,
xlTickLabelPositionLow = -4134,
@@ -2799,6 +3033,7 @@ declare namespace Excel {
xlTickLabelPositionNone = -4142,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTickMark {
xlTickMarkCross = 4,
xlTickMarkInside = 2,
@@ -2806,6 +3041,7 @@ declare namespace Excel {
xlTickMarkOutside = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTimePeriods {
xlLast7Days = 2,
xlLastMonth = 5,
@@ -2819,12 +3055,14 @@ declare namespace Excel {
xlYesterday = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTimeUnit {
xlDays = 0,
xlMonths = 1,
xlYears = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlToolbarProtection {
xlNoButtonChanges = 1,
xlNoChanges = 4,
@@ -2833,11 +3071,13 @@ declare namespace Excel {
xlToolbarProtectionNone = -4143,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTopBottom {
xlTop10Bottom = 0,
xlTop10Top = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTotalsCalculation {
xlTotalsCalculationAverage = 2,
xlTotalsCalculationCount = 3,
@@ -2851,6 +3091,7 @@ declare namespace Excel {
xlTotalsCalculationVar = 8,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlTrendlineType {
xlExponential = 5,
xlLinear = -4132,
@@ -2860,6 +3101,7 @@ declare namespace Excel {
xlPower = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlUnderlineStyle {
xlUnderlineStyleDouble = -4119,
xlUnderlineStyleDoubleAccounting = 5,
@@ -2868,12 +3110,14 @@ declare namespace Excel {
xlUnderlineStyleSingleAccounting = 4,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlUpdateLinks {
xlUpdateLinksAlways = 3,
xlUpdateLinksNever = 2,
xlUpdateLinksUserSetting = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlVAlign {
xlVAlignBottom = -4107,
xlVAlignCenter = -4108,
@@ -2882,6 +3126,7 @@ declare namespace Excel {
xlVAlignTop = -4160,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWBATemplate {
xlWBATChart = -4109,
xlWBATExcel4IntlMacroSheet = 4,
@@ -2889,24 +3134,28 @@ declare namespace Excel {
xlWBATWorksheet = -4167,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWebFormatting {
xlWebFormattingAll = 1,
xlWebFormattingNone = 3,
xlWebFormattingRTF = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWebSelectionType {
xlAllTables = 2,
xlEntirePage = 1,
xlSpecifiedTables = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWindowState {
xlMaximized = -4137,
xlMinimized = -4140,
xlNormal = -4143,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWindowType {
xlChartAsWindow = 5,
xlChartInPlace = 4,
@@ -2915,29 +3164,34 @@ declare namespace Excel {
xlWorkbook = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlWindowView {
xlNormalView = 1,
xlPageBreakPreview = 2,
xlPageLayoutView = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlXLMMacroType {
xlCommand = 2,
xlFunction = 1,
xlNotXLM = 3,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlXmlExportResult {
xlXmlExportSuccess = 0,
xlXmlExportValidationFailed = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlXmlImportResult {
xlXmlImportElementsTruncated = 1,
xlXmlImportSuccess = 0,
xlXmlImportValidationFailed = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlXmlLoadOption {
xlXmlLoadImportToList = 2,
xlXmlLoadMapXml = 3,
@@ -2945,6 +3199,7 @@ declare namespace Excel {
xlXmlLoadPromptUser = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum XlYesNoGuess {
xlGuess = 0,
xlNo = 2,
@@ -6547,7 +6802,7 @@ declare namespace Excel {
/** @param Excel.XlSearchDirection [SearchDirection=1] */
Find(What: any, After?: any, LookIn?: XlFindLookIn, LookAt?: XlLookAt, SearchOrder?: XlSearchOrder, SearchDirection?: XlSearchDirection, MatchCase?: boolean,
- MatchByte?: boolean, SearchFormat?: any): Range;
+ MatchByte?: boolean, SearchFormat?: any): Range;
FindNext(After?: any): Range;
FindPrevious(After?: any): Range;
readonly Font: Font;
@@ -7049,7 +7304,7 @@ declare namespace Excel {
AddLabel(Orientation: Office.MsoTextOrientation, Left: number, Top: number, Width: number, Height: number): Shape;
AddLine(BeginX: number, BeginY: number, EndX: number, EndY: number): Shape;
AddOLEObject(ClassType?: any, Filename?: any, Link?: any, DisplayAsIcon?: any, IconFileName?: any, IconIndex?: any, IconLabel?: any, Left?: any, Top?: any, Width?: any,
- Height?: any): Shape;
+ Height?: any): Shape;
AddPicture(Filename: string, LinkToFile: Office.MsoTriState, SaveWithDocument: Office.MsoTriState, Left: number, Top: number, Width: number, Height: number): Shape;
AddPolyline(SafeArrayOfPoints: any): Shape;
AddShape(Type: Office.MsoAutoShapeType, Left: number, Top: number, Width: number, Height: number): Shape;
@@ -9243,217 +9498,221 @@ declare namespace Excel {
interface ActiveXObject {
on(
obj: Excel.Application, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.Application, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.Application, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.Application, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.Application, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.Application, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Application, parameter: {pctinfo: number}) => void): void;
+ this: Excel.Application, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.Application, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Application, parameter: { pctinfo: number }) => void): void;
on(
obj: Excel.Application, event: 'Invoke', argNames: Excel.EventHelperTypes.Application_Invoke_ArgNames, handler: (
this: Excel.Application, parameter: Excel.EventHelperTypes.Application_Invoke_Parameter) => void): void;
on(
obj: Excel.Application, event: 'NewWorkbook' | 'WorkbookActivate' | 'WorkbookAddinInstall' | 'WorkbookAddinUninstall' | 'WorkbookDeactivate' | 'WorkbookOpen',
- argNames: ['Wb'], handler: (this: Excel.Application, parameter: {readonly Wb: Excel.Workbook}) => void): void;
+ argNames: ['Wb'], handler: (this: Excel.Application, parameter: { readonly Wb: Excel.Workbook }) => void): void;
on(
obj: Excel.Application, event: 'ProtectedViewWindowActivate' | 'ProtectedViewWindowDeactivate' | 'ProtectedViewWindowOpen' | 'ProtectedViewWindowResize',
- argNames: ['Pvw'], handler: (this: Excel.Application, parameter: {readonly Pvw: Excel.ProtectedViewWindow}) => void): void;
+ argNames: ['Pvw'], handler: (this: Excel.Application, parameter: { readonly Pvw: Excel.ProtectedViewWindow }) => void): void;
on(
obj: Excel.Application, event: 'ProtectedViewWindowBeforeClose', argNames: ['Pvw', 'Reason', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Pvw: Excel.ProtectedViewWindow, readonly Reason: Excel.XlProtectedViewCloseReason, Cancel: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Pvw: Excel.ProtectedViewWindow, readonly Reason: Excel.XlProtectedViewCloseReason, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'ProtectedViewWindowBeforeEdit', argNames: ['Pvw', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Pvw: Excel.ProtectedViewWindow, Cancel: boolean}) => void): void;
- on(obj: Excel.Application, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Application, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
- on(obj: Excel.Application, event: 'SheetActivate' | 'SheetCalculate' | 'SheetDeactivate', argNames: ['Sh'], handler: (this: Excel.Application, parameter: {readonly Sh: any}) => void): void;
+ this: Excel.Application, parameter: { readonly Pvw: Excel.ProtectedViewWindow, Cancel: boolean }) => void): void;
+ on(obj: Excel.Application, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Application, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
+ on(obj: Excel.Application, event: 'SheetActivate' | 'SheetCalculate' | 'SheetDeactivate', argNames: ['Sh'], handler: (this: Excel.Application, parameter: { readonly Sh: any }) => void): void;
on(
obj: Excel.Application, event: 'SheetBeforeDoubleClick' | 'SheetBeforeRightClick', argNames: ['Sh', 'Target', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly Target: Excel.Range, Cancel: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly Target: Excel.Range, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'SheetChange' | 'SheetSelectionChange', argNames: ['Sh', 'Target'], handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly Target: Excel.Range}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly Target: Excel.Range }) => void): void;
on(
obj: Excel.Application, event: 'SheetFollowHyperlink', argNames: ['Sh', 'Target'], handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly Target: Excel.Hyperlink}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly Target: Excel.Hyperlink }) => void): void;
on(
obj: Excel.Application, event: 'SheetPivotTableAfterValueChange', argNames: ['Sh', 'TargetPivotTable', 'TargetRange'], handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range }) => void): void;
on(
obj: Excel.Application, event: 'SheetPivotTableBeforeAllocateChanges' | 'SheetPivotTableBeforeCommitChanges',
argNames: ['Sh', 'TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd', 'Cancel'], handler: (
this: Excel.Application,
- parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean}) => void): void;
+ parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'SheetPivotTableBeforeDiscardChanges', argNames: ['Sh', 'TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd'],
handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number }) => void): void;
on(
obj: Excel.Application, event: 'SheetPivotTableUpdate', argNames: ['Sh', 'Target'], handler: (
- this: Excel.Application, parameter: {readonly Sh: any, readonly Target: Excel.PivotTable}) => void): void;
+ this: Excel.Application, parameter: { readonly Sh: any, readonly Target: Excel.PivotTable }) => void): void;
on(
obj: Excel.Application, event: 'WindowActivate' | 'WindowDeactivate' | 'WindowResize', argNames: ['Wb', 'Wn'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Wn: Excel.Window}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Wn: Excel.Window }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookAfterSave', argNames: ['Wb', 'Success'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Success: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Success: boolean }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookAfterXmlExport', argNames: ['Wb', 'Map', 'Url', 'Result'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, readonly Result: Excel.XlXmlExportResult}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, readonly Result: Excel.XlXmlExportResult }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookAfterXmlImport', argNames: ['Wb', 'Map', 'IsRefresh', 'Result'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly IsRefresh: boolean, readonly Result: Excel.XlXmlImportResult}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly IsRefresh: boolean, readonly Result: Excel.XlXmlImportResult }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookBeforeClose' | 'WorkbookBeforePrint', argNames: ['Wb', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, Cancel: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookBeforeSave', argNames: ['Wb', 'SaveAsUI', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly SaveAsUI: boolean, Cancel: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly SaveAsUI: boolean, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookBeforeXmlExport', argNames: ['Wb', 'Map', 'Url', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, Cancel: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, Cancel: boolean }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookBeforeXmlImport', argNames: ['Wb', 'Map', 'Url', 'IsRefresh', 'Cancel'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, readonly IsRefresh: boolean, Cancel: boolean}) => void): void;
- on(obj: Excel.Application, event: 'WorkbookNewChart', argNames: ['Wb', 'Ch'], handler: (this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Ch: Excel.Chart}) => void): void;
- on(obj: Excel.Application, event: 'WorkbookNewSheet', argNames: ['Wb', 'Sh'], handler: (this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Sh: any}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Map: Excel.XmlMap, readonly Url: string, readonly IsRefresh: boolean, Cancel: boolean }) => void): void;
+ on(obj: Excel.Application, event: 'WorkbookNewChart', argNames: ['Wb', 'Ch'], handler: (
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Ch: Excel.Chart }) => void): void;
+ on(obj: Excel.Application, event: 'WorkbookNewSheet', argNames: ['Wb', 'Sh'], handler: (this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Sh: any }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookPivotTableCloseConnection' | 'WorkbookPivotTableOpenConnection', argNames: ['Wb', 'Target'],
- handler: (this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Target: Excel.PivotTable}) => void): void;
+ handler: (this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Target: Excel.PivotTable }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookRowsetComplete', argNames: ['Wb', 'Description', 'Sheet', 'Success'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly Description: string, readonly Sheet: string, readonly Success: boolean}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly Description: string, readonly Sheet: string, readonly Success: boolean }) => void): void;
on(
obj: Excel.Application, event: 'WorkbookSync', argNames: ['Wb', 'SyncEventType'], handler: (
- this: Excel.Application, parameter: {readonly Wb: Excel.Workbook, readonly SyncEventType: Office.MsoSyncEventType}) => void): void;
+ this: Excel.Application, parameter: { readonly Wb: Excel.Workbook, readonly SyncEventType: Office.MsoSyncEventType }) => void): void;
on(
obj: Excel.Chart, event: 'BeforeDoubleClick', argNames: ['ElementID', 'Arg1', 'Arg2', 'Cancel'], handler: (
- this: Excel.Chart, parameter: {readonly ElementID: number, readonly Arg1: number, readonly Arg2: number, Cancel: boolean}) => void): void;
- on(obj: Excel.Chart, event: 'BeforeRightClick', argNames: ['Cancel'], handler: (this: Excel.Chart, parameter: {Cancel: boolean}) => void): void;
+ this: Excel.Chart, parameter: { readonly ElementID: number, readonly Arg1: number, readonly Arg2: number, Cancel: boolean }) => void): void;
+ on(obj: Excel.Chart, event: 'BeforeRightClick', argNames: ['Cancel'], handler: (this: Excel.Chart, parameter: { Cancel: boolean }) => void): void;
on(
obj: Excel.Chart, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.Chart, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.Chart, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.Chart, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.Chart, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.Chart, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Chart, parameter: {pctinfo: number}) => void): void;
+ this: Excel.Chart, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.Chart, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Chart, parameter: { pctinfo: number }) => void): void;
on(obj: Excel.Chart, event: 'Invoke', argNames: Excel.EventHelperTypes.Chart_Invoke_ArgNames, handler: (this: Excel.Chart, parameter: Excel.EventHelperTypes.Chart_Invoke_Parameter) => void): void;
on(
obj: Excel.Chart, event: 'MouseDown' | 'MouseMove' | 'MouseUp', argNames: ['Button', 'Shift', 'x', 'y'], handler: (
- this: Excel.Chart, parameter: {readonly Button: number, readonly Shift: number, readonly x: number, readonly y: number}) => void): void;
- on(obj: Excel.Chart, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Chart, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
+ this: Excel.Chart, parameter: { readonly Button: number, readonly Shift: number, readonly x: number, readonly y: number }) => void): void;
+ on(obj: Excel.Chart, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Chart, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
on(
obj: Excel.Chart, event: 'Select', argNames: ['ElementID', 'Arg1', 'Arg2'], handler: (
- this: Excel.Chart, parameter: {readonly ElementID: number, readonly Arg1: number, readonly Arg2: number}) => void): void;
+ this: Excel.Chart, parameter: { readonly ElementID: number, readonly Arg1: number, readonly Arg2: number }) => void): void;
on(
obj: Excel.Chart, event: 'SeriesChange', argNames: ['SeriesIndex', 'PointIndex'], handler: (
- this: Excel.Chart, parameter: {readonly SeriesIndex: number, readonly PointIndex: number}) => void): void;
+ this: Excel.Chart, parameter: { readonly SeriesIndex: number, readonly PointIndex: number }) => void): void;
on(
obj: Excel.OLEObject, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.OLEObject, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.OLEObject, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.OLEObject, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.OLEObject, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.OLEObject, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.OLEObject, parameter: {pctinfo: number}) => void): void;
+ this: Excel.OLEObject, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.OLEObject, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.OLEObject, parameter: { pctinfo: number }) => void): void;
on(
obj: Excel.OLEObject, event: 'Invoke', argNames: Excel.EventHelperTypes.OLEObject_Invoke_ArgNames, handler: (
this: Excel.OLEObject, parameter: Excel.EventHelperTypes.OLEObject_Invoke_Parameter) => void): void;
- on(obj: Excel.OLEObject, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.OLEObject, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
- on(obj: Excel.QueryTable, event: 'AfterRefresh', argNames: ['Success'], handler: (this: Excel.QueryTable, parameter: {readonly Success: boolean}) => void): void;
- on(obj: Excel.QueryTable, event: 'BeforeRefresh', argNames: ['Cancel'], handler: (this: Excel.QueryTable, parameter: {Cancel: boolean}) => void): void;
+ on(obj: Excel.OLEObject, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.OLEObject, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
+ on(obj: Excel.QueryTable, event: 'AfterRefresh', argNames: ['Success'], handler: (this: Excel.QueryTable, parameter: { readonly Success: boolean }) => void): void;
+ on(obj: Excel.QueryTable, event: 'BeforeRefresh', argNames: ['Cancel'], handler: (this: Excel.QueryTable, parameter: { Cancel: boolean }) => void): void;
on(
obj: Excel.QueryTable, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.QueryTable, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.QueryTable, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.QueryTable, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.QueryTable, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.QueryTable, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.QueryTable, parameter: {pctinfo: number}) => void): void;
+ this: Excel.QueryTable, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.QueryTable, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.QueryTable, parameter: { pctinfo: number }) => void): void;
on(
obj: Excel.QueryTable, event: 'Invoke', argNames: Excel.EventHelperTypes.QueryTable_Invoke_ArgNames, handler: (
this: Excel.QueryTable, parameter: Excel.EventHelperTypes.QueryTable_Invoke_Parameter) => void): void;
- on(obj: Excel.QueryTable, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.QueryTable, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
- on(obj: Excel.Workbook, event: 'AfterSave', argNames: ['Success'], handler: (this: Excel.Workbook, parameter: {readonly Success: boolean}) => void): void;
+ on(obj: Excel.QueryTable, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.QueryTable, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
+ on(obj: Excel.Workbook, event: 'AfterSave', argNames: ['Success'], handler: (this: Excel.Workbook, parameter: { readonly Success: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'AfterXmlExport', argNames: ['Map', 'Url', 'Result'], handler: (
- this: Excel.Workbook, parameter: {readonly Map: Excel.XmlMap, readonly Url: string, readonly Result: Excel.XlXmlExportResult}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Map: Excel.XmlMap, readonly Url: string, readonly Result: Excel.XlXmlExportResult }) => void): void;
on(
obj: Excel.Workbook, event: 'AfterXmlImport', argNames: ['Map', 'IsRefresh', 'Result'], handler: (
- this: Excel.Workbook, parameter: {readonly Map: Excel.XmlMap, readonly IsRefresh: boolean, readonly Result: Excel.XlXmlImportResult}) => void): void;
- on(obj: Excel.Workbook, event: 'BeforeClose' | 'BeforePrint', argNames: ['Cancel'], handler: (this: Excel.Workbook, parameter: {Cancel: boolean}) => void): void;
- on(obj: Excel.Workbook, event: 'BeforeSave', argNames: ['SaveAsUI', 'Cancel'], handler: (this: Excel.Workbook, parameter: {readonly SaveAsUI: boolean, Cancel: boolean}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Map: Excel.XmlMap, readonly IsRefresh: boolean, readonly Result: Excel.XlXmlImportResult }) => void): void;
+ on(obj: Excel.Workbook, event: 'BeforeClose' | 'BeforePrint', argNames: ['Cancel'], handler: (this: Excel.Workbook, parameter: { Cancel: boolean }) => void): void;
+ on(obj: Excel.Workbook, event: 'BeforeSave', argNames: ['SaveAsUI', 'Cancel'], handler: (this: Excel.Workbook, parameter: { readonly SaveAsUI: boolean, Cancel: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'BeforeXmlExport', argNames: ['Map', 'Url', 'Cancel'], handler: (
- this: Excel.Workbook, parameter: {readonly Map: Excel.XmlMap, readonly Url: string, Cancel: boolean}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Map: Excel.XmlMap, readonly Url: string, Cancel: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'BeforeXmlImport', argNames: ['Map', 'Url', 'IsRefresh', 'Cancel'], handler: (
- this: Excel.Workbook, parameter: {readonly Map: Excel.XmlMap, readonly Url: string, readonly IsRefresh: boolean, Cancel: boolean}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Map: Excel.XmlMap, readonly Url: string, readonly IsRefresh: boolean, Cancel: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.Workbook, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.Workbook, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.Workbook, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.Workbook, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.Workbook, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Workbook, parameter: {pctinfo: number}) => void): void;
+ this: Excel.Workbook, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.Workbook, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Workbook, parameter: { pctinfo: number }) => void): void;
on(
obj: Excel.Workbook, event: 'Invoke', argNames: Excel.EventHelperTypes.Workbook_Invoke_ArgNames, handler: (
this: Excel.Workbook, parameter: Excel.EventHelperTypes.Workbook_Invoke_Parameter) => void): void;
- on(obj: Excel.Workbook, event: 'NewChart', argNames: ['Ch'], handler: (this: Excel.Workbook, parameter: {readonly Ch: Excel.Chart}) => void): void;
- on(obj: Excel.Workbook, event: 'NewSheet' | 'SheetActivate' | 'SheetCalculate' | 'SheetDeactivate', argNames: ['Sh'], handler: (this: Excel.Workbook, parameter: {readonly Sh: any}) => void): void;
+ on(obj: Excel.Workbook, event: 'NewChart', argNames: ['Ch'], handler: (this: Excel.Workbook, parameter: { readonly Ch: Excel.Chart }) => void): void;
+ on(obj: Excel.Workbook, event: 'NewSheet' | 'SheetActivate' | 'SheetCalculate' | 'SheetDeactivate', argNames: ['Sh'], handler: (
+ this: Excel.Workbook, parameter: { readonly Sh: any }) => void): void;
on(
obj: Excel.Workbook, event: 'PivotTableCloseConnection' | 'PivotTableOpenConnection', argNames: ['Target'], handler: (
- this: Excel.Workbook, parameter: {readonly Target: Excel.PivotTable}) => void): void;
- on(obj: Excel.Workbook, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Workbook, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Target: Excel.PivotTable }) => void): void;
+ on(obj: Excel.Workbook, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Workbook, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
on(
obj: Excel.Workbook, event: 'RowsetComplete', argNames: ['Description', 'Sheet', 'Success'], handler: (
- this: Excel.Workbook, parameter: {readonly Description: string, readonly Sheet: string, readonly Success: boolean}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Description: string, readonly Sheet: string, readonly Success: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'SheetBeforeDoubleClick' | 'SheetBeforeRightClick', argNames: ['Sh', 'Target', 'Cancel'], handler: (
- this: Excel.Workbook, parameter: {readonly Sh: any, readonly Target: Excel.Range, Cancel: boolean}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly Target: Excel.Range, Cancel: boolean }) => void): void;
on(
obj: Excel.Workbook, event: 'SheetChange' | 'SheetSelectionChange', argNames: ['Sh', 'Target'], handler: (
- this: Excel.Workbook, parameter: {readonly Sh: any, readonly Target: Excel.Range}) => void): void;
- on(obj: Excel.Workbook, event: 'SheetFollowHyperlink', argNames: ['Sh', 'Target'], handler: (this: Excel.Workbook, parameter: {readonly Sh: any, readonly Target: Excel.Hyperlink}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly Target: Excel.Range }) => void): void;
+ on(obj: Excel.Workbook, event: 'SheetFollowHyperlink', argNames: ['Sh', 'Target'], handler: (
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly Target: Excel.Hyperlink }) => void): void;
on(
obj: Excel.Workbook, event: 'SheetPivotTableAfterValueChange', argNames: ['Sh', 'TargetPivotTable', 'TargetRange'], handler: (
- this: Excel.Workbook, parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range }) => void): void;
on(
obj: Excel.Workbook, event: 'SheetPivotTableBeforeAllocateChanges' | 'SheetPivotTableBeforeCommitChanges',
argNames: ['Sh', 'TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd', 'Cancel'], handler: (
this: Excel.Workbook,
- parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean}) => void): void;
+ parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean }) => void): void;
on(
- obj: Excel.Workbook, event: 'SheetPivotTableBeforeDiscardChanges', argNames: ['Sh', 'TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd'],
- handler: (this: Excel.Workbook, parameter: {readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number}) => void): void;
+ obj: Excel.Workbook, event: 'SheetPivotTableBeforeDiscardChanges', argNames: ['Sh', 'TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd'], handler: (
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number }) => void): void;
on(
obj: Excel.Workbook, event: 'SheetPivotTableChangeSync' | 'SheetPivotTableUpdate', argNames: ['Sh', 'Target'], handler: (
- this: Excel.Workbook, parameter: {readonly Sh: any, readonly Target: Excel.PivotTable}) => void): void;
- on(obj: Excel.Workbook, event: 'Sync', argNames: ['SyncEventType'], handler: (this: Excel.Workbook, parameter: {readonly SyncEventType: Office.MsoSyncEventType}) => void): void;
- on(obj: Excel.Workbook, event: 'WindowActivate' | 'WindowDeactivate' | 'WindowResize', argNames: ['Wn'], handler: (this: Excel.Workbook, parameter: {readonly Wn: Excel.Window}) => void): void;
+ this: Excel.Workbook, parameter: { readonly Sh: any, readonly Target: Excel.PivotTable }) => void): void;
+ on(obj: Excel.Workbook, event: 'Sync', argNames: ['SyncEventType'], handler: (this: Excel.Workbook, parameter: { readonly SyncEventType: Office.MsoSyncEventType }) => void): void;
+ on(obj: Excel.Workbook, event: 'WindowActivate' | 'WindowDeactivate' | 'WindowResize', argNames: ['Wn'], handler: (this: Excel.Workbook, parameter: { readonly Wn: Excel.Window }) => void): void;
on(
obj: Excel.Worksheet, event: 'BeforeDoubleClick' | 'BeforeRightClick', argNames: ['Target', 'Cancel'], handler: (
- this: Excel.Worksheet, parameter: {readonly Target: Excel.Range, Cancel: boolean}) => void): void;
- on(obj: Excel.Worksheet, event: 'Change' | 'SelectionChange', argNames: ['Target'], handler: (this: Excel.Worksheet, parameter: {readonly Target: Excel.Range}) => void): void;
- on(obj: Excel.Worksheet, event: 'FollowHyperlink', argNames: ['Target'], handler: (this: Excel.Worksheet, parameter: {readonly Target: Excel.Hyperlink}) => void): void;
+ this: Excel.Worksheet, parameter: { readonly Target: Excel.Range, Cancel: boolean }) => void): void;
+ on(obj: Excel.Worksheet, event: 'Change' | 'SelectionChange', argNames: ['Target'], handler: (this: Excel.Worksheet, parameter: { readonly Target: Excel.Range }) => void): void;
+ on(obj: Excel.Worksheet, event: 'FollowHyperlink', argNames: ['Target'], handler: (this: Excel.Worksheet, parameter: { readonly Target: Excel.Hyperlink }) => void): void;
on(
obj: Excel.Worksheet, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
- this: Excel.Worksheet, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ this: Excel.Worksheet, parameter: { readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number }) => void): void;
on(
obj: Excel.Worksheet, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
- this: Excel.Worksheet, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
- on(obj: Excel.Worksheet, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Worksheet, parameter: {pctinfo: number}) => void): void;
+ this: Excel.Worksheet, parameter: { readonly itinfo: number, readonly lcid: number, pptinfo: undefined }) => void): void;
+ on(obj: Excel.Worksheet, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: Excel.Worksheet, parameter: { pctinfo: number }) => void): void;
on(
obj: Excel.Worksheet, event: 'Invoke', argNames: Excel.EventHelperTypes.Worksheet_Invoke_ArgNames, handler: (
this: Excel.Worksheet, parameter: Excel.EventHelperTypes.Worksheet_Invoke_Parameter) => void): void;
on(
obj: Excel.Worksheet, event: 'PivotTableAfterValueChange', argNames: ['TargetPivotTable', 'TargetRange'], handler: (
- this: Excel.Worksheet, parameter: {readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range}) => void): void;
+ this: Excel.Worksheet, parameter: { readonly TargetPivotTable: Excel.PivotTable, readonly TargetRange: Excel.Range }) => void): void;
on(
obj: Excel.Worksheet, event: 'PivotTableBeforeAllocateChanges' | 'PivotTableBeforeCommitChanges',
argNames: ['TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd', 'Cancel'], handler: (
- this: Excel.Worksheet, parameter: {readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean}) => void): void;
+ this: Excel.Worksheet, parameter: { readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number, Cancel: boolean }) => void): void;
on(
obj: Excel.Worksheet, event: 'PivotTableBeforeDiscardChanges', argNames: ['TargetPivotTable', 'ValueChangeStart', 'ValueChangeEnd'],
- handler: (this: Excel.Worksheet, parameter: {readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number}) => void): void;
- on(obj: Excel.Worksheet, event: 'PivotTableChangeSync' | 'PivotTableUpdate', argNames: ['Target'], handler: (this: Excel.Worksheet, parameter: {readonly Target: Excel.PivotTable}) => void): void;
- on(obj: Excel.Worksheet, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Worksheet, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
+ handler: (this: Excel.Worksheet, parameter: { readonly TargetPivotTable: Excel.PivotTable, readonly ValueChangeStart: number, readonly ValueChangeEnd: number }) => void): void;
+ on(obj: Excel.Worksheet, event: 'PivotTableChangeSync' | 'PivotTableUpdate', argNames: ['Target'], handler: (
+ this: Excel.Worksheet, parameter: { readonly Target: Excel.PivotTable }) => void): void;
+ on(obj: Excel.Worksheet, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (this: Excel.Worksheet, parameter: { readonly riid: stdole.GUID, ppvObj: undefined }) => void): void;
on(obj: Excel.Application, event: 'AddRef' | 'AfterCalculate' | 'Release', handler: (this: Excel.Application, parameter: {}) => void): void;
on(obj: Excel.Chart, event: 'Activate' | 'AddRef' | 'Calculate' | 'Deactivate' | 'DragOver' | 'DragPlot' | 'Release' | 'Resize', handler: (this: Excel.Chart, parameter: {}) => void): void;
on(obj: Excel.OLEObject, event: 'AddRef' | 'GotFocus' | 'LostFocus' | 'Release', handler: (this: Excel.OLEObject, parameter: {}) => void): void;
@@ -9464,7 +9723,7 @@ interface ActiveXObject {
set(obj: Excel.Workbook, propertyName: 'Colors', parameterTypes: [any], newValue: any): void;
set(obj: Excel.Range, propertyName: 'Value', parameterTypes: [Excel.XlRangeValueDataType], newValue: any): void;
set(obj: Excel.Range, propertyName: 'Value', newValue: any): void; // because Value is defined on the type as a method, not a property
- new(progid: K): ActiveXObjectNameMap[K];
+ new (progid: K): ActiveXObjectNameMap[K];
}
interface ActiveXObjectNameMap {
@@ -9474,26 +9733,8 @@ interface ActiveXObjectNameMap {
}
interface EnumeratorConstructor {
- new(col: Excel.Actions): Enumerator;
- new(col: Excel.AddIns | Excel.AddIns2): Enumerator;
- new(col: Excel.AllowEditRanges): Enumerator;
- new(col: Excel.Areas | Excel.Ranges): Enumerator;
- new(col: Excel.Borders): Enumerator;
- new(col: Excel.CalculatedFields): Enumerator;
- new(col: Excel.CalculatedItems | Excel.PivotItemList): Enumerator;
- new(col: Excel.CalculatedMembers): Enumerator;
- new(col: Excel.Comments): Enumerator;
- new(col: Excel.Connections): Enumerator;
- new(col: Excel.CubeFields): Enumerator;
- new(col: Excel.CustomProperties): Enumerator;
- new(col: Excel.CustomViews): Enumerator;
- new(col: Excel.DiagramNodeChildren | Excel.DiagramNodes): Enumerator;
- new(col: Excel.Dialogs): Enumerator;
- new(col: Excel.FileExportConverters): Enumerator;
- new(col: Excel.Filters): Enumerator;
- new(
- col: Excel.FormatConditions | Excel.IconSets | Excel.MenuItems | Excel.Modules | Excel.Phonetics | Excel.PivotFields | Excel.Range | Excel.ServerViewableItems |
- Excel.SheetViews | Excel.UsedObjects): Enumerator; // tslint:disable-line:use-default-type-parameter
+ new(col: Excel.Range): Enumerator;
+
new(col: Excel.GroupShapes | Excel.ShapeRange | Excel.Shapes): Enumerator;
new(col: Excel.HPageBreaks): Enumerator;
new(col: Excel.Hyperlinks): Enumerator;
@@ -9544,7 +9785,3 @@ interface EnumeratorConstructor {
new(col: Excel.XmlNamespaces): Enumerator;
new(col: Excel.XmlSchemas): Enumerator;
}
-
-interface SafeArray {
- _brand: SafeArray;
-}
diff --git a/types/activex-excel/tslint.json b/types/activex-excel/tslint.json
index 4ac54521fe..f93cf8562a 100644
--- a/types/activex-excel/tslint.json
+++ b/types/activex-excel/tslint.json
@@ -1,6 +1,3 @@
{
- "extends": "dtslint/dt.json",
- "rules": {
- "interface-name": [false]
- }
-}
\ No newline at end of file
+ "extends": "dtslint/dt.json"
+}
diff --git a/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts b/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts
new file mode 100644
index 0000000000..ef3e403998
--- /dev/null
+++ b/types/activex-faxcomexlib/activex-faxcomexlib-tests.ts
@@ -0,0 +1,729 @@
+///
+
+const collectionToArray = (col: { Item(index: any): T } | SafeArray) => {
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
+ }
+ return results;
+};
+
+const toSafeArray = (...items: T[]): SafeArray => {
+ const dict = new ActiveXObject('Scripting.Dictionary');
+ items.forEach((x, index) => dict.Add(index, x));
+ return dict.Items() as SafeArray;
+};
+
+const VB = {
+ InputBox: (prompt: string): string => ''
+};
+
+const getServer = () => {
+ const server = new ActiveXObject('FaxComEx.FaxServer');
+ server.Connect('');
+ return server;
+};
+
+{
+ // https://msdn.microsoft.com/en-us/library/windows/desktop/ms693376(v=vs.85).aspx
+ const server = new ActiveXObject('FaxComEx.FaxServer');
+ const document = new ActiveXObject('FaxComEx.FaxDocument');
+
+ // https://msdn.microsoft.com/en-us/library/windows/desktop/ms692919(v=vs.85).aspx
+ server.Connect('');
+ server.Connect('computername');
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693502(v=vs.85).aspx
+{
+ const getInitializedDevice = () => {
+ const ret = getServer().GetDevices().ItemById(1);
+ ret.ReceiveMode = FAXCOMEXLib.FAX_DEVICE_RECEIVE_MODE_ENUM.fdrmAUTO_ANSWER;
+ ret.RingsBeforeAnswer = 5;
+ ret.SendEnabled = true;
+ return ret;
+ };
+
+ // saving configuration
+ let device = getInitializedDevice();
+ device.Save();
+
+ // abandoning changes to configuration, using the Refresh method
+ device = getInitializedDevice();
+ device.Refresh();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693502(v=vs.85).aspx
+{
+ const incomingJob = getServer().Folders.IncomingQueue.GetJobs().Item(1);
+ incomingJob.Refresh();
+ const currentPage = incomingJob.CurrentPage;
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692922(v=vs.85).aspx
+{
+ const server = getServer();
+
+ WScript.Echo(`Server information:
+API Version: ${server.APIVersion}
+Debug: ${server.Debug}
+Build and version: ${server.MajorBuild}.${server.MinorBuild}.${server.MajorVersion}.${server.MinorVersion}
+Server name: ${server.ServerName}`);
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693455(v=vs.85).aspx
+{
+ const activity = getServer().Activity;
+ activity.Refresh();
+
+ WScript.Echo(`
+${activity.IncomingMessages} incoming messages
+${activity.OutgoingMessages} outgoing messages
+${activity.RoutingMessages} routing messages
+${activity.QueuedMessages} queued messages`);
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693400(v=vs.85).aspx
+{
+ const device = getServer().GetDevices().Item(1);
+ device.CSID = 'Accounts payable';
+ device.Description = 'Primary fax device';
+ device.ReceiveMode = FAXCOMEXLib.FAX_DEVICE_RECEIVE_MODE_ENUM.fdrmAUTO_ANSWER;
+ device.RingsBeforeAnswer = 5;
+ device.SendEnabled = true;
+ device.TSID = 'Accounts payable';
+ device.Save();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692985(v=vs.85).aspx
+{
+ const devices = getServer().GetDevices();
+ WScript.Echo(`This server has ${devices.Count} fax devices`);
+ for (let i = 1; i <= devices.Count; i++) {
+ WScript.Echo(`Device ID for device number ${i} is ${devices.Item(i).Id}`);
+ }
+
+ collectionToArray(devices).forEach(device => {
+ device.Refresh();
+ WScript.Echo(`
+Device name: ${device.DeviceName}
+Provider unique name: ${device.ProviderUniqueName}
+Powered off: ${device.PoweredOff}
+Receiving now: ${device.ReceivingNow}
+Ringing now: ${device.RingingNow}
+Sending now: ${device.SendingNow}`);
+
+ const routingMethods = new VBArray(device.UsedRoutingMethods).toArray();
+ routingMethods.forEach((guid, index) => {
+ WScript.Echo(`Method number ${index} = ${guid}`);
+ });
+
+ device.UseRoutingMethod(routingMethods[0], false);
+ device.Save();
+ });
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693486(v=vs.85).aspx
+{
+ const outputRuleInfo = (rule: FAXCOMEXLib.FaxOutboundRoutingRule, index?: number) => {
+ WScript.Echo(`
+Outbound routing rule number: ${index || 'unknown'}
+Area code: ${rule.AreaCode}
+Country/region code: ${rule.CountryCode}
+Device ID: ${rule.DeviceId}
+Group name: ${rule.GroupName}
+Status: ${rule.Status}
+Is device used: ${rule.UseDevice}`
+ .trim());
+ };
+
+ const server = getServer();
+ const device = server.GetDevices().Item(1);
+ const id = device.Id;
+ const rules = server.OutboundRouting.GetRules();
+ const outboundRoutingRules = server.OutboundRouting.GetRules();
+ WScript.Echo(`There are ${outboundRoutingRules.Count} outbound routing rules on this server.`);
+
+ collectionToArray(outboundRoutingRules).forEach((rule, index) => {
+ rule.Refresh();
+ outputRuleInfo(rule, index);
+
+ if (!rule.UseDevice) { return; }
+ if (VB.InputBox('Do you want to change the device for this rule (Y/N)?') === 'Y') {
+ const newDeviceID = parseInt(VB.InputBox('Enter new device ID'), 10);
+ rule.DeviceId = newDeviceID;
+ rule.Save();
+ }
+ });
+
+ const msg = `
+Do you want to:
+1) display an item based on its country/region and area code,
+2) remove an item based on its country/region and area code,
+3) remove an item based on its item number, or
+4) add a rule?
+Input 1, 2, 3, 4, or 0 to exit
+`.trim();
+ const result = parseInt(VB.InputBox(msg), 10);
+ let countryCode: number;
+ let areaCode: number;
+ let itemNumber: number;
+ let rule: FAXCOMEXLib.FaxOutboundRoutingRule;
+ switch (result) {
+ case 1:
+ countryCode = parseInt(VB.InputBox('Enter the country/region code'), 10);
+ areaCode = parseInt(VB.InputBox('Enter the area code'), 10);
+ rule = outboundRoutingRules.ItemByCountryAndArea(countryCode, areaCode);
+ outputRuleInfo(rule);
+ break;
+ case 2:
+ countryCode = parseInt(VB.InputBox('Enter the country/region code'), 10);
+ areaCode = parseInt(VB.InputBox('Enter the area code'), 10);
+ outboundRoutingRules.RemoveByCountryAndArea(countryCode, areaCode);
+ break;
+ case 3:
+ itemNumber = parseInt(VB.InputBox('Enter the item number'), 10);
+ outboundRoutingRules.Remove(itemNumber);
+ break;
+ case 4:
+ countryCode = parseInt(VB.InputBox('Enter the country/region code'), 10);
+ areaCode = parseInt(VB.InputBox('Enter the area code'), 10);
+ rule = outboundRoutingRules.Add(countryCode, areaCode, true, '', id);
+ break;
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693408(v=vs.85).aspx
+{
+ const server = getServer();
+ const outboundRouting = server.OutboundRouting;
+ const outboundRoutingGroups = outboundRouting.GetGroups();
+ const groupName = VB.InputBox('Provide a name for the outbound routing group');
+ const outboundRoutingGroup = outboundRoutingGroups.Add(groupName);
+ const devices = collectionToArray(server.GetDevices());
+
+ // add the devices to the routing group
+ devices.forEach(device => outboundRoutingGroup.DeviceIds.Add(device.Id));
+ // move the last device to the top of the order
+ outboundRoutingGroup.DeviceIds.SetOrder(devices[devices.length - 1].Id, 1);
+
+ // display the number of devices, and the device ID of the first device,to confirm its location in the order
+ const msg = `
+Number of devices: ${outboundRoutingGroup.DeviceIds.Count}
+ID of first device: ${outboundRoutingGroup.DeviceIds.Item(1)}
+`.trim();
+ WScript.Echo(msg);
+
+ // remove the first device
+ outboundRoutingGroup.DeviceIds.Remove(1);
+
+ WScript.Echo(`There are now ${outboundRoutingGroups.Count} routing groups on the server`);
+
+ collectionToArray(outboundRoutingGroups).forEach((routingGroup, index) => {
+ const msg = `
+Routing group number: ${index}
+Outbound routing group name: ${routingGroup.Name}
+Device status: ${routingGroup.Status}
+`.trim();
+ });
+
+ // allow user to remove a routing group
+ if (VB.InputBox('Do you want to remove a routing group (Y/N)?') === 'Y') {
+ const itemNumber = VB.InputBox('Enter the item number for the group you want to remove');
+ outboundRoutingGroups.Remove(itemNumber);
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/aa964960(v=vs.85).aspx
+{
+ const accountSet = getServer().FaxAccountSet;
+ const accounts = collectionToArray(accountSet.GetAccounts());
+ WScript.Echo(`Number of accounts: ${accounts.length}`);
+ accounts.forEach(account => WScript.Echo(account.AccountName));
+
+ const accountName = VB.InputBox('Enter an account name');
+ accountSet.AddAccount(accountName);
+ accountSet.RemoveAccount(accountName);
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692952(v=vs.85).aspx
+{
+ const incomingJobs = collectionToArray(getServer().Folders.IncomingQueue.GetJobs());
+ WScript.Echo(`There are ${incomingJobs.length} jobs in the incoming queue.`);
+ const n = parseInt(VB.InputBox('Input the number of a job for which you want information'), 10);
+ const job = incomingJobs[n - 1];
+ WScript.Echo(`
+Available operations: ${job.AvailableOperations}
+Caller ID: ${job.CallerId}
+CSID: ${job.CSID}
+Current page: ${job.CurrentPage}
+Device ID: ${job.DeviceId}
+Extended status: ${job.ExtendedStatus}
+Extended status code: ${job.ExtendedStatusCode}
+Job ID: ${job.Id}
+Job type: ${job.JobType}
+Retries: ${job.Retries}
+Routing information: ${job.RoutingInformation}
+Size: ${job.Size}
+Status: ${job.Status}
+Transmission start: ${new Date(job.TransmissionStart)}
+Transmission end: ${new Date(job.TransmissionEnd)}
+TSID: ${job.TSID}
+`.trim());
+
+ if (VB.InputBox('Cancel this fax (Y/N)?') === 'Y') {
+ job.Cancel();
+ }
+
+ if (VB.InputBox('Open this fax (Y/N)?') === 'Y') {
+ const fileName = VB.InputBox('Enter path to save');
+ job.CopyTiff(fileName);
+ new ActiveXObject('WScript.Shell').Run(fileName);
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692914(v=vs.85).aspx
+{
+ const server = new ActiveXObject('FaxComEx.FaxServer');
+ server.Connect('');
+ const outgoingQueue = server.Folders.OutgoingQueue;
+ outgoingQueue.AgeLimit = 2;
+ outgoingQueue.AllowPersonalCoverPages = true;
+ outgoingQueue.Blocked = false;
+ outgoingQueue.Paused = false;
+ outgoingQueue.Branding = true;
+ outgoingQueue.DiscountRateStart = new Date(0, 0, 0, 0).getVarDate();
+ outgoingQueue.DiscountRateStart = new Date(0, 0, 0, 1).getVarDate();
+ outgoingQueue.UseDeviceTSID = true;
+ outgoingQueue.Save();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693393(v=vs.85).aspx
+{
+ const outgoingQueue = getServer().Folders.OutgoingQueue;
+ outgoingQueue.Refresh();
+ WScript.Echo(`There are ${outgoingQueue.GetJobs().Count} faxes in the outgoing queue`);
+ const inputResult = VB.InputBox('Which fax should be displayed (item number or job name)?');
+ const itemNumber = parseInt(inputResult, 10);
+ const job =
+ isNaN(itemNumber) ?
+ outgoingQueue.GetJob(inputResult) :
+ outgoingQueue.GetJobs().Item(itemNumber);
+
+ WScript.Echo(`
+Available operations: ${job.AvailableOperations}
+Broadcast receipts grouped? ${job.GroupBroadcastReceipts}
+CSID: ${job.CSID}
+Current page: ${job.CurrentPage}
+Device ID: ${job.DeviceId}
+Document name: ${job.DocumentName}
+Extended status: ${job.ExtendedStatus}
+Extended status code: ${job.ExtendedStatusCode}
+Job ID: ${job.Id}
+Original scheduled time: ${new Date(job.OriginalScheduledTime)}
+Pages: ${job.Pages}
+Priority: ${job.Priority}
+Receipt type: ${job.ReceiptType}
+`.trim());
+
+ const fileName = VB.InputBox('Enter path to save');
+ job.CopyTiff(fileName);
+ new ActiveXObject('WScript.Shell').Run(fileName);
+
+ const answer = VB.InputBox(`
+Do you want to:
+(C) cancel
+(P) pause
+(R) restart
+(E) resume
+the job?
+`.trim());
+
+ switch (answer) {
+ case 'C':
+ job.Cancel();
+ break;
+ case 'P':
+ job.Pause();
+ break;
+ case 'R':
+ job.Restart();
+ break;
+ case 'E':
+ job.Resume();
+ break;
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692936(v=vs.85).aspx
+{
+ const document = new ActiveXObject('FaxComEx.FaxDocument');
+ document.Body = 'C:\\docs\\body.txt';
+ document.DocumentName = 'My First Fax';
+ document.Priority = FAXCOMEXLib.FAX_PRIORITY_TYPE_ENUM.fptHIGH;
+ document.Recipients.Add('12225550100', 'Bud');
+ document.AttachFaxToReceipt = true;
+ document.CoverPageType = FAXCOMEXLib.FAX_COVERPAGE_TYPE_ENUM.fcptSERVER;
+ document.Note = 'Here is the info you requested';
+ document.ReceiptAddress = 'someone@example.com';
+ document.ReceiptType = FAXCOMEXLib.FAX_RECEIPT_TYPE_ENUM.frtMAIL;
+ document.ScheduleType = FAXCOMEXLib.FAX_SCHEDULE_TYPE_ENUM.fstSPECIFIC_TIME;
+ document.ScheduleTime = new Date(0, 0, 0, 16, 35, 47).getVarDate();
+ document.Subject = 'Today\'s fax';
+
+ // set sender properties
+ const sender = document.Sender;
+ sender.Title = 'Mr.';
+ sender.Name = 'Bob';
+ sender.City = 'Cleveland Heights';
+ sender.State = 'Ohio';
+ sender.Company = 'Microsoft';
+ sender.Country = 'USA';
+ sender.Email = 'someone@microsoft.com';
+ sender.FaxNumber = '12165555554';
+ sender.HomePhone = '12165555555';
+ sender.OfficeLocation = 'Downtown';
+ sender.OfficePhone = '12165555553';
+ sender.StreetAddress = '123 Main Street';
+ sender.TSID = 'Office fax machine';
+ sender.ZipCode = '44118';
+ sender.BillingCode = '23A54';
+ sender.Department = 'Accts Payable';
+ sender.SaveDefaultSender();
+
+ const server = getServer();
+
+ const jobID = document.ConnectedSubmit(server);
+ WScript.Echo(`The job ID is ${jobID}`);
+
+ server.Disconnect();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693479(v=vs.85).aspx
+{
+ const document = new ActiveXObject('FaxComEx.FaxDocument');
+ document.Body = 'C:\\docs\\body.txt';
+ document.DocumentName = 'My First Fax';
+
+ const recipients = document.Recipients;
+ recipients.Add('12225550105', 'H');
+ recipients.Add('12225550104', 'N');
+ recipients.Add('12225550103', 'G');
+
+ WScript.Echo(`Number of recipients: ${recipients.Count}`);
+ collectionToArray(recipients).forEach((recipient, index) =>
+ WScript.Echo(`Recipient number ${index}: ${recipient.Name}, ${recipient.FaxNumber}`)
+ );
+
+ document.Sender.LoadDefaultSender();
+ document.GroupBroadcastReceipts = true;
+
+ const jobIDs = document.Submit('');
+ collectionToArray(jobIDs).forEach(jobID => WScript.Echo(`The job ID is ${jobID}`));
+
+ while (recipients.Count > 0) {
+ recipients.Remove(1);
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/aa964962(v=vs.85).aspx
+{
+ const server = getServer();
+ const prefetchCount = parseInt(VB.InputBox('How many messages should be prefetched?'), 10);
+ server.CurrentAccount.Folders.IncomingArchive.Refresh();
+ const messageIterator = server.Folders.IncomingArchive.GetMessages(prefetchCount);
+ messageIterator.MoveFirst();
+ for (let i = 1; i <= prefetchCount; i++) {
+ if (i > 1 && VB.InputBox('View next message? (Y/N)') !== 'Y') { break; }
+ const message = messageIterator.Message as FAXCOMEXLib.FaxIncomingMessage;
+ if (messageIterator.AtEOF) {
+ WScript.Echo(`End of file reached`);
+ break;
+ }
+ if (!message.WasReAssigned) {
+ if (VB.InputBox('Message not reassigned. Reassign (Y/N)?') === 'Y') {
+ message.Subject = 'Reassigning message';
+ message.SenderName = 'Test user';
+ message.Recipients = VB.InputBox('Enter username, e.g. Domain\\UserName');
+ message.SenderFaxNumber = '1234';
+ message.ReAssign();
+ }
+ }
+ messageIterator.MoveNext();
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693402(v=vs.85).aspx
+{
+ const server = getServer();
+ const prefetchCount = parseInt(VB.InputBox('How many messages should be prefetched?'), 10);
+ server.Folders.OutgoingArchive.Refresh();
+ const messageIterator = server.Folders.OutgoingArchive.GetMessages(prefetchCount);
+ messageIterator.MoveFirst();
+ for (let i = 1; i <= prefetchCount; i++) {
+ if (i > 1 && VB.InputBox('View next message? (Y/N)') !== 'Y') { break; }
+ if (messageIterator.AtEOF) {
+ WScript.Echo(`End of file reached`);
+ break;
+ }
+ const message = messageIterator.Message as FAXCOMEXLib.FaxOutgoingMessage;
+
+ const fileName = VB.InputBox('Enter path to save');
+ message.CopyTiff(fileName);
+ new ActiveXObject('WScript.Shell').Run(fileName);
+
+ WScript.Echo(`Message information:
+CSID: ${message.CSID}
+Device name: ${message.DeviceName}
+Document name: ${message.DocumentName}
+Message ID: ${message.Id}
+Original scheduled time: ${new Date(message.OriginalScheduledTime)}
+Pages: ${message.Pages}
+Recipient fax number: ${message.Recipient.FaxNumber}
+Retries: ${message.Retries}
+Sender name: ${message.Sender.Name}
+Size: ${message.Size}
+Subject: ${message.Subject}
+Submission ID: ${message.SubmissionId}
+Submission time: ${new Date(message.SubmissionTime)}
+Transmission end time: ${new Date(message.TransmissionEnd)}
+Transmission start time: ${new Date(message.TransmissionStart)}
+TSID: ${message.TSID}`);
+
+ if (VB.InputBox('Delete this fax from the archive (Y/N)?') === 'Y') {
+ message.Delete();
+ }
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693472(v=vs.85).aspx
+{
+ const server = getServer();
+ const outgoingArchive = server.Folders.OutgoingArchive;
+ WScript.Echo(`
+Age limit: ${outgoingArchive.AgeLimit}
+Archive folder: ${outgoingArchive.ArchiveFolder}
+High quota mark: ${outgoingArchive.HighQuotaWaterMark}
+Low quota water mark: ${outgoingArchive.LowQuotaWaterMark}
+Size high: ${outgoingArchive.SizeHigh}
+Size low: ${outgoingArchive.SizeLow}
+Size quota warning: ${outgoingArchive.SizeQuotaWarning}
+Is archive used? ${outgoingArchive.UseArchive}`.trim()
+ );
+
+ const newLimit = VB.InputBox('Set new age limit (enter empty value or Cancel to leave unchanged');
+ if (newLimit) {
+ outgoingArchive.AgeLimit = parseInt(newLimit, 10);
+ }
+
+ const messageID = VB.InputBox('Retrieve a message by ID (enter an empty value or press Cancel to exit');
+ if (messageID) {
+ const fileName = VB.InputBox('Enter path to save');
+ outgoingArchive.GetMessage(messageID).CopyTiff(fileName);
+ new ActiveXObject('WScript.Shell').Run(fileName);
+ }
+}
+
+{
+ const server = getServer();
+ const messageIterator = server.Folders.OutgoingArchive.GetMessages();
+ messageIterator.MoveFirst();
+ while (!messageIterator.AtEOF) {
+ const message = messageIterator.Message;
+ WScript.Echo(`
+Document name: ${message.DocumentName}
+ID: ${message.Id}
+Transmission end: ${new Date(message.TransmissionEnd)}
+Transmission start: ${new Date(message.TransmissionStart)}
+`.trim());
+ messageIterator.MoveNext();
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms692976(v=vs.85).aspx
+{
+ const server = getServer();
+ const prefetchCount = parseInt(VB.InputBox('How many messages should be prefetched?'), 10);
+ server.Folders.IncomingArchive.Refresh();
+ const messageIterator = server.Folders.IncomingArchive.GetMessages(prefetchCount);
+ messageIterator.MoveFirst();
+ for (let i = 1; i <= prefetchCount; i++) {
+ if (i > 1 && VB.InputBox('View next message? (Y/N)') !== 'Y') { break; }
+ const message = messageIterator.Message as FAXCOMEXLib.FaxIncomingMessage;
+ if (messageIterator.AtEOF) {
+ WScript.Echo(`End of file reached`);
+ break;
+ }
+ const fileName = VB.InputBox('Enter path to save TIFF file');
+ message.CopyTiff(fileName);
+ new ActiveXObject('WScript.Shell').Run(fileName);
+
+ messageIterator.MoveNext();
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693406(v=vs.85).aspx
+{
+ const server = getServer();
+ const incomingArchive = server.Folders.IncomingArchive;
+ incomingArchive.Refresh();
+ WScript.Echo(`
+High quota water mark: ${incomingArchive.HighQuotaWaterMark}
+Low quota water mark: ${incomingArchive.LowQuotaWaterMark}
+Archive folder: ${incomingArchive.ArchiveFolder}
+Age limit: ${incomingArchive.AgeLimit}
+Size high: ${incomingArchive.SizeHigh}
+Size low: ${incomingArchive.SizeLow}
+Is size quota warning on? ${incomingArchive.SizeQuotaWarning}
+Is archive used? ${incomingArchive.UseArchive}
+`.trim());
+
+ incomingArchive.AgeLimit = 4;
+ incomingArchive.Save();
+
+ const messageID = VB.InputBox('Message ID to retrieve information? (Leave empty, or Cancel, to exit)');
+ if (messageID !== '') {
+ const message = incomingArchive.GetMessage(messageID);
+ WScript.Echo(`
+Caller ID: ${message.CallerId}
+CSID: ${message.CSID}
+Device name: ${message.DeviceName}
+Message ID: ${message.Id}
+Number of pages: ${message.Pages}
+Retries: ${message.Retries}
+Routing information: ${message.RoutingInformation}
+Size: ${message.Size}
+Transmission start: ${new Date(message.TransmissionStart)}
+Transmission end: ${new Date(message.TransmissionEnd)}
+TSID: ${message.TSID}
+`.trim());
+
+ if (VB.InputBox('Delete this message from the archive (Y/N)?') === 'Y') {
+ message.Delete();
+ }
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693401(v=vs.85).aspx
+{
+ const server = getServer();
+ const loggingOptions = server.LoggingOptions;
+ const activityLogging = loggingOptions.ActivityLogging;
+ const eventLogging = loggingOptions.EventLogging;
+
+ activityLogging.Refresh();
+ activityLogging.LogIncoming = true;
+ activityLogging.LogOutgoing = true;
+ activityLogging.Save();
+
+ eventLogging.Refresh();
+ eventLogging.GeneralEventsLevel = FAXCOMEXLib.FAX_LOG_LEVEL_ENUM.fllMED;
+ eventLogging.InboundEventsLevel = FAXCOMEXLib.FAX_LOG_LEVEL_ENUM.fllMAX;
+ eventLogging.InitEventsLevel = FAXCOMEXLib.FAX_LOG_LEVEL_ENUM.fllMAX;
+ eventLogging.OutboundEventsLevel = FAXCOMEXLib.FAX_LOG_LEVEL_ENUM.fllNONE;
+ eventLogging.Save();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693387(v=vs.85).aspx
+{
+ const server = getServer();
+ const receiptOptions = server.ReceiptOptions;
+ receiptOptions.Refresh();
+ WScript.Echo(`
+Allowed receipt types: ${receiptOptions.AllowedReceipts}
+Authentication types: ${receiptOptions.AuthenticationType}
+SMTP port: ${receiptOptions.SMTPPort}
+SMTP sender: ${receiptOptions.SMTPSender}
+SMTP server: ${receiptOptions.SMTPSender}
+Use for inbound routing? ${receiptOptions.UseForInboundRouting}
+`.trim());
+
+ receiptOptions.AllowedReceipts = FAXCOMEXLib.FAX_RECEIPT_TYPE_ENUM.frtMAIL;
+ receiptOptions.AuthenticationType = FAXCOMEXLib.FAX_SMTP_AUTHENTICATION_TYPE_ENUM.fsatBASIC;
+ receiptOptions.SMTPPort = 25;
+ receiptOptions.SMTPSender = 'someone@example.com';
+ receiptOptions.SMTPServer = 'My SMTP Server';
+ receiptOptions.UseForInboundRouting = true;
+ receiptOptions.Save();
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693462(v=vs.85).aspx
+{
+ const server = getServer();
+ collectionToArray(server.GetDeviceProviders()).forEach((provider, index) => {
+ WScript.Echo(`
+Debug: ${provider.Debug}
+Name: ${provider.FriendlyName}
+Image name: ${provider.ImageName}
+Init error code: ${provider.InitErrorCode}
+Build and version: ${provider.MajorBuild}.${provider.MajorVersion}.${provider.MinorBuild}.${provider.MinorVersion}
+Status: ${provider.Status}
+TAPI provider: ${provider.TapiProviderName}
+Unique name: ${provider.UniqueName}
+`.trim());
+
+ new VBArray(provider.DeviceIds).toArray().forEach(id => WScript.Echo(id));
+ });
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693437(v=vs.85).aspx -- for a fax device
+{
+ const server = getServer();
+ const device = server.GetDevices().Item(1);
+ const deviceProperty = toSafeArray(1, 2, 3);
+ const propertyName = '{B1F944B9-9A16-45d1-933A-4060A4871AB0}';
+ device.SetExtensionProperty(propertyName, deviceProperty);
+ new VBArray(device.GetExtensionProperty(propertyName)).toArray().forEach(x => WScript.Echo(x));
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693437(v=vs.85).aspx -- for a fax device
+{
+ const server = getServer();
+ const serverProperty = toSafeArray(4, 2, 3);
+ const propertyName = `{AC7D0DEE-B6E5-4a44-AF45-835C58CB44D2}`;
+ server.SetExtensionProperty(propertyName, serverProperty);
+ new VBArray(server.GetExtensionProperty(propertyName)).toArray().forEach(x => WScript.Echo(x));
+}
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/ms693013(v=vs.85).aspx
+{
+ const server = getServer();
+
+ ActiveXObject.on(server, 'OnOutgoingJobAdded', ['pFaxServer', 'bstrJobId'], prm => WScript.Echo('New job added to queue'));
+
+ ActiveXObject.on(server, 'OnOutgoingJobChanged', ['pFaxServer', 'bstrJobId', 'pJobStatus'], prm => {
+ const status = prm.pJobStatus;
+ WScript.Echo(`
+Available operations: ${status.AvailableOperations}
+Caller ID: ${status.CallerId}
+CSID: ${status.CSID}
+Current page: ${status.CurrentPage}
+Device ID: ${status.DeviceId}
+Extended status: ${status.ExtendedStatus}
+Extended status code: ${status.ExtendedStatusCode}
+Job type: ${status.JobType}
+Pages: ${status.Pages}
+Retries: ${status.Retries}
+Routing information: ${status.RoutingInformation}
+Scheduled time: ${new Date(status.ScheduledTime)}
+Size: ${status.Size}
+Status: ${status.Status}
+Transmission start: ${new Date(status.TransmissionStart)}
+TSID: ${status.TSID}
+`.trim());
+
+ try {
+ WScript.Echo(`Transmission end: ${new Date(status.TransmissionEnd)}`);
+ } catch {}
+ });
+
+ ActiveXObject.on(server, 'OnServerShutDown', ['pFaxServer'], prm => WScript.Echo('The local fax server has been shut down'));
+
+ server.ListenToServerEvents(
+ FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetFXSSVC_ENDED +
+ FAXCOMEXLib.FAX_SERVER_EVENTS_TYPE_ENUM.fsetOUT_QUEUE
+ );
+}
diff --git a/types/activex-faxcomexlib/index.d.ts b/types/activex-faxcomexlib/index.d.ts
new file mode 100644
index 0000000000..d4078061f7
--- /dev/null
+++ b/types/activex-faxcomexlib/index.d.ts
@@ -0,0 +1,2020 @@
+// Type definitions for Microsoft Fax Service Extended COM Type Library - FAXCOMEXLib 1.0
+// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/ms684513(v=vs.85).aspx
+// Definitions by: Zev Spitz
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.6
+
+///
+
+declare namespace FAXCOMEXLib {
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_ACCESS_RIGHTS_ENUM {
+ farMANAGE_CONFIG = 64,
+ farMANAGE_IN_ARCHIVE = 256,
+ farMANAGE_JOBS = 16,
+ farMANAGE_OUT_ARCHIVE = 1024,
+ farQUERY_CONFIG = 32,
+ farQUERY_IN_ARCHIVE = 128,
+ farQUERY_JOBS = 8,
+ farQUERY_OUT_ARCHIVE = 512,
+ farSUBMIT_HIGH = 4,
+ farSUBMIT_LOW = 1,
+ farSUBMIT_NORMAL = 2,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_ACCESS_RIGHTS_ENUM_2 {
+ far2MANAGE_ARCHIVES = 256,
+ far2MANAGE_CONFIG = 64,
+ far2MANAGE_OUT_JOBS = 16,
+ far2MANAGE_RECEIVE_FOLDER = 512,
+ far2QUERY_ARCHIVES = 128,
+ far2QUERY_CONFIG = 32,
+ far2QUERY_OUT_JOBS = 8,
+ far2SUBMIT_HIGH = 4,
+ far2SUBMIT_LOW = 1,
+ far2SUBMIT_NORMAL = 2,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_ACCOUNT_EVENTS_TYPE_ENUM {
+ faetFXSSVC_ENDED = 16,
+ faetIN_ARCHIVE = 4,
+ faetIN_QUEUE = 1,
+ faetNONE = 0,
+ faetOUT_ARCHIVE = 8,
+ faetOUT_QUEUE = 2,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_COVERPAGE_TYPE_ENUM {
+ fcptLOCAL = 1,
+ fcptNONE = 0,
+ fcptSERVER = 2,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_DEVICE_RECEIVE_MODE_ENUM {
+ fdrmAUTO_ANSWER = 1,
+ fdrmMANUAL_ANSWER = 2,
+ fdrmNO_ANSWER = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_GROUP_STATUS_ENUM {
+ fgsALL_DEV_NOT_VALID = 2,
+ fgsALL_DEV_VALID = 0,
+ fgsEMPTY = 1,
+ fgsSOME_DEV_NOT_VALID = 3,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_JOB_EXTENDED_STATUS_ENUM {
+ fjesANSWERED = 5,
+ fjesBAD_ADDRESS = 10,
+ fjesBUSY = 8,
+ fjesCALL_ABORTED = 19,
+ fjesCALL_BLACKLISTED = 14,
+ fjesCALL_COMPLETED = 18,
+ fjesCALL_DELAYED = 13,
+ fjesDIALING = 3,
+ fjesDISCONNECTED = 1,
+ fjesFATAL_ERROR = 12,
+ fjesHANDLED = 17,
+ fjesINITIALIZING = 2,
+ fjesLINE_UNAVAILABLE = 7,
+ fjesNO_ANSWER = 9,
+ fjesNO_DIAL_TONE = 11,
+ fjesNONE = 0,
+ fjesNOT_FAX_CALL = 15,
+ fjesPARTIALLY_RECEIVED = 16,
+ fjesPROPRIETARY = 16777216,
+ fjesRECEIVING = 6,
+ fjesTRANSMITTING = 4,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_JOB_OPERATIONS_ENUM {
+ fjoDELETE = 16,
+ fjoPAUSE = 2,
+ fjoRECIPIENT_INFO = 32,
+ fjoRESTART = 8,
+ fjoRESUME = 4,
+ fjoSENDER_INFO = 64,
+ fjoVIEW = 1,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_JOB_STATUS_ENUM {
+ fjsCANCELED = 512,
+ fjsCANCELING = 1024,
+ fjsCOMPLETED = 256,
+ fjsFAILED = 8,
+ fjsINPROGRESS = 2,
+ fjsNOLINE = 32,
+ fjsPAUSED = 16,
+ fjsPENDING = 1,
+ fjsRETRIES_EXCEEDED = 128,
+ fjsRETRYING = 64,
+ fjsROUTING = 2048,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_JOB_TYPE_ENUM {
+ fjtRECEIVE = 1,
+ fjtROUTING = 2,
+ fjtSEND = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_LOG_LEVEL_ENUM {
+ fllMAX = 3,
+ fllMED = 2,
+ fllMIN = 1,
+ fllNONE = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_PRIORITY_TYPE_ENUM {
+ fptHIGH = 2,
+ fptLOW = 0,
+ fptNORMAL = 1,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_PROVIDER_STATUS_ENUM {
+ fpsBAD_GUID = 2,
+ fpsBAD_VERSION = 3,
+ fpsCANT_INIT = 6,
+ fpsCANT_LINK = 5,
+ fpsCANT_LOAD = 4,
+ fpsSERVER_ERROR = 1,
+ fpsSUCCESS = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_RECEIPT_TYPE_ENUM {
+ frtMAIL = 1,
+ frtMSGBOX = 4,
+ frtNONE = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_ROUTING_RULE_CODE_ENUM {
+ frrcANY_CODE = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_RULE_STATUS_ENUM {
+ frsALL_GROUP_DEV_NOT_VALID = 2,
+ frsBAD_DEVICE = 4,
+ frsEMPTY_GROUP = 1,
+ frsSOME_GROUP_DEV_NOT_VALID = 3,
+ frsVALID = 0,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_SCHEDULE_TYPE_ENUM {
+ fstDISCOUNT_PERIOD = 2,
+ fstNOW = 0,
+ fstSPECIFIC_TIME = 1,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_SERVER_APIVERSION_ENUM {
+ fsAPI_VERSION_0 = 0,
+ fsAPI_VERSION_1 = 65536,
+ fsAPI_VERSION_2 = 131072,
+ fsAPI_VERSION_3 = 196608,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_SERVER_EVENTS_TYPE_ENUM {
+ fsetACTIVITY = 8,
+ fsetCONFIG = 4,
+ fsetDEVICE_STATUS = 256,
+ fsetFXSSVC_ENDED = 128,
+ fsetIN_ARCHIVE = 32,
+ fsetIN_QUEUE = 1,
+ fsetINCOMING_CALL = 512,
+ fsetNONE = 0,
+ fsetOUT_ARCHIVE = 64,
+ fsetOUT_QUEUE = 2,
+ fsetQUEUE_STATE = 16,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FAX_SMTP_AUTHENTICATION_TYPE_ENUM {
+ fsatANONYMOUS = 0,
+ fsatBASIC = 1,
+ fsatNTLM = 2,
+ }
+
+ // tslint:disable-next-line:no-const-enum
+ const enum FaxConstants {
+ bstrGROUPNAME_ALLDEVICES = '',
+ lDEFAULT_PREFETCH_SIZE = 100,
+ wcharREASSIGN_RECIPIENTS_DELIMITER = 59,
+ }
+
+ /** FaxAccount Class */
+ class FaxAccount {
+ private 'FAXCOMEXLib.FaxAccount_typekey': FaxAccount;
+ private constructor();
+
+ /** Name of the fax account */
+ readonly AccountName: string;
+
+ /** Folders belonging to the account */
+ readonly Folders: FaxAccountFolders;
+
+ /** Set bit-wise combination of events the fax account listens to */
+ ListenToAccountEvents(EventTypes: FAX_ACCOUNT_EVENTS_TYPE_ENUM): void;
+
+ /** Events the fax account is listening to */
+ readonly RegisteredEvents: FAX_ACCOUNT_EVENTS_TYPE_ENUM;
+ }
+
+ /** FaxAccountFolders Class */
+ class FaxAccountFolders {
+ private 'FAXCOMEXLib.FaxAccountFolders_typekey': FaxAccountFolders;
+ private constructor();
+
+ /** Incoming archive */
+ readonly IncomingArchive: FaxAccountIncomingArchive;
+
+ /** Incoming queue */
+ readonly IncomingQueue: FaxAccountIncomingQueue;
+
+ /** Outgoing archive */
+ readonly OutgoingArchive: FaxAccountOutgoingArchive;
+
+ /** Outgoing queue */
+ readonly OutgoingQueue: FaxAccountOutgoingQueue;
+ }
+
+ /** FaxAccountIncomingArchive Class */
+ class FaxAccountIncomingArchive {
+ private 'FAXCOMEXLib.FaxAccountIncomingArchive_typekey': FaxAccountIncomingArchive;
+ private constructor();
+
+ /** Get an archived message by its ID */
+ GetMessage(bstrMessageId: string): IFaxIncomingMessage;
+
+ /**
+ * Iterator on the archived messages
+ * @param number [lPrefetchSize=100]
+ */
+ GetMessages(lPrefetchSize?: number): FaxIncomingMessageIterator;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** The high 32-bit value of the archive size */
+ readonly SizeHigh: number;
+
+ /** The low 32-bit value of the archive size */
+ readonly SizeLow: number;
+ }
+
+ /** FaxAccountIncomingQueue Class */
+ class FaxAccountIncomingQueue {
+ private 'FAXCOMEXLib.FaxAccountIncomingQueue_typekey': FaxAccountIncomingQueue;
+ private constructor();
+
+ /** Get incoming job by ID */
+ GetJob(bstrJobId: string): FaxIncomingJob;
+
+ /** Collection of incoming jobs */
+ GetJobs(): FaxIncomingJobs;
+ }
+
+ /** FaxAccountOutgoingArchive Class */
+ class FaxAccountOutgoingArchive {
+ private 'FAXCOMEXLib.FaxAccountOutgoingArchive_typekey': FaxAccountOutgoingArchive;
+ private constructor();
+
+ /** Get an archived message by its ID */
+ GetMessage(bstrMessageId: string): IFaxOutgoingMessage;
+
+ /**
+ * Iterator on the archived messages
+ * @param number [lPrefetchSize=100]
+ */
+ GetMessages(lPrefetchSize?: number): FaxOutgoingMessageIterator;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** The high 32-bit value of the archive size */
+ readonly SizeHigh: number;
+
+ /** The low 32-bit value of the archive size */
+ readonly SizeLow: number;
+ }
+
+ /** FaxAccountOutgoingQueue Class */
+ class FaxAccountOutgoingQueue {
+ private 'FAXCOMEXLib.FaxAccountOutgoingQueue_typekey': FaxAccountOutgoingQueue;
+ private constructor();
+
+ /** Get outgoing job by ID */
+ GetJob(bstrJobId: string): IFaxOutgoingJob;
+
+ /** Collection of outgoing jobs */
+ GetJobs(): FaxOutgoingJobs;
+ }
+
+ /** FaxAccounts Class */
+ interface FaxAccounts {
+ readonly Count: number;
+ Item(vIndex: any): FaxAccount;
+ (vIndex: any): FaxAccount;
+ }
+
+ /** FaxAccountSet Class */
+ class FaxAccountSet {
+ private 'FAXCOMEXLib.FaxAccountSet_typekey': FaxAccountSet;
+ private constructor();
+
+ /** Adds a fax account */
+ AddAccount(bstrAccountName: string): FaxAccount;
+
+ /** Get fax account by name */
+ GetAccount(bstrAccountName: string): FaxAccount;
+
+ /** Collection of fax accounts */
+ GetAccounts(): FaxAccounts;
+
+ /** Removes a fax account by name */
+ RemoveAccount(bstrAccountName: string): void;
+ }
+
+ /** FaxActivity Class */
+ class FaxActivity {
+ private 'FAXCOMEXLib.FaxActivity_typekey': FaxActivity;
+ private constructor();
+
+ /** Number of incoming messages */
+ readonly IncomingMessages: number;
+
+ /** Number of outgoing messages */
+ readonly OutgoingMessages: number;
+
+ /** Number of queued messages */
+ readonly QueuedMessages: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Number of routed incoming messages */
+ readonly RoutingMessages: number;
+ }
+
+ /** FaxActivityLogging Class */
+ class FaxActivityLogging {
+ private 'FAXCOMEXLib.FaxActivityLogging_typekey': FaxActivityLogging;
+ private constructor();
+
+ /** Activity log database files path */
+ DatabasePath: string;
+
+ /** Does the server log incoming fax activity */
+ LogIncoming: boolean;
+
+ /** Does the server log outgoing fax activity */
+ LogOutgoing: boolean;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxConfiguration Class */
+ class FaxConfiguration {
+ private 'FAXCOMEXLib.FaxConfiguration_typekey': FaxConfiguration;
+ private constructor();
+
+ /** Are personal cover pages allowed */
+ AllowPersonalCoverPages: boolean;
+
+ /** Indicates how long the fax message is kept on the server */
+ ArchiveAgeLimit: number;
+
+ /** Location of the archive on the server */
+ ArchiveLocation: string;
+
+ /** The high 32-bit value of the archive size */
+ readonly ArchiveSizeHigh: number;
+
+ /** The low 32-bit value of the archive size */
+ readonly ArchiveSizeLow: number;
+
+ /** Does the server auto-create fax account on connect */
+ AutoCreateAccountOnConnect: boolean;
+
+ /** Does the server generate a brand */
+ Branding: boolean;
+
+ /** End of the discount rate period */
+ DiscountRateEnd: VarDate;
+
+ /** Start of the discount rate period */
+ DiscountRateStart: VarDate;
+
+ /** High quota water mark */
+ HighQuotaWaterMark: number;
+
+ /** Are incoming faxes viewable by everyone */
+ IncomingFaxesArePublic: boolean;
+
+ /** Is queue blocked for incoming faxes */
+ IncomingQueueBlocked: boolean;
+
+ /** Low quota water mark */
+ LowQuotaWaterMark: number;
+
+ /** How long the failed fax job is kept on the server */
+ OutgoingQueueAgeLimit: number;
+
+ /** Is queue blocked for outgoing faxes */
+ OutgoingQueueBlocked: boolean;
+
+ /** Is queue paused for outgoing faxes */
+ OutgoingQueuePaused: boolean;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Number of retries */
+ Retries: number;
+
+ /** Retry delay */
+ RetryDelay: number;
+
+ /** Save the object */
+ Save(): void;
+
+ /** Is size quota warning on */
+ SizeQuotaWarning: boolean;
+
+ /** Whether faxes should be archived */
+ UseArchive: boolean;
+
+ /** Is device Transmitting Station ID used */
+ UseDeviceTSID: boolean;
+ }
+
+ /** FaxDevice Class */
+ class FaxDevice {
+ private 'FAXCOMEXLib.FaxDevice_typekey': FaxDevice;
+ private constructor();
+
+ /** Answer the call */
+ AnswerCall(): void;
+
+ /** Device's Called Station ID */
+ CSID: string;
+
+ /** Description of the device */
+ Description: string;
+
+ /** Device name */
+ readonly DeviceName: string;
+
+ /** Get the device level extention property */
+ GetExtensionProperty(bstrGUID: string): SafeArray;
+
+ /** Unique device ID */
+ readonly Id: number;
+
+ /** Is the device is turned off */
+ readonly PoweredOff: boolean;
+
+ /** Device provider */
+ readonly ProviderUniqueName: string;
+
+ /** The receive mode of the device */
+ ReceiveMode: FAX_DEVICE_RECEIVE_MODE_ENUM;
+
+ /** Is the device receiving now */
+ readonly ReceivingNow: boolean;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Is the device ringing now */
+ readonly RingingNow: boolean;
+
+ /** Number of rings before the device answers */
+ RingsBeforeAnswer: number;
+
+ /** Save the object */
+ Save(): void;
+
+ /** Is the device is enabled to send */
+ SendEnabled: boolean;
+
+ /** Is the device sending now */
+ readonly SendingNow: boolean;
+
+ /** Set the device level extention property */
+ SetExtensionProperty(bstrGUID: string, vProperty: SafeArray): void;
+
+ /** Device's Transmitting Station ID */
+ TSID: string;
+
+ /** Array of routing methods GUIDs */
+ readonly UsedRoutingMethods: SafeArray;
+
+ /** Adds or removes routing method */
+ UseRoutingMethod(bstrMethodGUID: string, bUse: boolean): void;
+ }
+
+ /** FaxDeviceIds Class */
+ interface FaxDeviceIds {
+ /** Add a device */
+ Add(lDeviceId: number): void;
+ readonly Count: number;
+ Item(lIndex: number): number;
+
+ /** Remove a device */
+ Remove(lIndex: number): void;
+
+ /** Set order of the device */
+ SetOrder(lDeviceId: number, lNewOrder: number): void;
+ (lIndex: number): number;
+ }
+
+ /** FaxDeviceProvider Class */
+ class FaxDeviceProvider {
+ private 'FAXCOMEXLib.FaxDeviceProvider_typekey': FaxDeviceProvider;
+ private constructor();
+
+ /** Is device provider built in debug environment */
+ readonly Debug: boolean;
+
+ /** Array of device IDs exposed by the provider */
+ readonly DeviceIds: SafeArray;
+
+ /** Provider's friendly name */
+ readonly FriendlyName: string;
+
+ /** Full path and file name of the provider DLL */
+ readonly ImageName: string;
+
+ /** Last error code at load or initialization */
+ readonly InitErrorCode: number;
+
+ /** The major part of the device provider's build number */
+ readonly MajorBuild: number;
+
+ /** The major part of the device provider's version number */
+ readonly MajorVersion: number;
+
+ /** The minor part of the device provider's build number */
+ readonly MinorBuild: number;
+
+ /** The minor part of the device provider's version number */
+ readonly MinorVersion: number;
+
+ /** Status of the device provider */
+ readonly Status: FAX_PROVIDER_STATUS_ENUM;
+
+ /** TSP name used by the provider */
+ readonly TapiProviderName: string;
+
+ /** Unique name of the provider */
+ readonly UniqueName: string;
+ }
+
+ /** FaxDeviceProviders Class */
+ interface FaxDeviceProviders {
+ readonly Count: number;
+ Item(vIndex: any): FaxDeviceProvider;
+ (vIndex: any): FaxDeviceProvider;
+ }
+
+ /** FaxDevices Class */
+ interface FaxDevices {
+ readonly Count: number;
+ Item(vIndex: any): FaxDevice;
+
+ /** Get device by its ID */
+ ItemById(lId: number): FaxDevice;
+ (vIndex: any): FaxDevice;
+ }
+
+ /** FaxDocument Class */
+ class FaxDocument {
+ private 'FAXCOMEXLib.FaxDocument_typekey': FaxDocument;
+ private constructor();
+
+ /** Whether to attach a fax to the receipt */
+ AttachFaxToReceipt: boolean;
+
+ /** Full paths to the fax document body files */
+ Bodies: any;
+
+ /** Full path to the fax document body file */
+ Body: string;
+
+ /** Call handle */
+ CallHandle: number;
+
+ /** Submit the fax document on the already connected server */
+ ConnectedSubmit(pFaxServer: IFaxServer): SafeArray;
+
+ /** Submit the fax document on the already connected server */
+ ConnectedSubmit2(pFaxServer: IFaxServer, pvFaxOutgoingJobIDs: SafeArray): number;
+
+ /** Cover page file path */
+ CoverPage: string;
+
+ /** Is server, local, or no cover page used */
+ CoverPageType: FAX_COVERPAGE_TYPE_ENUM;
+
+ /** The document name */
+ DocumentName: string;
+
+ /** Whether to group the broadcast receipts */
+ GroupBroadcastReceipts: boolean;
+
+ /** Contents of cover page note field */
+ Note: string;
+
+ /** Priority of the fax */
+ Priority: FAX_PRIORITY_TYPE_ENUM;
+
+ /** Address of the receipt */
+ ReceiptAddress: string;
+
+ /** Type of the receipt */
+ ReceiptType: FAX_RECEIPT_TYPE_ENUM;
+
+ /** Collection of recipients */
+ readonly Recipients: FaxRecipients;
+
+ /** Time to send the fax */
+ ScheduleTime: VarDate;
+
+ /** When to send the fax */
+ ScheduleType: FAX_SCHEDULE_TYPE_ENUM;
+
+ /** Sender information object */
+ readonly Sender: FaxSender;
+
+ /** Contents of cover page subject field */
+ Subject: string;
+
+ /** Submission Id for the Fax document */
+ readonly SubmissionId: string;
+
+ /** Connect to server, submit the fax document, disconnect */
+ Submit(bstrFaxServerName: string): SafeArray;
+
+ /** Connect to server, submit the fax document, disconnect */
+ Submit2(bstrFaxServerName: string, pvFaxOutgoingJobIDs: any): number;
+
+ /** Tapi connection */
+ TapiConnection: any;
+ }
+
+ /** FaxEventLogging Class */
+ class FaxEventLogging {
+ private 'FAXCOMEXLib.FaxEventLogging_typekey': FaxEventLogging;
+ private constructor();
+
+ /** Detail level of event logs for general (other) events */
+ GeneralEventsLevel: FAX_LOG_LEVEL_ENUM;
+
+ /** Detail level of event logs for inbound fax events */
+ InboundEventsLevel: FAX_LOG_LEVEL_ENUM;
+
+ /** Detail level of event logs for initialization events */
+ InitEventsLevel: FAX_LOG_LEVEL_ENUM;
+
+ /** Detail level of event logs for outbound fax events */
+ OutboundEventsLevel: FAX_LOG_LEVEL_ENUM;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxFolders Class */
+ class FaxFolders {
+ private 'FAXCOMEXLib.FaxFolders_typekey': FaxFolders;
+ private constructor();
+
+ /** Incoming archive */
+ readonly IncomingArchive: FaxIncomingArchive;
+
+ /** Incoming queue */
+ readonly IncomingQueue: FaxIncomingQueue;
+
+ /** Outgoing archive */
+ readonly OutgoingArchive: FaxOutgoingArchive;
+
+ /** Outgoing queue */
+ readonly OutgoingQueue: FaxOutgoingQueue;
+ }
+
+ /** FaxInboundRouting Class */
+ class FaxInboundRouting {
+ private 'FAXCOMEXLib.FaxInboundRouting_typekey': FaxInboundRouting;
+ private constructor();
+
+ /** Registered inbound routing extensions collection */
+ GetExtensions(): FaxInboundRoutingExtensions;
+
+ /** Ordered collection of all the registered methods */
+ GetMethods(): FaxInboundRoutingMethods;
+ }
+
+ /** FaxInboundRoutingExtension Class */
+ class FaxInboundRoutingExtension {
+ private 'FAXCOMEXLib.FaxInboundRoutingExtension_typekey': FaxInboundRoutingExtension;
+ private constructor();
+
+ /** Is extension built in debug environment */
+ readonly Debug: boolean;
+
+ /** Extension's friendly name */
+ readonly FriendlyName: string;
+
+ /** Full path and file name of the extension DLL */
+ readonly ImageName: string;
+
+ /** Last error code at load or initialization */
+ readonly InitErrorCode: number;
+
+ /** The major part of extension's build number */
+ readonly MajorBuild: number;
+
+ /** The major part of extension's version number */
+ readonly MajorVersion: number;
+
+ /** Array of methods exposed by extension */
+ readonly Methods: SafeArray;
+
+ /** The minor part of extension's build number */
+ readonly MinorBuild: number;
+
+ /** The minor part of extension's version number */
+ readonly MinorVersion: number;
+
+ /** Load and initialization status of the extension */
+ readonly Status: FAX_PROVIDER_STATUS_ENUM;
+
+ /** Extension's unique name */
+ readonly UniqueName: string;
+ }
+
+ /** FaxInboundRoutingExtensions Class */
+ interface FaxInboundRoutingExtensions {
+ readonly Count: number;
+ Item(vIndex: any): FaxInboundRoutingExtension;
+ (vIndex: any): FaxInboundRoutingExtension;
+ }
+
+ /** FaxInboundRoutingMethod Class */
+ class FaxInboundRoutingMethod {
+ private 'FAXCOMEXLib.FaxInboundRoutingMethod_typekey': FaxInboundRoutingMethod;
+ private constructor();
+
+ /** Friendly name of the extension exposing this method */
+ readonly ExtensionFriendlyName: string;
+
+ /** Image name of the extension exposing this method */
+ readonly ExtensionImageName: string;
+
+ /** Internal function name */
+ readonly FunctionName: string;
+
+ /** GUID of the method */
+ readonly GUID: string;
+
+ /** The name of the method */
+ readonly Name: string;
+
+ /** Priority of the method */
+ Priority: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxInboundRoutingMethods Class */
+ interface FaxInboundRoutingMethods {
+ readonly Count: number;
+ Item(vIndex: any): FaxInboundRoutingMethod;
+ (vIndex: any): FaxInboundRoutingMethod;
+ }
+
+ /** FaxIncomingArchive Class */
+ class FaxIncomingArchive {
+ private 'FAXCOMEXLib.FaxIncomingArchive_typekey': FaxIncomingArchive;
+ private constructor();
+
+ /** How long the fax message is kept on the Server */
+ AgeLimit: number;
+
+ /** Location of the archive folder on the server */
+ ArchiveFolder: string;
+
+ /** Get archived message by its ID */
+ GetMessage(bstrMessageId: string): IFaxIncomingMessage;
+
+ /**
+ * Iterator on the archived messages
+ * @param number [lPrefetchSize=100]
+ */
+ GetMessages(lPrefetchSize?: number): FaxIncomingMessageIterator;
+
+ /** High quota water mark */
+ HighQuotaWaterMark: number;
+
+ /** Low quota water mark */
+ LowQuotaWaterMark: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+
+ /** The high 32-bit value of the archive size */
+ readonly SizeHigh: number;
+
+ /** The low 32-bit value of the archive size */
+ readonly SizeLow: number;
+
+ /** Is size quota warning on */
+ SizeQuotaWarning: boolean;
+
+ /** Whether received faxes should be archived */
+ UseArchive: boolean;
+ }
+
+ /** FaxIncomingJob Class */
+ class FaxIncomingJob {
+ private 'FAXCOMEXLib.FaxIncomingJob_typekey': FaxIncomingJob;
+ private constructor();
+
+ /** Available operations, a bit-wise combination of FAX_JOB_OPERATIONS values */
+ readonly AvailableOperations: FAX_JOB_OPERATIONS_ENUM;
+
+ /** Caller ID */
+ readonly CallerId: string;
+
+ /** Cancel the incoming job */
+ Cancel(): void;
+
+ /** Copy TIFF image to the local file */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Page currently in transmision */
+ readonly CurrentPage: number;
+
+ /** Device ID that transmits the job */
+ readonly DeviceId: number;
+
+ /** Extended status description */
+ readonly ExtendedStatus: string;
+
+ /** Code of the job's extended status */
+ readonly ExtendedStatusCode: FAX_JOB_EXTENDED_STATUS_ENUM;
+
+ /** Unique message ID */
+ readonly Id: string;
+
+ /** Job type */
+ readonly JobType: FAX_JOB_TYPE_ENUM;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Number of failed transmission retries */
+ readonly Retries: number;
+
+ /** Routing information */
+ readonly RoutingInformation: string;
+
+ /** Size in bytes of the message's TIFF file */
+ readonly Size: number;
+
+ /** Current queue status of the job, a bit-wise combination of FAX_JOB_STATUS values */
+ readonly Status: FAX_JOB_STATUS_ENUM;
+
+ /** Transmission end time */
+ readonly TransmissionEnd: VarDate;
+
+ /** Transmission start time */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** FaxIncomingJobs Class */
+ interface FaxIncomingJobs {
+ readonly Count: number;
+ Item(vIndex: any): FaxIncomingJob;
+ (vIndex: any): FaxIncomingJob;
+ }
+
+ /** FaxIncomingMessage Class */
+ class FaxIncomingMessage extends IFaxIncomingMessage {
+ private 'FAXCOMEXLib.FaxIncomingMessage_typekey': FaxIncomingMessage;
+ private constructor();
+
+ /** Has Cover page */
+ HasCoverPage: boolean;
+
+ /** Read flag on the message */
+ Read: boolean;
+
+ /** Reassigns the message */
+ ReAssign(): void;
+
+ /** Set of recipient names */
+ Recipients: string;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+
+ /** Sender's fax number */
+ SenderFaxNumber: string;
+
+ /** Sender's name */
+ SenderName: string;
+
+ /** Contents of cover page subject field */
+ Subject: string;
+
+ /** Is message reassigned? */
+ readonly WasReAssigned: boolean;
+ }
+
+ /** FaxIncomingMessageIterator Class */
+ class FaxIncomingMessageIterator {
+ private 'FAXCOMEXLib.FaxIncomingMessageIterator_typekey': FaxIncomingMessageIterator;
+ private constructor();
+
+ /** End of archive marker */
+ readonly AtEOF: boolean;
+
+ /** The current message */
+ readonly Message: IFaxIncomingMessage;
+
+ /** Move to the first message in the archive */
+ MoveFirst(): void;
+
+ /** Move to the next message in the archive */
+ MoveNext(): void;
+
+ /** Size of the prefetch buffer */
+ PrefetchSize: number;
+ }
+
+ /** FaxIncomingQueue Class */
+ class FaxIncomingQueue {
+ private 'FAXCOMEXLib.FaxIncomingQueue_typekey': FaxIncomingQueue;
+ private constructor();
+
+ /** Is queue blocked */
+ Blocked: boolean;
+
+ /** Get incoming job by ID */
+ GetJob(bstrJobId: string): FaxIncomingJob;
+
+ /** Collection of incoming jobs */
+ GetJobs(): FaxIncomingJobs;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxJobStatus Class */
+ class FaxJobStatus {
+ private 'FAXCOMEXLib.FaxJobStatus_typekey': FaxJobStatus;
+ private constructor();
+
+ /** Available operations, a bit-wise combination of FAX_JOB_OPERATIONS values */
+ readonly AvailableOperations: FAX_JOB_OPERATIONS_ENUM;
+
+ /** Caller ID */
+ readonly CallerId: string;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Page currently in transmision */
+ readonly CurrentPage: number;
+
+ /** Device ID of device that transmits the job */
+ readonly DeviceId: number;
+
+ /** Extended status description */
+ readonly ExtendedStatus: string;
+
+ /** Code of the job's extended status */
+ readonly ExtendedStatusCode: FAX_JOB_EXTENDED_STATUS_ENUM;
+
+ /** Job type */
+ readonly JobType: FAX_JOB_TYPE_ENUM;
+
+ /** Total number of pages */
+ readonly Pages: number;
+
+ /** Number of failed transmission retries */
+ readonly Retries: number;
+
+ /** Routing information */
+ readonly RoutingInformation: string;
+
+ /** The time the fax job is scheduled to be transmitted */
+ readonly ScheduledTime: VarDate;
+
+ /** Size in bytes of TIFF file */
+ readonly Size: number;
+
+ /** Current queue status of the job, a bit-wise combination of FAX_JOB_STATUS values */
+ readonly Status: FAX_JOB_STATUS_ENUM;
+
+ /** The time the fax job finished its transmission */
+ readonly TransmissionEnd: VarDate;
+
+ /** The time the fax job started its transmission */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** FaxLoggingOptions Class */
+ class FaxLoggingOptions {
+ private 'FAXCOMEXLib.FaxLoggingOptions_typekey': FaxLoggingOptions;
+ private constructor();
+
+ /** Activity logging configuration object */
+ readonly ActivityLogging: FaxActivityLogging;
+
+ /** Event logging configuration object */
+ readonly EventLogging: FaxEventLogging;
+ }
+
+ /** FaxOutboundRouting Class */
+ class FaxOutboundRouting {
+ private 'FAXCOMEXLib.FaxOutboundRouting_typekey': FaxOutboundRouting;
+ private constructor();
+
+ /** Configuration of the outbound routing groups */
+ GetGroups(): FaxOutboundRoutingGroups;
+
+ /** Configuration of the outbound routing rules */
+ GetRules(): FaxOutboundRoutingRules;
+ }
+
+ /** FaxOutboundRoutingGroup Class */
+ class FaxOutboundRoutingGroup {
+ private 'FAXCOMEXLib.FaxOutboundRoutingGroup_typekey': FaxOutboundRoutingGroup;
+ private constructor();
+
+ /** Ordered collection of device IDs */
+ readonly DeviceIds: FaxDeviceIds;
+
+ /** Name of the group */
+ readonly Name: string;
+
+ /** Status of the group */
+ readonly Status: FAX_GROUP_STATUS_ENUM;
+ }
+
+ /** FaxOutboundRoutingGroups Class */
+ interface FaxOutboundRoutingGroups {
+ /** Add a group */
+ Add(bstrName: string): FaxOutboundRoutingGroup;
+ readonly Count: number;
+ Item(vIndex: number | string): FaxOutboundRoutingGroup;
+
+ /** Remove a group */
+ Remove(vIndex: number | string): void;
+ (vIndex: number | string): FaxOutboundRoutingGroup;
+ }
+
+ /** FaxOutboundRoutingRule Class */
+ class FaxOutboundRoutingRule {
+ private 'FAXCOMEXLib.FaxOutboundRoutingRule_typekey': FaxOutboundRoutingRule;
+ private constructor();
+
+ /** Area code */
+ readonly AreaCode: number;
+
+ /** Country code */
+ readonly CountryCode: number;
+
+ /** Destination device */
+ DeviceId: number;
+
+ /** Group name */
+ GroupName: string;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+
+ /** Status */
+ readonly Status: FAX_RULE_STATUS_ENUM;
+
+ /** Uses single device or group */
+ UseDevice: boolean;
+ }
+
+ /** FaxOutboundRoutingRules Class */
+ interface FaxOutboundRoutingRules {
+ /** Add a rule */
+ Add(lCountryCode: number, lAreaCode: number, bUseDevice: boolean, bstrGroupName: string, lDeviceId: number): FaxOutboundRoutingRule;
+ readonly Count: number;
+ Item(lIndex: number): FaxOutboundRoutingRule;
+
+ /** Get a rule by criteria */
+ ItemByCountryAndArea(lCountryCode: number, lAreaCode: number): FaxOutboundRoutingRule;
+
+ /** Remove a rule */
+ Remove(lIndex: number): void;
+
+ /** Remove a rule by criteria */
+ RemoveByCountryAndArea(lCountryCode: number, lAreaCode: number): void;
+ (lIndex: number): FaxOutboundRoutingRule;
+ }
+
+ /** FaxOutgoingArchive Class */
+ class FaxOutgoingArchive {
+ private 'FAXCOMEXLib.FaxOutgoingArchive_typekey': FaxOutgoingArchive;
+ private constructor();
+
+ /** Indicates how long the fax message is kept on the server */
+ AgeLimit: number;
+
+ /** Location of the outgoing archive on the server */
+ ArchiveFolder: string;
+
+ /** Get an archived message by its ID */
+ GetMessage(bstrMessageId: string): IFaxOutgoingMessage;
+
+ /**
+ * Iterator on the archived messages
+ * @param number [lPrefetchSize=100]
+ */
+ GetMessages(lPrefetchSize?: number): FaxOutgoingMessageIterator;
+
+ /** High quota water mark */
+ HighQuotaWaterMark: number;
+
+ /** Low quota water mark */
+ LowQuotaWaterMark: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+
+ /** The high 32-bit value of the archive size */
+ readonly SizeHigh: number;
+
+ /** The low 32-bit value of the archive size */
+ readonly SizeLow: number;
+
+ /** Is the size quota warning on or off */
+ SizeQuotaWarning: boolean;
+
+ /** Whether sent faxes should be archived */
+ UseArchive: boolean;
+ }
+
+ /** FaxOutgoingJob Class */
+ class FaxOutgoingJob {
+ private 'FAXCOMEXLib.FaxOutgoingJob_typekey': FaxOutgoingJob;
+ private constructor();
+
+ /** Available operations, a bit-wise combination of FAX_JOB_OPERATIONS values */
+ readonly AvailableOperations: FAX_JOB_OPERATIONS_ENUM;
+
+ /** Cancel the outbound job */
+ Cancel(): void;
+
+ /** Copy the job's TIFF image */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Page currently in transmision */
+ readonly CurrentPage: number;
+
+ /** Device ID that transmits the job */
+ readonly DeviceId: number;
+
+ /** Document's friendly name */
+ readonly DocumentName: string;
+
+ /** Extended status description */
+ readonly ExtendedStatus: string;
+
+ /** Code of the job's extended status */
+ readonly ExtendedStatusCode: FAX_JOB_EXTENDED_STATUS_ENUM;
+
+ /** Whether to group broadcast receipts */
+ readonly GroupBroadcastReceipts: boolean;
+
+ /** Has Cover page */
+ readonly HasCoverPage: boolean;
+
+ /** Unique job ID */
+ readonly Id: string;
+
+ /** Time the job was originally scheduled to be transmitted */
+ readonly OriginalScheduledTime: VarDate;
+
+ /** Total number of pages */
+ readonly Pages: number;
+
+ /** Pause the outbound job */
+ Pause(): void;
+
+ /** Priority of the fax */
+ readonly Priority: FAX_PRIORITY_TYPE_ENUM;
+
+ /** Address of the receipt */
+ readonly ReceiptAddress: string;
+
+ /** Type of receipt */
+ readonly ReceiptType: FAX_RECEIPT_TYPE_ENUM;
+
+ /** Recipient information object */
+ readonly Recipient: FaxRecipient;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Restart the outbound job */
+ Restart(): void;
+
+ /** Resume the outbound job */
+ Resume(): void;
+
+ /** Number of failed transmission retries */
+ readonly Retries: number;
+
+ /** The time the fax job is scheduled to be transmitted */
+ readonly ScheduledTime: VarDate;
+
+ /** When to send the fax */
+ readonly ScheduleType: FAX_SCHEDULE_TYPE_ENUM;
+
+ /** Sender information object */
+ readonly Sender: FaxSender;
+
+ /** Size in bytes of TIFF file */
+ readonly Size: number;
+
+ /** Current queue status of the job */
+ readonly Status: FAX_JOB_STATUS_ENUM;
+
+ /** Cover page's subject field */
+ readonly Subject: string;
+
+ /** Unique ID the submission process created for the Job */
+ readonly SubmissionId: string;
+
+ /** Time the job was submitted */
+ readonly SubmissionTime: VarDate;
+
+ /** The time the fax job finished its transmission */
+ readonly TransmissionEnd: VarDate;
+
+ /** The time the fax job started its transmission */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** FaxOutgoingJobs Class */
+ interface FaxOutgoingJobs {
+ readonly Count: number;
+ Item(vIndex: any): IFaxOutgoingJob;
+ (vIndex: any): IFaxOutgoingJob;
+ }
+
+ /** FaxOutgoingMessage Class */
+ class FaxOutgoingMessage extends IFaxOutgoingMessage {
+ private 'FAXCOMEXLib.FaxOutgoingMessage_typekey': FaxOutgoingMessage;
+ private constructor();
+
+ /** Copy Tiff image to the local file */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Has Cover page */
+ readonly HasCoverPage: boolean;
+
+ /** Read flag on the message */
+ Read: boolean;
+
+ /** Address of the receipt */
+ readonly ReceiptAddress: string;
+
+ /** Type of the receipt */
+ readonly ReceiptType: FAX_RECEIPT_TYPE_ENUM;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxOutgoingMessageIterator Class */
+ class FaxOutgoingMessageIterator {
+ private 'FAXCOMEXLib.FaxOutgoingMessageIterator_typekey': FaxOutgoingMessageIterator;
+ private constructor();
+
+ /** End of archive marker */
+ readonly AtEOF: boolean;
+
+ /** Current message */
+ readonly Message: IFaxOutgoingMessage;
+
+ /** Move to the first message */
+ MoveFirst(): void;
+
+ /** Move to the next message */
+ MoveNext(): void;
+
+ /** Size of prefetch buffer */
+ PrefetchSize: number;
+ }
+
+ /** FaxOutgoingQueue Class */
+ class FaxOutgoingQueue {
+ private 'FAXCOMEXLib.FaxOutgoingQueue_typekey': FaxOutgoingQueue;
+ private constructor();
+
+ /** How long the failed fax message is kept on the server */
+ AgeLimit: number;
+
+ /** Are personal cover pages allowed */
+ AllowPersonalCoverPages: boolean;
+
+ /** Is the queue blocked */
+ Blocked: boolean;
+
+ /** Does the server generate a brand */
+ Branding: boolean;
+
+ /** End of the discount rate period */
+ DiscountRateEnd: VarDate;
+
+ /** Start of the discount rate period */
+ DiscountRateStart: VarDate;
+
+ /** Outgoing job by ID */
+ GetJob(bstrJobId: string): IFaxOutgoingJob;
+
+ /** Collection of outgoing jobs */
+ GetJobs(): FaxOutgoingJobs;
+
+ /** Is the queue paused */
+ Paused: boolean;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Number of retries */
+ Retries: number;
+
+ /** Retry delay */
+ RetryDelay: number;
+
+ /** Save the object */
+ Save(): void;
+
+ /** Is device Transmitting Station ID used */
+ UseDeviceTSID: boolean;
+ }
+
+ /** FaxReceiptOptions Class */
+ class FaxReceiptOptions {
+ private 'FAXCOMEXLib.FaxReceiptOptions_typekey': FaxReceiptOptions;
+ private constructor();
+
+ /** Allowed receipt types, a bit-wise combination of FAX_RECEIPT_TYPE values */
+ AllowedReceipts: FAX_RECEIPT_TYPE_ENUM;
+
+ /** Authentication type used by server */
+ AuthenticationType: FAX_SMTP_AUTHENTICATION_TYPE_ENUM;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+
+ /** SMTP password */
+ SMTPPassword: string;
+
+ /** SMTP port number */
+ SMTPPort: number;
+
+ /** SMTP sender e-mail address */
+ SMTPSender: string;
+
+ /** Name of the SMTP server */
+ SMTPServer: string;
+
+ /** SMTP user name */
+ SMTPUser: string;
+
+ /** Whether to use the IFaxReceiptOptions settings for MS routing extension */
+ UseForInboundRouting: boolean;
+ }
+
+ /** FaxRecipient Class */
+ class FaxRecipient {
+ private 'FAXCOMEXLib.FaxRecipient_typekey': FaxRecipient;
+ private constructor();
+
+ /** Recipient's fax number */
+ FaxNumber: string;
+
+ /** Recipient's name */
+ Name: string;
+ }
+
+ /** FaxRecipients Class */
+ interface FaxRecipients {
+ /**
+ * Add a recipient
+ * @param string [bstrRecipientName='']
+ */
+ Add(bstrFaxNumber: string, bstrRecipientName?: string): FaxRecipient;
+ readonly Count: number;
+ Item(lIndex: number): FaxRecipient;
+
+ /** Remove a recipient */
+ Remove(lIndex: number): void;
+ (lIndex: number): FaxRecipient;
+ }
+
+ /** FaxSecurity Class */
+ class FaxSecurity {
+ private 'FAXCOMEXLib.FaxSecurity_typekey': FaxSecurity;
+ private constructor();
+
+ /** Security descriptor */
+ Descriptor: any;
+
+ /** Granted rights, a bit-wise combination of FAX_ACCESS_RIGHTS values */
+ readonly GrantedRights: FAX_ACCESS_RIGHTS_ENUM;
+
+ /** Security Information Type */
+ InformationType: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxSecurity2 Class */
+ class FaxSecurity2 {
+ private 'FAXCOMEXLib.FaxSecurity2_typekey': FaxSecurity2;
+ private constructor();
+
+ /** Security descriptor */
+ Descriptor: any;
+
+ /** Granted rights, a bit-wise combination */
+ readonly GrantedRights: FAX_ACCESS_RIGHTS_ENUM_2;
+
+ /** Security Information Type */
+ InformationType: number;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Save the object */
+ Save(): void;
+ }
+
+ /** FaxSender Class */
+ class FaxSender {
+ private 'FAXCOMEXLib.FaxSender_typekey': FaxSender;
+ private constructor();
+
+ /** Sender's billing code */
+ BillingCode: string;
+
+ /** City */
+ City: string;
+
+ /** Sender's company */
+ Company: string;
+
+ /** Sender's country or region */
+ Country: string;
+
+ /** Sender's department */
+ Department: string;
+
+ /** Sender's e-mail address */
+ Email: string;
+
+ /** Sender's fax number */
+ FaxNumber: string;
+
+ /** Sender's home phone */
+ HomePhone: string;
+
+ /** Load default sender */
+ LoadDefaultSender(): void;
+
+ /** Sender's name */
+ Name: string;
+
+ /** Sender's office location */
+ OfficeLocation: string;
+
+ /** Sender's office phone */
+ OfficePhone: string;
+
+ /** Save default sender */
+ SaveDefaultSender(): void;
+
+ /** Sender's state */
+ State: string;
+
+ /** Sender's street address */
+ StreetAddress: string;
+
+ /** Sender's title */
+ Title: string;
+
+ /** Transmitting Station ID */
+ TSID: string;
+
+ /** Sender's zip code */
+ ZipCode: string;
+ }
+
+ /** FaxServer Class */
+ class FaxServer extends IFaxServer {
+ private 'FAXCOMEXLib.FaxServer_typekey': FaxServer;
+ private constructor();
+
+ /** Fax server configuration */
+ readonly Configuration: FaxConfiguration;
+
+ /** FaxAccount for the current connection */
+ readonly CurrentAccount: FaxAccount;
+
+ /** The FaxAccountSet configuration object */
+ readonly FaxAccountSet: FaxAccountSet;
+
+ /** The security configuration object */
+ readonly Security2: FaxSecurity2;
+ }
+
+ /** IFaxIncomingMessage interface */
+ class IFaxIncomingMessage {
+ /** Caller ID */
+ readonly CallerId: string;
+
+ /** Copy Tiff image to the local file */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Delete the message from the archive */
+ Delete(): void;
+
+ /** Name of the device that received the message */
+ readonly DeviceName: string;
+
+ /** Unique message ID */
+ readonly Id: string;
+
+ /** Total number of pages */
+ readonly Pages: number;
+
+ /** Number of failed routing retries */
+ readonly Retries: number;
+
+ /** Routing information */
+ readonly RoutingInformation: string;
+
+ /** Size in bytes of the message's TIFF file */
+ readonly Size: number;
+
+ /** Transmission end time */
+ readonly TransmissionEnd: VarDate;
+
+ /** Transmission start time */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** IFaxOutgoingJob interface */
+ class IFaxOutgoingJob {
+ private 'FAXCOMEXLib.IFaxOutgoingJob_typekey': IFaxOutgoingJob;
+ private constructor();
+
+ /** Available operations, a bit-wise combination of FAX_JOB_OPERATIONS values */
+ readonly AvailableOperations: FAX_JOB_OPERATIONS_ENUM;
+
+ /** Cancel the outbound job */
+ Cancel(): void;
+
+ /** Copy the job's TIFF image */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Page currently in transmision */
+ readonly CurrentPage: number;
+
+ /** Device ID that transmits the job */
+ readonly DeviceId: number;
+
+ /** Document's friendly name */
+ readonly DocumentName: string;
+
+ /** Extended status description */
+ readonly ExtendedStatus: string;
+
+ /** Code of the job's extended status */
+ readonly ExtendedStatusCode: FAX_JOB_EXTENDED_STATUS_ENUM;
+
+ /** Whether to group broadcast receipts */
+ readonly GroupBroadcastReceipts: boolean;
+
+ /** Unique job ID */
+ readonly Id: string;
+
+ /** Time the job was originally scheduled to be transmitted */
+ readonly OriginalScheduledTime: VarDate;
+
+ /** Total number of pages */
+ readonly Pages: number;
+
+ /** Pause the outbound job */
+ Pause(): void;
+
+ /** Priority of the fax */
+ readonly Priority: FAX_PRIORITY_TYPE_ENUM;
+
+ /** Type of receipt */
+ readonly ReceiptType: FAX_RECEIPT_TYPE_ENUM;
+
+ /** Recipient information object */
+ readonly Recipient: FaxRecipient;
+
+ /** Refresh the object */
+ Refresh(): void;
+
+ /** Restart the outbound job */
+ Restart(): void;
+
+ /** Resume the outbound job */
+ Resume(): void;
+
+ /** Number of failed transmission retries */
+ readonly Retries: number;
+
+ /** The time the fax job is scheduled to be transmitted */
+ readonly ScheduledTime: VarDate;
+
+ /** Sender information object */
+ readonly Sender: FaxSender;
+
+ /** Size in bytes of TIFF file */
+ readonly Size: number;
+
+ /** Current queue status of the job */
+ readonly Status: FAX_JOB_STATUS_ENUM;
+
+ /** Cover page's subject field */
+ readonly Subject: string;
+
+ /** Unique ID the submission process created for the Job */
+ readonly SubmissionId: string;
+
+ /** Time the job was submitted */
+ readonly SubmissionTime: VarDate;
+
+ /** The time the fax job finished its transmission */
+ readonly TransmissionEnd: VarDate;
+
+ /** The time the fax job started its transmission */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** IFaxOutgoingMessage interface */
+ class IFaxOutgoingMessage {
+ /** Copy Tiff image to the local file */
+ CopyTiff(bstrTiffPath: string): void;
+
+ /** Called Station ID */
+ readonly CSID: string;
+
+ /** Delete the message from the archive */
+ Delete(): void;
+
+ /** Name of the device transmitting the message */
+ readonly DeviceName: string;
+
+ /** Document's friendly name */
+ readonly DocumentName: string;
+
+ /** Unique message ID */
+ readonly Id: string;
+
+ /** Time the job was originally scheduled to be transmitted */
+ readonly OriginalScheduledTime: VarDate;
+
+ /** Total number of pages */
+ readonly Pages: number;
+
+ /** Priority of the fax */
+ readonly Priority: FAX_PRIORITY_TYPE_ENUM;
+
+ /** Recipient information object */
+ readonly Recipient: FaxRecipient;
+
+ /** Number of failed routing retries */
+ readonly Retries: number;
+
+ /** Sender information object */
+ readonly Sender: FaxSender;
+
+ /** Size in bytes of TIFF file */
+ readonly Size: number;
+
+ /** Cover page's subject field */
+ readonly Subject: string;
+
+ /** Unique ID the submission process created for the job */
+ readonly SubmissionId: string;
+
+ /** Time the job was submitted */
+ readonly SubmissionTime: VarDate;
+
+ /** Transmission end time */
+ readonly TransmissionEnd: VarDate;
+
+ /** Transmission start time */
+ readonly TransmissionStart: VarDate;
+
+ /** Transmitting Station ID */
+ readonly TSID: string;
+ }
+
+ /** IFaxServer interface */
+ class IFaxServer {
+ /** The fax server activity status object */
+ readonly Activity: FaxActivity;
+
+ /** Version of the fax server API */
+ readonly APIVersion: FAX_SERVER_APIVERSION_ENUM;
+
+ /** Connect to the fax server */
+ Connect(bstrServerName: string): void;
+
+ /** Is fax server built in debug environment */
+ readonly Debug: boolean;
+
+ /** Disconnect from the fax server */
+ Disconnect(): void;
+
+ /** The fax folders object */
+ readonly Folders: FaxFolders;
+
+ /** The collection of device providers */
+ GetDeviceProviders(): FaxDeviceProviders;
+
+ /** The collection of all available devices */
+ GetDevices(): FaxDevices;
+
+ /** Return server level extention property */
+ GetExtensionProperty(bstrGUID: string): any;
+
+ /** The inbound routing configuration object */
+ readonly InboundRouting: FaxInboundRouting;
+
+ /** Set bit-wise combination of events the fax server listens to */
+ ListenToServerEvents(EventTypes: FAX_SERVER_EVENTS_TYPE_ENUM): void;
+
+ /** The logging options configuration object */
+ readonly LoggingOptions: FaxLoggingOptions;
+
+ /** The major part of the fax server's build number */
+ readonly MajorBuild: number;
+
+ /** The major part of the fax server's version number */
+ readonly MajorVersion: number;
+
+ /** The minor part of the fax server's build number */
+ readonly MinorBuild: number;
+
+ /** The minor part of the fax server's version number */
+ readonly MinorVersion: number;
+
+ /** The outbound routing configuration object */
+ readonly OutboundRouting: FaxOutboundRouting;
+
+ /** The receipt options configuration object */
+ readonly ReceiptOptions: FaxReceiptOptions;
+
+ /** Register device provider */
+ RegisterDeviceProvider(bstrGUID: string, bstrFriendlyName: string, bstrImageName: string, TspName: string, lFSPIVersion: number): void;
+
+ /** Events the fax Server is listening to */
+ readonly RegisteredEvents: FAX_SERVER_EVENTS_TYPE_ENUM;
+
+ /** Register inbound routing extension */
+ RegisterInboundRoutingExtension(bstrExtensionName: string, bstrFriendlyName: string, bstrImageName: string, vMethods: any): void;
+
+ /** The security configuration object */
+ readonly Security: FaxSecurity;
+
+ /** The name of the fax server */
+ readonly ServerName: string;
+
+ /** Set server level extention property */
+ SetExtensionProperty(bstrGUID: string, vProperty: SafeArray): void;
+
+ /** Unregister device provider */
+ UnregisterDeviceProvider(bstrUniqueName: string): void;
+
+ /** Unregister inbound routing extension */
+ UnregisterInboundRoutingExtension(bstrExtensionUniqueName: string): void;
+ }
+
+ namespace EventHelperTypes {
+ type FaxAccount_Invoke_ArgNames = ['dispidMember', 'riid', 'lcid', 'wFlags', 'pdispparams', 'pvarResult', 'pexcepinfo', 'puArgErr'];
+
+ type FaxServer_Invoke_ArgNames = ['dispidMember', 'riid', 'lcid', 'wFlags', 'pdispparams', 'pvarResult', 'pexcepinfo', 'puArgErr'];
+
+ type FaxServer_OnDeviceStatusChange_ArgNames = ['pFaxServer', 'lDeviceId', 'bPoweredOff', 'bSending', 'bReceiving', 'bRinging'];
+
+ interface FaxAccount_Invoke_Parameter {
+ readonly dispidMember: number;
+ readonly lcid: number;
+ readonly pdispparams: stdole.DISPPARAMS;
+ pexcepinfo: stdole.EXCEPINFO;
+ puArgErr: number;
+ pvarResult: any;
+ readonly riid: stdole.GUID;
+ readonly wFlags: number;
+ }
+
+ interface FaxServer_Invoke_Parameter {
+ readonly dispidMember: number;
+ readonly lcid: number;
+ readonly pdispparams: stdole.DISPPARAMS;
+ pexcepinfo: stdole.EXCEPINFO;
+ puArgErr: number;
+ pvarResult: any;
+ readonly riid: stdole.GUID;
+ readonly wFlags: number;
+ }
+
+ interface FaxServer_OnDeviceStatusChange_Parameter {
+ readonly bPoweredOff: boolean;
+ readonly bReceiving: boolean;
+ readonly bRinging: boolean;
+ readonly bSending: boolean;
+ readonly lDeviceId: number;
+ readonly pFaxServer: FaxServer;
+ }
+ }
+}
+
+interface ActiveXObject {
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
+ this: FAXCOMEXLib.FaxAccount, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
+ this: FAXCOMEXLib.FaxAccount, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
+ on(obj: FAXCOMEXLib.FaxAccount, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: FAXCOMEXLib.FaxAccount, parameter: {pctinfo: number}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'Invoke', argNames: FAXCOMEXLib.EventHelperTypes.FaxAccount_Invoke_ArgNames, handler: (
+ this: FAXCOMEXLib.FaxAccount, parameter: FAXCOMEXLib.EventHelperTypes.FaxAccount_Invoke_Parameter) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnIncomingJobAdded' | 'OnIncomingJobRemoved' | 'OnOutgoingJobAdded' | 'OnOutgoingJobRemoved',
+ argNames: ['pFaxAccount', 'bstrJobId'], handler: (this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxAccount: FAXCOMEXLib.FaxAccount, readonly bstrJobId: string}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnIncomingJobChanged' | 'OnOutgoingJobChanged', argNames: ['pFaxAccount', 'bstrJobId', 'pJobStatus'],
+ handler: (this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxAccount: FAXCOMEXLib.FaxAccount, readonly bstrJobId: string, readonly pJobStatus: FAXCOMEXLib.FaxJobStatus}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnIncomingMessageAdded', argNames: ['pFaxAccount', 'bstrMessageId', 'fAddedToReceiveFolder'],
+ handler: (this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxAccount: FAXCOMEXLib.FaxAccount, readonly bstrMessageId: string, readonly fAddedToReceiveFolder: boolean}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnIncomingMessageRemoved', argNames: ['pFaxAccount', 'bstrMessageId', 'fRemovedFromReceiveFolder'],
+ handler: (this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxAccount: FAXCOMEXLib.FaxAccount, readonly bstrMessageId: string, readonly fRemovedFromReceiveFolder: boolean}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnOutgoingMessageAdded' | 'OnOutgoingMessageRemoved', argNames: ['pFaxAccount', 'bstrMessageId'],
+ handler: (this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxAccount: FAXCOMEXLib.FaxAccount, readonly bstrMessageId: string}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'OnServerShutDown', argNames: ['pFaxServer'], handler: (
+ this: FAXCOMEXLib.FaxAccount, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxAccount, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (
+ this: FAXCOMEXLib.FaxAccount, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'GetIDsOfNames', argNames: ['riid', 'rgszNames', 'cNames', 'lcid', 'rgdispid'], handler: (
+ this: FAXCOMEXLib.FaxServer, parameter: {readonly riid: stdole.GUID, readonly rgszNames: number, readonly cNames: number, readonly lcid: number, rgdispid: number}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'GetTypeInfo', argNames: ['itinfo', 'lcid', 'pptinfo'], handler: (
+ this: FAXCOMEXLib.FaxServer, parameter: {readonly itinfo: number, readonly lcid: number, pptinfo: undefined}) => void): void;
+ on(obj: FAXCOMEXLib.FaxServer, event: 'GetTypeInfoCount', argNames: ['pctinfo'], handler: (this: FAXCOMEXLib.FaxServer, parameter: {pctinfo: number}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'Invoke', argNames: FAXCOMEXLib.EventHelperTypes.FaxServer_Invoke_ArgNames, handler: (
+ this: FAXCOMEXLib.FaxServer, parameter: FAXCOMEXLib.EventHelperTypes.FaxServer_Invoke_Parameter) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnActivityLoggingConfigChange' | 'OnDevicesConfigChange' | 'OnEventLoggingConfigChange' | 'OnGeneralServerConfigChanged' |
+ 'OnIncomingArchiveConfigChange' | 'OnOutboundRoutingGroupsConfigChange' | 'OnOutboundRoutingRulesConfigChange' | 'OnOutgoingArchiveConfigChange' |
+ 'OnOutgoingQueueConfigChange' | 'OnReceiptOptionsChange' | 'OnSecurityConfigChange' | 'OnServerShutDown',
+ argNames: ['pFaxServer'],
+ handler: (this: FAXCOMEXLib.FaxServer, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnDeviceStatusChange', argNames: FAXCOMEXLib.EventHelperTypes.FaxServer_OnDeviceStatusChange_ArgNames,
+ handler: (this: FAXCOMEXLib.FaxServer, parameter: FAXCOMEXLib.EventHelperTypes.FaxServer_OnDeviceStatusChange_Parameter) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnIncomingJobAdded' | 'OnIncomingJobRemoved' | 'OnOutgoingJobAdded' | 'OnOutgoingJobRemoved',
+ argNames: ['pFaxServer', 'bstrJobId'], handler: (this: FAXCOMEXLib.FaxServer, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly bstrJobId: string}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnIncomingJobChanged' | 'OnOutgoingJobChanged', argNames: ['pFaxServer', 'bstrJobId', 'pJobStatus'],
+ handler: (this: FAXCOMEXLib.FaxServer, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly bstrJobId: string, readonly pJobStatus: FAXCOMEXLib.FaxJobStatus}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnIncomingMessageAdded' | 'OnIncomingMessageRemoved' | 'OnOutgoingMessageAdded' | 'OnOutgoingMessageRemoved',
+ argNames: ['pFaxServer', 'bstrMessageId'], handler: (this: FAXCOMEXLib.FaxServer, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly bstrMessageId: string}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnNewCall', argNames: ['pFaxServer', 'lCallId', 'lDeviceId', 'bstrCallerId'], handler: (
+ this: FAXCOMEXLib.FaxServer, parameter: {readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly lCallId: number, readonly lDeviceId: number, readonly bstrCallerId: string}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnQueuesStatusChange', argNames: ['pFaxServer', 'bOutgoingQueueBlocked', 'bOutgoingQueuePaused', 'bIncomingQueueBlocked'],
+ handler: (
+ this: FAXCOMEXLib.FaxServer,
+ parameter: {
+ readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly bOutgoingQueueBlocked: boolean, readonly bOutgoingQueuePaused: boolean, readonly bIncomingQueueBlocked: boolean}) => void): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'OnServerActivityChange',
+ argNames: ['pFaxServer', 'lIncomingMessages', 'lRoutingMessages', 'lOutgoingMessages', 'lQueuedMessages'], handler: (
+ this: FAXCOMEXLib.FaxServer,
+ parameter: {
+ readonly pFaxServer: FAXCOMEXLib.FaxServer, readonly lIncomingMessages: number, readonly lRoutingMessages: number, readonly lOutgoingMessages: number, readonly lQueuedMessages: number
+ }) => void
+ ): void;
+ on(
+ obj: FAXCOMEXLib.FaxServer, event: 'QueryInterface', argNames: ['riid', 'ppvObj'], handler: (
+ this: FAXCOMEXLib.FaxServer, parameter: {readonly riid: stdole.GUID, ppvObj: undefined}) => void): void;
+ on(obj: FAXCOMEXLib.FaxAccount, event: 'AddRef' | 'Release', handler: (this: FAXCOMEXLib.FaxAccount, parameter: {}) => void): void;
+ on(obj: FAXCOMEXLib.FaxServer, event: 'AddRef' | 'Release', handler: (this: FAXCOMEXLib.FaxServer, parameter: {}) => void): void;
+ new(progid: K): ActiveXObjectNameMap[K];
+}
+
+interface ActiveXObjectNameMap {
+ 'FaxComEx.FaxDocument': FAXCOMEXLib.FaxDocument;
+ 'FaxComEx.FaxServer': FAXCOMEXLib.FaxServer;
+}
diff --git a/types/activex-faxcomexlib/package.json b/types/activex-faxcomexlib/package.json
new file mode 100644
index 0000000000..d9b1031263
--- /dev/null
+++ b/types/activex-faxcomexlib/package.json
@@ -0,0 +1,6 @@
+{
+ "private": true,
+ "dependencies": {
+ "activex-helpers": "*"
+ }
+}
\ No newline at end of file
diff --git a/types/activex-faxcomexlib/tsconfig.json b/types/activex-faxcomexlib/tsconfig.json
new file mode 100644
index 0000000000..6509ab4701
--- /dev/null
+++ b/types/activex-faxcomexlib/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es5",
+ "scripthost"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "activex-faxcomexlib-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/activex-faxcomexlib/tslint.json b/types/activex-faxcomexlib/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/activex-faxcomexlib/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/activex-infopath/tslint.json b/types/activex-infopath/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-infopath/tslint.json
+++ b/types/activex-infopath/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-iwshruntimelibrary/activex-iwshruntimelibrary-tests.ts b/types/activex-iwshruntimelibrary/activex-iwshruntimelibrary-tests.ts
new file mode 100644
index 0000000000..14a90f9a8a
--- /dev/null
+++ b/types/activex-iwshruntimelibrary/activex-iwshruntimelibrary-tests.ts
@@ -0,0 +1,49 @@
+const wshn = new ActiveXObject('WScript.Network');
+
+// https://msdn.microsoft.com/en-us/library/s6wt333f(v=vs.84).aspx
+// https://msdn.microsoft.com/en-us/library/wck0hkd7(v=vs.84).aspx
+// https://msdn.microsoft.com/en-us/library/tte130y1(v=vs.84).aspx
+// https://msdn.microsoft.com/en-us/library/3fxhka75(v=vs.84).aspx
+{
+ WScript.Echo('Domain = ' + wshn.UserDomain);
+ WScript.Echo('Computer Name = ' + wshn.ComputerName);
+ WScript.Echo('User Name = ' + wshn.UserName);
+}
+
+// https://msdn.microsoft.com/en-us/library/zsdh7hkb(v=vs.84).aspx
+wshn.AddWindowsPrinterConnection('\\\\printserv\\DefaultPrinter');
+
+// https://msdn.microsoft.com/en-us/library/kxsdca3c(v=vs.84).aspx
+wshn.AddPrinterConnection("LPT1", "\\\\Server\\Print1");
+
+// https://msdn.microsoft.com/en-us/library/t9zt39at(v=vs.84).aspx
+// https://msdn.microsoft.com/en-us/library/zhds6k80(v=vs.84).aspx
+{
+ const drives = wshn.EnumNetworkDrives();
+ const printers = wshn.EnumPrinterConnections();
+ WScript.Echo("Network drive mappings:");
+ for (let i = 0; i < drives.length; i += 2) {
+ WScript.Echo(`Drive ${drives.Item(i)} = ${drives.Item(i + 1)}`);
+ }
+ WScript.Echo('');
+ WScript.Echo("Network printer mappings:");
+ for (let i = 0; i < printers.length; i += 2) {
+ WScript.Echo(`Port ${printers.Item(i)} = ${printers.Item(i + 1)}`);
+ }
+}
+
+// https://msdn.microsoft.com/en-us/library/8kst88h6(v=vs.84).aspx
+wshn.MapNetworkDrive('E:', '\\\\Server\\Public');
+
+// https://msdn.microsoft.com/en-us/library/d16d7wbf(v=vs.84).aspx
+wshn.RemoveNetworkDrive('E:');
+
+// https://msdn.microsoft.com/en-us/library/tsbh2yy7(v=vs.84).aspx
+wshn.RemovePrinterConnection('\\\\PRN-CORP1\\B41-4523-A', true, true);
+
+// https://msdn.microsoft.com/en-us/library/2ccwwdct(v=vs.84).aspx
+{
+ const printerPath = "\\\\research\\library1";
+ wshn.AddWindowsPrinterConnection(printerPath);
+ wshn.SetDefaultPrinter(printerPath);
+}
diff --git a/types/activex-iwshruntimelibrary/index.d.ts b/types/activex-iwshruntimelibrary/index.d.ts
new file mode 100644
index 0000000000..d5b052eaae
--- /dev/null
+++ b/types/activex-iwshruntimelibrary/index.d.ts
@@ -0,0 +1,348 @@
+// Type definitions for Windows Script Host Object Model - IWshRuntimeLibrary 1.0
+// Project: https://msdn.microsoft.com/en-us/library/9bbdkx3k(v=vs.84).aspx
+// Definitions by: Zev Spitz
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.6
+
+declare namespace IWshRuntimeLibrary {
+ type WindowStyle = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
+ type ShortcutWindowStyle = 1 | 3 | 7;
+
+ // tslint:disable-next-line no-const-enum
+ const enum ButtonType {
+ OK,
+ OKCancel,
+ AbortRetryIgnore,
+ YesNoCancel,
+ YesNo,
+ RetryCancel,
+ CancelTryagainContinue
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum EventType {
+ AuditFailure = 5,
+ AuditSuccess = 4,
+ Error = 1,
+ Information = 3,
+ Success = 0,
+ Warning = 2
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum IconType {
+ Stop = 16,
+ QuestionMark = 32,
+ ExclamationMakr = 48,
+ InformationMark = 64,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum PopupType {
+ SecondButtonDefault = 256,
+ ThirdButtonDefault = 512,
+ Modal = 4096,
+ RightJustified = 524288,
+ RTL = 1048576,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum PopupSelection {
+ NoButton = -1,
+ OK = 1,
+ Cancel = 2,
+ Abort = 3,
+ Retry = 4,
+ Ignore = 5,
+ Yes = 6,
+ No = 7,
+ TryAgain = 10,
+ Continue = 11,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum WshExecStatus {
+ WshFailed = 2,
+ WshFinished = 1,
+ WshRunning = 0,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum WshWindowStyle {
+ WshHide = 0,
+ WshMaximizedFocus = 3,
+ WshMinimizedFocus = 2,
+ WshMinimizedNoFocus = 6,
+ WshNormalFocus = 1,
+ WshNormalNoFocus = 4,
+ }
+
+ class TextStream {
+ private 'IWshRuntimeLibrary.TextStream_typekey': TextStream;
+ private constructor();
+ readonly AtEndOfLine: boolean;
+ readonly AtEndOfStream: boolean;
+ Close(): void;
+ readonly Column: number;
+ readonly Line: number;
+ Read(Characters: number): string;
+ ReadAll(): string;
+ ReadLine(): string;
+ Skip(Characters: number): void;
+ SkipLine(): void;
+ Write(Text: string): void;
+ WriteBlankLines(Lines: number): void;
+
+ /** @param string [Text=''] */
+ WriteLine(Text?: string): void;
+ }
+
+ /** Generic Collection Object */
+ interface WshCollection {
+ Count(): number;
+ Item(Index: any): any;
+ readonly length: number;
+ (Index: any): any;
+ }
+
+ /** Environment Variables Collection Object */
+ interface WshEnvironment {
+ Count(): number;
+ Item(Name: string): string;
+ readonly length: number;
+ Remove(Name: string): void;
+ (Name: string): string;
+ }
+
+ /** WSHExec object */
+ class WshExec {
+ private 'IWshRuntimeLibrary.WshExec_typekey': WshExec;
+ private constructor();
+ readonly ExitCode: number;
+ readonly ProcessID: number;
+ readonly Status: WshExecStatus;
+ readonly StdErr: TextStream;
+ readonly StdIn: TextStream;
+ readonly StdOut: TextStream;
+ Terminate(): void;
+ }
+
+ /** Network Object */
+ class WshNetwork {
+ private 'IWshRuntimeLibrary.WshNetwork_typekey': WshNetwork;
+ private constructor();
+
+ /**
+ * Adds a remote MS-DOS-based printer connection to your computer system.
+ * @param LocalName Local name to assign to the connected printer.
+ * @param RemoteName Name of the remote printer.
+ * @param UpdateProfile [false] Whether the printer mapping is stored in the current user's profile.
+ *
+ * If you are mapping a remote printer using the profile of someone other than current user, you can specify _UserName_ and _Password_.
+ */
+ AddPrinterConnection(LocalName: string, RemoteName: string, UpdateProfile?: boolean, UserName?: string, Password?: string): void;
+
+ /**
+ * @param string Path to printer connection
+ * @param string [DriverName='']
+ * @param string [Port='LPT1']
+ *
+ * Unlike the **AddPrinterConnection** method, this method allows you to create a printer connection without directing it to a specific port, such as LPT1.
+ */
+ AddWindowsPrinterConnection(PrinterName: string, DriverName?: string, Port?: string): void;
+ readonly ComputerName: string;
+ EnumNetworkDrives(): WshCollection;
+ EnumPrinterConnections(): WshCollection;
+
+ /**
+ * Adds a remote MS-DOS-based printer connection to your computer system.
+ * @param LocalName Name by which the mapped drive will be known locally
+ * @param RemoteName Share's UNC name (\\xxx\yyy)
+ * @param UpdateProfile [false] Whether the printer mapping is stored in the current user's profile.
+ *
+ * If you are mapping a network drive using the profile of someone other than current user, you can specify _UserName_ and _Password_.
+ */
+ MapNetworkDrive(LocalName: string, RemoteName: string, UpdateProfile?: boolean, UserName?: string, Password?: string): void;
+ readonly Organization: string;
+
+ /**
+ * Removes a shared network drive from your computer system
+ * @param Name Name of the mapped drive you want to remove. This will be the drive letter if the drive has a mapping between a local name (drive letter) and a remote name (UNC name);
+ * it will be the UNC path if there is no such mapping
+ * @param Force [false] Remove the connections even if the resource is in use
+ * @param UpdateProfile [false] Remove the mapping from the user's profile
+ */
+ RemoveNetworkDrive(Name: string, Force?: boolean, UpdateProfile?: boolean): void;
+
+ /**
+ * Removes a shared network printer connection from your computer system
+ * @param Name Name that identifies the printer. Can be a UNC name (in the form `\\xxx\yyy`) or a local name (such as `LPT1`)
+ * @param Force [false] Remove printer connection even if a user is still connected
+ * @param UpdateProfile [false] Remove the printer connection from the user's profile
+ *
+ * The **RemovePrinterConnection** method removes both Windows and MS-DOS based printer connections. If the printer was connected using the method **AddPrinterConnection**,
+ * _Name_ must be the printer's local name. If the printer was connected using the **AddWindowsPrinterConnection** method or was added manually (using the Add Printer wizard),
+ * then _Name_ must be the printer's UNC name.
+ */
+ RemovePrinterConnection(Name: string, Force?: true, UpdateProfile?: true): void;
+ SetDefaultPrinter(Name: string): void;
+ readonly Site: string;
+ readonly UserDomain: string;
+ readonly UserName: string;
+ readonly UserProfile: string;
+ }
+
+ /** Shell Object */
+ class WshShell {
+ private 'IWshRuntimeLibrary.WshShell_typekey': WshShell;
+ private constructor();
+
+ /**
+ * Activates an application window
+ * @param App Title of application as it appears in the title bar, or the process ID
+ * @param Wait
+ *
+ * This method changes the focus to the named application or window. The window must be attached to the calling thread's message queue. It does not affect whether it is maximized or
+ * minimized. Focus moves from the activated application window when the user takes action to change the focus (or closes the window).
+ *
+ * In determining which application to activate, the specified title is compared to the title string of each running application. If no exact match exists, any application whose title
+ * string begins with title is activated. If an application still cannot be found, any application whose title string ends with title is activated. If more than one instance of the
+ * application named by title exists, one instance is arbitrarily activated.
+ *
+ * The method might return `false` under the following conditions:
+ *
+ * * The window is not brought to the foreground.
+ * * The window is brought to the foreground but is not given keyboard focus.
+ * * A Command Prompt window (`cmd.exe`) is brought to the foreground and is given keyboard focus.
+ */
+ AppActivate(App: string | number, Wait?: any): boolean;
+
+ /**
+ * Creates a shortcut
+ * @param PathLink Path where the shortcut should be created
+ *
+ * The shortcut object exists in memory until you save it to disk with the **Save** method.
+ */
+ CreateShortcut(PathLink: string): WshShortcut | WshURLShortcut;
+ CurrentDirectory: string;
+
+ /**
+ * Note that **Environment** doesn't actually return a callable object; the call is only usable in the context of the **Environment** property. The following:
+ *
+ * let env = new ActiveXObject('WScript.Shell').Environment;
+ * WScript.Echo(env('System'));
+ *
+ * will return an empty string, unless there is an environment variable named `System`
+ */
+ Environment: WshEnvironment & ((Type: 'System' | 'User' | 'Process' | 'Volatile') => WshEnvironment);
+ Exec(Command: string): WshExec;
+ ExpandEnvironmentStrings(Src: string): string;
+
+ /** @param string [Target=''] Name of the computer system where the event should be logged; default is the local computer system */
+ LogEvent(Type: EventType, Message: string, Target?: string): boolean;
+ Popup(Text: string, SecondsToWait?: number, Title?: string, Type?: ButtonType | IconType | PopupType): PopupSelection;
+ RegDelete(Name: string): void;
+
+ /**
+ * Returns the value of a key or value-name from the registry
+ * @param Name Key (ends with a final `\`) or value-name (doesn't end with a final `\`)
+ *
+ * Returns one of the following, based on the registry value type:
+ *
+ * * **REG_SZ** -- a string
+ * * **REG_DWORD** -- a number
+ * * **REG_SBINARY** -- a binary value, as a COM SafeArray containing integers
+ * * **REG_EXPAND_SZ** -- an expandable string
+ * * **REG_MULTI_SZ** -- an array of srings, as a COM SafeArray
+ */
+ RegRead(Name: string): string | number | SafeArray | SafeArray;
+
+ /**
+ * Creates a new key, adds another value-name to an existing key and assigns it a value, or changes the value of an existing value-name
+ * @param Name Key (ends with a final `\`) or value-name (doesn't end with a final `\`)
+ * @param Value Will be coerced to `string` or `integer` based on the value-name type:
+ * `REG_SZ | REG_EXPAND_SZ` will be converted to `string`;
+ * `REG_DWORD | REG_BINARY` will be converted to `integer`
+ * @param Type
+ */
+ RegWrite(Name: string, Value: any, Type?: 'REG_SZ' | 'REG_DWORD' | 'REG_BINARY' | 'REG_EXPAND_SZ'): void;
+
+ /**
+ * Runs a program in a new process.
+ * @param Command Command-line, including any parameters you want to pass to the executable file.
+ * @param WindowStyle Appearance of the program window. Not all programs make use of this information.
+ * @param WaitOnReturn Block script until program finishes executing.
+ *
+ * If `false` is passed into **WaitOnReturn**, the **Run** method will return 0 immediately. If `true` is passed in, **Run** will return the program's error code, if any.
+ *
+ * Environment variables will be expanded within the command line.
+ *
+ * Passing a registered file type will automatically open the program registered to the file type.
+ *
+ * Possible values for **WindowStyle**:
+ *
+ * * **0** -- Hides the window and activates another window.
+ * * **1** -- Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag
+ * when displaying the window for the first time.
+ * * **2** -- Activates the window and displays it as a minimized window.
+ * * **3** -- Activates the window and displays it as a maximized window.
+ * * **4** -- Displays a window in its most recent size and position. The active window remains active.
+ * * **5** -- Activates the window and displays it in its current size and position.
+ * * **6** -- Minimizes the specified window and activates the next top-level window in the Z order.
+ * * **7** -- Displays the window as a minimized window. The active window remains active.
+ * * **8** -- Displays the window in its current state. The active window remains active.
+ * * **9** -- Activates and displays the window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag
+ * when restoring a minimized window.
+ * * **10** -- Sets the show-state based on the state of the program that started the application.
+ */
+ Run(Command: string, WindowStyle?: WindowStyle, WaitOnReturn?: boolean): number;
+ SendKeys(Keys: string, Wait?: boolean): void;
+ readonly SpecialFolders: WshCollection;
+ }
+
+ /** Shortcut Object */
+ class WshShortcut {
+ private 'IWshRuntimeLibrary.WshShortcut_typekey': WshShortcut;
+ private constructor();
+ Arguments: string;
+ Description: string;
+ readonly FullName: string;
+ Hotkey: string;
+ IconLocation: string;
+ Load(PathLink: string): void;
+ readonly RelativePath: string;
+ Save(): void;
+ TargetPath: string;
+
+ /**
+ * Possible values:
+ *
+ * * **1** -- Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag
+ * when displaying the window for the first time.
+ * * **3** -- Activates the window and displays it as a maximized window.
+ * * **7** -- Displays the window as a minimized window. The active window remains active.
+ */
+ WindowStyle: ShortcutWindowStyle;
+ WorkingDirectory: string;
+ }
+
+ /** URLShortcut Object */
+ class WshURLShortcut {
+ private 'IWshRuntimeLibrary.WshURLShortcut_typekey': WshURLShortcut;
+ private constructor();
+ readonly FullName: string;
+ Load(PathLink: string): void;
+ Save(): void;
+ TargetPath: string;
+ }
+}
+
+interface ActiveXObject {
+ set(obj: IWshRuntimeLibrary.WshEnvironment, propertyName: 'Item', parameterTypes: [string], newValue: string): void;
+ new (progid: K): ActiveXObjectNameMap[K];
+}
+
+interface ActiveXObjectNameMap {
+ 'WScript.Network': IWshRuntimeLibrary.WshNetwork;
+ 'WScript.Shell': IWshRuntimeLibrary.WshShell;
+}
diff --git a/types/activex-iwshruntimelibrary/package.json b/types/activex-iwshruntimelibrary/package.json
new file mode 100644
index 0000000000..d9b1031263
--- /dev/null
+++ b/types/activex-iwshruntimelibrary/package.json
@@ -0,0 +1,6 @@
+{
+ "private": true,
+ "dependencies": {
+ "activex-helpers": "*"
+ }
+}
\ No newline at end of file
diff --git a/types/activex-iwshruntimelibrary/tsconfig.json b/types/activex-iwshruntimelibrary/tsconfig.json
new file mode 100644
index 0000000000..1fa5abc39b
--- /dev/null
+++ b/types/activex-iwshruntimelibrary/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es5",
+ "scripthost"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "activex-iwshruntimelibrary-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/activex-iwshruntimelibrary/tslint.json b/types/activex-iwshruntimelibrary/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/activex-iwshruntimelibrary/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/activex-libreoffice/tslint.json b/types/activex-libreoffice/tslint.json
index 8e56cb082c..37a3c27489 100644
--- a/types/activex-libreoffice/tslint.json
+++ b/types/activex-libreoffice/tslint.json
@@ -1,8 +1,8 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false],
"ban-types": false,
+ "no-const-enum": false,
"no-redundant-jsdoc": false,
"no-redundant-jsdoc-2": false,
"no-unnecessary-qualifier": false
diff --git a/types/activex-msforms/tslint.json b/types/activex-msforms/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-msforms/tslint.json
+++ b/types/activex-msforms/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-mshtml/tslint.json b/types/activex-mshtml/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-mshtml/tslint.json
+++ b/types/activex-mshtml/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-msxml2/tslint.json b/types/activex-msxml2/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-msxml2/tslint.json
+++ b/types/activex-msxml2/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-office/tslint.json b/types/activex-office/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-office/tslint.json
+++ b/types/activex-office/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-outlook/tslint.json b/types/activex-outlook/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-outlook/tslint.json
+++ b/types/activex-outlook/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-powerpoint/tslint.json b/types/activex-powerpoint/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-powerpoint/tslint.json
+++ b/types/activex-powerpoint/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-scripting/activex-scripting-tests.ts b/types/activex-scripting/activex-scripting-tests.ts
index 2297548b81..313e480cb5 100644
--- a/types/activex-scripting/activex-scripting-tests.ts
+++ b/types/activex-scripting/activex-scripting-tests.ts
@@ -1,60 +1,324 @@
-// source -- https://msdn.microsoft.com/en-us/library/ebkhfaaz.aspx
+// Note -- running these tests under cscript requires some ES5 polyfills
-// Generates a string describing the drive type of a given Drive object.
-function showDriveType(drive: Scripting.Drive) {
- switch (drive.DriveType) {
- case Scripting.DriveTypeConst.Removable:
- return 'Removeable';
- case Scripting.DriveTypeConst.Fixed:
- return 'Fixecd';
- case Scripting.DriveTypeConst.Remote:
- return 'Network';
- case Scripting.DriveTypeConst.CDRom:
- return 'CD-ROM';
- case Scripting.DriveTypeConst.RamDisk:
- return 'RAM Disk';
- default:
- return 'Unknown';
+const collectionToArray = (col: { Item(key: any): T }): T[] => {
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
}
-}
+ return results;
+};
-// Generates a string describing the attributes of a file or folder.
-function showFileAttributes(file: Scripting.File) {
- const attr = file.Attributes;
- if (attr === 0) {
- return 'Normal';
+const fso = new ActiveXObject('Scripting.FileSystemObject');
+
+// https://msdn.microsoft.com/en-us/library/ebkhfaaz(v=vs.84).aspx
+{
+ /** Generates a string describing the drive type of a given Drive object. */
+ const driveTypeString = (drive: Scripting.Drive) => {
+ switch (drive.DriveType) {
+ case Scripting.DriveTypeConst.Removable:
+ return 'Removeable';
+ case Scripting.DriveTypeConst.Fixed:
+ return 'Fixecd';
+ case Scripting.DriveTypeConst.Remote:
+ return 'Network';
+ case Scripting.DriveTypeConst.CDRom:
+ return 'CD-ROM';
+ case Scripting.DriveTypeConst.RamDisk:
+ return 'RAM Disk';
+ default:
+ return 'Unknown';
+ }
+ };
+
+ /** Generates a string describing the attributes of a file or folder. */
+ const attributesString = (f: Scripting.File | Scripting.Folder) => {
+ const attr = f.Attributes;
+ if (attr === 0) {
+ return 'Normal';
+ }
+ const attributeStrings: string[] = [];
+ if (attr & Scripting.FileAttribute.Directory) { attributeStrings.push('Directory'); }
+ if (attr & Scripting.FileAttribute.ReadOnly) { attributeStrings.push('Read-only'); }
+ if (attr & Scripting.FileAttribute.Hidden) { attributeStrings.push('Hidden'); }
+ if (attr & Scripting.FileAttribute.System) { attributeStrings.push('System'); }
+ if (attr & Scripting.FileAttribute.Volume) { attributeStrings.push('Volume'); }
+ if (attr & Scripting.FileAttribute.Archive) { attributeStrings.push('Archive'); }
+ if (attr & Scripting.FileAttribute.Alias) { attributeStrings.push('Alias'); }
+ if (attr & Scripting.FileAttribute.Compressed) { attributeStrings.push('Compressed'); }
+ return attributeStrings.join(',');
+ };
+
+ const drivesInfoReport = () => {
+ const driveLine = (d: Scripting.Drive) => {
+ let parts: Array = [
+ d.DriveLetter,
+ d.Path,
+ driveTypeString(d),
+ d.IsReady ? 'true' : 'false'
+ ];
+ if (d.IsReady) {
+ parts = parts.concat([
+ d.DriveType === Scripting.DriveTypeConst.Remote ? d.ShareName : d.VolumeName,
+ d.FileSystem,
+ d.TotalSize,
+ d.FreeSpace,
+ d.AvailableSpace,
+ d.SerialNumber.toString(16)
+ ]);
+ }
+ return parts.join(' ');
+ };
+
+ const ret = `
+Number of drives: ${fso.Drives.Count}
+
+ Drive File Total Free Available Serial
+Letter Path Type Ready? Name System Space Space Space Number
+${new Array(106).join('-')}
+${collectionToArray(fso.Drives).map(driveLine).join('\n')}`
+ .trim().replace(' ', '\t');
+ };
+
+ type fiileFolderKey = keyof Scripting.File & keyof Scripting.Folder;
+ type keys = fiileFolderKey | 'Attribs' | 'Created' | 'Accessed' | 'Modified';
+ const detailBuilder = (f: Scripting.File | Scripting.Folder, x: fiileFolderKey | 'Attribs' | 'Created' | 'Accessed' | 'Modified') => {
+ if (x === 'Attribs') { return attributesString(f); }
+ const label = x;
+ switch (x) {
+ case 'Created':
+ x = 'DateCreated';
+ break;
+ case 'Accessed':
+ x = 'DateLastAccessed';
+ break;
+ case 'Modified':
+ x = 'DateLastModified';
+ break;
+ }
+ return `${label}\t${f[x]}\n`;
+ };
+
+ const fileDetailsString = (f: Scripting.File) => {
+ const keys: keys[] = ['Path', 'Name', 'Type', 'Attribs', 'Created', 'Accessed', 'Modified', 'Size'];
+ return keys.map(x => detailBuilder(f, x)).join('');
+ };
+
+ const folderDetailsString = (f: Scripting.Folder) => {
+ const keys: keys[] = ['Path', 'Name', 'Attribs', 'Created', 'Accessed', 'Modified', 'Size'];
+ return keys.map(x => detailBuilder(f, x)).join('');
+ };
+
+ const folderContentsString = (f: Scripting.Folder): string => {
+ const files = collectionToArray(f.Files);
+ const subfolders = collectionToArray(f.SubFolders);
+ return `
+Folder: ${f.Path}
+
+There ${files.length === 1 ? 'is 1 file' : `are ${files.length} files`}
+${files.map(fileDetailsString).join('')}
+
+There ${subfolders.length === 1 ? 'is 1 subfolder' : `are ${subfolders.length} subfolders`}
+${subfolders.map(folderDetailsString).join('')}
+${subfolders.map(folderContentsString).join('')}`
+ .trim().replace(' ', '\t');
+ };
+
+ const testDrive = 'C:\\';
+ const testPath = 'C:\\test';
+ const testfolderInfo = () => {
+ if (!fso.DriveExists(testDrive) || !fso.FolderExists(testPath)) { return ''; }
+ return folderContentsString(fso.GetFolder(testPath));
+ };
+
+ const deleteTestFolder = () => {
+ // two ways to delete a file:
+ const filepathToDelete = `${testPath}\\LoremIpsum\\Paragraph1.txt`;
+ fso.DeleteFile(filepathToDelete);
+ // fso.GetFile(filepathToDelete).Delete();
+
+ // two ways to delete a folder:
+ fso.DeleteFolder(`${testPath}\\LoremIpsum`);
+ fso.GetFolder(testPath).Delete();
+ };
+
+ const createLyrics = (folder: Scripting.Folder) => {
+ let stream = folder.CreateTextFile('Paragraph1.txt');
+ stream.Write('Lorem Ipsum - Paragraph 1');
+ stream.WriteBlankLines(1);
+ stream.WriteLine('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sem.');
+ stream.WriteLine('Donec ante. Nulla facilisi. Phasellus interdum nulla a nunc. Morbi laoreet nunc.');
+ stream.WriteBlankLines(2);
+ stream.Close();
+
+ stream = folder.CreateTextFile('Paragraph2.txt');
+ stream.WriteLine('Lorem Ipsum - Paragraph 2');
+ stream.WriteBlankLines(1);
+ stream.WriteLine('Nullam nulla quam, sollicitudin ut, lobortis ornare, tristique a, augue.');
+ stream.WriteLine('Vestibulum sem felis, fermentum eu, volutpat eu, vulputate eget, elit. ');
+ stream.WriteBlankLines(2);
+ stream.Close();
+ };
+
+ const getLyrics = () => {
+ const folderPath = `${testPath}\\LoremIpsum`;
+ let lyrics = '';
+
+ // One way to read from a file
+ let stream = fso.OpenTextFile(fso.BuildPath(folderPath, 'Paragraph1.txt'));
+ lyrics = stream.ReadAll() + '\n\n';
+ stream.Close();
+
+ // Another way to read from a file
+ stream = fso.GetFile(fso.BuildPath(folderPath, 'Paragraph2.txt')).OpenAsTextStream();
+ while (!stream.AtEndOfStream) {
+ lyrics += stream.ReadLine() + '\n';
+ }
+ stream.Close();
+
+ return lyrics;
+ };
+
+ const buildTestFolder = () => {
+ // Bail out if the drive doesn't exists ...
+ if (!fso.DriveExists(testDrive)) { return false; }
+ // or the directory already exists
+ if (fso.FolderExists(testPath)) { return false; }
+
+ const testFolder = fso.CreateFolder(testPath);
+
+ const stream = fso.CreateTextFile(fso.BuildPath(testPath, 'readme.txt'));
+ stream.WriteLine('My sample text collection');
+ stream.Close();
+
+ const subfolder = testFolder.SubFolders.Add('LoremIpsum');
+ createLyrics(subfolder);
+ return true;
+ };
+
+ const echoLines = (linecount = 1) => new Array(linecount).forEach(() => WScript.Echo(''));
+
+ if (!buildTestFolder()) {
+ WScript.Echo('Test directory already exists or cannot be created. Cannot continue.');
+ } else {
+ drivesInfoReport();
+ echoLines(2);
+ WScript.Echo(testfolderInfo());
+ echoLines(2);
+ WScript.Echo(getLyrics());
+ echoLines(2);
+ deleteTestFolder();
}
- const attributeStrings: string[] = [];
- if (attr & Scripting.FileAttribute.Directory) { attributeStrings.push('Directory'); }
- if (attr & Scripting.FileAttribute.ReadOnly) { attributeStrings.push('Read-only'); }
- if (attr & Scripting.FileAttribute.Hidden) { attributeStrings.push('Hidden'); }
- if (attr & Scripting.FileAttribute.System) { attributeStrings.push('System'); }
- if (attr & Scripting.FileAttribute.Volume) { attributeStrings.push('Volume'); }
- if (attr & Scripting.FileAttribute.Archive) { attributeStrings.push('Archive'); }
- if (attr & Scripting.FileAttribute.Alias) { attributeStrings.push('Alias'); }
- if (attr & Scripting.FileAttribute.Compressed) { attributeStrings.push('Compressed'); }
- return attributeStrings.join(',');
}
// source --https://msdn.microsoft.com/en-us/library/ts2t8ybh(v=vs.84).aspx
-function showFreeSpace(drvPath: string) {
- const fso = new ActiveXObject('Scripting.FileSystemObject');
- const d = fso.GetDrive(fso.GetDriveName(drvPath));
- let s = `Drive ${drvPath} - `;
- s += d.VolumeName + '
';
- s += `Free Space: ${d.FreeSpace / 1024} Kbytes`;
- return (s);
+{
+ const showFreeSpace = (drvPath: string) => {
+ const d = fso.GetDrive(fso.GetDriveName(drvPath));
+ let s = `Drive ${drvPath} - `;
+ s += d.VolumeName + '
';
+ s += `Free Space: ${d.FreeSpace / 1024} Kbytes`;
+ return (s);
+ };
}
// source -- https://msdn.microsoft.com/en-us/library/kaf6yaft(v=vs.84).aspx
-function getALine(filespec: string) {
- const fso = new ActiveXObject('Scripting.FileSystemObject');
- const file = fso.OpenTextFile(filespec, Scripting.IOMode.ForReading, false);
+{
+ const getALine = (filespec: string) => {
+ const file = fso.OpenTextFile(filespec, Scripting.IOMode.ForReading, false);
- let s = '';
- while (!file.AtEndOfLine) {
- s += file.Read(1);
- }
- file.Close();
- return (s);
+ let s = '';
+ while (!file.AtEndOfLine) {
+ s += file.Read(1);
+ }
+ file.Close();
+ return (s);
+ };
+}
+
+// https://msdn.microsoft.com/en-us/library/ch28h2s7(v=vs.84).aspx
+{
+ const showDriveInfo = (path: string) => {
+ const bytesPerGB = 1024 * 1024 * 1024;
+ const drv = fso.GetDrive(fso.GetDriveName(path));
+ const ret =
+ drv.IsReady ?
+ `${drv.Path} - ${drv.FreeSpace / bytesPerGB} GB free of ${drv.TotalSize / bytesPerGB} GB` :
+ 'Not ready';
+ WScript.Echo(ret);
+ };
+
+ const showFolderInfo = () => {
+ const fldr = fso.GetFolder("c:\\");
+ let ret = `
+Folder: ${fldr.Path}
+Drive: ${fldr.Drive}
+${fldr.IsRootFolder ? 'Is root folder' : `Parent folder: ${fldr.ParentFolder}`}
+ `.trim();
+
+ // Create and delete a folder.
+ const newFolderName = 'C:\\TempFolder1';
+ fso.CreateFolder(newFolderName);
+ ret += `Base Name of Added Folder: ${fso.GetBaseName(newFolderName)}`;
+ fso.DeleteFolder(newFolderName);
+
+ WScript.Echo(ret);
+ };
+}
+
+// https://msdn.microsoft.com/en-us/library/czxefwt8(v=vs.84).aspx
+{
+ const readFiles = () => {
+ const file = fso.CreateTextFile("c:\\testfile.txt", true);
+
+ // Write a line.
+ WScript.Echo('Writing file');
+ file.WriteLine("Hello World");
+ file.WriteBlankLines(1);
+ file.Close();
+
+ // Read the contents of the file.
+ WScript.Echo('Reading file');
+ const textStream = fso.OpenTextFile("c:\\testfile.txt", Scripting.IOMode.ForReading);
+ WScript.Echo(`File contents = "${textStream.ReadLine()}"`);
+ textStream.Close();
+ };
+
+ const manipulateFiles = () => {
+ const file = fso.CreateTextFile("c:\\testfile.txt", true);
+
+ WScript.Echo('Writing file');
+
+ // Write a line.
+ file.Write("This is a test.");
+
+ // Close the file to writing.
+ file.Close();
+
+ WScript.Echo('Moving file to c:\\tmp');
+
+ // Get a handle to the file in root of C:\.
+ let file2 = fso.GetFile("c:\\testfile.txt");
+
+ // Move the file to \tmp directory.
+ file2.Move("c:\\tmp\\testfile.txt");
+
+ WScript.Echo('Copying file to c:\\temp
');
+
+ // Copy the file to \temp.
+ file2.Copy('c:\\temp\\testfile.txt');
+
+ WScript.Echo('Deleting files
');
+
+ // Get handles to files' current location.
+ file2 = fso.GetFile('c:\\tmp\\testfile.txt');
+ const file3 = fso.GetFile('c:\\temp\\testfile.txt');
+
+ // Delete the files.
+ file2.Delete();
+ file3.Delete();
+ WScript.Echo('All done!');
+ };
}
diff --git a/types/activex-scripting/index.d.ts b/types/activex-scripting/index.d.ts
index c4a64c54af..42e4f0c9e0 100644
--- a/types/activex-scripting/index.d.ts
+++ b/types/activex-scripting/index.d.ts
@@ -1,24 +1,28 @@
// Type definitions for Microsoft Scripting Runtime 1.0
-// Project: https://msdn.microsoft.com/en-us/library/bstcxhf7.aspx
+// Project: https://msdn.microsoft.com/en-us/library/bstcxhf7(v=vs.84).aspx
// Definitions by: Zev Spitz
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.6
declare namespace Scripting {
+ // tslint:disable-next-line:no-const-enum
const enum CompareMethod {
BinaryCompare = 0,
DatabaseCompare = 2,
- TextCompare = 1
+ TextCompare = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum DriveTypeConst {
CDRom = 4,
Fixed = 2,
RamDisk = 5,
Remote = 3,
Removable = 1,
- UnknownType = 0
+ UnknownType = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum FileAttribute {
Alias = 1024,
Archive = 32,
@@ -28,38 +32,42 @@ declare namespace Scripting {
Normal = 0,
ReadOnly = 1,
System = 4,
- Volume = 8
+ Volume = 8,
}
+ // tslint:disable-next-line:no-const-enum
const enum IOMode {
ForAppending = 8,
ForReading = 1,
- ForWriting = 2
+ ForWriting = 2,
}
+ // tslint:disable-next-line:no-const-enum
const enum SpecialFolderConst {
SystemFolder = 1,
TemporaryFolder = 2,
- WindowsFolder = 0
+ WindowsFolder = 0,
}
+ // tslint:disable-next-line:no-const-enum
const enum StandardStreamTypes {
StdErr = 2,
StdIn = 0,
- StdOut = 1
+ StdOut = 1,
}
+ // tslint:disable-next-line:no-const-enum
const enum Tristate {
TristateFalse = 0,
TristateMixed = -2,
TristateTrue = -1,
- TristateUseDefault = -2
+ TristateUseDefault = -2,
}
/** Scripting.Dictionary */
- interface Dictionary {
+ interface Dictionary {
/** Add a new key and item to the dictionary. */
- Add(Key: any, Item: any): void;
+ Add(Key: TKey, Item: TItem): void;
/** Set or get the string comparison method. */
CompareMode: CompareMethod;
@@ -68,32 +76,38 @@ declare namespace Scripting {
readonly Count: number;
/** Determine if a given key is in the dictionary. */
- Exists(Key: any): boolean;
- HashVal(Key: any): any;
+ Exists(Key: TKey): boolean;
+ HashVal(Key: TKey): any;
/** Set or get the item for a given key */
- Item(Key: any): any;
+ Item(Key: TKey): TItem;
/** Get an array containing all items in the dictionary. */
- Items(): any;
+ Items(): SafeArray;
/** Change a key to a different key. */
- Key(Key: any): any;
+ Key(Key: TKey): TKey;
/** Get an array containing all keys in the dictionary. */
- Keys(): any;
+ Keys(): SafeArray;
/** Remove a given key from the dictionary. */
- Remove(Key: any): void;
+ Remove(Key: TKey): void;
/** Remove all information from the dictionary. */
RemoveAll(): void;
+
+ /** Set or get the item for a given key */
+ (Key: TKey): TItem;
}
/** Drive Object */
- interface Drive {
+ class Drive {
+ private constructor();
+ private 'Scripting.Drive_typekey': Drive;
+
/** Get available space */
- readonly AvailableSpace: any;
+ readonly AvailableSpace: number;
/** Drive letter */
readonly DriveLetter: string;
@@ -105,7 +119,7 @@ declare namespace Scripting {
readonly FileSystem: string;
/** Get drive free space */
- readonly FreeSpace: any;
+ readonly FreeSpace: number;
/** Check if disk is available */
readonly IsReady: boolean;
@@ -123,7 +137,7 @@ declare namespace Scripting {
readonly ShareName: string;
/** Get total drive size */
- readonly TotalSize: any;
+ readonly TotalSize: number;
/** Name of volume */
VolumeName: string;
@@ -134,18 +148,27 @@ declare namespace Scripting {
/** Number of drives */
readonly Count: number;
- /** Get drive */
- Item(Key: any): Drive;
+ /** Get drive using the drive letter (`C`) or path (`C:\\`) */
+ Item(Key: string): Drive;
+
+ /** Get drive using the drive letter (`C`) or path (`C:\\`) */
+ (Key: string): Drive;
}
/** Script Encoder Object */
interface Encoder {
/** Call the Encoder determined by szExt, passing bstrStreamIn and optional arguments */
EncodeScriptFile(szExt: string, bstrStreamIn: string, cFlags: number, bstrDefaultLang: string): string;
+
+ /** Call the Encoder determined by szExt, passing bstrStreamIn and optional arguments */
+ (szExt: string, bstrStreamIn: string, cFlags: number, bstrDefaultLang: string): string;
}
/** File object */
- interface File {
+ class File {
+ private constructor();
+ private 'Scripting.File_typekey': File;
+
/** File attributes */
Attributes: FileAttribute;
@@ -166,7 +189,7 @@ declare namespace Scripting {
/**
* Delete this file
- * @param boolean [Force=false]
+ * @param boolean [Force=false] Pass `true` to delete the file even if the read-only attribute is set
*/
Delete(Force?: boolean): void;
@@ -199,7 +222,7 @@ declare namespace Scripting {
readonly ShortPath: string;
/** File size */
- readonly Size: any;
+ readonly Size: number;
/** Type description */
readonly Type: string;
@@ -210,12 +233,18 @@ declare namespace Scripting {
/** Number of folders */
readonly Count: number;
+ /** Get file object using the name and extension of the file */
+ Item(Key: string): File;
+
/** Get file */
- Item(Key: any): File;
+ (Key: string): File;
}
/** FileSystem Object */
- interface FileSystemObject {
+ class FileSystemObject {
+ private constructor();
+ private 'Scripting.FileSystemObject_typekey': FileSystemObject;
+
/** Generate a path from an existing path and a name */
BuildPath(Path: string, Name: string): string;
@@ -243,13 +272,13 @@ declare namespace Scripting {
/**
* Delete a file
- * @param boolean [Force=false]
+ * @param boolean [Force=false] Pass `true` to also delete files with the read-only attribute set
*/
DeleteFile(FileSpec: string, Force?: boolean): void;
/**
* Delete a folder
- * @param boolean [Force=false]
+ * @param boolean [Force=false] Pass `true` to also delete folders with the read-only attribute set
*/
DeleteFolder(FolderSpec: string, Force?: boolean): void;
@@ -317,13 +346,16 @@ declare namespace Scripting {
* Open a file as a TextStream
* @param Scripting.IOMode [IOMode=1]
* @param boolean [Create=false]
- * @param Scripting.Tristate [Format=0]
+ * @param Scripting.Tristate [Format=0] **TristateTrue** opens the file as Unicode; **TristateFalse** opens the file as ASCII; **TristateUseDefault** opens the file with the system default
*/
OpenTextFile(FileName: string, IOMode?: IOMode, Create?: boolean, Format?: Tristate): TextStream;
}
/** Folder object */
- interface Folder {
+ class Folder {
+ private constructor();
+ private 'Scripting.Folder_typekey': Folder;
+
/** Folder attributes */
Attributes: FileAttribute;
@@ -351,7 +383,7 @@ declare namespace Scripting {
/**
* Delete this folder
- * @param boolean [Force=false]
+ * @param boolean [Force=false] Pass `true` to delete the folder even if the read-only attribute set
*/
Delete(Force?: boolean): void;
@@ -383,7 +415,7 @@ declare namespace Scripting {
readonly ShortPath: string;
/** Sum of files and subfolders */
- readonly Size: any;
+ readonly Size: number;
/** Get folders collection */
readonly SubFolders: Folders;
@@ -400,12 +432,18 @@ declare namespace Scripting {
/** Number of folders */
readonly Count: number;
- /** Get folder */
- Item(Key: any): Folder;
+ /** Get folder in collection using the folder's name */
+ Item(Key: string): Folder;
+
+ /** Get folder in collection using the folder's name */
+ (Key: string): Folder;
}
/** TextStream object */
- interface TextStream {
+ class TextStream {
+ private constructor();
+ private 'Scripting.TextStream_typekey': TextStream;
+
/** Is the current position at the end of a line? */
readonly AtEndOfLine: boolean;
@@ -451,15 +489,12 @@ declare namespace Scripting {
}
interface ActiveXObject {
+ new (progid: K): ActiveXObjectNameMap[K];
set(obj: Scripting.Dictionary, propertyName: 'Item', parameterTypes: [any], newValue: any): void;
- new(progid: 'Scripting.Dictionary'): Scripting.Dictionary;
- new(progid: 'Scripting.Encoder'): Scripting.Encoder;
- new(progid: 'Scripting.FileSystemObject'): Scripting.FileSystemObject;
}
-interface EnumeratorConstructor {
- new(col: Scripting.Dictionary): any;
- new(col: Scripting.Drives): Scripting.Drive;
- new(col: Scripting.Files): Scripting.File;
- new(col: Scripting.Folders): Scripting.Folder;
+interface ActiveXObjectNameMap {
+ 'Scripting.Dictionary': Scripting.Dictionary;
+ 'Scripting.Encoder': Scripting.Encoder;
+ 'Scripting.FileSystemObject': Scripting.FileSystemObject;
}
diff --git a/types/activex-scripting/tslint.json b/types/activex-scripting/tslint.json
index 2750cc0197..f93cf8562a 100644
--- a/types/activex-scripting/tslint.json
+++ b/types/activex-scripting/tslint.json
@@ -1 +1,3 @@
-{ "extends": "dtslint/dt.json" }
\ No newline at end of file
+{
+ "extends": "dtslint/dt.json"
+}
diff --git a/types/activex-shdocvw/activex-shdocvw-tests.ts b/types/activex-shdocvw/activex-shdocvw-tests.ts
new file mode 100644
index 0000000000..713578fb06
--- /dev/null
+++ b/types/activex-shdocvw/activex-shdocvw-tests.ts
@@ -0,0 +1,12 @@
+// https://msdn.microsoft.com/en-us/library/aa752044(v=vs.85).aspx
+(() => {
+ const ie = new ActiveXObject('InternetExplorer.Application');
+ ie.Navigate('http://contoso.com');
+ ie.Visible = true;
+})();
+
+let obj1 = new ActiveXObject('ShellNameSpace.ShellNameSpace');
+
+let obj2 = new ActiveXObject('Shell.UIHelper');
+
+let obj3 = new ActiveXObject('Shell.Explorer');
diff --git a/types/activex-shdocvw/index.d.ts b/types/activex-shdocvw/index.d.ts
new file mode 100644
index 0000000000..86568f6c5d
--- /dev/null
+++ b/types/activex-shdocvw/index.d.ts
@@ -0,0 +1,1577 @@
+// Type definitions for Microsoft Internet Controls - SHDocVw 1.1
+// Project: https://msdn.microsoft.com/en-us/library/aa752040(v=vs.85).aspx
+// Definitions by: Zev Spitz
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.6
+
+declare namespace SHDocVw {
+ // tslint:disable-next-line no-const-enum
+ const enum BrowserBarConstants {
+ AddressBar = 0x0009,
+ Tools = 0x000A,
+ Links = 0x000B,
+ Search = '{30D02401-6A81-11D0-8274-00C04FD5AE38}',
+ Favorites = '{EFA24E61-B078-11D0-89E4-00C04FC9E26E}',
+ History = '{EFA24E62-B078-11D0-89E4-00C04FC9E26E}',
+ Channels = '{EFA24E63-B078-11D0-89E4-00C04FC9E26E}'
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum BrowserNavConstants {
+ /** Open the resource or file in a new window. */
+ OpenInNewWindow = 1,
+
+ /** Do not add the resource or file to the history list. The new page replaces the current page in the list. */
+ NoHistory = 2,
+
+ /** If the navigation fails, the autosearch functionality attempts to navigate common root domains (.com, .edu, and so on). If this also fails, the URL is passed to a search engine. */
+ AllowAutosearch = 16,
+
+ /** Causes the current Explorer Bar to navigate to the given item, if possible. */
+ BrowserBar = 32,
+
+ /**
+ * Internet Explorer 6 for Windows XP SP2 and later. If the navigation fails when a hyperlink is being followed, this constant specifies that the resource should then be bound to the
+ * moniker using the [**BINDF_HYPERLINK**](https://msdn.microsoft.com/en-us/library/ms775130(v=vs.85).aspx) flag.
+ */
+ Hyperlink = 64,
+
+ /** Internet Explorer 6 for Windows XP SP2 and later. Force the URL into the restricted zone. */
+ EnforceRestricted = 128,
+
+ /** Internet Explorer 6 for Windows XP SP2 and later. Use the default Popup Manager to block pop-up windows. */
+ NewWindowsManaged = 256,
+
+ /** Internet Explorer 6 for Windows XP SP2 and later. Block files that normally trigger a file download dialog box. */
+ UntrustedForDownload = 512,
+
+ /** Internet Explorer 6 for Windows XP SP2 and later. Prompt for the installation of ActiveX controls. */
+ TrustedForActiveX = 1024,
+
+ /** Internet Explorer 7. Open the resource or file in a new tab. Allow the destination window to come to the foreground, if necessary. */
+ OpenInNewTab = 2048,
+
+ /** Internet Explorer 7. Open the resource or file in a new background tab; the currently active window and/or tab remains open on top. */
+ OpenInBackgroundTab = 4096,
+
+ /**
+ * Internet Explorer 7. Maintain state for dynamic navigation based on the filter string entered in the search band text box (wordwheel). Restore the wordwheel text when the navigation
+ * completes.
+ */
+ KeepWordWheelText = 8192,
+
+ /**
+ * Internet Explorer 8. Open the resource as a replacement for the current or target tab. The existing tab is closed while the new tab takes its place in the tab bar and replaces it in the
+ * tab group, if any. Browser history is copied forward to the new tab. On Windows Vista, this flag is implied if the navigation would cross integrity levels and **navOpenInNewTab**,
+ * **navOpenInBackgroundTab**, or **navOpenInNewWindow**> is not specified.
+ */
+ VirtualTab = 16384,
+
+ /**
+ * Internet Explorer 8. Block cross-domain redirect requests. The navigation triggers the
+ * [**DWebBrowserEvents2::RedirectXDomainBlocked**](https://msdn.microsoft.com/en-us/library/dd565686(v=vs.85).aspx) event if blocked.
+ */
+ BlockRedirectsXDomain = 32768,
+
+ /** Internet Explorer 8 and later. Open the resource in a new tab that becomes the foreground tab. */
+ OpenNewForegroundTab = 65536
+ }
+
+ /** Constants for WebBrowser CommandStateChange */
+ // tslint:disable-next-line no-const-enum
+ const enum CommandStateChangeConstants {
+ CSC_NAVIGATEBACK = 2,
+ CSC_NAVIGATEFORWARD = 1,
+ CSC_UPDATECOMMANDS = -1,
+ }
+
+ /** Constants for WebBrowser NewProcess notification */
+ // tslint:disable-next-line no-const-enum
+ const enum NewProcessCauseConstants {
+ ProtectedModeRedirect = 1,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum OLECMDEXECOPT {
+ OLECMDEXECOPT_DODEFAULT = 0,
+ OLECMDEXECOPT_DONTPROMPTUSER = 2,
+ OLECMDEXECOPT_PROMPTUSER = 1,
+ OLECMDEXECOPT_SHOWHELP = 3,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum OLECMDF {
+ OLECMDF_DEFHIDEONCTXTMENU = 32,
+ OLECMDF_ENABLED = 2,
+ OLECMDF_INVISIBLE = 16,
+ OLECMDF_LATCHED = 4,
+ OLECMDF_NINCHED = 8,
+ OLECMDF_SUPPORTED = 1,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum OLECMDID {
+ OLECMDID_ACTIVEXINSTALLSCOPE = 66,
+ OLECMDID_ADDTRAVELENTRY = 60,
+ OLECMDID_ALLOWUILESSSAVEAS = 46,
+ OLECMDID_CLEARSELECTION = 18,
+ OLECMDID_CLOSE = 45,
+ OLECMDID_COPY = 12,
+ OLECMDID_CUT = 11,
+ OLECMDID_DELETE = 33,
+ OLECMDID_DONTDOWNLOADCSS = 47,
+ OLECMDID_ENABLE_INTERACTION = 36,
+ OLECMDID_ENABLE_VISIBILITY = 77,
+ OLECMDID_EXITFULLSCREEN = 81,
+ OLECMDID_FIND = 32,
+ OLECMDID_FOCUSVIEWCONTROLS = 57,
+ OLECMDID_FOCUSVIEWCONTROLSQUERY = 58,
+ OLECMDID_GETPRINTTEMPLATE = 52,
+ OLECMDID_GETUSERSCALABLE = 75,
+ OLECMDID_GETZOOMRANGE = 20,
+ OLECMDID_HIDETOOLBARS = 24,
+ OLECMDID_HTTPEQUIV = 34,
+ OLECMDID_HTTPEQUIV_DONE = 35,
+ OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71,
+ OLECMDID_MEDIA_PLAYBACK = 78,
+ OLECMDID_NEW = 2,
+ OLECMDID_ONBEFOREUNLOAD = 83,
+ OLECMDID_ONTOOLBARACTIVATED = 31,
+ OLECMDID_ONUNLOAD = 37,
+ OLECMDID_OPEN = 1,
+ OLECMDID_OPTICAL_GETZOOMRANGE = 64,
+ OLECMDID_OPTICAL_ZOOM = 63,
+ OLECMDID_PAGEACTIONBLOCKED = 55,
+ OLECMDID_PAGEACTIONUIQUERY = 56,
+ OLECMDID_PAGEAVAILABLE = 74,
+ OLECMDID_PAGESETUP = 8,
+ OLECMDID_PASTE = 13,
+ OLECMDID_PASTESPECIAL = 14,
+ OLECMDID_POPSTATEEVENT = 69,
+ OLECMDID_PREREFRESH = 39,
+ OLECMDID_PRINT = 6,
+ OLECMDID_PRINT2 = 49,
+ OLECMDID_PRINTPREVIEW = 7,
+ OLECMDID_PRINTPREVIEW2 = 50,
+ OLECMDID_PROPERTIES = 10,
+ OLECMDID_PROPERTYBAG2 = 38,
+ OLECMDID_REDO = 16,
+ OLECMDID_REFRESH = 22,
+ OLECMDID_SAVE = 3,
+ OLECMDID_SAVEAS = 4,
+ OLECMDID_SAVECOPYAS = 5,
+ OLECMDID_SCROLLCOMPLETE = 82,
+ OLECMDID_SELECTALL = 17,
+ OLECMDID_SET_HOST_FULLSCREENMODE = 80,
+ OLECMDID_SETDOWNLOADSTATE = 29,
+ OLECMDID_SETFAVICON = 79,
+ OLECMDID_SETPRINTTEMPLATE = 51,
+ OLECMDID_SETPROGRESSMAX = 25,
+ OLECMDID_SETPROGRESSPOS = 26,
+ OLECMDID_SETPROGRESSTEXT = 27,
+ OLECMDID_SETTITLE = 28,
+ OLECMDID_SHOWFIND = 42,
+ OLECMDID_SHOWMESSAGE = 41,
+ OLECMDID_SHOWMESSAGE_BLOCKABLE = 84,
+ OLECMDID_SHOWPAGEACTIONMENU = 59,
+ OLECMDID_SHOWPAGESETUP = 43,
+ OLECMDID_SHOWPRINT = 44,
+ OLECMDID_SHOWSCRIPTERROR = 40,
+ OLECMDID_SHOWTASKDLG = 68,
+ OLECMDID_SHOWTASKDLG_BLOCKABLE = 85,
+ OLECMDID_SPELL = 9,
+ OLECMDID_STOP = 23,
+ OLECMDID_STOPDOWNLOAD = 30,
+ OLECMDID_UNDO = 15,
+ OLECMDID_UPDATE_CARET = 76,
+ OLECMDID_UPDATEBACKFORWARDSTATE = 62,
+ OLECMDID_UPDATECOMMANDS = 21,
+ OLECMDID_UPDATEPAGESTATUS = 48,
+ OLECMDID_UPDATETRAVELENTRY = 61,
+ OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67,
+ OLECMDID_USER_OPTICAL_ZOOM = 73,
+ OLECMDID_VIEWPORT_MODE = 70,
+ OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72,
+ OLECMDID_WINDOWSTATECHANGED = 65,
+ OLECMDID_ZOOM = 19,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum RefreshConstants {
+ Normal = 0,
+ IfExpired = 1,
+ Completely = 3
+ }
+
+ /** Constants for WebBrowser security icon notification */
+ // tslint:disable-next-line no-const-enum
+ const enum SecureLockIconConstants {
+ secureLockIconMixed = 1,
+ secureLockIconSecure128Bit = 6,
+ secureLockIconSecure40Bit = 3,
+ secureLockIconSecure56Bit = 4,
+ secureLockIconSecureFortezza = 5,
+ secureLockIconSecureUnknownBits = 2,
+ secureLockIconUnsecure = 0,
+ }
+
+ /** Options for ShellWindows FindWindow */
+ // tslint:disable-next-line no-const-enum
+ const enum ShellWindowFindWindowOptions {
+ SWFO_COOKIEPASSED = 4,
+ SWFO_INCLUDEPENDING = 2,
+ SWFO_NEEDDISPATCH = 1,
+ }
+
+ /** Constants for ShellWindows registration */
+ // tslint:disable-next-line no-const-enum
+ const enum ShellWindowTypeConstants {
+ SWC_3RDPARTY = 2,
+ SWC_BROWSER = 1,
+ SWC_CALLBACK = 4,
+ SWC_DESKTOP = 8,
+ SWC_EXPLORER = 0,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum tagREADYSTATE {
+ READYSTATE_COMPLETE = 4,
+ READYSTATE_INTERACTIVE = 3,
+ READYSTATE_LOADED = 2,
+ READYSTATE_LOADING = 1,
+ READYSTATE_UNINITIALIZED = 0,
+ }
+
+ type TargetFrameValues = '_blank' | '_parent' | '_self' | '_top' ;
+
+ class CScriptErrorList {
+ private 'SHDocVw.CScriptErrorList_typekey': CScriptErrorList;
+ private constructor();
+ advanceError(): void;
+ canAdvanceError(): number;
+ canRetreatError(): number;
+ getAlwaysShowLockState(): number;
+ getDetailsPaneOpen(): number;
+ getErrorChar(): number;
+ getErrorCode(): number;
+ getErrorLine(): number;
+ getErrorMsg(): string;
+ getErrorUrl(): string;
+ getPerErrorDisplay(): number;
+ retreatError(): void;
+ setDetailsPaneOpen(fDetailsPaneOpen: number): void;
+ setPerErrorDisplay(fPerErrorDisplay: number): void;
+ }
+
+ /** Internet Explorer Application. */
+ class InternetExplorer {
+ private 'SHDocVw.InternetExplorer_typekey': InternetExplorer;
+ private constructor();
+
+ /** Controls whether address bar is shown */
+ AddressBar: boolean;
+
+ /** Returns the application automation object if accessible, this automation object otherwise.. */
+ readonly Application: any;
+
+ /** Query to see if something is still in progress. */
+ readonly Busy: boolean;
+
+ /** Converts client sizes into window sizes. */
+ ClientToWindow(pcx: number, pcy: number): void;
+
+ /** Returns the container/parent automation object, if any. */
+ readonly Container: any;
+
+ /** Returns the active Document automation object, if any. */
+ readonly Document: any;
+
+ /** IOleCommandTarget::Exec */
+ ExecWB(cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn?: any, pvaOut?: any): void;
+
+ /** Returns file specification of the application, including path. */
+ readonly FullName: string;
+
+ /** Maximizes window and turns off statusbar, toolbar, menubar, and titlebar. */
+ FullScreen: boolean;
+
+ /** Retrieve the Associated value for the property vtValue in the context of the object. */
+ GetProperty(Property: string): any;
+
+ /** Navigates to the previous item in the history list. */
+ GoBack(): void;
+
+ /** Navigates to the next item in the history list. */
+ GoForward(): void;
+
+ /** Go home/start page. */
+ GoHome(): void;
+
+ /** Go Search Page. */
+ GoSearch(): void;
+
+ /** The vertical dimension (pixels) of the frame window/object. */
+ Height: number;
+
+ /** Returns the HWND of the current IE window. */
+ readonly HWND: number;
+
+ /** The horizontal position (pixels) of the frame window relative to the screen/container. */
+ Left: number;
+
+ /** Gets the short (UI-friendly) name of the URL/file currently viewed. */
+ readonly LocationName: string;
+
+ /** Gets the full URL/path currently viewed. */
+ readonly LocationURL: string;
+
+ /** Controls whether menubar is shown. */
+ MenuBar: boolean;
+
+ /** Returns name of the application. */
+ readonly Name: string;
+
+ /** Navigates to a URL or file. */
+ Navigate(URL: string, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Navigates to a URL or file or pidl. */
+ Navigate2(URL: any, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Controls if the frame is offline (read from cache) */
+ Offline: boolean;
+
+ /** Returns the automation object of the container/parent if one exists or this automation object. */
+ readonly Parent: any;
+
+ /** Returns the path to the application. */
+ readonly Path: string;
+
+ /** Associates vtValue with the name szProperty in the context of the object. */
+ PutProperty(Property: string, vtValue: any): void;
+
+ /** IOleCommandTarget::QueryStatus */
+ QueryStatusWB(cmdID: OLECMDID): OLECMDF;
+
+ /** Exits application and closes the open document. */
+ Quit(): void;
+ readonly ReadyState: tagREADYSTATE;
+
+ /** Refresh the currently viewed page. */
+ Refresh(): void;
+
+ /** Refresh the currently viewed page. */
+ Refresh2(Level?: RefreshConstants): void;
+
+ /** Registers OC as a top-level browser (for target name resolution) */
+ RegisterAsBrowser: boolean;
+
+ /** Registers OC as a drop target for navigation */
+ RegisterAsDropTarget: boolean;
+
+ /** Controls whether the window is resizable */
+ Resizable: boolean;
+
+ /** Set BrowserBar to Clsid */
+ ShowBrowserBar(pvaClsid: string | BrowserBarConstants, pvarShow?: boolean): void;
+
+ /** Controls if any dialog boxes can be shown */
+ Silent: boolean;
+
+ /** Turn on or off the statusbar. */
+ StatusBar: boolean;
+
+ /** Text of Status window. */
+ StatusText: string;
+
+ /** Stops opening a file. */
+ Stop(): void;
+
+ /** Controls if the browser is in theater mode */
+ TheaterMode: boolean;
+
+ /** Controls which toolbar is shown. */
+ ToolBar: number;
+
+ /** The vertical position (pixels) of the frame window relative to the screen/container. */
+ Top: number;
+
+ /** Returns True if this is the top level object. */
+ readonly TopLevelContainer: boolean;
+
+ /** Returns the type of the contained document object. */
+ readonly Type: string;
+
+ /** Determines whether the application is visible or hidden. */
+ Visible: boolean;
+
+ /** The horizontal dimension (pixels) of the frame window/object. */
+ Width: number;
+ }
+
+ /** Internet Explorer Application with default integrity of Medium */
+ class InternetExplorerMedium {
+ private 'SHDocVw.InternetExplorerMedium_typekey': InternetExplorerMedium;
+ private constructor();
+
+ /** Controls whether address bar is shown */
+ AddressBar: boolean;
+
+ /** Returns the application automation object if accessible, this automation object otherwise.. */
+ readonly Application: any;
+
+ /** Query to see if something is still in progress. */
+ readonly Busy: boolean;
+
+ /** Converts client sizes into window sizes. */
+ ClientToWindow(pcx: number, pcy: number): void;
+
+ /** Returns the container/parent automation object, if any. */
+ readonly Container: any;
+
+ /** Returns the active Document automation object, if any. */
+ readonly Document: any;
+
+ /** IOleCommandTarget::Exec */
+ ExecWB(cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn?: any, pvaOut?: any): void;
+
+ /** Returns file specification of the application, including path. */
+ readonly FullName: string;
+
+ /** Maximizes window and turns off statusbar, toolbar, menubar, and titlebar. */
+ FullScreen: boolean;
+
+ /** Retrieve the Associated value for the property vtValue in the context of the object. */
+ GetProperty(Property: string): any;
+
+ /** Navigates to the previous item in the history list. */
+ GoBack(): void;
+
+ /** Navigates to the next item in the history list. */
+ GoForward(): void;
+
+ /** Go home/start page. */
+ GoHome(): void;
+
+ /** Go Search Page. */
+ GoSearch(): void;
+
+ /** The vertical dimension (pixels) of the frame window/object. */
+ Height: number;
+
+ /** Returns the HWND of the current IE window. */
+ readonly HWND: number;
+
+ /** The horizontal position (pixels) of the frame window relative to the screen/container. */
+ Left: number;
+
+ /** Gets the short (UI-friendly) name of the URL/file currently viewed. */
+ readonly LocationName: string;
+
+ /** Gets the full URL/path currently viewed. */
+ readonly LocationURL: string;
+
+ /** Controls whether menubar is shown. */
+ MenuBar: boolean;
+
+ /** Returns name of the application. */
+ readonly Name: string;
+
+ /** Navigates to a URL or file. */
+ Navigate(URL: string, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Navigates to a URL or file or pidl. */
+ Navigate2(URL: any, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Controls if the frame is offline (read from cache) */
+ Offline: boolean;
+
+ /** Returns the automation object of the container/parent if one exists or this automation object. */
+ readonly Parent: any;
+
+ /** Returns the path to the application. */
+ readonly Path: string;
+
+ /** Associates vtValue with the name szProperty in the context of the object. */
+ PutProperty(Property: string, vtValue: any): void;
+
+ /** IOleCommandTarget::QueryStatus */
+ QueryStatusWB(cmdID: OLECMDID): OLECMDF;
+
+ /** Exits application and closes the open document. */
+ Quit(): void;
+ readonly ReadyState: tagREADYSTATE;
+
+ /** Refresh the currently viewed page. */
+ Refresh(): void;
+
+ /** Refresh the currently viewed page. */
+ Refresh2(Level?: RefreshConstants): void;
+
+ /** Registers OC as a top-level browser (for target name resolution) */
+ RegisterAsBrowser: boolean;
+
+ /** Registers OC as a drop target for navigation */
+ RegisterAsDropTarget: boolean;
+
+ /** Controls whether the window is resizable */
+ Resizable: boolean;
+
+ /** Set BrowserBar to Clsid */
+ ShowBrowserBar(pvaClsid: string | BrowserBarConstants, pvarShow?: boolean): void;
+
+ /** Controls if any dialog boxes can be shown */
+ Silent: boolean;
+
+ /** Turn on or off the statusbar. */
+ StatusBar: boolean;
+
+ /** Text of Status window. */
+ StatusText: string;
+
+ /** Stops opening a file. */
+ Stop(): void;
+
+ /** Controls if the browser is in theater mode */
+ TheaterMode: boolean;
+
+ /** Controls which toolbar is shown. */
+ ToolBar: number;
+
+ /** The vertical position (pixels) of the frame window relative to the screen/container. */
+ Top: number;
+
+ /** Returns True if this is the top level object. */
+ readonly TopLevelContainer: boolean;
+
+ /** Returns the type of the contained document object. */
+ readonly Type: string;
+
+ /** Determines whether the application is visible or hidden. */
+ Visible: boolean;
+
+ /** The horizontal dimension (pixels) of the frame window/object. */
+ Width: number;
+ }
+
+ /** Shell Browser Window. */
+ class ShellBrowserWindow {
+ private 'SHDocVw.ShellBrowserWindow_typekey': ShellBrowserWindow;
+ private constructor();
+
+ /** Controls whether address bar is shown */
+ AddressBar: boolean;
+
+ /** Returns the application automation object if accessible, this automation object otherwise.. */
+ readonly Application: any;
+
+ /** Query to see if something is still in progress. */
+ readonly Busy: boolean;
+
+ /** Converts client sizes into window sizes. */
+ ClientToWindow(pcx: number, pcy: number): void;
+
+ /** Returns the container/parent automation object, if any. */
+ readonly Container: any;
+
+ /** Returns the active Document automation object, if any. */
+ readonly Document: any;
+
+ /** IOleCommandTarget::Exec */
+ ExecWB(cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn?: any, pvaOut?: any): void;
+
+ /** Returns file specification of the application, including path. */
+ readonly FullName: string;
+
+ /** Maximizes window and turns off statusbar, toolbar, menubar, and titlebar. */
+ FullScreen: boolean;
+
+ /** Retrieve the Associated value for the property vtValue in the context of the object. */
+ GetProperty(Property: string): any;
+
+ /** Navigates to the previous item in the history list. */
+ GoBack(): void;
+
+ /** Navigates to the next item in the history list. */
+ GoForward(): void;
+
+ /** Go home/start page. */
+ GoHome(): void;
+
+ /** Go Search Page. */
+ GoSearch(): void;
+
+ /** The vertical dimension (pixels) of the frame window/object. */
+ Height: number;
+
+ /** Returns the HWND of the current IE window. */
+ readonly HWND: number;
+
+ /** The horizontal position (pixels) of the frame window relative to the screen/container. */
+ Left: number;
+
+ /** Gets the short (UI-friendly) name of the URL/file currently viewed. */
+ readonly LocationName: string;
+
+ /** Gets the full URL/path currently viewed. */
+ readonly LocationURL: string;
+
+ /** Controls whether menubar is shown. */
+ MenuBar: boolean;
+
+ /** Returns name of the application. */
+ readonly Name: string;
+
+ /** Navigates to a URL or file. */
+ Navigate(URL: string, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Navigates to a URL or file or pidl. */
+ Navigate2(URL: any, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Controls if the frame is offline (read from cache) */
+ Offline: boolean;
+
+ /** Returns the automation object of the container/parent if one exists or this automation object. */
+ readonly Parent: any;
+
+ /** Returns the path to the application. */
+ readonly Path: string;
+
+ /** Associates vtValue with the name szProperty in the context of the object. */
+ PutProperty(Property: string, vtValue: any): void;
+
+ /** IOleCommandTarget::QueryStatus */
+ QueryStatusWB(cmdID: OLECMDID): OLECMDF;
+
+ /** Exits application and closes the open document. */
+ Quit(): void;
+ readonly ReadyState: tagREADYSTATE;
+
+ /** Refresh the currently viewed page. */
+ Refresh(): void;
+
+ /** Refresh the currently viewed page. */
+ Refresh2(Level?: RefreshConstants): void;
+
+ /** Registers OC as a top-level browser (for target name resolution) */
+ RegisterAsBrowser: boolean;
+
+ /** Registers OC as a drop target for navigation */
+ RegisterAsDropTarget: boolean;
+
+ /** Controls whether the window is resizable */
+ Resizable: boolean;
+
+ /** Set BrowserBar to Clsid */
+ ShowBrowserBar(pvaClsid: string | BrowserBarConstants, pvarShow?: boolean): void;
+
+ /** Controls if any dialog boxes can be shown */
+ Silent: boolean;
+
+ /** Turn on or off the statusbar. */
+ StatusBar: boolean;
+
+ /** Text of Status window. */
+ StatusText: string;
+
+ /** Stops opening a file. */
+ Stop(): void;
+
+ /** Controls if the browser is in theater mode */
+ TheaterMode: boolean;
+
+ /** Controls which toolbar is shown. */
+ ToolBar: number;
+
+ /** The vertical position (pixels) of the frame window relative to the screen/container. */
+ Top: number;
+
+ /** Returns True if this is the top level object. */
+ readonly TopLevelContainer: boolean;
+
+ /** Returns the type of the contained document object. */
+ readonly Type: string;
+
+ /** Determines whether the application is visible or hidden. */
+ Visible: boolean;
+
+ /** The horizontal dimension (pixels) of the frame window/object. */
+ Width: number;
+ }
+
+ class ShellNameSpace {
+ private 'SHDocVw.ShellNameSpace_typekey': ShellNameSpace;
+ private constructor();
+ Columns: string;
+
+ /** number of view types */
+ readonly CountViewTypes: number;
+
+ /** method CreateSubscriptionForSelection */
+ CreateSubscriptionForSelection(): boolean;
+
+ /** method DeleteSubscriptionForSelection */
+ DeleteSubscriptionForSelection(): boolean;
+ Depth: number;
+
+ /** options */
+ EnumOptions: number;
+
+ /** expands item specified depth */
+ Expand(var_0: any, iDepth: number): void;
+
+ /** method Export */
+ Export(): void;
+ Flags: number;
+
+ /** method Import */
+ Import(): void;
+
+ /** method InvokeContextMenuCommand */
+ InvokeContextMenuCommand(strCommand: string): void;
+ Mode: number;
+
+ /** method MoveSelectionDown */
+ MoveSelectionDown(): void;
+
+ /** method MoveSelectionTo */
+ MoveSelectionTo(): void;
+
+ /** method MoveSelectionUp */
+ MoveSelectionUp(): void;
+
+ /** method NewFolder */
+ NewFolder(): void;
+
+ /** method ResetSort */
+ ResetSort(): void;
+
+ /** get the root item */
+ Root: any;
+
+ /** get the selected item */
+ SelectedItem: any;
+
+ /** collection of selected items */
+ SelectedItems(): any;
+
+ /** old, use put_Root() instead */
+ SetRoot(bstrFullPath: string): void;
+
+ /** set view type */
+ SetViewType(iType: number): void;
+
+ /** Query to see if subscriptions are enabled */
+ readonly SubscriptionsEnabled: boolean;
+
+ /** method Synchronize */
+ Synchronize(): void;
+ TVFlags: number;
+
+ /** unselects all items */
+ UnselectAll(): void;
+ }
+
+ class ShellUIHelper {
+ private 'SHDocVw.ShellUIHelper_typekey': ShellUIHelper;
+ private constructor();
+ AddChannel(URL: string): void;
+ AddDesktopComponent(URL: string, Type: string, Left?: any, Top?: any, Width?: any, Height?: any): void;
+ AddFavorite(URL: string, Title?: any): void;
+ AddSearchProvider(URL: string): void;
+ AddService(URL: string): void;
+ AddToFavoritesBar(URL: string, Title: string, Type?: any): void;
+ AutoCompleteAttach(Reserved?: any): void;
+ AutoCompleteSaveForm(Form?: any): void;
+ AutoScan(strSearch: string, strFailureUrl: string, pvarTargetFrame?: any): void;
+ BrandImageUri(): string;
+ BuildNewTabPage(): void;
+ ContentDiscoveryReset(): void;
+ CustomizeClearType(fSet: boolean): void;
+ CustomizeSettings(fSQM: boolean, fPhishing: boolean, bstrLocale: string): void;
+ DefaultSearchProvider(): string;
+ DiagnoseConnection(): void;
+ EnableSuggestedSites(fEnable: boolean): void;
+ GetCVListData(): string;
+ GetCVListLocalData(): string;
+ GetEMIEListData(): string;
+ GetEMIEListLocalData(): string;
+ GetExperimentalFlag(bstrFlagString: string): boolean;
+ GetExperimentalValue(bstrValueString: string): number;
+ GetNeedIEAutoLaunchFlag(bstrUrl: string): boolean;
+ HasNeedIEAutoLaunchFlag(bstrUrl: string): boolean;
+ ImportExportFavorites(fImport: boolean, strImpExpPath: string): void;
+ InPrivateFilteringEnabled(): boolean;
+ IsSearchMigrated(): boolean;
+ IsSearchProviderInstalled(URL: string): number;
+ IsServiceInstalled(URL: string, Verb: string): number;
+ IsSubscribed(URL: string): boolean;
+ IsSuggestedSitesEnabled(): boolean;
+ LaunchIE(bstrUrl: string, automated: boolean): void;
+ LaunchInHVSI(bstrUrl: string): void;
+ msActiveXFilteringEnabled(): boolean;
+ msAddSiteMode(): void;
+ msAddTrackingProtectionList(URL: string, bstrFilterName: string): void;
+ msChangeDefaultBrowser(fChange: boolean): void;
+ msClearTile(): void;
+ msDiagnoseConnectionUILess(): void;
+ msEnableTileNotificationQueue(fChange: boolean): void;
+ msEnableTileNotificationQueueForSquare150x150(fChange: boolean): void;
+ msEnableTileNotificationQueueForSquare310x310(fChange: boolean): void;
+ msEnableTileNotificationQueueForWide310x150(fChange: boolean): void;
+ msIsSiteMode(): boolean;
+ msIsSiteModeFirstRun(fPreserveState: boolean): any;
+ msLaunchInternetOptions(): void;
+ msLaunchNetworkClientHelp(): void;
+ msPinnedSiteState(): any;
+ msProvisionNetworks(bstrProvisioningXml: string): any;
+ msRemoveScheduledTileNotification(bstrNotificationId: string): void;
+ msReportSafeUrl(): void;
+ msScheduledTileNotification(bstrNotificationXml: string, bstrNotificationId: string, bstrNotificationTag: string, startTime?: any, expirationTime?: any): void;
+ msSiteModeActivate(): void;
+ msSiteModeAddButtonStyle(uiButtonID: any, bstrIconURL: string, bstrTooltip: string): any;
+ msSiteModeAddJumpListItem(bstrName: string, bstrActionUri: string, bstrIconUri: string, pvarWindowType?: any): void;
+ msSiteModeAddThumbBarButton(bstrIconURL: string, bstrTooltip: string): any;
+ msSiteModeClearBadge(): void;
+ msSiteModeClearIconOverlay(): void;
+ msSiteModeClearJumpList(): void;
+ msSiteModeCreateJumpList(bstrHeader: string): void;
+ msSiteModeRefreshBadge(): void;
+ msSiteModeSetIconOverlay(IconUrl: string, pvarDescription?: any): void;
+ msSiteModeShowButtonStyle(uiButtonID: any, uiStyleID: any): void;
+ msSiteModeShowJumpList(): void;
+ msSiteModeShowThumbBar(): void;
+ msSiteModeUpdateThumbBarButton(ButtonID: any, fEnabled: boolean, fVisible: boolean): void;
+ msStartPeriodicBadgeUpdate(pollingUri: string, startTime?: any, uiUpdateRecurrence?: any): void;
+ msStartPeriodicTileUpdate(pollingUris: any, startTime?: any, uiUpdateRecurrence?: any): void;
+ msStartPeriodicTileUpdateBatch(pollingUris: any, startTime?: any, uiUpdateRecurrence?: any): void;
+ msStopPeriodicBadgeUpdate(): void;
+ msStopPeriodicTileUpdate(): void;
+ msTrackingProtectionEnabled(): boolean;
+ NavigateAndFind(URL: string, strQuery: string, varTargetFrame: any): void;
+ NavigateToSuggestedSites(bstrRelativeUrl: string): void;
+ OpenFavoritesPane(): void;
+ OpenFavoritesSettings(): void;
+ PhishingEnabled(): boolean;
+ RefreshOfflineDesktop(): void;
+ ResetAllExperimentalFlagsAndValues(): void;
+ ResetFirstBootMode(): void;
+ ResetSafeMode(): void;
+ RunOnceHasShown(): boolean;
+ RunOnceRequiredSettingsComplete(fComplete: boolean): void;
+ RunOnceShown(): void;
+ SearchGuideUrl(): string;
+ SetActivitiesVisible(fVisible: boolean): void;
+ SetExperimentalFlag(bstrFlagString: string, vfFlag: boolean): void;
+ SetExperimentalValue(bstrValueString: string, dwValue: number): void;
+ SetNeedIEAutoLaunchFlag(bstrUrl: string, flag: boolean): void;
+ SetRecentlyClosedVisible(fVisible: boolean): void;
+ ShowBrowserUI(bstrName: string, pvarIn: any): any;
+ ShowInPrivateHelp(): void;
+ ShowTabsHelp(): void;
+ SkipRunOnce(): void;
+ SkipTabsWelcome(): void;
+ SqmEnabled(): boolean;
+ }
+
+ /** ShellDispatch Load in Shell Context */
+ class ShellWindows {
+ private 'SHDocVw.ShellWindows_typekey': ShellWindows;
+ private constructor();
+
+ /** Get count of open Shell windows */
+ readonly Count: number;
+
+ /** Find the window based on the location */
+ FindWindowSW(pvarloc: any, pvarlocRoot: any, swClass: number, pHWND: number, swfwOptions: number): any;
+
+ /** Return the shell window for the given index */
+ Item(index?: any): any;
+
+ /** Notifies the activation */
+ OnActivated(lCookie: number, fActive: boolean): void;
+
+ /** Notifies on creation and frame name set */
+ OnCreated(lCookie: number, punk: any): void;
+
+ /** Notifies the new location */
+ OnNavigate(lCookie: number, pvarloc: any): void;
+
+ /** Used by IExplore to register different processes */
+ ProcessAttachDetach(fAttach: boolean): void;
+
+ /** Register a window with the list */
+ Register(pid: any, HWND: number, swClass: number, plCookie: number): void;
+
+ /** Register a pending open with the list */
+ RegisterPending(lThreadId: number, pvarloc: any, pvarlocRoot: any, swClass: number, plCookie: number): void;
+
+ /** Remove a window from the list */
+ Revoke(lCookie: number): void;
+ }
+
+ /** WebBrowser Control */
+ class WebBrowser {
+ private 'SHDocVw.WebBrowser_typekey': WebBrowser;
+ private constructor();
+
+ /** Controls whether address bar is shown (ignored by WebBrowser) */
+ AddressBar: boolean;
+
+ /** Returns the application automation object if accessible, this automation object otherwise.. */
+ readonly Application: any;
+
+ /** Query to see if something is still in progress. */
+ readonly Busy: boolean;
+
+ /** Converts client sizes into window sizes. */
+ ClientToWindow(pcx: number, pcy: number): void;
+
+ /** Returns the container/parent automation object, if any. */
+ readonly Container: any;
+
+ /** Returns the active Document automation object, if any. */
+ readonly Document: any;
+
+ /** IOleCommandTarget::Exec */
+ ExecWB(cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn?: any, pvaOut?: any): void;
+
+ /** Returns file specification of the application, including path. */
+ readonly FullName: string;
+
+ /** Maximizes window and turns off statusbar, toolbar, menubar, and titlebar. */
+ FullScreen: boolean;
+
+ /** Retrieve the Associated value for the property vtValue in the context of the object. */
+ GetProperty(Property: string): any;
+
+ /** Navigates to the previous item in the history list. */
+ GoBack(): void;
+
+ /** Navigates to the next item in the history list. */
+ GoForward(): void;
+
+ /** Go home/start page. */
+ GoHome(): void;
+
+ /** Go Search Page. */
+ GoSearch(): void;
+
+ /** The vertical dimension (pixels) of the frame window/object. */
+ Height: number;
+
+ /** Returns the HWND of the current IE window. */
+ readonly HWND: number;
+
+ /** The horizontal position (pixels) of the frame window relative to the screen/container. */
+ Left: number;
+
+ /** Gets the short (UI-friendly) name of the URL/file currently viewed. */
+ readonly LocationName: string;
+
+ /** Gets the full URL/path currently viewed. */
+ readonly LocationURL: string;
+
+ /** Controls whether menubar is shown. */
+ MenuBar: boolean;
+
+ /** Returns name of the application. */
+ readonly Name: string;
+
+ /** Navigates to a URL or file. */
+ Navigate(URL: string, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Navigates to a URL or file or pidl. */
+ Navigate2(URL: any, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Controls if the frame is offline (read from cache) */
+ Offline: boolean;
+
+ /** Returns the automation object of the container/parent if one exists or this automation object. */
+ readonly Parent: any;
+
+ /** Returns the path to the application. */
+ readonly Path: string;
+
+ /** Associates vtValue with the name szProperty in the context of the object. */
+ PutProperty(Property: string, vtValue: any): void;
+
+ /** IOleCommandTarget::QueryStatus */
+ QueryStatusWB(cmdID: OLECMDID): OLECMDF;
+
+ /** Exits application and closes the open document. */
+ Quit(): void;
+ readonly ReadyState: tagREADYSTATE;
+
+ /** Refresh the currently viewed page. */
+ Refresh(): void;
+
+ /** Refresh the currently viewed page. */
+ Refresh2(Level?: RefreshConstants): void;
+
+ /** Registers OC as a top-level browser (for target name resolution) */
+ RegisterAsBrowser: boolean;
+
+ /** Registers OC as a drop target for navigation */
+ RegisterAsDropTarget: boolean;
+
+ /** Controls whether the window is resizable */
+ Resizable: boolean;
+
+ /** Set BrowserBar to Clsid */
+ ShowBrowserBar(pvaClsid: string | BrowserBarConstants, pvarShow?: boolean): void;
+
+ /** Controls if any dialog boxes can be shown */
+ Silent: boolean;
+
+ /** Turn on or off the statusbar. */
+ StatusBar: boolean;
+
+ /** Text of Status window. */
+ StatusText: string;
+
+ /** Stops opening a file. */
+ Stop(): void;
+
+ /** Controls if the browser is in theater mode */
+ TheaterMode: boolean;
+
+ /** Controls which toolbar is shown. */
+ ToolBar: number;
+
+ /** The vertical position (pixels) of the frame window relative to the screen/container. */
+ Top: number;
+
+ /** Returns True if this is the top level object. */
+ readonly TopLevelContainer: boolean;
+
+ /** Returns the type of the contained document object. */
+ readonly Type: string;
+
+ /** Determines whether the application is visible or hidden. */
+ Visible: boolean;
+
+ /** The horizontal dimension (pixels) of the frame window/object. */
+ Width: number;
+ }
+
+ /** WebBrowser Control */
+ class WebBrowser_V1 {
+ private 'SHDocVw.WebBrowser_V1_typekey': WebBrowser_V1;
+ private constructor();
+
+ /** Returns the application automation object if accessible, this automation object otherwise.. */
+ readonly Application: any;
+
+ /** Query to see if something is still in progress. */
+ readonly Busy: boolean;
+
+ /** Returns the container/parent automation object, if any. */
+ readonly Container: any;
+
+ /** Returns the active Document automation object, if any. */
+ readonly Document: any;
+
+ /** Navigates to the previous item in the history list. */
+ GoBack(): void;
+
+ /** Navigates to the next item in the history list. */
+ GoForward(): void;
+
+ /** Go home/start page. */
+ GoHome(): void;
+
+ /** Go Search Page. */
+ GoSearch(): void;
+
+ /** The vertical dimension (pixels) of the frame window/object. */
+ Height: number;
+
+ /** The horizontal position (pixels) of the frame window relative to the screen/container. */
+ Left: number;
+
+ /** Gets the short (UI-friendly) name of the URL/file currently viewed. */
+ readonly LocationName: string;
+
+ /** Gets the full URL/path currently viewed. */
+ readonly LocationURL: string;
+
+ /** Navigates to a URL or file. */
+ Navigate(URL: string, Flags?: BrowserNavConstants, TargetFrameName?: TargetFrameValues | string, PostData?: any, Headers?: string): void;
+
+ /** Returns the automation object of the container/parent if one exists or this automation object. */
+ readonly Parent: any;
+
+ /** Refresh the currently viewed page. */
+ Refresh(): void;
+
+ /** Refresh the currently viewed page. */
+ Refresh2(Level?: RefreshConstants): void;
+
+ /** Stops opening a file. */
+ Stop(): void;
+
+ /** The vertical position (pixels) of the frame window relative to the screen/container. */
+ Top: number;
+
+ /** Returns True if this is the top level object. */
+ readonly TopLevelContainer: boolean;
+
+ /** Returns the type of the contained document object. */
+ readonly Type: string;
+
+ /** The horizontal dimension (pixels) of the frame window/object. */
+ Width: number;
+ }
+
+ namespace EventHelperTypes {
+ type InternetExplorer_BeforeNavigate2_ArgNames = ['pDisp', 'URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type InternetExplorerMedium_BeforeNavigate2_ArgNames = ['pDisp', 'URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type ShellBrowserWindow_BeforeNavigate2_ArgNames = ['pDisp', 'URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type ShellNameSpace_FavoritesSelectionChange_ArgNames = ['cItems', 'hItem', 'strName', 'strUrl', 'cVisits', 'strDate', 'fAvailableOffline'];
+
+ type WebBrowser_BeforeNavigate2_ArgNames = ['pDisp', 'URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type WebBrowser_V1_BeforeNavigate_ArgNames = ['URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type WebBrowser_V1_FrameBeforeNavigate_ArgNames = ['URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Cancel'];
+
+ type WebBrowser_V1_FrameNewWindow_ArgNames = ['URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Processed'];
+
+ type WebBrowser_V1_NewWindow_ArgNames = ['URL', 'Flags', 'TargetFrameName', 'PostData', 'Headers', 'Processed'];
+
+ interface InternetExplorer_BeforeNavigate2_Parameter {
+ Cancel: boolean;
+ readonly Flags: any;
+ readonly Headers: any;
+ readonly pDisp: any;
+ readonly PostData: any;
+ readonly TargetFrameName: any;
+ readonly URL: any;
+ }
+
+ interface InternetExplorerMedium_BeforeNavigate2_Parameter {
+ Cancel: boolean;
+ readonly Flags: any;
+ readonly Headers: any;
+ readonly pDisp: any;
+ readonly PostData: any;
+ readonly TargetFrameName: any;
+ readonly URL: any;
+ }
+
+ interface ShellBrowserWindow_BeforeNavigate2_Parameter {
+ Cancel: boolean;
+ readonly Flags: any;
+ readonly Headers: any;
+ readonly pDisp: any;
+ readonly PostData: any;
+ readonly TargetFrameName: any;
+ readonly URL: any;
+ }
+
+ interface ShellNameSpace_FavoritesSelectionChange_Parameter {
+ readonly cItems: number;
+ readonly cVisits: number;
+ readonly fAvailableOffline: number;
+ readonly hItem: number;
+ readonly strDate: string;
+ readonly strName: string;
+ readonly strUrl: string;
+ }
+
+ interface WebBrowser_BeforeNavigate2_Parameter {
+ Cancel: boolean;
+ readonly Flags: any;
+ readonly Headers: any;
+ readonly pDisp: any;
+ readonly PostData: any;
+ readonly TargetFrameName: any;
+ readonly URL: any;
+ }
+
+ interface WebBrowser_V1_BeforeNavigate_Parameter {
+ Cancel: boolean;
+ readonly Flags: number;
+ readonly Headers: string;
+ readonly PostData: any;
+ readonly TargetFrameName: string;
+ readonly URL: string;
+ }
+
+ interface WebBrowser_V1_FrameBeforeNavigate_Parameter {
+ Cancel: boolean;
+ readonly Flags: number;
+ readonly Headers: string;
+ readonly PostData: any;
+ readonly TargetFrameName: string;
+ readonly URL: string;
+ }
+
+ interface WebBrowser_V1_FrameNewWindow_Parameter {
+ readonly Flags: number;
+ readonly Headers: string;
+ readonly PostData: any;
+ Processed: boolean;
+ readonly TargetFrameName: string;
+ readonly URL: string;
+ }
+
+ interface WebBrowser_V1_NewWindow_Parameter {
+ readonly Flags: number;
+ readonly Headers: string;
+ readonly PostData: any;
+ Processed: boolean;
+ readonly TargetFrameName: string;
+ readonly URL: string;
+ }
+ }
+}
+
+interface ActiveXObject {
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'BeforeNavigate2', argNames: SHDocVw.EventHelperTypes.InternetExplorer_BeforeNavigate2_ArgNames,
+ handler: (this: SHDocVw.InternetExplorer, parameter: SHDocVw.EventHelperTypes.InternetExplorer_BeforeNavigate2_Parameter) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'BeforeScriptExecute', argNames: ['pDispWindow'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly pDispWindow: any }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'ClientToHostWindow', argNames: ['CX', 'CY'], handler: (this: SHDocVw.InternetExplorer, parameter: { CX: number, CY: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'CommandStateChange', argNames: ['Command', 'Enable'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly Command: number, readonly Enable: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'DocumentComplete' | 'NavigateComplete2', argNames: ['pDisp', 'URL'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly pDisp: any, readonly URL: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'FileDownload', argNames: ['ActiveDocument', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly ActiveDocument: boolean, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'NavigateError', argNames: ['pDisp', 'URL', 'Frame', 'StatusCode', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly pDisp: any, readonly URL: any, readonly Frame: any, readonly StatusCode: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'NewProcess', argNames: ['lCauseFlag', 'pWB2', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly lCauseFlag: number, readonly pWB2: any, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'NewWindow2', argNames: ['ppDisp', 'Cancel'], handler: (this: SHDocVw.InternetExplorer, parameter: { ppDisp: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'NewWindow3', argNames: ['ppDisp', 'Cancel', 'dwFlags', 'bstrUrlContext', 'bstrUrl'],
+ handler: (this: SHDocVw.InternetExplorer, parameter: { ppDisp: any, Cancel: boolean, readonly dwFlags: number, readonly bstrUrlContext: string, readonly bstrUrl: string }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnFullScreen', argNames: ['FullScreen'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly FullScreen: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnMenuBar', argNames: ['MenuBar'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly MenuBar: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnStatusBar', argNames: ['StatusBar'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly StatusBar: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnTheaterMode', argNames: ['TheaterMode'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly TheaterMode: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnToolBar', argNames: ['ToolBar'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly ToolBar: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'OnVisible', argNames: ['Visible'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Visible: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'PrintTemplateInstantiation' | 'PrintTemplateTeardown', argNames: ['pDisp'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly pDisp: any }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'PrivacyImpactedStateChange', argNames: ['bImpacted'], handler: (this: SHDocVw.InternetExplorer,
+ parameter: { readonly bImpacted: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'ProgressChange', argNames: ['Progress', 'ProgressMax'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly Progress: number, readonly ProgressMax: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'PropertyChange', argNames: ['szProperty'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly szProperty: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'RedirectXDomainBlocked', argNames: ['pDisp', 'StartURL', 'RedirectURL', 'Frame', 'StatusCode'],
+ handler: (this: SHDocVw.InternetExplorer, parameter: { readonly pDisp: any, readonly StartURL: any, readonly RedirectURL: any, readonly Frame: any, readonly StatusCode: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'SetPhishingFilterStatus', argNames: ['PhishingFilterStatus'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly PhishingFilterStatus: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'SetSecureLockIcon', argNames: ['SecureLockIcon'], handler: (this: SHDocVw.InternetExplorer,
+ parameter: { readonly SecureLockIcon: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'StatusTextChange' | 'TitleChange', argNames: ['Text'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Text: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'ThirdPartyUrlBlocked', argNames: ['URL', 'dwCount'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly URL: any, readonly dwCount: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'UpdatePageStatus', argNames: ['pDisp', 'nPage', 'fDone'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly pDisp: any, readonly nPage: any, readonly fDone: any }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WebWorkerFinsihed', argNames: ['dwUniqueID'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly dwUniqueID: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'WebWorkerStarted', argNames: ['dwUniqueID', 'bstrWorkerLabel'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly dwUniqueID: number, readonly bstrWorkerLabel: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'WindowClosing', argNames: ['IsChildWindow', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly IsChildWindow: boolean, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WindowSetHeight', argNames: ['Height'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Height: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WindowSetLeft', argNames: ['Left'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Left: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WindowSetResizable', argNames: ['Resizable'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Resizable: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WindowSetTop', argNames: ['Top'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Top: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'WindowSetWidth', argNames: ['Width'], handler: (this: SHDocVw.InternetExplorer, parameter: { readonly Width: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorer, event: 'WindowStateChanged', argNames: ['dwWindowStateFlags', 'dwValidFlagsMask'], handler: (
+ this: SHDocVw.InternetExplorer, parameter: { readonly dwWindowStateFlags: number, readonly dwValidFlagsMask: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'BeforeNavigate2', argNames: SHDocVw.EventHelperTypes.InternetExplorerMedium_BeforeNavigate2_ArgNames,
+ handler: (this: SHDocVw.InternetExplorerMedium, parameter: SHDocVw.EventHelperTypes.InternetExplorerMedium_BeforeNavigate2_Parameter) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'BeforeScriptExecute', argNames: ['pDispWindow'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDispWindow: any }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'ClientToHostWindow', argNames: ['CX', 'CY'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { CX: number, CY: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'CommandStateChange', argNames: ['Command', 'Enable'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly Command: number, readonly Enable: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'DocumentComplete' | 'NavigateComplete2', argNames: ['pDisp', 'URL'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDisp: any, readonly URL: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'FileDownload', argNames: ['ActiveDocument', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly ActiveDocument: boolean, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'NavigateError', argNames: ['pDisp', 'URL', 'Frame', 'StatusCode', 'Cancel'],
+ handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDisp: any, readonly URL: any, readonly Frame: any, readonly StatusCode: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'NewProcess', argNames: ['lCauseFlag', 'pWB2', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly lCauseFlag: number, readonly pWB2: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'NewWindow2', argNames: ['ppDisp', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { ppDisp: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'NewWindow3', argNames: ['ppDisp', 'Cancel', 'dwFlags', 'bstrUrlContext', 'bstrUrl'],
+ handler: (this: SHDocVw.InternetExplorerMedium, parameter: {
+ ppDisp: any, Cancel: boolean, readonly dwFlags: number, readonly bstrUrlContext: string,
+ readonly bstrUrl: string
+ }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'OnFullScreen', argNames: ['FullScreen'], handler: (this: SHDocVw.InternetExplorerMedium,
+ parameter: { readonly FullScreen: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'OnMenuBar', argNames: ['MenuBar'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly MenuBar: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'OnStatusBar', argNames: ['StatusBar'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly StatusBar: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'OnTheaterMode', argNames: ['TheaterMode'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly TheaterMode: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'OnToolBar', argNames: ['ToolBar'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly ToolBar: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'OnVisible', argNames: ['Visible'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly Visible: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'PrintTemplateInstantiation' | 'PrintTemplateTeardown', argNames: ['pDisp'],
+ handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDisp: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'PrivacyImpactedStateChange', argNames: ['bImpacted'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly bImpacted: boolean }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'ProgressChange', argNames: ['Progress', 'ProgressMax'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly Progress: number, readonly ProgressMax: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'PropertyChange', argNames: ['szProperty'], handler: (this: SHDocVw.InternetExplorerMedium,
+ parameter: { readonly szProperty: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'RedirectXDomainBlocked', argNames: ['pDisp', 'StartURL', 'RedirectURL', 'Frame', 'StatusCode'],
+ handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDisp: any, readonly StartURL: any, readonly RedirectURL: any, readonly Frame: any, readonly StatusCode: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'SetPhishingFilterStatus', argNames: ['PhishingFilterStatus'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly PhishingFilterStatus: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'SetSecureLockIcon', argNames: ['SecureLockIcon'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly SecureLockIcon: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'StatusTextChange' | 'TitleChange', argNames: ['Text'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly Text: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'ThirdPartyUrlBlocked', argNames: ['URL', 'dwCount'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly URL: any, readonly dwCount: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'UpdatePageStatus', argNames: ['pDisp', 'nPage', 'fDone'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly pDisp: any, readonly nPage: any, readonly fDone: any }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'WebWorkerFinsihed', argNames: ['dwUniqueID'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly dwUniqueID: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'WebWorkerStarted', argNames: ['dwUniqueID', 'bstrWorkerLabel'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly dwUniqueID: number, readonly bstrWorkerLabel: string }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'WindowClosing', argNames: ['IsChildWindow', 'Cancel'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly IsChildWindow: boolean, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'WindowSetHeight', argNames: ['Height'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly Height: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'WindowSetLeft', argNames: ['Left'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly Left: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'WindowSetResizable', argNames: ['Resizable'], handler: (
+ this: SHDocVw.InternetExplorerMedium, parameter: { readonly Resizable: boolean }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'WindowSetTop', argNames: ['Top'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly Top: number }) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'WindowSetWidth', argNames: ['Width'], handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly Width: number }) => void): void;
+ on(
+ obj: SHDocVw.InternetExplorerMedium, event: 'WindowStateChanged', argNames: ['dwWindowStateFlags', 'dwValidFlagsMask'],
+ handler: (this: SHDocVw.InternetExplorerMedium, parameter: { readonly dwWindowStateFlags: number, readonly dwValidFlagsMask: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'BeforeNavigate2', argNames: SHDocVw.EventHelperTypes.ShellBrowserWindow_BeforeNavigate2_ArgNames,
+ handler: (this: SHDocVw.ShellBrowserWindow, parameter: SHDocVw.EventHelperTypes.ShellBrowserWindow_BeforeNavigate2_Parameter) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'BeforeScriptExecute', argNames: ['pDispWindow'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly pDispWindow: any }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'ClientToHostWindow', argNames: ['CX', 'CY'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { CX: number, CY: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'CommandStateChange', argNames: ['Command', 'Enable'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly Command: number, readonly Enable: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'DocumentComplete' | 'NavigateComplete2', argNames: ['pDisp', 'URL'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly pDisp: any, readonly URL: any }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'FileDownload', argNames: ['ActiveDocument', 'Cancel'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly ActiveDocument: boolean, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'NavigateError', argNames: ['pDisp', 'URL', 'Frame', 'StatusCode', 'Cancel'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly pDisp: any, readonly URL: any, readonly Frame: any, readonly StatusCode: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'NewProcess', argNames: ['lCauseFlag', 'pWB2', 'Cancel'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly lCauseFlag: number, readonly pWB2: any, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'NewWindow2', argNames: ['ppDisp', 'Cancel'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { ppDisp: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'NewWindow3', argNames: ['ppDisp', 'Cancel', 'dwFlags', 'bstrUrlContext', 'bstrUrl'],
+ handler: (this: SHDocVw.ShellBrowserWindow, parameter: { ppDisp: any, Cancel: boolean, readonly dwFlags: number, readonly bstrUrlContext: string, readonly bstrUrl: string }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnFullScreen', argNames: ['FullScreen'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly FullScreen: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnMenuBar', argNames: ['MenuBar'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly MenuBar: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnStatusBar', argNames: ['StatusBar'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly StatusBar: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnTheaterMode', argNames: ['TheaterMode'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly TheaterMode: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnToolBar', argNames: ['ToolBar'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly ToolBar: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'OnVisible', argNames: ['Visible'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Visible: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'PrintTemplateInstantiation' | 'PrintTemplateTeardown', argNames: ['pDisp'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly pDisp: any }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'PrivacyImpactedStateChange', argNames: ['bImpacted'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly bImpacted: boolean }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'ProgressChange', argNames: ['Progress', 'ProgressMax'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly Progress: number, readonly ProgressMax: number }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'PropertyChange', argNames: ['szProperty'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly szProperty: string }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'RedirectXDomainBlocked', argNames: ['pDisp', 'StartURL', 'RedirectURL', 'Frame', 'StatusCode'],
+ handler: (this: SHDocVw.ShellBrowserWindow, parameter: {
+ readonly pDisp: any, readonly StartURL: any, readonly RedirectURL: any, readonly Frame: any,
+ readonly StatusCode: any
+ }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'SetPhishingFilterStatus', argNames: ['PhishingFilterStatus'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly PhishingFilterStatus: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'SetSecureLockIcon', argNames: ['SecureLockIcon'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly SecureLockIcon: number }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'StatusTextChange' | 'TitleChange', argNames: ['Text'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Text: string }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'ThirdPartyUrlBlocked', argNames: ['URL', 'dwCount'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly URL: any, readonly dwCount: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'UpdatePageStatus', argNames: ['pDisp', 'nPage', 'fDone'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly pDisp: any, readonly nPage: any, readonly fDone: any }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WebWorkerFinsihed', argNames: ['dwUniqueID'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly dwUniqueID: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'WebWorkerStarted', argNames: ['dwUniqueID', 'bstrWorkerLabel'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly dwUniqueID: number, readonly bstrWorkerLabel: string }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'WindowClosing', argNames: ['IsChildWindow', 'Cancel'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly IsChildWindow: boolean, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WindowSetHeight', argNames: ['Height'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Height: number }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WindowSetLeft', argNames: ['Left'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Left: number }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WindowSetResizable', argNames: ['Resizable'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Resizable: boolean }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WindowSetTop', argNames: ['Top'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Top: number }) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'WindowSetWidth', argNames: ['Width'], handler: (this: SHDocVw.ShellBrowserWindow, parameter: { readonly Width: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellBrowserWindow, event: 'WindowStateChanged', argNames: ['dwWindowStateFlags', 'dwValidFlagsMask'], handler: (
+ this: SHDocVw.ShellBrowserWindow, parameter: { readonly dwWindowStateFlags: number, readonly dwValidFlagsMask: number }) => void): void;
+ on(
+ obj: SHDocVw.ShellNameSpace, event: 'FavoritesSelectionChange', argNames: SHDocVw.EventHelperTypes.ShellNameSpace_FavoritesSelectionChange_ArgNames,
+ handler: (this: SHDocVw.ShellNameSpace, parameter: SHDocVw.EventHelperTypes.ShellNameSpace_FavoritesSelectionChange_Parameter) => void): void;
+ on(obj: SHDocVw.ShellWindows, event: 'WindowRegistered' | 'WindowRevoked', argNames: ['lCookie'], handler: (this: SHDocVw.ShellWindows, parameter: { readonly lCookie: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'BeforeNavigate2', argNames: SHDocVw.EventHelperTypes.WebBrowser_BeforeNavigate2_ArgNames, handler: (
+ this: SHDocVw.WebBrowser, parameter: SHDocVw.EventHelperTypes.WebBrowser_BeforeNavigate2_Parameter) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'BeforeScriptExecute', argNames: ['pDispWindow'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly pDispWindow: any }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'ClientToHostWindow', argNames: ['CX', 'CY'], handler: (this: SHDocVw.WebBrowser, parameter: { CX: number, CY: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'CommandStateChange', argNames: ['Command', 'Enable'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly Command: number, readonly Enable: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'DocumentComplete' | 'NavigateComplete2', argNames: ['pDisp', 'URL'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly pDisp: any, readonly URL: any }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'FileDownload', argNames: ['ActiveDocument', 'Cancel'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly ActiveDocument: boolean, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'NavigateError', argNames: ['pDisp', 'URL', 'Frame', 'StatusCode', 'Cancel'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly pDisp: any, readonly URL: any, readonly Frame: any, readonly StatusCode: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'NewProcess', argNames: ['lCauseFlag', 'pWB2', 'Cancel'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly lCauseFlag: number, readonly pWB2: any, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'NewWindow2', argNames: ['ppDisp', 'Cancel'], handler: (this: SHDocVw.WebBrowser, parameter: { ppDisp: any, Cancel: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'NewWindow3', argNames: ['ppDisp', 'Cancel', 'dwFlags', 'bstrUrlContext', 'bstrUrl'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { ppDisp: any, Cancel: boolean, readonly dwFlags: number, readonly bstrUrlContext: string, readonly bstrUrl: string }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnFullScreen', argNames: ['FullScreen'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly FullScreen: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnMenuBar', argNames: ['MenuBar'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly MenuBar: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnStatusBar', argNames: ['StatusBar'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly StatusBar: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnTheaterMode', argNames: ['TheaterMode'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly TheaterMode: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnToolBar', argNames: ['ToolBar'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly ToolBar: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'OnVisible', argNames: ['Visible'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Visible: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'PrintTemplateInstantiation' | 'PrintTemplateTeardown', argNames: ['pDisp'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly pDisp: any }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'PrivacyImpactedStateChange', argNames: ['bImpacted'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly bImpacted: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'ProgressChange', argNames: ['Progress', 'ProgressMax'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly Progress: number, readonly ProgressMax: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'PropertyChange', argNames: ['szProperty'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly szProperty: string }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'RedirectXDomainBlocked', argNames: ['pDisp', 'StartURL', 'RedirectURL', 'Frame', 'StatusCode'],
+ handler: (this: SHDocVw.WebBrowser, parameter: { readonly pDisp: any, readonly StartURL: any, readonly RedirectURL: any, readonly Frame: any, readonly StatusCode: any }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'SetPhishingFilterStatus', argNames: ['PhishingFilterStatus'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly PhishingFilterStatus: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'SetSecureLockIcon', argNames: ['SecureLockIcon'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly SecureLockIcon: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'StatusTextChange' | 'TitleChange', argNames: ['Text'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Text: string }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'ThirdPartyUrlBlocked', argNames: ['URL', 'dwCount'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly URL: any, readonly dwCount: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'UpdatePageStatus', argNames: ['pDisp', 'nPage', 'fDone'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly pDisp: any, readonly nPage: any, readonly fDone: any }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WebWorkerFinsihed', argNames: ['dwUniqueID'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly dwUniqueID: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'WebWorkerStarted', argNames: ['dwUniqueID', 'bstrWorkerLabel'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly dwUniqueID: number, readonly bstrWorkerLabel: string }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'WindowClosing', argNames: ['IsChildWindow', 'Cancel'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly IsChildWindow: boolean, Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WindowSetHeight', argNames: ['Height'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Height: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WindowSetLeft', argNames: ['Left'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Left: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WindowSetResizable', argNames: ['Resizable'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Resizable: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WindowSetTop', argNames: ['Top'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Top: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'WindowSetWidth', argNames: ['Width'], handler: (this: SHDocVw.WebBrowser, parameter: { readonly Width: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser, event: 'WindowStateChanged', argNames: ['dwWindowStateFlags', 'dwValidFlagsMask'], handler: (
+ this: SHDocVw.WebBrowser, parameter: { readonly dwWindowStateFlags: number, readonly dwValidFlagsMask: number }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'BeforeNavigate', argNames: SHDocVw.EventHelperTypes.WebBrowser_V1_BeforeNavigate_ArgNames,
+ handler: (this: SHDocVw.WebBrowser_V1, parameter: SHDocVw.EventHelperTypes.WebBrowser_V1_BeforeNavigate_Parameter) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'CommandStateChange', argNames: ['Command', 'Enable'], handler: (
+ this: SHDocVw.WebBrowser_V1, parameter: { readonly Command: number, readonly Enable: boolean }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'FrameBeforeNavigate', argNames: SHDocVw.EventHelperTypes.WebBrowser_V1_FrameBeforeNavigate_ArgNames,
+ handler: (this: SHDocVw.WebBrowser_V1, parameter: SHDocVw.EventHelperTypes.WebBrowser_V1_FrameBeforeNavigate_Parameter) => void): void;
+ on(obj: SHDocVw.WebBrowser_V1, event: 'FrameNavigateComplete' | 'NavigateComplete', argNames: ['URL'], handler: (this: SHDocVw.WebBrowser_V1, parameter: { readonly URL: string }) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'FrameNewWindow', argNames: SHDocVw.EventHelperTypes.WebBrowser_V1_FrameNewWindow_ArgNames,
+ handler: (this: SHDocVw.WebBrowser_V1, parameter: SHDocVw.EventHelperTypes.WebBrowser_V1_FrameNewWindow_Parameter) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'NewWindow', argNames: SHDocVw.EventHelperTypes.WebBrowser_V1_NewWindow_ArgNames, handler: (
+ this: SHDocVw.WebBrowser_V1, parameter: SHDocVw.EventHelperTypes.WebBrowser_V1_NewWindow_Parameter) => void): void;
+ on(
+ obj: SHDocVw.WebBrowser_V1, event: 'ProgressChange', argNames: ['Progress', 'ProgressMax'], handler: (
+ this: SHDocVw.WebBrowser_V1, parameter: { readonly Progress: number, readonly ProgressMax: number }) => void): void;
+ on(obj: SHDocVw.WebBrowser_V1, event: 'PropertyChange', argNames: ['Property'], handler: (this: SHDocVw.WebBrowser_V1, parameter: { readonly Property: string }) => void): void;
+ on(obj: SHDocVw.WebBrowser_V1, event: 'Quit', argNames: ['Cancel'], handler: (this: SHDocVw.WebBrowser_V1, parameter: { Cancel: boolean }) => void): void;
+ on(obj: SHDocVw.WebBrowser_V1, event: 'StatusTextChange' | 'TitleChange', argNames: ['Text'], handler: (this: SHDocVw.WebBrowser_V1, parameter: { readonly Text: string }) => void): void;
+ on(obj: SHDocVw.InternetExplorer, event: 'DownloadBegin' | 'DownloadComplete' | 'OnQuit', handler: (this: SHDocVw.InternetExplorer, parameter: {}) => void): void;
+ on(obj: SHDocVw.InternetExplorerMedium, event: 'DownloadBegin' | 'DownloadComplete' | 'OnQuit', handler: (this: SHDocVw.InternetExplorerMedium, parameter: {}) => void): void;
+ on(obj: SHDocVw.ShellBrowserWindow, event: 'DownloadBegin' | 'DownloadComplete' | 'OnQuit', handler: (this: SHDocVw.ShellBrowserWindow, parameter: {}) => void): void;
+ on(obj: SHDocVw.ShellNameSpace, event: 'DoubleClick' | 'Initialized' | 'SelectionChange', handler: (this: SHDocVw.ShellNameSpace, parameter: {}) => void): void;
+ on(obj: SHDocVw.WebBrowser, event: 'DownloadBegin' | 'DownloadComplete' | 'OnQuit', handler: (this: SHDocVw.WebBrowser, parameter: {}) => void): void;
+ on(obj: SHDocVw.WebBrowser_V1, event: 'DownloadBegin' | 'DownloadComplete' | 'WindowActivate' | 'WindowMove' | 'WindowResize', handler: (this: SHDocVw.WebBrowser_V1, parameter: {}) => void): void;
+ new (progid: K): ActiveXObjectNameMap[K];
+}
+
+interface ActiveXObjectNameMap {
+ 'InternetExplorer.Application': SHDocVw.InternetExplorer;
+ 'Shell.Explorer': SHDocVw.WebBrowser;
+ 'Shell.UIHelper': SHDocVw.ShellUIHelper;
+ 'ShellNameSpace.ShellNameSpace': SHDocVw.ShellNameSpace;
+}
+
+interface EnumeratorConstructor {
+ new(col: SHDocVw.ShellWindows): Enumerator;
+}
diff --git a/types/activex-shdocvw/package.json b/types/activex-shdocvw/package.json
new file mode 100644
index 0000000000..d9b1031263
--- /dev/null
+++ b/types/activex-shdocvw/package.json
@@ -0,0 +1,6 @@
+{
+ "private": true,
+ "dependencies": {
+ "activex-helpers": "*"
+ }
+}
\ No newline at end of file
diff --git a/types/activex-shdocvw/tsconfig.json b/types/activex-shdocvw/tsconfig.json
new file mode 100644
index 0000000000..1907cb1ef6
--- /dev/null
+++ b/types/activex-shdocvw/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es5",
+ "scripthost"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "activex-shdocvw-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/activex-shdocvw/tslint.json b/types/activex-shdocvw/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/activex-shdocvw/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/activex-shell/activex-shell-tests.ts b/types/activex-shell/activex-shell-tests.ts
new file mode 100644
index 0000000000..f236f6e592
--- /dev/null
+++ b/types/activex-shell/activex-shell-tests.ts
@@ -0,0 +1,489 @@
+///
+
+const shell = new ActiveXObject('Shell.Application');
+
+const getWindowsFolder = () => shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfWINDOWS);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537735(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ if (!folder) { return; }
+ const folderItem = folder.ParseName('system.ini');
+ if (!folderItem) { return; }
+ shell.AddToRecent(folderItem.Path);
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774065(v=vs.85).aspx
+(() => {
+ const folder = shell.BrowseForFolder(0, 'Example', 0, Shell32.ShellSpecialFolderConstants.ssfWINDOWS);
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537736(v=vs.85).aspx
+const canStartStop = shell.CanStartStopService('service name');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774069(v=vs.85).aspx
+shell.ControlPanelItem('desk.cpl');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774073(v=vs.85).aspx
+shell.Explore('C:\\');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537737(v=vs.85).aspx
+const explorerPolicy = shell.ExplorerPolicy('ValueName');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537739(v=vs.85).aspx
+const settingValue = shell.GetSetting(Shell32.SettingKey.SSF_SHOWALLOBJECTS);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537740(v=vs.85).aspx
+const processorLevel = shell.GetSystemInformation('ProcessorLevel');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537741(v=vs.85).aspx
+const isRestricted = shell.IsRestricted('system', 'undockwithoutlogon');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537742(v=vs.85).aspx
+const isServiceRunning = shell.IsServiceRunning('Themes');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774086(v=vs.85).aspx
+shell.Open(Shell32.ShellSpecialFolderConstants.ssfWINDOWS);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537743(v=vs.85).aspx
+shell.ServiceStart('Messenger', true);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537744(v=vs.85).aspx
+shell.ServiceStop('Messenger', true);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537745(v=vs.85).aspx
+shell.ShellExecute("notepad.exe", "", "", "open", Shell32.ShellExecuteShow.Normal);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/gg537746(v=vs.85).aspx?cs-save-lang=1&cs-lang=jscript#code-snippet-1
+shell.ShowBrowserBar(Shell32.ExplorerBarCLSID.Favorites, true);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774107(v=vs.85).aspx
+const wshShell = new ActiveXObject('WScript.Shell');
+wshShell.Popup(shell.Windows().Count.toString());
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787866(v=vs.85).aspx
+shell.NameSpace(`c:\\windows`)!.CopyHere('c:\\autoexec.bat');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace('c:\\windows');
+ const folderItem = folder ? folder.ParseName('clock.avi') : undefined;
+ if (folder && folderItem) {
+ const info = folder.GetDetailsOf(folderItem, Shell32.FileSystemDetails.Type);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787874(v=vs.85).aspx
+shell.NameSpace('c:\\windows')!.MoveHere('c:\\temp.txt', Shell32.FileOperationFlag.FOF_NOCONFIRMATION);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787876(v=vs.85).aspx
+shell.NameSpace('c:\\')!.NewFolder('TestFolder');
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787858(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace("\\\\server\\share\\folder");
+ const offlineStatus = folder ? folder.OfflineStatus : undefined;
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787880(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfPROGRAMS);
+ WScript.Echo(folder!.ParentFolder.Title);
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787860(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787816(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787850(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace('C:\\WINDOWS');
+ const folderItem = folder ? folder.Self : undefined;
+ if (folderItem) {
+ const verbs = folderItem.Verbs();
+ folderItem.InvokeVerb();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787812(v=vs.85).aspx
+(() => {
+ const parentFolder = getWindowsFolder();
+ const folderItem = parentFolder ? parentFolder.ParseName('system32') : undefined;
+ const folder = folderItem ? folderItem.GetFolder : undefined;
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787814(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787824(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfPROGRAMS);
+ const folderItem = folder ? folder.ParseName('Internet Explorer.lnk') : undefined;
+ if (folderItem && folderItem.IsLink) {
+ const link = folderItem.GetLink;
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787818(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787819(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787821(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder ? folder.Self : undefined;
+ if (folderItem) {
+ const isBrowsable = folderItem.IsBrowsable;
+ const isFileSystem = folderItem.IsFileSystem;
+ const isFolder = folderItem.IsFolder;
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787825(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder!.ParseName('notepad.exe');
+ if (folderItem) {
+ const oldDate = folderItem.ModifyDate;
+ folderItem.ModifyDate = new Date(1900, 1, 1, 18, 5).getVarDate();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787827(v=vs.85).aspx
+(() => {
+ const rootFolder = shell.NameSpace('C:\\');
+ const folderItem = rootFolder ? rootFolder.ParseName('autoexec.bat') : undefined;
+ if (folderItem) {
+ const oldName = folderItem.Name;
+ folderItem.Name = 'test.bat';
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787829(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder ? folder.Self : undefined;
+ const parent = folderItem ? folderItem.Parent : undefined;
+ if (parent) {
+ WScript.Echo('Got parent object');
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787844(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder ? folder.Self : undefined;
+ const path = folderItem ? folderItem.Path : '';
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787846(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder!.ParseName('notepad.exe');
+ const size = folderItem ? folderItem.Size : undefined;
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787848(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ if (folder) {
+ WScript.Echo(folder.Self.Type);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787798(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItems = folder ? folder.Items() : undefined;
+ const count = folderItems ? folderItems.Count : undefined;
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787794(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfDRIVES);
+ if (folder) {
+ folder.Items().InvokeVerbEx();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774170(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774174(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfPROGRAMS);
+ const verbs = folder ? folder.Self.Verbs() : undefined;
+ if (verbs) {
+ const verb = verbs.Item(0);
+ WScript.Echo(verb.Name);
+ verb.DoIt();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787787(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ if (folder) {
+ const folderItems = folder.Items();
+ WScript.Echo(folderItems.Count);
+ folderItems.Filter(Shell32.ShellFolderEnumerationFlags.SHCONTF_NONFOLDERS, '*.txt');
+ WScript.Echo(folderItems.Count);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb787791(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774162(v=vs.85).aspx
+(() => {
+ const echoFirstVerbName = (folder: Shell32.Folder3 | null) => {
+ if (!folder) { return; }
+ const verbs = folder.Items().Verbs;
+ WScript.Echo(verbs.Item(0).Name);
+ };
+
+ let folder = getWindowsFolder();
+ echoFirstVerbName(folder);
+
+ folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);
+ echoFirstVerbName(folder);
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774158(v=vs.85).aspx
+(() => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfCONTROLS);
+ if (folder) {
+ const verbs = folder.Self.Verbs();
+ WScript.Echo(verbs.Count);
+ }
+})();
+
+const getIELink = () => {
+ const folder = shell.NameSpace(Shell32.ShellSpecialFolderConstants.ssfPROGRAMS);
+ const folderItem = folder ? folder.ParseName('Internet Explorer.lnk') : undefined;
+ return {
+ link: folderItem ? folderItem.GetLink : undefined,
+ folderItem
+ };
+};
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773990(v=vs.85).aspx
+(() => {
+ const { link, folderItem } = getIELink();
+ if (link && folderItem) {
+ WScript.Echo(link.GetIconLocation(folderItem.Path));
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773996(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ link.Resolve(Shell32.ShellLinkResolveFlags.NoUI);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773998(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ link.Description = 'New Description';
+ link.Save();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774002(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ link.SetIconLocation(link.Path, 1);
+ link.Save();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773986(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ WScript.Echo(link.Arguments);
+ link.Arguments = '/s';
+ link.Save();
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773988(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ WScript.Echo(link.Description);
+ link.Description = 'Test';
+ link.Save();
+ }
+})();
+
+const parseHotkey = (hotkey: number) => {
+ // missing implementation
+ return {
+ shift: false,
+ ctrl: false,
+ alt: false,
+ extended: false,
+ hotkey
+ };
+};
+const buildHotkey = (hotkey: number, shift: boolean = false, ctrl: boolean = false, alt: boolean = false, extended: boolean = false) => {
+ // missing implementation
+ return 0;
+};
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773992(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ const { hotkey } = parseHotkey(link.Hotkey);
+ WScript.Echo(hotkey);
+ link.Hotkey = buildHotkey(4);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773994(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ WScript.Echo(link.Path);
+ link.Path = 'C:\\Program Files\\IE\\IEXPLORE.EXE';
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774006(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ WScript.Echo(link.ShowCommand);
+ link.ShowCommand = Shell32.LinkShowWindowState.Normal;
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774008(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ WScript.Echo(link.WorkingDirectory);
+ link.WorkingDirectory = '';
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774115(v=vs.85).aspx
+(() => {
+ const { link } = getIELink();
+ if (link) {
+ const target = link.Target;
+ if (target) {
+ WScript.Echo(target.Size);
+ }
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774055(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder ? folder.ParseName('notepad.exe') : undefined;
+ if (folderItem) {
+ WScript.Echo(folderItem.ExtendedProperty('infotip'));
+ }
+
+ const wordDoc = shell.NameSpace('C:\\')!.ParseName('test.doc');
+ if (wordDoc) {
+ const FMTID_SummaryInfo = "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}";
+ const PID_TITLE = "2";
+ const PID_AUTHOR = "4";
+ const SCID_TITLE = `${FMTID_SummaryInfo} ${PID_TITLE}`;
+ const SCID_AUTHOR = `${FMTID_SummaryInfo} ${PID_AUTHOR}`;
+ const docTitle = wordDoc.ExtendedProperty(SCID_TITLE);
+ const docAuthor = wordDoc.ExtendedProperty(SCID_AUTHOR);
+ }
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774057(v=vs.85).aspx
+(() => {
+ const folder = getWindowsFolder();
+ const folderItem = folder ? folder.ParseName('notepad.exe') : undefined;
+ if (folderItem) {
+ folderItem.InvokeVerbEx("open", "c:\\autoexec.bat");
+ }
+})();
+
+const collectionToArray = (col: any): T[] => { // tslint:disable-line no-unnecessary-generics
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
+ }
+ return results;
+};
+
+interface String {
+ endsWith(searchString: string, length?: number): boolean;
+}
+if (!String.prototype.endsWith) {
+ String.prototype.endsWith = function(search, this_len) {
+ if (this_len === undefined || this_len > this.length) {
+ this_len = this.length;
+ }
+ return this.substring(this_len - search.length, this_len) === search;
+ };
+}
+
+// shell.Windows() includes items other than Explorer windows, such as Internet Explorer tabs
+const getExplorerWindows = () =>
+ collectionToArray(shell.Windows())
+ .filter(x => x.FullName.toLowerCase().endsWith('explorer.exe'));
+
+const getFolderViews = () =>
+ getExplorerWindows()
+ .map(x => x.Document as Shell32.ShellFolderView);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774045(v=vs.85).aspx
+(() => {
+ getFolderViews().forEach(x =>
+ ActiveXObject.on(x, 'SelectionChanged', function(this: Shell32.ShellFolderView) {
+ WScript.Echo(`Selection change in ${this.Folder.Title} -- count: ${this.SelectedItems().Count}`);
+ })
+ );
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773970(v=vs.85).aspx
+WScript.Echo(shell.Windows().Item().Path);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb773969(v=vs.85).aspx
+WScript.Echo(shell.Windows().Count);
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774043(v=vs.85).aspx
+(() => {
+ getFolderViews().forEach(x =>
+ WScript.Echo(`${x.Folder.Title} -- ${x.SelectedItems().Count} selected items`)
+ );
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774047(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774022(v=vs.85).aspx
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774053(v=vs.85).aspx
+(() => {
+ const folderView = getExplorerWindows()[0].Document as Shell32.ShellFolderView;
+ const folder = folderView.Folder;
+ if (folder) {
+ const folderItem = folder.Self;
+ folderView.SelectItem(folder.Self, Shell32.ShellFolderViewSelectItem.Focus);
+ }
+ WScript.Echo(folderView.ViewOptions);
+})();
+
+// https://msdn.microsoft.com/en-us/library/windows/desktop/bb774020(v=vs.85).aspx
+(() => {
+ const folderView = getExplorerWindows()[0].Document as Shell32.ShellFolderView;
+ const focusedItem = folderView.FocusedItem;
+ if (focusedItem) {
+ WScript.Echo(`Focused item in first Excplorer window -- ${focusedItem.Path}`);
+ }
+})();
+
+(() => {
+ const router = new ActiveXObject('Shell.FolderView');
+ const folder = getFolderViews()[0];
+ router.SetFolderView(folder);
+ ActiveXObject.on(router, 'EnumDone', () => WScript.Echo('Current folder view was finisehd enumerating'));
+ ActiveXObject.on(router, 'SelectionChanged', () => WScript.Echo('Selection changed in current folder view'));
+ // the folder view monitored by the ShellFolderViewOC object can be changed via SetFolderView without disconnecting and reconnecting the handlers
+})();
diff --git a/types/activex-shell/index.d.ts b/types/activex-shell/index.d.ts
new file mode 100644
index 0000000000..cb59a11c5e
--- /dev/null
+++ b/types/activex-shell/index.d.ts
@@ -0,0 +1,1016 @@
+// Type definitions for Microsoft Shell Controls And Automation - Shell32 1.0
+// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773938(v=vs.85).aspx
+// Definitions by: Zev Spitz
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+// TypeScript Version: 2.6
+
+///
+
+declare namespace Shell32 {
+ // tslint:disable-next-line no-const-enum
+ const enum BrowseInfoFlags {
+ /**
+ * Allow folder junctions such as a library or a compressed file with a .zip file name extension to be browsed.
+ *
+ * _Windows 7 and later._
+ */
+ BIF_BROWSEFILEJUNCTIONS = 0x00010000,
+
+ /** Only return computers. If the user selects anything other than a computer, the **OK** button is grayed. */
+ BIF_BROWSEFORCOMPUTER = 0x00001000,
+
+ /**
+ * Only allow the selection of printers. If the user selects anything other than a printer, the **OK** button is grayed.
+ *
+ * In Windows XP and later systems, the best practice is to use a Windows XP-style dialog, setting the root of the dialog to the **Printers and Faxes** folder (`CSIDL_PRINTERS`).
+ */
+ BIF_BROWSEFORPRINTER = 0x00002000,
+
+ /**
+ * The browse dialog box displays files as well as folders.
+ *
+ * _[Version 4.7.1](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_BROWSEINCLUDEFILES = 0x00004000,
+
+ /**
+ * The browse dialog box can display URLs. The `BIF_USENEWUI` and `BIF_BROWSEINCLUDEFILES` flags must also be set. If any of these three flags are not set, the browser dialog box rejects URLs.
+ * Even when these flags are set, the browse dialog box displays URLs only if the folder that contains the selected item supports URLs.
+ *
+ * When the folder's [IShellFolder::GetAttributesOf](https://msdn.microsoft.com/en-us/library/windows/desktop/bb775068.aspx) method is called to request the selected item's attributes, the
+ * folder must set the `SFGAO_FOLDER` attribute flag. Otherwise, the browse dialog box will not display the URL.
+ *
+ * _[Version 5.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_BROWSEINCLUDEURLS = 0x00000080,
+
+ /** Do not include network folders below the domain level in the dialog box's tree view control. */
+ BIF_DONTGOBELOWDOMAIN = 0x00000002,
+
+ /**
+ * Include an edit control in the browse dialog box that allows the user to type the name of an item.
+ *
+ * _[Version 4.7.1](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_EDITBOX = 0x00000010,
+
+ /**
+ * Use the new user interface. Setting this flag provides the user with a larger dialog box that can be resized. The dialog box has several new capabilities, including: drag-and-drop
+ * capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands.
+ *
+ * _[Version 5.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_NEWDIALOGSTYLE = 0x00000040,
+
+ /**
+ * Do not include the **New Folder** button in the browse dialog box.
+ *
+ * _[Version 6.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_NONEWFOLDERBUTTON = 0x00000200,
+
+ /**
+ * When the selected item is a shortcut, return the PIDL of the shortcut itself rather than its target.
+ *
+ * _[Version 6.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_NOTRANSLATETARGETS = 0x00000400,
+
+ /**
+ * Only return file system ancestors. An ancestor is a subfolder that is beneath the root folder in the namespace hierarchy. If the user selects an ancestor of the root folder that is not
+ * part of the file system, the **OK** button is grayed.
+ */
+ BIF_RETURNFSANCESTORS = 0x00000008,
+
+ /**
+ * Only return file system directories. If the user selects folders that are not part of the file system, the **OK** button is grayed.
+ *
+ * **Note** The **OK** button remains enabled for `\\server` items, as well as `\\server\share` and directory items. However, if the user selects a `\\server` item, passing the PIDL
+ * returned by [SHBrowseForFolder](https://msdn.microsoft.com/en-us/library/windows/desktop/bb762115.aspx) to
+ * [SHGetPathFromIDList](https://msdn.microsoft.com/en-us/library/windows/desktop/bb762194.aspx) fails.
+ */
+ BIF_RETURNONLYFSDIRS = 0x00000001,
+
+ /**
+ * The browse dialog box can display sharable resources on remote systems. This is intended for applications that want to expose remote shares on a local system. The BIF_NEWDIALOGSTYLE flag
+ * must also be set.
+ *
+ * _[Version 5.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_SHAREABLE = 0x00008000,
+
+ /**
+ * Include a status area in the dialog box. The callback function can set the status text by sending messages to the dialog box. This flag is not supported when BIF_NEWDIALOGSTYLE
+ * is specified.
+ */
+ BIF_STATUSTEXT = 0x00000004,
+
+ /**
+ * When combined with `BIF_NEWDIALOGSTYLE`, adds a usage hint to the dialog box, in place of the edit box. `BIF_EDITBOX` overrides this flag.
+ *
+ * _[Version 6.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_UAHINT = 0x00000100,
+
+ /**
+ * Use the new user interface, including an edit box. This flag is equivalent to `BIF_EDITBOX | BIF_NEWDIALOGSTYLE`.
+ *
+ * _[Version 5.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ BIF_USENEWUI = 0x00000090,
+
+ /**
+ * If the user types an invalid name into the edit box, the browse dialog box calls the application's
+ * [BrowseCallbackProc](https://msdn.microsoft.com/en-us/library/windows/desktop/bb762598.aspx) with the **BFFM_VALIDATEFAILED** message. This flag is ignored if BIF_EDITBOX is not specified.
+ *
+ * _[Version 4.71](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779)_
+ */
+ BIF_VALIDATE = 0x00000020,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ExplorerBarCLSID {
+ Favorites = '{EFA24E61-B078-11d0-89E4-00C04FC9E26E}',
+ Folders = '{EFA24E64-B078-11d0-89E4-00C04FC9E26E}',
+ History = '{EFA24E62-B078-11d0-89E4-00C04FC9E26E}',
+ Search = '{30D02401-6A81-11d0-8274-00C04FD5AE38}',
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum FileOperationFlag {
+ /** Preserve undo information, if possible. */
+ FOF_ALLOWUNDO = 64,
+
+ /** Perform the operation on files only if a wildcard file name (*.*) is specified. */
+ FOF_FILESONLY = 128,
+
+ /** Respond with "Yes to All" for any dialog box that is displayed. */
+ FOF_NOCONFIRMATION = 16,
+
+ /** Do not confirm the creation of a new directory if the operation requires one to be created. */
+ FOF_NOCONFIRMMKDIR = 512,
+
+ /**
+ * Do not copy connected files as a group. Only copy the specified files.
+ *
+ * _[Version 5.0](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ FOF_NO_CONNECTED_ELEMENTS = 8192,
+
+ /**
+ * Do not copy the security attributes of the file.
+ *
+ * _[Version 4.7.1](https://msdn.microsoft.com/en-us/library/windows/desktop/bb776779.aspx)_
+ */
+ FOF_NOCOPYSECURITYATTRIBS = 2048,
+
+ /** Do not display a user interface if an error occurs. */
+ FOF_NOERRORUI = 1024,
+
+ /** Only operate in the local directory. Do not operate recursively into subdirectories. */
+ FOF_NORECURSION = 4096,
+
+ /** Give the file being operated on a new name in a move, copy, or rename operation if a file with the target name already exists. */
+ FOF_RENAMEONCOLLISION = 8,
+
+ /** Do not display a progress dialog box. */
+ FOF_SILENT = 4,
+
+ /** Display a progress dialog box but do not show the file names. */
+ FOF_SIMPLEPROGRESS = 256,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum FileSystemDetails {
+ Name = 0,
+ Size = 1,
+ Type = 2,
+ LastModified = 3,
+ Attributes = 4,
+ InfoTip = -1,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum HotkeyModifiers {
+ SHIFT = 1,
+ CTRL = 2,
+ ALT = 4,
+ Extended = 8
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum LinkShowWindowState {
+ /** Activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position. */
+ Normal = 1,
+
+ /** Activates the window and displays it as a minimized window. */
+ Minimized = 2,
+
+ /** Activates the window and displays it as a maximized window. */
+ Maximized = 3
+ }
+
+ /** Constants for Folder2.OfflineStatus */
+ // tslint:disable-next-line no-const-enum
+ const enum OfflineFolderStatus {
+ OFS_DIRTYCACHE = 3,
+ OFS_INACTIVE = -1,
+ OFS_OFFLINE = 1,
+ OFS_ONLINE = 0,
+ OFS_SERVERBACK = 2,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ShellFolderEnumerationFlags {
+ /** **Windows 7 and later** The calling application is checking for the existence of child items in the folder. */
+ SHCONTF_CHECKING_FOR_CHILDREN = 0x00010,
+
+ /** Include items that are folders in the enumeration. */
+ SHCONTF_FOLDERS = 0x00020,
+
+ /** Include items that are not folders in the enumeration. */
+ SHCONTF_NONFOLDERS = 0x00040,
+
+ /** Include hidden items in the enumeration. This does not include hidden system items. (To include hidden system items, use SHCONTF_INCLUDESUPERHIDDEN.) */
+ SHCONTF_INCLUDEHIDDEN = 0x00080,
+
+ /** The calling application is looking for printer objects. */
+ SHCONTF_NETPRINTERSRCH = 0x00200,
+
+ /** The calling application is looking for resources that can be shared. */
+ SHCONTF_SHAREABLE = 0x00400,
+
+ /** Include items with accessible storage and their ancestors, including hidden items. */
+ SHCONTF_STORAGE = 0x00800,
+
+ /** **Windows 7 and later**. Child folders should provide a navigation enumeration. */
+ SHCONTF_NAVIGATION_ENUM = 0x01000,
+
+ /** **Windows Vista and later**. The calling application is looking for resources that can be enumerated quickly. */
+ SHCONTF_FASTITEMS = 0x02000,
+
+ /** **Windows Vista and later**. Enumerate items as a simple list even if the folder itself is not structured in that way. */
+ SHCONTF_FLATLIST = 0x04000,
+
+ /**
+ * **Windows Vista and later**. The calling application is monitoring for change notifications.This means that the enumerator does not have to return all results.
+ * Items can be reported through change notifications.
+ */
+ SHCONTF_ENABLE_ASYNC = 0x08000,
+
+ /**
+ * **Windows 7 and later**. Include hidden system items in the enumeration. This value does not include hidden non-system items.
+ * (To include hidden non-system items, use SHCONTF_INCLUDEHIDDEN.)
+ */
+ SHCONTF_INCLUDESUPERHIDDEN = 0x10000,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ShellFolderViewOptions {
+ /** The **Show All Files** option is enabled. */
+ SFVVO_SHOWALLOBJECTS = 0x00000001,
+
+ /** The **Hide extensions for known file types** option is disabled. */
+ SFVVO_SHOWEXTENSIONS = 0x00000002,
+
+ /** The **Display Compressed Files and Folders with Alternate Color** option is enabled. */
+ SFVVO_SHOWCOMPCOLOR = 0x00000008,
+
+ /** The **Do Not Show Hidden Files** option is enabled. */
+ SFVVO_SHOWSYSFILES = 0x00000020,
+
+ /** The **Classic Style** option is enabled. */
+ SFVVO_WIN95CLASSIC = 0x00000040,
+
+ /** The **Double-Click to Open an Item** option is enabled. */
+ SFVVO_DOUBLECLICKINWEBVIEW = 0x00000080,
+
+ /** The **Active Desktop – View as Web Page** option is enabled. */
+ SFVVO_DESKTOPHTML = 0x00000200
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ShellFolderViewSelectItem {
+ Deselect = 0,
+ Select = 1,
+ EditMode = 3,
+ DeselectAllButThis = 4,
+ ScrollIntoView = 8,
+ Focus = 16
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ShellLinkResolveFlags {
+ /**
+ * Do not display a dialog box if the link cannot be resolved. When this flag is set, the high-order word of _fFlags_ specifies a time-out duration, in milliseconds.
+ * The method returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration defaults to 3000 milliseconds (3 seconds).
+ */
+ NoUI = 1,
+
+ /** If the link has changed, update its path and list of identifiers. */
+ Update = 4,
+
+ /** Do not update the link information. */
+ NoUpdate = 8,
+
+ /** Do not execute the search heuristics. */
+ NoSearch = 16,
+
+ /** Do not use distributed link tracking. */
+ NoTrack = 32,
+
+ /**
+ * Disable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name.
+ * It also uses the UNC path to track remote file systems whose drive letter has changed. Setting this flag disables both types of tracking.
+ */
+ NoLinkInfo = 64,
+
+ /** Call the Windows Installer. */
+ InvokeMSI = 128
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum SettingKey {
+ /**
+ * The state of the **Use check boxes to select items** option. This option is enabled automatically when the system has a pen input device configured.
+ *
+ * _Windows Vista and later_
+ */
+ SSF_AUTOCHECKSELECT = 0x00800000,
+
+ /** Not used. */
+ SSF_DESKTOPHTML = 0x00000200,
+
+ /** The state of the **Allow all uppercase names** option. As of Windows Vista, this folder option is no longer available. */
+ SSF_DONTPRETTYPATH = 0x00000800,
+
+ /** The state of the **Double-click to open an item (single-click to select)** option. */
+ SSF_DOUBLECLICKINWEBVIEW = 0x00000080,
+
+ /** Not used. */
+ SSF_FILTER = 0x00010000,
+
+ /** Not used. */
+ SSF_HIDDENFILEEXTS = 0x00000004,
+
+ /** The state of icon display in the Windows Explorer list view. If this option is active, no icons are displayed in the list view. */
+ SSF_HIDEICONS = 0x00004000,
+
+ /**
+ * The state of display name display in the Windows Explorer list view. If this option is active, icons are displayed in the list view, but display names are not.
+ *
+ * _Windows Vista and later_
+ */
+ SSF_ICONSONLY = 0x01000000,
+
+ /** The state of the **Show map network drive button in toolbar** option. As of Windows Vista, this option is no longer available. */
+ SSF_MAPNETDRVBUTTON = 0x00001000,
+
+ /** The state of the Recycle Bin's **Display delete confirmation dialog** option. */
+ SSF_NOCONFIRMRECYCLE = 0x00008000,
+
+ /** The state of the **Automatically search for network folders and printers** option. As of Windows Vista, this option is no longer available. */
+ SSF_NONETCRAWLING = 0x00100000,
+
+ /** The state of the **Launch folder windows in a separate process** option. */
+ SSF_SEPPROCESS = 0x00080000,
+
+ /** Not used. */
+ SSF_SERVERADMINUI = 0x00000004,
+
+ /** The state of the **Hidden files and folders** option. */
+ SSF_SHOWALLOBJECTS = 0x00000001,
+
+ /** The state of the **Show File Attributes in Detail View** option. As of Windows Vista, this option is no longer available. */
+ SSF_SHOWATTRIBCOL = 0x00000100,
+
+ /** The state of the **Show encrypted or compressed NTFS files in color** option. */
+ SSF_SHOWCOMPCOLOR = 0x00000008,
+
+ /** The state of the **Hide extensions for known file types** option. */
+ SSF_SHOWEXTENSIONS = 0x00000002,
+
+ /** The state of the **Show pop-up description for folder and desktop items** option. */
+ SSF_SHOWINFOTIP = 0x00002000,
+
+ /** Not used. */
+ SSF_SHOWSTARTPAGE = 0x00400000,
+
+ /** The state of the **Hide protected operating system files** option. */
+ SSF_SHOWSUPERHIDDEN = 0x00040000,
+
+ /**
+ * The state of the **Hidden files and folders** option. In Windows Vista and later, this is equivalent to `SSF_SHOWALLOBJECTS`. In versions of Windows before Windows Vista, this value
+ * referred to the state of the **Do not show hidden files and folders** option.
+ */
+ SSF_SHOWSYSFILES = 0x00000020,
+
+ /**
+ * The state of the **Display file icon on thumbnails** option. If this option is active, a file type overlay is applied when a file supplies a thumbnail representation.
+ *
+ * _Windows Vista and later_
+ */
+ SSF_SHOWTYPEOVERLAY = 0x02000000,
+
+ /** Not used. */
+ SSF_SORTCOLUMNS = 0x00000010,
+
+ /** The state of the Windows XP display option, which selects between the Windows XP style and the classic style. As of Windows Vista, this option is no longer available. */
+ SSF_STARTPANELON = 0x00200000,
+
+ /** The state of the **Display as a web view option**. As of Windows Vista, this option is no longer available. */
+ SSF_WEBVIEW = 0x00020000,
+
+ /** The state of the **Classic Style** option. As of Windows Vista, this option is no longer available. */
+ SSF_WIN95CLASSIC = 0x00000400,
+ }
+
+ // tslint:disable-next-line no-const-enum
+ const enum ShellExecuteShow {
+ /** Open the application with a hidden window. */
+ Hidden = 0,
+
+ /** Open the application with a normal window. If the window is minimized or maximized, the system restores it to its original size and position. */
+ Normal = 1,
+
+ /** Open the application with a minimized window. */
+ Minimized = 2,
+
+ /** Open the application with a maximized window. */
+ Maximized = 3,
+
+ /** Open the application with its window at its most recent size and position. The active window remains active. */
+ Last = 4,
+
+ /** Open the application with its window at its current size and position. */
+ Current = 5,
+
+ /** Open the application with a minimized window. The active window remains active. */
+ MinimizedNotActivated = 7,
+
+ /** Open the application with its window in the default state specified by the application. */
+ Application = 10,
+ }
+
+ /** Constants for Special Folders for open/Explore */
+ // tslint:disable-next-line no-const-enum
+ const enum ShellSpecialFolderConstants {
+ ssfALTSTARTUP = 29,
+ ssfAPPDATA = 26,
+ ssfBITBUCKET = 10,
+ ssfCOMMONALTSTARTUP = 30,
+ ssfCOMMONAPPDATA = 35,
+ ssfCOMMONDESKTOPDIR = 25,
+ ssfCOMMONFAVORITES = 31,
+ ssfCOMMONPROGRAMS = 23,
+ ssfCOMMONSTARTMENU = 22,
+ ssfCOMMONSTARTUP = 24,
+ ssfCONTROLS = 3,
+ ssfCOOKIES = 33,
+ ssfDESKTOP = 0,
+ ssfDESKTOPDIRECTORY = 16,
+ ssfDRIVES = 17,
+ ssfFAVORITES = 6,
+ ssfFONTS = 20,
+ ssfHISTORY = 34,
+ ssfINTERNETCACHE = 32,
+ ssfLOCALAPPDATA = 28,
+ ssfMYPICTURES = 39,
+ ssfNETHOOD = 19,
+ ssfNETWORK = 18,
+ ssfPERSONAL = 5,
+ ssfPRINTERS = 4,
+ ssfPRINTHOOD = 27,
+ ssfPROFILE = 40,
+ ssfPROGRAMFILES = 38,
+ ssfPROGRAMFILESx86 = 48,
+ ssfPROGRAMS = 2,
+ ssfRECENT = 8,
+ ssfSENDTO = 9,
+ ssfSTARTMENU = 11,
+ ssfSTARTUP = 7,
+ ssfSYSTEM = 37,
+ ssfSYSTEMx86 = 41,
+ ssfTEMPLATES = 21,
+ ssfWINDOWS = 36,
+ }
+
+ /** FileSearchBand Class */
+ class FileSearchBand {
+ private 'Shell32.FileSearchBand_typekey': FileSearchBand;
+ private constructor();
+
+ /** Retrieve the file from which the search was restored. */
+ readonly QueryFile: any;
+
+ /** Get the search scope */
+ readonly Scope: any;
+
+ /** Retrieve the guid of the currently active search. */
+ readonly SearchID: string;
+
+ /** method SetFocus */
+ SetFocus(): void;
+
+ /** method SetSearchParameters */
+ SetSearchParameters(pbstrSearchID: string, bNavToResults: boolean, pvarScope?: any, pvarQueryFile?: any): void;
+ }
+
+ /** Definition of interface Folder version 3 */
+ class Folder3 {
+ private 'Shell32.Folder3_typekey': Folder3;
+ private constructor();
+
+ /** Get Application object */
+ readonly Application: any;
+
+ /** Copy Items to this folder. */
+ CopyHere(vItem: string | ShellFolderItem | FolderItems3, vOptions?: FileOperationFlag): void;
+
+ /** Call this after the WebView barricade is dismissed by the user */
+ DismissedWebViewBarricade(): void;
+
+ /**
+ * Get the details about an item.
+ * @param vItem The item for which to retrieve the information.
+ * @param iColumn An integer value that specifies the information to be retrieved. The information available for an item depends on the folder in which it is displayed. This value
+ * corresponds to the zero-based column number that is displayed in a Shell view.
+ */
+ GetDetailsOf(vItem: ShellFolderItem, iColumn: number): string;
+
+ /** Should the WebView barricade be shown? */
+ readonly HaveToShowWebViewBarricade: boolean;
+
+ /** The collection of Items in folder */
+ Items(): FolderItems3;
+
+ /** Move Items to this folder. */
+ MoveHere(vItem: string | ShellFolderItem | FolderItems3, vOptions?: FileOperationFlag): void;
+
+ /** Create a new sub folder in this folder. */
+ NewFolder(bName: string): void;
+
+ /** Offline status of the server? */
+ readonly OfflineStatus: OfflineFolderStatus;
+
+ /** Get Parent object */
+ readonly ParentFolder: Folder3;
+
+ /** Parse the name to get an item. */
+ ParseName(bName: string): ShellFolderItem | null;
+
+ /** Folder's FolderItem interface */
+ readonly Self: ShellFolderItem;
+
+ /** Ask if the WebView barricade should be shown or not */
+ ShowWebViewBarricade: boolean;
+
+ /** Synchronize all offline files */
+ Synchronize(): void;
+
+ /** Get the display name for the window */
+ readonly Title: string;
+ }
+
+ /** Definition of interface FolderItems3 */
+ class FolderItems3 {
+ private 'Shell32.FolderItems3_typekey': FolderItems3;
+ private constructor();
+
+ /** Get Application object */
+ readonly Application: any;
+
+ /** Get count of items in the folder */
+ readonly Count: number;
+
+ /** Set a wildcard filter to apply to the items returned */
+ Filter(grfFlags: ShellFolderEnumerationFlags, bstrFileSpec: string): void;
+
+ /**
+ * Executes a verb on a collection of `FolderItem` objects
+ * @param vVerb String that corresponds to the command to be executed. If no verb is specified, the default verb is executed.
+ * @param vArgs String with one or more arguments to the command specified by vVerb. The format of this string depends on the particular verb.
+ */
+ InvokeVerbEx(vVerb?: string, vArgs?: string): void;
+
+ /** Return the figure for the given index */
+ Item(index?: any): ShellFolderItem;
+
+ /** Get the list of verbs common to all the items */
+ readonly Verbs: FolderItemVerbs;
+ }
+
+ /** Definition of interface FolderItemVerb */
+ class FolderItemVerb {
+ private 'Shell32.FolderItemVerb_typekey': FolderItemVerb;
+ private constructor();
+
+ /** Execute the verb */
+ DoIt(): void;
+
+ /** Get display name for item */
+ readonly Name: string;
+ }
+
+ /** Definition of interface FolderItemVerbs */
+ class FolderItemVerbs {
+ private 'Shell32.FolderItemVerbs_typekey': FolderItemVerbs;
+ private constructor();
+
+ /** Get count of open folder windows */
+ readonly Count: number;
+
+ /** Return the specified verb */
+ Item(index?: any): FolderItemVerb;
+ }
+
+ /** Shell Object Type Information */
+ class Shell {
+ private 'Shell32.Shell_typekey': Shell;
+ private constructor();
+
+ /** Add an object to the Recent Docuements */
+ AddToRecent(varFile: string | null, bstrCategory?: string): void;
+
+ /** Get Application object */
+ readonly Application: any;
+
+ /** Browse the name space for a Folder */
+ BrowseForFolder(Hwnd: number, Title: string, Options: number | BrowseInfoFlags, RootFolder?: string | ShellSpecialFolderConstants): Folder3;
+
+ /** Determine if the current user can start/stop the named service. */
+ CanStartStopService(ServiceName: string): boolean;
+
+ /** Cascade Windows */
+ CascadeWindows(): void;
+
+ /*
+ * Runs the specified Control Panel (*.cpl) application. If the application is already open, it will activate the running instance.
+ *
+ * **Note** As of Windows Vista, most Control Panel applications are Shell items and cannot be opened with this function. To open those Control Panel applications, pass the canonical name to
+ * `control.exe`. For example:
+ *
+ * `control.exe /name Microsoft.Personalization`
+ */
+ ControlPanelItem(bstrDir: string): void;
+
+ /** Eject the pc */
+ EjectPC(): void;
+
+ /** Explore a folder */
+ Explore(vDir: string | ShellSpecialFolderConstants): void;
+
+ /**
+ * Return explorer policy value
+ *
+ * The specified value name must be within the **HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer** subkey.
+ * If the value name does not exist then the method returns null.
+ */
+ ExplorerPolicy(bstrPolicyName: string): any;
+
+ /** Bring up the file run dialog box */
+ FileRun(): void;
+
+ /** Find a computer */
+ FindComputer(): void;
+
+ /** Find Files */
+ FindFiles(): void;
+
+ /** Find a Printer in the Directory Service */
+ FindPrinter(Name?: string, location?: string, model?: string): void;
+
+ /** Return shell global setting */
+ GetSetting(lSetting: number | SettingKey): boolean;
+
+ /**
+ * `DirectoryServiceAvailable` -- Returns **true** if the directory service is available
+ *
+ * `IsOS_DomainMember` -- Returns **true** if the computer is a member of a domain (_Windows XP and later_)
+ *
+ * `IsOS_Personal` -- Returns **true** if the operating system is Windows XP Home Edition (_Windows XP only_)
+ *
+ * `IsOS_Professional` -- Returns **true** if the operating system is Windows XP Professional Edition (_Windows XP only_)
+ */
+ GetSystemInformation(Name: 'DirectoryServiceAvailable' | 'IsOS_DomainMember' | 'IsOS_Personal' | 'IsOS_Professional'): boolean;
+
+ /**
+ * `DoubleClickTime` -- The double-click time, in milliseconds
+ *
+ * `PhysicalMemoryInstalled` -- The amount of physical memory installed, in bytes
+ *
+ * `ProcessorArchitecture` -- The processor architecture. For details, see the discussion of the **wProcessorArchitecture** member of the
+ * [`SYSTEM_INFO`](https://msdn.microsoft.com/en-us/library/windows/desktop/ms724958.aspx) structure
+ *
+ * `ProcessorLevel` -- The processor level. Returns 3, 4, or 5, for x386, x486, and Pentium-level processors, respectively (_Windows Vista and later_)
+ *
+ * `ProcessorSpeed` -- The processor speed, in megahertz (MHz)
+ */
+ GetSystemInformation(Name: 'DoubleClickTime' | 'PhysicalMemoryInstalled' | 'ProcessorArchitecture' | 'ProcessorLevel' | 'ProcessorSpeed'): number;
+
+ /** Display shell help */
+ Help(): void;
+
+ /** get restriction settings */
+ IsRestricted(Group: string, Restriction: string): number;
+
+ /** Determine if a service is running by name. */
+ IsServiceRunning(ServiceName: string): any;
+
+ /** Minimize all windows */
+ MinimizeAll(): void;
+
+ /** Get special folder from ShellSpecialFolderConstants */
+ NameSpace(vDir: string | ShellSpecialFolderConstants): Folder3 | null;
+
+ /** Open a folder */
+ Open(vDir: string | ShellSpecialFolderConstants): void;
+
+ /** Get Parent object */
+ readonly Parent: any;
+
+ /** Refresh the menu */
+ RefreshMenu(): void;
+
+ /** Immersive Search */
+ SearchCommand(): void;
+
+ /**
+ * Start a service by name, and optionally set it to autostart.
+ *
+ * The method returns `false` if the service has already been started. Before calling this method, you can call
+ * [Shell.IsServiceRunning](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537742.aspx) to ascertain the status of the service.
+ */
+ ServiceStart(ServiceName: string, Persistent?: boolean): boolean;
+
+ /**
+ * Stop a service by name, and optionally disable autostart.
+ *
+ * The method returns `false` if the service has already been stopped. Before calling this method, you can call
+ * [Shell.IsServiceRunning](https://msdn.microsoft.com/en-us/library/windows/desktop/gg537742.aspx) to ascertain the status of the service.
+ */
+ ServiceStop(ServiceName: string, Persistent?: boolean): boolean;
+
+ /** Displays the **Date and Time Properties** dialog box. */
+ SetTime(): void;
+
+ /**
+ * Execute generic command
+ * @param sFile A string that contains the name of the file on which `ShellExecute` will perform the action specified by `vOperation`.
+ * @param [vArgs] A string that contains parameter values for the operation.
+ * @param [vDir] The fully qualified path of the directory that contains the file specified by `sFile`. If this parameter is not specified, the current working directory is used.
+ * @param [vOperation] The operation to be performed. This value is set to one of the verb strings that is supported by the file. If this parameter is not specified, the default operation is
+ * performed.
+ * @param [vShow] A recommendation as to how the application window should be displayed initially. The application can ignore this recommendation.
+ */
+ ShellExecute(File: string, vArgs?: string, vDir?: string, vOperation?: string, vShow?: ShellExecuteShow): void;
+
+ /** Show/Hide browser bar. */
+ ShowBrowserBar(bstrClsid: ExplorerBarCLSID, bShow: boolean): any;
+
+ /** Exit Windows */
+ ShutdownWindows(): void;
+
+ /** Tile windows horizontally */
+ TileHorizontally(): void;
+
+ /** Tile windows vertically */
+ TileVertically(): void;
+
+ /** Raise/lower the desktop */
+ ToggleDesktop(): void;
+
+ /** Displays the **Taskbar and Start Menu Properties** dialog box. */
+ TrayProperties(): void;
+
+ /** Undo Minimize All */
+ UndoMinimizeALL(): void;
+
+ /** The collection of open folder windows */
+ Windows(): ShellWindows;
+
+ /** Displays the **Windows Security** dialog box. */
+ WindowsSecurity(): void;
+
+ /** Displays your open windows in a 3D stack that you can flip through. */
+ WindowSwitcher(): void;
+ }
+
+ /** ShellDispatch Load in Shell Context */
+ class ShellDispatchInproc {
+ private 'Shell32.ShellDispatchInproc_typekey': ShellDispatchInproc;
+ private constructor();
+ }
+
+ /** Shell Folder Item */
+ class ShellFolderItem {
+ private 'Shell32.ShellFolderItem_typekey': ShellFolderItem;
+ private constructor();
+
+ /** Get Application object */
+ readonly Application: any;
+
+ /** Access an extended property */
+ ExtendedProperty(bstrPropName: string): any;
+
+ /** If item is a folder return folder object */
+ readonly GetFolder: Folder3 | null;
+
+ /** If item is link return link object */
+ readonly GetLink: ShellLinkObject | null;
+
+ /**
+ * Execute a command on the item.
+ * Must be one of the values returned by the item's `FolderItemVerb.Name` property.
+ * If no verb is specified, the default verb will be invoked.
+ */
+ InvokeVerb(vVerb?: string): void;
+
+ /**
+ * Extended version of InvokeVerb
+ * @param vVerb String that corresponds to the command to be executed. If no verb is specified, the default verb is executed.
+ * @param vArgs String with one or more arguments to the command specified by vVerb. The format of this string depends on the particular verb.
+ */
+ InvokeVerbEx(vVerb?: string, vArgs?: string): void;
+
+ /** Indicates if the item can be hosted inside a browser or Windows Explorer frame. */
+ readonly IsBrowsable: boolean;
+
+ /** Is the item a file system object? */
+ readonly IsFileSystem: boolean;
+
+ /** Is the item a Folder? */
+ readonly IsFolder: boolean;
+
+ /** Is the item a link? */
+ readonly IsLink: boolean;
+
+ /** Modification Date? */
+ ModifyDate: VarDate;
+
+ /** Get display name for item */
+ Name: string;
+
+ /** Get Parent object */
+ readonly Parent: any;
+
+ /** Get the pathname to the item */
+ readonly Path: string;
+
+ /** Size */
+ readonly Size: number;
+
+ /** Contains a string representation of the item's type */
+ readonly Type: string;
+
+ /** Get the list of verbs for the object */
+ Verbs(): FolderItemVerbs;
+ }
+
+ /** Shell Folder View Object */
+ class ShellFolderView {
+ private 'Shell32.ShellFolderView_typekey': ShellFolderView;
+ private constructor();
+
+ /** Get Application object */
+ readonly Application: any;
+
+ /** Get Current View Mode */
+ CurrentViewMode: number;
+
+ /** Filter View */
+ FilterView(bstrFilterText: string): void;
+
+ /** The currently focused item in the folder */
+ readonly FocusedItem: ShellFolderItem;
+
+ /** Get the folder being viewed */
+ readonly Folder: Folder3;
+
+ /** Get Folder Flags */
+ FolderFlags: number;
+
+ /** Get Group By Column */
+ GroupBy: string;
+
+ /** Set Icon Size */
+ IconSize: number;
+
+ /** Show items menu and return command selected */
+ PopupItemMenu(pfi: ShellFolderItem, vx?: any, vy?: any): string;
+
+ /** The collection of Selected Items in folder */
+ SelectedItems(): FolderItems3;
+
+ /** Select the item */
+ SelectItem(pvfi: ShellFolderItem, dwFlags: ShellFolderViewSelectItem): void;
+
+ /** Select Item relative to the Current Item */
+ SelectItemRelative(iRelative: number): void;
+
+ /** Get Sorting Columns */
+ SortColumns: string;
+
+ /** Returns the view options for showing a folder. */
+ readonly ViewOptions: ShellFolderViewOptions;
+ }
+
+ /**
+ * The **ShellFolderView** object fires two events, **EnumDone** and **SelectionChanged**, that are typically handled by applications. However, some applications
+ * must handle events from a series of **ShellFolderView** objects. For example, an application might host a **WebBrowser** control that allows users to navigate through
+ * a series of folders. Each folder has its own **ShellFolderView** object with its associated events. Handling these events can be difficult.
+ *
+ * The **ShellFolderViewOC** object simplifies event handling for such scenarios. It allows applications to handle events for all ShellFolderView objects with a single
+ * pair of **ShellFolderViewOC** event handlers. Each time the user navigates to a new folder, the application passes the associated **ShellFolderView** object to the
+ * **ShellFolderViewOC** object by calling **SetFolderView**. Then, when an **EnumDone** or **SelectionChanged** event is fired, the **ShellFolderViewOC** object
+ * forwards the event to its own handler for processing.
+ */
+ class ShellFolderViewOC {
+ private 'Shell32.ShellFolderViewOC_typekey': ShellFolderViewOC;
+ private constructor();
+
+ /** Set the ShellFolderView object to monitor events of. */
+ SetFolderView(pdisp: ShellFolderView): void;
+ }
+
+ /** Shell Link object */
+ class ShellLinkObject {
+ private 'Shell32.ShellLinkObject_typekey': ShellLinkObject;
+ private constructor();
+
+ /** Arguments for the link */
+ Arguments: string;
+
+ /** Description of the link */
+ Description: string;
+
+ /** Get the IconLocation for the link */
+ GetIconLocation(pbs: string): number;
+
+ /** Hotkey for the link */
+ Hotkey: number;
+
+ /** Fully qualified path of the link */
+ Path: string;
+
+ /** Tell the link to resolve itself */
+ Resolve(fFlags: ShellLinkResolveFlags): void;
+
+ /**
+ * Tell the link to save the changes
+ * @param sFile The fully qualified path of the file where the new link information is to be saved. If no file is specified, the current file is used.
+ */
+ Save(vWhere?: string): void;
+
+ /**
+ * Set the IconLocation for the link
+ * @param sPath The fully qualified path of the file that contains the icon.
+ * @param iIcon The index of the icon in the file specified by _sPath_.
+ */
+ SetIconLocation(sPath: string, iIcon: number): void;
+
+ /** Get the Show Command for the link */
+ ShowCommand: LinkShowWindowState;
+
+ /** Get the target of a link object */
+ readonly Target: ShellFolderItem | null;
+
+ /** Get the working directory for the link */
+ WorkingDirectory: string;
+ }
+
+ class ShellWindows {
+ private 'Shell32.ShellWindows_typekey': ShellWindows;
+ private constructor();
+
+ /**
+ * Retrieves an InternetExplorer object that represents the Shell window.
+ * @param index Default is 0
+ */
+ Item(index?: number): SHDocVw.InternetExplorer;
+
+ /** Contains the number of items in the collection. */
+ readonly Count: number;
+ }
+}
+
+interface ActiveXObject {
+ on(
+ obj: Shell32.ShellFolderView, event: 'BeginDrag' | 'DefaultVerbInvoked' | 'EnumDone' | 'SelectionChanged' | 'VerbInvoked', handler: (
+ this: Shell32.ShellFolderView, parameter: {}) => void): void;
+ on(
+ obj: Shell32.ShellFolderViewOC, event: 'BeginDrag' | 'DefaultVerbInvoked' | 'EnumDone' | 'SelectionChanged' | 'VerbInvoked',
+ handler: (this: Shell32.ShellFolderViewOC, parameter: {}) => void): void;
+ new (progid: K): ActiveXObjectNameMap[K];
+}
+
+interface ActiveXObjectNameMap {
+ 'Shell.Application': Shell32.Shell;
+ 'Shell.FolderView': Shell32.ShellFolderViewOC;
+}
+
+interface EnumeratorConstructor {
+ new(col: Shell32.FolderItems3): Enumerator;
+ new(col: Shell32.FolderItemVerbs): Enumerator;
+ new(col: Shell32.ShellWindows): Enumerator;
+}
diff --git a/types/activex-shell/package.json b/types/activex-shell/package.json
new file mode 100644
index 0000000000..d9b1031263
--- /dev/null
+++ b/types/activex-shell/package.json
@@ -0,0 +1,6 @@
+{
+ "private": true,
+ "dependencies": {
+ "activex-helpers": "*"
+ }
+}
\ No newline at end of file
diff --git a/types/activex-shell/tsconfig.json b/types/activex-shell/tsconfig.json
new file mode 100644
index 0000000000..f4b549f649
--- /dev/null
+++ b/types/activex-shell/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es5",
+ "scripthost"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../",
+ "typeRoots": [
+ "../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true
+ },
+ "files": [
+ "index.d.ts",
+ "activex-shell-tests.ts"
+ ]
+}
\ No newline at end of file
diff --git a/types/activex-shell/tslint.json b/types/activex-shell/tslint.json
new file mode 100644
index 0000000000..e60c15844f
--- /dev/null
+++ b/types/activex-shell/tslint.json
@@ -0,0 +1,3 @@
+{
+ "extends": "dtslint/dt.json"
+}
\ No newline at end of file
diff --git a/types/activex-stdole/tslint.json b/types/activex-stdole/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-stdole/tslint.json
+++ b/types/activex-stdole/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-vbide/tslint.json b/types/activex-vbide/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-vbide/tslint.json
+++ b/types/activex-vbide/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/activex-wia/activex-wia-tests.ts b/types/activex-wia/activex-wia-tests.ts
index d8046ef319..c33385af14 100644
--- a/types/activex-wia/activex-wia-tests.ts
+++ b/types/activex-wia/activex-wia-tests.ts
@@ -1,79 +1,505 @@
+// Note -- running these tests under cscript requires some ES5 polyfills
+
+const collectionToArray = (col: { Item(key: any): T }): T[] => {
+ const results: T[] = [];
+ const enumerator = new Enumerator(col);
+ enumerator.moveFirst();
+ while (!enumerator.atEnd()) {
+ results.push(enumerator.item());
+ enumerator.moveNext();
+ }
+ return results;
+};
+
// source -- https://msdn.microsoft.com/en-us/library/windows/desktop/ms630826(v=vs.85).aspx
+{
+ const cd = new ActiveXObject('WIA.CommonDialog');
+ const dm = new ActiveXObject('WIA.DeviceManager');
-// Convert a file
-let commonDialog = new ActiveXObject('WIA.CommonDialog');
-let img = commonDialog.ShowAcquireImage();
+ // Download new items as they are created
+ {
+ dm.RegisterEvent(WIA.EventID.wiaEventItemCreated, WIA.Miscellaneous.wiaAnyDeviceID);
+ ActiveXObject.on(dm, 'OnEvent', ['EventID', 'DeviceID', 'ItemID'], x => {
+ const dev = dm.DeviceInfos(x.DeviceID).Connect();
+ const itm = dev.GetItem(x.ItemID);
+ const img = cd.ShowTransfer(itm);
+ const v = img.FileData;
+ // Picture type not available in Javascript
+ });
+ }
-// when DefinitelyTyped supports Typescript 2.4 -- end of July 2017, replace these:
-let jpegFormatID = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}';
-if (img.FormatID !== jpegFormatID) {
- const ip = new ActiveXObject('WIA.ImageProcess');
- ip.Filters.Add(ip.FilterInfos.Item('Convert').FilterID);
- ip.Filters.Item(1).Properties.Item('FormatID').Value = jpegFormatID;
- img = ip.Apply(img);
-}
-// with this:
-/*if (img.FormatID !== WIA.FormatID.wiaFormatJPEG) {
- let ip = new ActiveXObject('WIA.ImageProcess');
- ip.Filters.Add(ip.FilterInfos.Item('Convert').FilterID);
- ip.Filters.Item(1).Properties.Item('FormatID').Value = WIA.FormatID.wiaFormatJPEG;
- img = ip.Apply(img);
-}*/
-
-// Take a picture
-let dev = commonDialog.ShowSelectDevice();
-if (dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
- // when DefinitelyTyped supports Typescript 2.4 -- end of July 2017, replace these:
- const commandID = '{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}';
- const itm = dev.ExecuteCommand(commandID);
-
- // with this:
- // let itm = dev.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
-}
-
-// Display detailed property information
-dev = commonDialog.ShowSelectDevice();
-let e = new Enumerator(dev.Properties); // no foreach over ActiveX collections
-e.moveFirst();
-while (!e.atEnd()) {
- const p = e.item();
- let s = `${p.Name} (${p.PropertyID}) = `;
- if (p.IsVector) {
- s += '[vector of data]';
- } else {
- s += p.Value;
- if (p.SubType !== WIA.WiaSubType.UnspecifiedSubType) {
- if (p.Value !== p.SubTypeDefault) {
- s += ` (Default = ${p.SubTypeDefault})`;
- }
+ // Convert a file
+ {
+ let img = cd.ShowAcquireImage();
+ if (img && img.FormatID !== WIA.FormatID.wiaFormatJPEG) {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+ ip.Filters.Add(ip.FilterInfos('Convert').FilterID);
+ ip.Filters(1).Properties('FormatID').Value = WIA.FormatID.wiaFormatJPEG;
+ img = ip.Apply(img);
}
}
- if (p.IsReadOnly) {
- s += ' [READ ONLY]';
- } else {
- switch (p.SubType) {
- case WIA.WiaSubType.FlagSubType:
- case WIA.WiaSubType.ListSubType:
- if (p.SubType === WIA.WiaSubType.FlagSubType) {
- s += ' [valid flags include: ';
+ // Take a picture
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
+ const item = dev.ExecuteCommand(WIA.CommandID.wiaCommandTakePicture);
+ }
+ }
+
+ // Display detailed property information
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Properties).forEach(p => {
+ let s = `${p.Name} (${p.PropertyID}) = `;
+ if (p.IsVector) {
+ s += '[vector of data]';
} else {
- s += ' [valid values include: ';
- }
- const count = p.SubTypeValues.Count;
- for (let i = 1; i <= count; i++) {
- s += p.SubTypeValues.Item(i);
- if (i < count) {
- s += ', ';
+ s += p.Value;
+ if (p.SubType !== WIA.WiaSubType.UnspecifiedSubType
+ && p.Value !== p.SubTypeDefault) {
+ s += ` (Default = ${p.SubTypeDefault})`;
}
}
- s += ']';
- break;
- case WIA.WiaSubType.RangeSubType:
- s += ` [valid values in the range from ${p.SubTypeMin} to ${p.SubTypeMax} in increments of ${p.SubTypeStep}]`;
- break;
+
+ if (p.IsReadOnly) {
+ s += ' [READ ONLY]';
+ } else {
+ switch (p.SubType) {
+ case WIA.WiaSubType.FlagSubType:
+ case WIA.WiaSubType.ListSubType:
+ const count = p.SubTypeValues.Count;
+ const items: string[] = [];
+ for (let i = 1; i <= count; i++) {
+ items.push(p.SubTypeValues(i));
+ }
+ const descr = p.SubType === WIA.WiaSubType.FlagSubType ? 'flags' : 'values';
+ s += ` [valid ${descr} include: ${items.join(',')}]`;
+ break;
+ case WIA.WiaSubType.RangeSubType:
+ s += ` [valid values in the range from ${p.SubTypeMin} to ${p.SubTypeMax} in increments of ${p.SubTypeStep}]`;
+ break;
+ }
+ }
+
+ WScript.Echo(s);
+ });
}
}
- WScript.Echo(s);
+ // Determine whether the selected device is a camera
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && dev.Type === WIA.WiaDeviceType.CameraDeviceType) {
+ WScript.Echo('Selectd device is a camera');
+ }
+ }
+
+ // Count root - level images for transfer
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const count = collectionToArray(dev.Items).filter(f => {
+ const imageFlag = WIA.WiaItemFlag.ImageItemFlag;
+ return (f.Properties('Item Flags').Value & imageFlag) === imageFlag;
+ }).length;
+ WScript.Echo(`Selected device has ${count} top-level images`);
+ }
+ }
+
+ // Display all imagefile properties
+ {
+ const img = cd.ShowAcquireImage();
+ if (img) {
+ collectionToArray(img.Properties).forEach(p => {
+ let contents = '';
+ if (p.IsVector) {
+ contents = '[vector data not emitted]';
+ } else if (p.Type === WIA.WiaImagePropertyType.RationalImagePropertyType) {
+ contents = `${p.Value.Nunerator}/${p.Value.Denominator}`;
+ } else if (p.Type === WIA.WiaImagePropertyType.StringImagePropertyType) {
+ contents = `"${p.Value}"`;
+ } else {
+ contents = p.Value;
+ }
+ WScript.Echo(`${p.Name} (${p.PropertyID}) = ${contents}`);
+ });
+ }
+ }
+
+ // Determine the event type
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const actionEvent = WIA.WiaEventFlag.ActionEvent;
+ collectionToArray(dev.Events).forEach(e => {
+ const msg = (e.Type & actionEvent) === actionEvent ?
+ `${e.Name} is an Action event` :
+ `${e.Name} is not an Action event`;
+ WScript.Echo(msg);
+ });
+ }
+ }
+
+ // Set rational numerator and denominator
+ {
+ const r = new ActiveXObject('WIA.Rational');
+ r.Numerator = 1;
+ r.Denominator = 3;
+ WScript.Echo(`1/3 = ${r.Value}`);
+ r.Numerator = 2;
+ r.Denominator = 6;
+ WScript.Echo(`2/6 = ${r.Value}`);
+ }
+
+ // Create and initialize a vector object
+ {
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ v.SetFromString('This is a test', true, false);
+
+ // when iterated using Enumerator / collectionToArray, each item comes back as an Automation Byte
+ // https://stackoverflow.com/questions/48757982/wia-vector-returns-something-which-is-not-a-number
+ // so the following falls, because fromCharCode is expecting a number
+ // collectionToArray(v).forEach(item => WScript.Echo(String.fromCharCode(item)));
+
+ // Instead, use the Vector's Item method, or the Vector's default property:
+ for (let i = 1; i <= v.Count; i++) {
+ WScript.Echo(String.fromCharCode(v(i)));
+ }
+ }
+
+ // Display detailed image information
+ {
+ const img = new ActiveXObject('WIA.ImageFile');
+ img.LoadFile('c:\\windows\\web\\Screen\\img102.jpg');
+
+ let s = `
+Width = ${img.Width}
+Height = ${img.Height}
+Depth = ${img.PixelDepth}
+Horizontal resolution = ${img.HorizontalResolution}
+Vertical resolution = ${img.VerticalResolution}
+Frame count = ${img.FrameCount}}
+ `.trim();
+
+ let arr: string[] = [];
+
+ if (img.IsIndexedPixelFormat) { arr.push('Pixel data contains palette indexes'); }
+ if (img.IsAlphaPixelFormat) { arr.push('Pixel data has alpha information'); }
+ if (img.IsExtendedPixelFormat) { arr.push('Pixel data has extended color information (16 bit/channel)'); }
+ if (img.IsAnimated) { arr.push('Image is animated'); }
+
+ const propertyTests = [40091, 40092, 40093, 40094, 40095]
+ .filter(n => img.Properties.Exists(n))
+ .map(n => {
+ const prp = img.Properties(n);
+ return `${prp.Name} = ${prp.Value.String}`;
+ });
+ arr = arr.concat(propertyTests);
+
+ if (arr.length) {
+ s += '\n' + arr.join('\n');
+ }
+
+ WScript.Echo(s);
+ }
+
+ // Create an imageprocess object and enumerate filters
+ {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+ collectionToArray(ip.FilterInfos).forEach(fi => {
+ const s = [
+ fi.Name,
+ new Array(51).join('='),
+ fi.Description
+ ].join('\n');
+ WScript.Echo(s);
+ });
+ }
+
+ // Create an imageprocess object and create one of each available filter
+ {
+ const ip = new ActiveXObject('WIA.ImageProcess');
+
+ const stringValue = (v: any) => {
+ if (typeof v === 'string') { return `"${v}"`; }
+ return v;
+ };
+
+ const listValues = (v: any) => collectionToArray(v).join(', ');
+
+ const listProperties = (filter: WIA.Filter) => {
+ let s = [
+ `${filter.Name} (${filter.FilterID})`,
+ new Array(51).join('='),
+ filter.Description,
+ new Array(51).join('=')
+ ].map(line => line + '\n').join('');
+
+ s += collectionToArray(filter.Properties).map(p => {
+ let contents: string;
+
+ switch (typeof p.Value) {
+ // these case clauses replace the IsObject function in VB6/VBScript
+ case 'boolean':
+ case 'string':
+ case 'number':
+ contents = stringValue(p.Value);
+ default:
+ switch (p.SubType) {
+ case WIA.WiaSubType.FlagSubType:
+ contents = ` // [valid values formed by using the OR operator with the following bit flags: ${listValues(p.SubTypeValues)}]`;
+ break;
+ case WIA.WiaSubType.ListSubType:
+ contents = ` // [valid values from the following list: ${listValues(p.SubTypeValues)}]`;
+ break;
+ case WIA.WiaSubType.RangeSubType:
+ contents = ` // [valid values between ${p.SubTypeMin} and ${p.SubTypeMax}, with a step of ${p.SubTypeStep}]`;
+ break;
+ default:
+ contents = '';
+ break;
+ }
+ }
+
+ return `ip.Filters(1).Properties("${p.Name}") = ${contents}`;
+ }).join('\n');
+
+ WScript.Echo(s);
+ };
+
+ collectionToArray(ip.FilterInfos).forEach(fi => {
+ ip.Filters.Add(fi.FilterID);
+ listProperties(ip.Filters(1));
+ ip.Filters.Remove(1);
+ });
+ }
+
+ // List the supported transfer formats
+ {
+ const stringFormat = (fld: string) => {
+ switch (fld) {
+ case WIA.FormatID.wiaFormatBMP: return 'BMP';
+ case WIA.FormatID.wiaFormatPNG: return 'PNG';
+ case WIA.FormatID.wiaFormatGIF: return 'GIF';
+ case WIA.FormatID.wiaFormatJPEG: return 'JPEG';
+ case WIA.FormatID.wiaFormatTIFF: return 'TIFF';
+ default: return 'Unknown';
+ }
+ };
+
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ WScript.Echo(collectionToArray(items(1).Formats).map(stringFormat).join(', '));
+ }
+ }
+
+ // Enumerate supported commands in commands collection
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev && collectionToArray(dev.Commands).some(dc => dc.CommandID === WIA.CommandID.wiaCommandTakePicture)) {
+ WScript.Echo('Selected device supports the TakePicture command');
+ }
+ }
+
+ // Enumerate root - level items and display their names
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Items).forEach(item => {
+ let s: string = item.Properties("Item Name").Value;
+ if (item.Properties.Exists("Item Time Stamp")) {
+ const v: WIA.Vector = item.Properties("Item Time Stamp").Value;
+ if (v.Count === 8) { s += ` (${v.Date})`; }
+ }
+ WScript.Echo(s);
+ });
+ }
+ }
+
+ // Determine the number of items returned by ShowSelectItems
+ {
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ WScript.Echo(`You selected ${items.Count} items`);
+ }
+ }
+
+ // Enumerate all the supported events for the selected device
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ const msg = collectionToArray(dev.Events)
+ .map(e => `\n${e.Name} (${e.EventID}): ${e.Description}`)
+ .join('');
+ WScript.Echo('The selected device supports the following events: ' + msg);
+ }
+ }
+
+ // List all available devices by name and deviceid
+ collectionToArray(dm.DeviceInfos).forEach(di => {
+ const name: string = di.Properties("Name").Value;
+ WScript.Echo(`${name} (${di.DeviceID})`);
+ });
+
+ // Display all the properties for the selected device
+ {
+ const dev = cd.ShowSelectDevice();
+ if (dev) {
+ collectionToArray(dev.Properties).forEach(p => {
+ const name = `${p.Name} (${p.PropertyID})`;
+ let contents: string;
+ if (p.IsVector) {
+ contents = '[vector of data]';
+ } else if (p.Type === WIA.WiaPropertyType.StringPropertyType) {
+ contents = `"${p.Value}"`;
+ } else {
+ contents = p.Value;
+ }
+ WScript.Echo(`${name} = ${contents}`);
+ });
+ }
+ }
+
+ // Enumerate the supported commands
+ {
+ const dev = cd.ShowSelectDevice();
+ const items = dev && cd.ShowSelectItems(dev, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ if (items) {
+ const msg = collectionToArray(items(1).Commands)
+ .map(c => `${c.Name}: ${c.Description}\n`)
+ .join('');
+ WScript.Echo(`The selected item supports the following commands:\n${msg}`);
+ }
+ }
+
+ // Create an imagefile object that contains a blank page
+ {
+ // This fails with the error: `The Vector's Type is not compatible with this operation`
+ /*const c = 0xFF0000FF;
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ for (let i = 0; i < 4; i++) {
+ v.Add(c);
+ }
+ const img = v.ImageFile(2, 2);
+ img.SaveFile('C:\\test.' + img.FileExtension);*/
+ }
+
+ interface WshArgumentsBase {
+ Item(index: TKey): string;
+ (index: TKey): string;
+ length: number;
+ Count(): number;
+ }
+
+ interface WshArguments extends WshArgumentsBase { // not sure if WshArguments takes a string as well, or only a number
+ Named: WshArgumentsBase;
+ Unnamed: WshArgumentsBase;
+ ShowUsage(): void;
+ }
+
+ // Implement a windows script host script that runs automatically
+ {
+ const args = collectionToArray(WScript.Arguments as WshArguments)
+ .map(arg => arg.toLowerCase());
+
+ switch (args.length) {
+ case 1:
+ case 2:
+ const command = `${WScript.FullName} "${WScript.ScriptFullName}" connect`;
+ const name = 'QuickTransfer';
+ const title = 'Quick Scripting Transfer';
+ const icon = `${WScript.FullName}, 0`;
+ const eventID = WIA.EventID.wiaEventDeviceConnected;
+ const deviceID = args.length === 2 ? args[1] : WIA.Miscellaneous.wiaAnyDeviceID;
+
+ if (args[0] === 'register') {
+ WScript.Echo('Registering event handler');
+ dm.RegisterPersistentEvent(command, name, title, icon, eventID, deviceID);
+ WScript.Quit();
+ } else if (args[0] === 'unregister') {
+ WScript.Echo('Unregistering event handler');
+ dm.UnregisterPersistentEvent(command, name, title, icon, eventID, deviceID);
+ WScript.Quit();
+ }
+ break;
+ case 3:
+ if (args[0] === 'connect') {
+ const deviceID = args[1].substr(12);
+ const device = dm.DeviceInfos(deviceID).Connect();
+ collectionToArray(device.Items).forEach(item => {
+ const img = item.Transfer();
+ img.SaveFile(`C:\\${item.Properties('Item Name').Value}.${img.FileExtension}`);
+
+ // Uncomment the following lines to remove the picture from the camera after transfer
+ for (let i = 1; i < device.Items.Count; i++) {
+ const item2 = device.Items(i);
+ if (item2.ItemID !== item.ItemID) { continue; }
+ try {
+ // some cameras don't support deleting a picture
+ device.Items.Remove(i);
+ } catch (error) {
+ WScript.Echo(error);
+ }
+ }
+ });
+ WScript.Quit();
+ }
+ break;
+ }
+
+ const usage = `
+Usage:
+
+To register, type:
+
+ ${WScript.ScriptName} register []
+
+To unregister, type:
+
+ ${WScript.ScriptName} unregister []
+
+Available device ids:
+${collectionToArray(dm.DeviceInfos)
+ .map(device => `${device.DeviceID} '${device.Properties("Name").Value}'`)
+ .join('\n')}
+ `.trim();
+
+ WScript.Echo(usage);
+ }
+
+ // Count the number of child items available for transfer
+ {
+ const device = cd.ShowSelectDevice();
+ const items = device && cd.ShowSelectItems(device, WIA.WiaImageIntent.UnspecifiedIntent, WIA.WiaImageBias.MaximizeQuality, true);
+ const item = items && items(1);
+ if (item) {
+ const count = collectionToArray(item.Items).filter(childItem => {
+ const flags = childItem.Properties('Item Flags').Value as number;
+ return (flags & WIA.WiaItemFlag.TransferItemFlag) === WIA.WiaItemFlag.TransferItemFlag;
+ }).length;
+ WScript.Echo(`Selected device has ${count} child items that can be transferred.`);
+ }
+ }
+
+ // Use a vector object
+ {
+ const v: WIA.Vector = new ActiveXObject('WIA.Vector');
+ v.Add(1);
+ v.Add(42);
+ v.Add(3);
+ v.Remove(1);
+ v.Remove(2);
+ WScript.Echo(`v(1) = ${v(1)}`);
+ v.Clear();
+ v.Add('This');
+ v.Add('is');
+ v.Add('Cool');
+ v.Remove(1);
+ v.Remove(2);
+ WScript.Echo(`v(1) = ${v(1)}`);
+ }
}
diff --git a/types/activex-wia/index.d.ts b/types/activex-wia/index.d.ts
index 7d7cbae727..18e474e09c 100644
--- a/types/activex-wia/index.d.ts
+++ b/types/activex-wia/index.d.ts
@@ -2,22 +2,20 @@
// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/ms630368(v=vs.85).aspx
// Definitions by: Zev Spitz
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
-// Typescript Version: 2.4
+// TypeScript Version: 2.6
declare namespace WIA {
/** String versions of globally unique identifiers (GUIDs) that identify common Device and Item commands. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum CommandID {
+ const enum CommandID {
wiaCommandChangeDocument = '{04E725B0-ACAE-11D2-A093-00C04F72DC3C}',
wiaCommandDeleteAllItems = '{E208C170-ACAD-11D2-A093-00C04F72DC3C}',
wiaCommandSynchronize = '{9B26B7B2-ACAD-11D2-A093-00C04F72DC3C}',
wiaCommandTakePicture = '{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}',
- wiaCommandUnloadDocument = '{1F3B3D8E-ACAE-11D2-A093-00C04F72DC3C}'
- }*/
+ wiaCommandUnloadDocument = '{1F3B3D8E-ACAE-11D2-A093-00C04F72DC3C}',
+ }
/** String versions of globally unique identifiers (GUIDs) that identify DeviceManager events. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum EventID {
+ const enum EventID {
wiaEventDeviceConnected = '{A28BBADE-64B6-11D2-A231-00C04FA31809}',
wiaEventDeviceDisconnected = '{143E4E83-6497-11D2-A231-00C04FA31809}',
wiaEventItemCreated = '{4C8F4EF5-E14F-11D2-B326-00C04F68CE61}',
@@ -30,50 +28,48 @@ declare namespace WIA {
wiaEventScanImage3 = '{154E27BE-B617-4653-ACC5-0FD7BD4C65CE}',
wiaEventScanImage4 = '{A65B704A-7F3C-4447-A75D-8A26DFCA1FDF}',
wiaEventScanOCRImage = '{9D095B89-37D6-4877-AFED-62A297DC6DBE}',
- wiaEventScanPrintImage = '{B441F425-8C6E-11D2-977A-0000F87A926F}'
- }*/
+ wiaEventScanPrintImage = '{B441F425-8C6E-11D2-977A-0000F87A926F}',
+ }
/** String versions of globally unique identifiers (GUIDs) that indicate the file format of an image. */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum FormatID {
+ const enum FormatID {
wiaFormatBMP = '{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatGIF = '{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatJPEG = '{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}',
wiaFormatPNG = '{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}',
- wiaFormatTIFF = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}'
- }*/
+ wiaFormatTIFF = '{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}',
+ }
/** Miscellaneous string constants */
- // uncomment when DefinitelyTyped supports Typescript 2.4 (end of July 2017)
- /*const enum Miscellaneous {
+ const enum Miscellaneous {
wiaAnyDeviceID = '*',
- wiaIDUnknown = '{00000000-0000-0000-0000-000000000000}'
- }*/
+ wiaIDUnknown = '{00000000-0000-0000-0000-000000000000}',
+ }
/**
* The WiaDeviceType enumeration specifies the type of device attached to a user's computer. Use the Type property on the DeviceInfo object or the Device
- * object to obtain these values from the device.
+ * object to obtain these values from the device.
*/
const enum WiaDeviceType {
CameraDeviceType = 2,
ScannerDeviceType = 1,
UnspecifiedDeviceType = 0,
- VideoDeviceType = 3
+ VideoDeviceType = 3,
}
/**
- * A DeviceEvent's type is composed of bits from the WiaEventFlags enumeration. You can test a DeviceEvent's type by using the AND operation with DeviceEv
- * ent.Type and a member from the WiaEventFlags enumeration.
+ * A DeviceEvent's type is composed of bits from the WiaEventFlags enumeration. You can test a DeviceEvent's type by using the AND operation with
+ * DeviceEvent.Type and a member from the WiaEventFlags enumeration.
*/
const enum WiaEventFlag {
ActionEvent = 2,
- NotificationEvent = 1
+ NotificationEvent = 1,
}
/** The WiaImageBias enumeration helps specify what type of data the image is intended to represent. */
const enum WiaImageBias {
MaximizeQuality = 131072,
- MinimizeSize = 65536
+ MinimizeSize = 65536,
}
/** The WiaImageIntent enumeration helps specify what type of data the image is intended to represent. */
@@ -81,12 +77,12 @@ declare namespace WIA {
ColorIntent = 1,
GrayscaleIntent = 2,
TextIntent = 4,
- UnspecifiedIntent = 0
+ UnspecifiedIntent = 0,
}
/**
- * The WiaImagePropertyType enumeration specifies the type of the value of an image property. Image properties can be found in the Properties collection o
- * f an ImageFile object.
+ * The WiaImagePropertyType enumeration specifies the type of the value of an image property. Image properties can be found in the Properties collection
+ * of an ImageFile object.
*/
const enum WiaImagePropertyType {
ByteImagePropertyType = 1001,
@@ -103,12 +99,12 @@ declare namespace WIA {
VectorOfUndefinedImagePropertyType = 1100,
VectorOfUnsignedIntegersImagePropertyType = 1102,
VectorOfUnsignedLongsImagePropertyType = 1104,
- VectorOfUnsignedRationalsImagePropertyType = 1106
+ VectorOfUnsignedRationalsImagePropertyType = 1106,
}
/**
- * An Item's type is composed of bits from the WiaItemFlags enumeration. You can test an Item's type by using the AND operation with Item.Properties("Item
- * Flags") and a member from the WiaItemFlags enumeration.
+ * An Item's type is composed of bits from the WiaItemFlags enumeration. You can test an Item's type by using the AND operation with
+ * Item.Properties("Item Flags") and a member from the WiaItemFlags enumeration.
*/
const enum WiaItemFlag {
AnalyzeItemFlag = 16,
@@ -129,12 +125,12 @@ declare namespace WIA {
StorageItemFlag = 4096,
TransferItemFlag = 8192,
VideoItemFlag = 65536,
- VPanoramaItemFlag = 1024
+ VPanoramaItemFlag = 1024,
}
/**
- * The WiaPropertyType enumeration specifies the type of the value of an item property. Item properties can be found in the Properties collection of a Dev
- * ice or Item object.
+ * The WiaPropertyType enumeration specifies the type of the value of an item property. Item properties can be found in the Properties collection of a
+ * Device or Item object.
*/
const enum WiaPropertyType {
BooleanPropertyType = 1,
@@ -173,28 +169,31 @@ declare namespace WIA {
VectorOfUnsignedIntegersPropertyType = 104,
VectorOfUnsignedLargeIntegersPropertyType = 109,
VectorOfUnsignedLongsPropertyType = 106,
- VectorOfVariantsPropertyType = 119
+ VectorOfVariantsPropertyType = 119,
}
/**
- * The WiaSubType enumeration specifies more detail about the property value. Use the SubType property on the Property object to obtain these values for t
- * he property.
+ * The WiaSubType enumeration specifies more detail about the property value. Use the SubType property on the Property object to obtain these values for
+ * the property.
*/
const enum WiaSubType {
FlagSubType = 3,
ListSubType = 2,
RangeSubType = 1,
- UnspecifiedSubType = 0
+ UnspecifiedSubType = 0,
}
/**
* The CommonDialog control is an invisible-at-runtime control that contains all the methods that display a User Interface. A CommonDialog control can be
- * created using "WIA.CommonDialog" in a call to CreateObject or by dropping a CommonDialog on a form.
+ * created using "WIA.CommonDialog" in a call to CreateObject or by dropping a CommonDialog on a form.
*/
- interface CommonDialog {
+ class CommonDialog {
+ private constructor();
+ private 'WIA.CommonDialog_typekey': CommonDialog;
+
/**
- * Displays one or more dialog boxes that enable the user to acquire an image from a hardware device for image acquisition and returns an ImageFile object
- * on success, otherwise Nothing
+ * Displays one or more dialog boxes that enable the user to acquire an image from a hardware device for image acquisition and returns an ImageFile
+ * object on success, otherwise Nothing
* @param WIA.WiaDeviceType [DeviceType=0]
* @param WIA.WiaImageIntent [Intent=0]
* @param WIA.WiaImageBias [Bias=131072]
@@ -203,11 +202,11 @@ declare namespace WIA {
* @param boolean [UseCommonUI=true]
* @param boolean [CancelError=false]
*/
- ShowAcquireImage(
- DeviceType?: WiaDeviceType, Intent?: WiaImageIntent, Bias?: WiaImageBias, FormatID?: string, AlwaysSelectDevice?: boolean, UseCommonUI?: boolean, CancelError?: boolean): ImageFile;
+ ShowAcquireImage(DeviceType?: WiaDeviceType, Intent?: WiaImageIntent, Bias?: WiaImageBias, FormatID?: string, AlwaysSelectDevice?: boolean, UseCommonUI?: boolean,
+ CancelError?: boolean): ImageFile | null;
/** Launches the Windows Scanner and Camera Wizard and returns Nothing. Future versions may return a collection of ImageFile objects. */
- ShowAcquisitionWizard(Device: Device): any;
+ ShowAcquisitionWizard(Device: Device): null;
/**
* Displays the properties dialog box for the specified Device
@@ -222,38 +221,41 @@ declare namespace WIA {
ShowItemProperties(Item: Item, CancelError?: boolean): void;
/** Launches the Photo Printing Wizard with the absolute path of a specific file or Vector of absolute paths to files */
- ShowPhotoPrintingWizard(Files: any): void;
+ ShowPhotoPrintingWizard(Files: string | Vector): void;
/**
- * Displays a dialog box that enables the user to select a hardware device for image acquisition. Returns the selected Device object on success, otherwise
- * Nothing
+ * Displays a dialog box that enables the user to select a hardware device for image acquisition. Returns the selected Device object on success,
+ * otherwise Nothing
* @param WIA.WiaDeviceType [DeviceType=0]
* @param boolean [AlwaysSelectDevice=false]
* @param boolean [CancelError=false]
*/
- ShowSelectDevice(DeviceType?: WiaDeviceType, AlwaysSelectDevice?: boolean, CancelError?: boolean): Device;
+ ShowSelectDevice(DeviceType?: WiaDeviceType, AlwaysSelectDevice?: boolean, CancelError?: boolean): Device | null;
/**
- * Displays a dialog box that enables the user to select an item for transfer from a hardware device for image acquisition. Returns the selection as an It
- * ems collection on success, otherwise Nothing
+ * Displays a dialog box that enables the user to select an item for transfer from a hardware device for image acquisition. Returns the selection as an
+ * Items collection on success, otherwise Nothing
* @param WIA.WiaImageIntent [Intent=0]
* @param WIA.WiaImageBias [Bias=131072]
* @param boolean [SingleSelect=true]
* @param boolean [UseCommonUI=true]
* @param boolean [CancelError=false]
*/
- ShowSelectItems(Device: Device, Intent?: WiaImageIntent, Bias?: WiaImageBias, SingleSelect?: boolean, UseCommonUI?: boolean, CancelError?: boolean): Items;
+ ShowSelectItems(Device: Device, Intent?: WiaImageIntent, Bias?: WiaImageBias, SingleSelect?: boolean, UseCommonUI?: boolean, CancelError?: boolean): Items | null;
/**
* Displays a progress dialog box while transferring the specified Item to the local machine. See Item.Transfer for additional information.
* @param string [FormatID='{00000000-0000-0000-0000-000000000000}']
* @param boolean [CancelError=false]
*/
- ShowTransfer(Item: Item, FormatID?: string, CancelError?: boolean): any;
+ ShowTransfer(Item: Item, FormatID?: string, CancelError?: boolean): ImageFile;
}
/** The Device object represents an active connection to an imaging device. */
- interface Device {
+ class Device {
+ private constructor();
+ private 'WIA.Device_typekey': Device;
+
/** A collection of all commands for this imaging device */
readonly Commands: DeviceCommands;
@@ -264,8 +266,8 @@ declare namespace WIA {
readonly Events: DeviceEvents;
/**
- * Issues the command specified by CommandID to the imaging device. CommandIDs are device dependent. Valid CommandIDs for this Device are contained in the
- * Commands collection.
+ * Issues the command specified by CommandID to the imaging device. CommandIDs are device dependent. Valid CommandIDs for this Device are contained in
+ * the Commands collection.
*/
ExecuteCommand(CommandID: string): Item;
@@ -280,13 +282,13 @@ declare namespace WIA {
/** Returns the Type of Device */
readonly Type: WiaDeviceType;
-
- /** Returns the underlying IWiaItem interface for this Device object */
- readonly WiaItem: any;
}
/** The DeviceCommand object describes a CommandID that can be used when calling ExecuteCommand on a Device or Item object. */
- interface DeviceCommand {
+ class DeviceCommand {
+ private constructor();
+ private 'WIA.DeviceCommand_typekey': DeviceCommand;
+
/** Returns the commandID for this Command */
readonly CommandID: string;
@@ -298,8 +300,8 @@ declare namespace WIA {
}
/**
- * The DeviceCommands object is a collection of all the supported DeviceCommands for an imaging device. See the Commands property of a Device or Item obje
- * ct for more details on determining the collection of supported device commands.
+ * The DeviceCommands object is a collection of all the supported DeviceCommands for an imaging device. See the Commands property of a Device or Item
+ * object for more details on determining the collection of supported device commands.
*/
interface DeviceCommands {
/** Returns the number of members in the collection */
@@ -307,10 +309,16 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): DeviceCommand;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): DeviceCommand;
}
/** The DeviceEvent object describes an EventID that can be used when calling RegisterEvent or RegisterPersistentEvent on a DeviceManager object. */
- interface DeviceEvent {
+ class DeviceEvent {
+ private constructor();
+ private 'WIA.DeviceEvent_typekey': DeviceEvent;
+
/** Returns the event Description */
readonly Description: string;
@@ -325,8 +333,8 @@ declare namespace WIA {
}
/**
- * The DeviceEvents object is a collection of all the supported DeviceEvent for an imaging device. See the Events property of a Device object for more det
- * ails on determining the collection of supported device events.
+ * The DeviceEvents object is a collection of all the supported DeviceEvent for an imaging device. See the Events property of a Device object for more
+ * details on determining the collection of supported device events.
*/
interface DeviceEvents {
/** Returns the number of members in the collection */
@@ -334,13 +342,19 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): DeviceEvent;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): DeviceEvent;
}
/**
- * The DeviceInfo object is a container that describes the unchanging (static) properties of an imaging device that is currently connected to the computer
- * .
+ * The DeviceInfo object is a container that describes the unchanging (static) properties of an imaging device that is currently connected to the
+ * computer.
*/
- interface DeviceInfo {
+ class DeviceInfo {
+ private constructor();
+ private 'WIA.DeviceInfo_typekey': DeviceInfo;
+
/** Establish a connection with this device and return a Device object */
Connect(): Device;
@@ -355,59 +369,68 @@ declare namespace WIA {
}
/**
- * The DeviceInfos object is a collection of all the imaging devices currently connected to the computer. See the DeviceInfos property on the DeviceManage
- * r object for detail on accessing the DeviceInfos object.
+ * The DeviceInfos object is a collection of all the imaging devices currently connected to the computer. See the DeviceInfos property on the
+ * DeviceManager object for detail on accessing the DeviceInfos object.
*/
interface DeviceInfos {
/** Returns the number of members in the collection */
readonly Count: number;
/** Returns the specified item in the collection either by position or Device ID */
- Item(Index: any): DeviceInfo;
+ Item(Index: number | string): DeviceInfo;
+
+ /** Returns the specified item in the collection either by position or Device ID */
+ (Index: number | string): DeviceInfo;
}
/**
- * The DeviceManager control is an invisible-at-runtime control that manages the imaging devices connected to the computer. A DeviceManager control can be
- * created using "WIA.DeviceManager" in a call to CreateObject or by dropping a DeviceManager on a form.
+ * The DeviceManager control is an invisible-at-runtime control that manages the imaging devices connected to the computer. A DeviceManager control can
+ * be created using "WIA.DeviceManager" in a call to CreateObject or by dropping a DeviceManager on a form.
*/
- interface DeviceManager {
+ class DeviceManager {
+ private constructor();
+ private 'WIA.DeviceManager_typekey': DeviceManager;
+
/** A collection of all imaging devices connected to this computer */
readonly DeviceInfos: DeviceInfos;
/**
* Registers the specified EventID for the specified DeviceID. If DeviceID is "*" then OnEvent will be called whenever the event specified occurs for any
- * device. Otherwise, OnEvent will only be called if the event specified occurs on the device specified.
+ * device. Otherwise, OnEvent will only be called if the event specified occurs on the device specified.
* @param string [DeviceID='*']
*/
RegisterEvent(EventID: string, DeviceID?: string): void;
/**
- * Registers the specified Command to launch when the specified EventID for the specified DeviceID occurs. Command can be either a ClassID or the full pat
- * h name and the appropriate command-line arguments needed to invoke the application.
+ * Registers the specified Command to launch when the specified EventID for the specified DeviceID occurs. Command can be either a ClassID or the full
+ * path name and the appropriate command-line arguments needed to invoke the application.
* @param string [DeviceID='*']
*/
RegisterPersistentEvent(Command: string, Name: string, Description: string, Icon: string, EventID: string, DeviceID?: string): void;
/**
- * Unregisters the specified EventID for the specified DeviceID. UnregisterEvent should only be called for EventID and DeviceID for which you called Regis
- * terEvent.
+ * Unregisters the specified EventID for the specified DeviceID. UnregisterEvent should only be called for EventID and DeviceID for which you called
+ * RegisterEvent.
* @param string [DeviceID='*']
*/
UnregisterEvent(EventID: string, DeviceID?: string): void;
/**
- * Unregisters the specified Command for the specified EventID for the specified DeviceID. UnregisterPersistentEvent should only be called for the Command
- * , Name, Description, Icon, EventID and DeviceID for which you called RegisterPersistentEvent.
+ * Unregisters the specified Command for the specified EventID for the specified DeviceID. UnregisterPersistentEvent should only be called for the
+ * Command, Name, Description, Icon, EventID and DeviceID for which you called RegisterPersistentEvent.
* @param string [DeviceID='*']
*/
UnregisterPersistentEvent(Command: string, Name: string, Description: string, Icon: string, EventID: string, DeviceID?: string): void;
}
/**
- * The Filter object represents a unit of modification on an ImageFile. To use a Filter, add it to the Filters collection, then set the filter's propertie
- * s and finally use the Apply method of the ImageProcess object to filter an ImageFile.
+ * The Filter object represents a unit of modification on an ImageFile. To use a Filter, add it to the Filters collection, then set the filter's
+ * properties and finally use the Apply method of the ImageProcess object to filter an ImageFile.
*/
- interface Filter {
+ class Filter {
+ private constructor();
+ private 'WIA.Filter_typekey': Filter;
+
/** Returns a Description of what the filter does */
readonly Description: string;
@@ -422,10 +445,13 @@ declare namespace WIA {
}
/**
- * The FilterInfo object is a container that describes a Filter object without requiring a Filter to be Added to the process chain. See the FilterInfos pr
- * operty on the ImageProcess object for details on accessing FilterInfo objects.
+ * The FilterInfo object is a container that describes a Filter object without requiring a Filter to be Added to the process chain. See the FilterInfos
+ * property on the ImageProcess object for details on accessing FilterInfo objects.
*/
- interface FilterInfo {
+ class FilterInfo {
+ private constructor();
+ private 'WIA.FilterInfo_typekey': FilterInfo;
+
/** Returns a technical Description of what the filter does and how to use it in a filter chain */
readonly Description: string;
@@ -437,15 +463,18 @@ declare namespace WIA {
}
/**
- * The FilterInfos object is a collection of all the available FilterInfo objects. See the FilterInfos property on the ImageProcess object for detail on a
- * ccessing the FilterInfos object.
+ * The FilterInfos object is a collection of all the available FilterInfo objects. See the FilterInfos property on the ImageProcess object for detail on
+ * accessing the FilterInfos object.
*/
interface FilterInfos {
/** Returns the number of members in the collection */
readonly Count: number;
/** Returns the specified item in the collection either by position or name */
- Item(Index: any): FilterInfo;
+ Item(Index: number | string): FilterInfo;
+
+ /** Returns the specified item in the collection either by position or name */
+ (Index: number | string): FilterInfo;
}
/** The Filters object is a collection of the Filters that will be applied to an ImageFile when you call the Apply method on the ImageProcess object. */
@@ -464,11 +493,14 @@ declare namespace WIA {
/** Removes the designated filter */
Remove(Index: number): void;
+
+ /** Returns the specified item in the collection by position or FilterID */
+ (Index: number): Filter;
}
/**
- * The Formats object is a collection of supported FormatIDs that you can use when calling Transfer on an Item object or ShowTransfer on a CommonDialog ob
- * ject for this Item.
+ * The Formats object is a collection of supported FormatIDs that you can use when calling Transfer on an Item object or ShowTransfer on a CommonDialog
+ * object for this Item.
*/
interface Formats {
/** Returns the number of members in the collection */
@@ -476,13 +508,19 @@ declare namespace WIA {
/** Returns the specified item in the collection by position */
Item(Index: number): string;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): string;
}
/**
- * The ImageFile object is a container for images transferred to your computer when you call Transfer or ShowTransfer. It also supports image files throug
- * h LoadFile. An ImageFile object can be created using "WIA.ImageFile" in a call to CreateObject.
+ * The ImageFile object is a container for images transferred to your computer when you call Transfer or ShowTransfer. It also supports image files
+ * through LoadFile. An ImageFile object can be created using "WIA.ImageFile" in a call to CreateObject.
*/
- interface ImageFile {
+ class ImageFile {
+ private constructor();
+ private 'WIA.ImageFile_typekey': ImageFile;
+
/** Returns/Sets the current frame in the image */
ActiveFrame: number;
@@ -539,7 +577,10 @@ declare namespace WIA {
}
/** The ImageProcess object manages the filter chain. An ImageProcess object can be created using "WIA.ImageProcess" in a call to CreateObject. */
- interface ImageProcess {
+ class ImageProcess {
+ private constructor();
+ private 'WIA.ImageProcess_typekey': ImageProcess;
+
/** Takes the specified ImageFile and returns the new ImageFile with all the filters applied on success */
Apply(Source: ImageFile): ImageFile;
@@ -551,10 +592,13 @@ declare namespace WIA {
}
/**
- * The Item object is a container for an item on an imaging device object. See the Items property on the Device or Item object for details on accessing It
- * em objects.
+ * The Item object is a container for an item on an imaging device object. See the Items property on the Device or Item object for details on accessing
+ * Item objects.
*/
- interface Item {
+ class Item {
+ private constructor();
+ private 'WIA.Item_typekey': Item;
+
/** A collection of all commands for this item */
readonly Commands: DeviceCommands;
@@ -574,17 +618,15 @@ declare namespace WIA {
readonly Properties: Properties;
/**
- * Returns an ImageFile object, in this version, in the format specified in FormatID if supported, otherwise using the preferred format for this imaging d
- * evice. Future versions may return a collection of ImageFile objects.
+ * Returns an ImageFile object, in this version, in the format specified in FormatID if supported, otherwise using the preferred format for this imaging
+ * device. Future versions may return a collection of ImageFile objects.
* @param string [FormatID='{00000000-0000-0000-0000-000000000000}']
*/
- Transfer(FormatID?: string): any;
-
- /** Returns the underlying IWiaItem interface for this Item object */
- readonly WiaItem: any;
+ Transfer(FormatID?: string): ImageFile;
}
/** The Items object contains a collection of Item objects. See the Items property on the Device or Item object for details on accessing the Items object. */
+ // tslint:disable-next-line interface-name
interface Items {
/** Adds a new Item with the specified Name and Flags. The Flags value is created by using the OR operation with members of the WiaItemFlags enumeration. */
Add(Name: string, Flags: number): void;
@@ -597,28 +639,37 @@ declare namespace WIA {
/** Removes the designated Item */
Remove(Index: number): void;
+
+ /** Returns the specified item in the collection by position */
+ (Index: number): Item;
}
/**
- * The Properties object is a collection of all the Property objects associated with a given Device, DeviceInfo, Filter, ImageFile or Item object. See the
- * Properties property on any of these objects for detail on accessing the Properties object.
+ * The Properties object is a collection of all the Property objects associated with a given Device, DeviceInfo, Filter, ImageFile or Item object. See
+ * the Properties property on any of these objects for detail on accessing the Properties object.
*/
interface Properties {
/** Returns the number of members in the collection */
readonly Count: number;
/** Indicates whether the specified Property exists in the collection */
- Exists(Index: any): boolean;
+ Exists(Index: number | string): boolean;
/** Returns the specified item in the collection either by position or name. */
- Item(Index: any): Property;
+ Item(Index: number | string): Property;
+
+ /** Returns the specified item in the collection either by position or name. */
+ (Index: number | string): Property;
}
/**
- * The Property object is a container for a property associated with a Device, DeviceInfo, Filter, ImageFile or Item object. See the Properties property o
- * n any of these objects for details on accessing Property objects.
+ * The Property object is a container for a property associated with a Device, DeviceInfo, Filter, ImageFile or Item object. See the Properties property
+ * on any of these objects for details on accessing Property objects.
*/
- interface Property {
+ class Property {
+ private constructor();
+ private 'WIA.Property_typekey': Property;
+
/** Indicates whether the Property Value is read only */
readonly IsReadOnly: boolean;
@@ -657,10 +708,13 @@ declare namespace WIA {
}
/**
- * The Rational object is a container for the rational values found in Exif tags. It is a supported element type of the Vector object and may be created u
- * sing "WIA.Rational" in a call to CreateObject.
+ * The Rational object is a container for the rational values found in Exif tags. It is a supported element type of the Vector object and may be created
+ * using "WIA.Rational" in a call to CreateObject.
*/
- interface Rational {
+ class Rational {
+ private constructor();
+ private 'WIA.Rational_typekey': Rational;
+
/** Returns/Sets the Rational Value Denominator */
Denominator: number;
@@ -672,19 +726,19 @@ declare namespace WIA {
}
/**
- * The Vector object is a collection of values of the same type. It is used throughout the library in many different ways. The Vector object may be create
- * d using "WIA.Vector" in a call to CreateObject.
+ * The Vector object is a collection of values of the same type. It is used throughout the library in many different ways. The Vector object may be
+ * created using "WIA.Vector" in a call to CreateObject.
*/
- interface Vector {
+ interface Vector {
/**
- * If Index is not zero, Inserts a new element into the Vector collection before the specified Index. If Index is zero, Appends a new element to the Vecto
- * r collection.
+ * If Index is not zero, Inserts a new element into the Vector collection before the specified Index. If Index is zero, Appends a new element to the
+ * Vector collection.
* @param number [Index=0]
*/
- Add(Value: any, Index?: number): void;
+ Add(Value: TItem, Index?: number): void;
/** Returns/Sets the Vector of Bytes as an array of bytes */
- BinaryData: any;
+ BinaryData: SafeArray;
/** Removes all elements. */
Clear(): void;
@@ -696,30 +750,30 @@ declare namespace WIA {
Date: VarDate;
/**
- * Used to get the Thumbnail property of an ImageFile which is an image file, The thumbnail property of an Item which is RGB data, or creating an ImageFil
- * e from raw ARGB data. Returns an ImageFile object on success. See the Picture method for more details.
+ * Used to get the Thumbnail property of an ImageFile which is an image file, The thumbnail property of an Item which is RGB data, or creating an
+ * ImageFile from raw ARGB data. Returns an ImageFile object on success. See the Picture method for more details.
* @param number [Width=0]
* @param number [Height=0]
*/
ImageFile(Width?: number, Height?: number): ImageFile;
- /** Returns/Sets the specified item in the vector by position */
- Item(Index: number): any;
+ /** Returns the specified item in the vector by position */
+ Item(Index: number): TItem;
/**
- * If the Vector of Bytes contains an image file, then Width and Height are ignored. Otherwise a Vector of Bytes must be RGB data and a Vector of Longs mu
- * st be ARGB data. Returns a Picture object on success. See the ImageFile method for more details.
+ * If the Vector of Bytes contains an image file, then Width and Height are ignored. Otherwise a Vector of Bytes must be RGB data and a Vector of Longs
+ * must be ARGB data. Returns a Picture object on success. See the ImageFile method for more details.
* @param number [Width=0]
* @param number [Height=0]
*/
Picture(Width?: number, Height?: number): any;
/** Removes the designated element and returns it if successful */
- Remove(Index: number): any;
+ Remove(Index: number): TItem | null;
/**
- * Stores the string Value into the Vector of Bytes including the NULL terminator. Value may be truncated unless Resizable is True. The string will be sto
- * red as an ANSI string unless Unicode is True, in which case it will be stored as a Unicode string.
+ * Stores the string Value into the Vector of Bytes including the NULL terminator. Value may be truncated unless Resizable is True. The string will be
+ * stored as an ANSI string unless Unicode is True, in which case it will be stored as a Unicode string.
* @param boolean [Resizable=true]
* @param boolean [Unicode=true]
*/
@@ -730,30 +784,24 @@ declare namespace WIA {
* @param boolean [Unicode=true]
*/
String(Unicode?: boolean): string;
+
+ /** Returns the specified item in the vector by position */
+ (Index: number): TItem;
}
}
interface ActiveXObject {
+ new(progid: K): ActiveXObjectNameMap[K];
on(obj: WIA.DeviceManager, event: 'OnEvent', argNames: ['EventID', 'DeviceID', 'ItemID'], handler: (
- this: WIA.DeviceManager, parameter: {
- EventID: string, DeviceID: string, ItemID: string}) => void): void;
- set(obj: WIA.Vector, propertyName: 'Item', parameterTypes: [number], newValue: any): void;
- new(progid: 'WIA.CommonDialog'): WIA.CommonDialog;
- new(progid: 'WIA.DeviceManager'): WIA.DeviceManager;
- new(progid: 'WIA.ImageFile'): WIA.ImageFile;
- new(progid: 'WIA.ImageProcess'): WIA.ImageProcess;
- new(progid: 'WIA.Rational'): WIA.Rational;
- new(progid: 'WIA.Vector'): WIA.Vector;
+ this: WIA.DeviceManager, parameter: { readonly EventID: string, readonly DeviceID: string, readonly ItemID: string }) => void): void;
+ set(obj: WIA.Vector, propertyName: 'Item', parameterTypes: [number], newValue: TItem): void;
}
-interface EnumeratorConstructor {
- new(col: WIA.DeviceCommands): WIA.DeviceCommand;
- new(col: WIA.DeviceEvents): WIA.DeviceEvent;
- new(col: WIA.DeviceInfos): WIA.DeviceInfo;
- new(col: WIA.FilterInfos): WIA.FilterInfo;
- new(col: WIA.Filters): WIA.Filter;
- new(col: WIA.Formats): string;
- new(col: WIA.Items): WIA.Item;
- new(col: WIA.Properties): WIA.Property;
- new(col: WIA.Vector): any;
+interface ActiveXObjectNameMap {
+ 'WIA.CommonDialog': WIA.CommonDialog;
+ 'WIA.DeviceManager': WIA.DeviceManager;
+ 'WIA.ImageFile': WIA.ImageFile;
+ 'WIA.ImageProcess': WIA.ImageProcess;
+ 'WIA.Rational': WIA.Rational;
+ 'WIA.Vector': WIA.Vector;
}
diff --git a/types/activex-wia/tslint.json b/types/activex-wia/tslint.json
index 2750cc0197..457cebbb55 100644
--- a/types/activex-wia/tslint.json
+++ b/types/activex-wia/tslint.json
@@ -1 +1,6 @@
-{ "extends": "dtslint/dt.json" }
\ No newline at end of file
+{
+ "extends": "dtslint/dt.json",
+ "rules":{
+ "no-const-enum": false
+ }
+}
diff --git a/types/activex-word/tslint.json b/types/activex-word/tslint.json
index 4ac54521fe..3224b40b8b 100644
--- a/types/activex-word/tslint.json
+++ b/types/activex-word/tslint.json
@@ -1,6 +1,6 @@
{
"extends": "dtslint/dt.json",
"rules": {
- "interface-name": [false]
+ "no-const-enum": false
}
-}
\ No newline at end of file
+}
diff --git a/types/add-zero/tsconfig.json b/types/add-zero/tsconfig.json
index e71d235cdf..d7645a2e3c 100644
--- a/types/add-zero/tsconfig.json
+++ b/types/add-zero/tsconfig.json
@@ -20,4 +20,4 @@
"index.d.ts",
"add-zero-tests.ts"
]
-}
+}
\ No newline at end of file
diff --git a/types/adone/adone.d.ts b/types/adone/adone.d.ts
index 34540761b5..91ebc4db7c 100644
--- a/types/adone/adone.d.ts
+++ b/types/adone/adone.d.ts
@@ -7,16 +7,15 @@ declare namespace adone {
export function identity(x: T): T;
export function truly(): true;
export function falsely(): false;
- export const ok: "OK";
- export const bad: "BAD";
- export const exts: [".js", ".tjs", ".ajs"];
+ export const ok: "ok";
+ export const bad: "bad";
export function log(...args: any[]): void;
- export function fatal(...args: any[]): void;
- export function error(...args: any[]): void;
- export function warn(...args: any[]): void;
- export function info(...args: any[]): void;
- export function debug(...args: any[]): void;
- export function trace(...args: any[]): void;
+ export function logFatal(...args: any[]): void;
+ export function logError(...args: any[]): void;
+ export function logWarn(...args: any[]): void;
+ export function logInfo(...args: any[]): void;
+ export function logDebug(...args: any[]): void;
+ export function logTrace(...args: any[]): void;
export function o(...props: any[]): object;
export const Date: typeof global.Date;
export const hrtime: typeof global.process.hrtime;
@@ -76,40 +75,16 @@ declare namespace adone {
set(Class: object, tag: string): void;
has(obj: object, tag: string): boolean;
define(tag: string, predicate?: string): void;
- SUBSYSTEM: symbol;
- APPLICATION: symbol;
- TRANSFORM: symbol;
- CORE_STREAM: symbol;
- LOGGER: symbol;
- LONG: symbol;
- BIGNUMBER: symbol;
- EXBUFFER: symbol;
- EXDATE: symbol;
- CONFIGURATION: symbol;
- GENESIS_NETRON: symbol;
- GENESIS_PEER: symbol;
- NETRON: symbol;
- NETRON_PEER: symbol;
- NETRON_ADAPTER: symbol;
- NETRON_DEFINITION: symbol;
- NETRON_DEFINITIONS: symbol;
- NETRON_REFERENCE: symbol;
- NETRON_INTERFACE: symbol;
- NETRON_STUB: symbol;
- NETRON_REMOTESTUB: symbol;
- NETRON_STREAM: symbol;
- FAST_STREAM: symbol;
- FAST_FS_STREAM: symbol;
- FAST_FS_MAP_STREAM: symbol;
}
}
export const tag: I.Tag;
- export function bind(libName: string): object;
export function getAssetAbsolutePath(relPath: string): string;
export function loadAsset(relPath: string): string | Buffer;
export function require(path: string): object;
export const package: object;
+ export function sprintf(format: string, ...args: any[]): string;
+
namespace I {
interface Runtime {
term: object; // TODO
@@ -120,11 +95,10 @@ declare namespace adone {
export const runtime: I.Runtime;
- export const homePath: string;
- export const rootPath: string;
- export const etcPath: string;
- export const config: object;
- export const emptyBuffer: Buffer;
+ export const ROOT_PATH: string;
+ export const ETC_PATH: string;
+ export const configuration: object;
+ export const EMPTY_BUFFER: Buffer;
export const assert: assertion.I.AssertFunction;
export const expect: assertion.I.ExpectFunction;
diff --git a/types/adone/glosses/application.d.ts b/types/adone/glosses/application.d.ts
index 6b2b783d68..4c9661843a 100644
--- a/types/adone/glosses/application.d.ts
+++ b/types/adone/glosses/application.d.ts
@@ -1,5 +1,275 @@
declare namespace adone {
namespace application {
- function run(app: object, ignoreArgs?: boolean): Promise;
+ namespace I {
+ type ArgumentType = ((x: string, index: number) => any) | RegExp;
+
+ interface ArgumentInfo {
+ name: string | string[];
+ action?: "store"
+ | "store_const"
+ | "store_true"
+ | "store_false"
+ | "append"
+ | "count"
+ | "set";
+ nargs?: number | "+" | "*" | "?"
+ type?: ArgumentType | ArgumentType[];
+ verify?: (args: any, opts: any) => boolean; // TODO
+ required?: boolean;
+ description?: string;
+ help?: string;
+ holder?: string | string[];
+ appendDefaultMessage?: boolean;
+ appendChoicesHelpMessage?: boolean;
+ default?: any;
+ enabled?: boolean;
+ }
+
+ interface Group {
+ name: string;
+ description?: string;
+ }
+
+ interface MainCommandInfo {
+ arguments?: Array;
+ options?: Array;
+ description?: string;
+ optionsGroups?: Group[];
+ blindMode?: boolean;
+ match?: (name: string) => boolean;
+ handler?: (args: object, opts: object) => void;
+ }
+
+ interface CommandInfo extends MainCommandInfo {
+ name?: string | string[];
+ group?: string;
+ }
+
+ interface ApplicationInfo {
+ name?: string;
+ description?: string;
+ subsystems?: SubsystemInfo[];
+ commandsGroups?: Group[]
+ }
+
+ interface SubsystemInfo {
+ name: string;
+ description?: string;
+ subsystem: string;
+ transpile?: boolean;
+ group?: string;
+ }
+ }
+
+ function DSubsystem(info?: I.ApplicationInfo): (...args: any[]) => void;
+
+ function DApplication(info?: I.ApplicationInfo): (...args: any[]) => void;
+
+ function DCliCommand(info?: I.CommandInfo): (...args: any[]) => void;
+
+ function DMainCliCommand(info?: I.MainCommandInfo): (...args: any[]) => void;
+
+ namespace I {
+ interface LoadSubsystemOptions {
+ name?: string,
+ description?: string,
+ group?: string,
+ transpile?: boolean
+ }
+
+ interface CommonAddSubsystemInfo {
+ name?: string,
+ useFilename?: boolean
+ description?: string,
+ group?: string,
+ configureArgs?: any[]
+ transpile?: boolean,
+ bind?: boolean | string
+ }
+
+ interface AddSubsystemInfo extends CommonAddSubsystemInfo {
+ subsystem: Subsystem | string,
+ }
+
+ interface SysInfo {
+ name: string;
+ description: string;
+ group: string;
+ configureArgs: any[];
+ instance: Subsystem;
+ path: string | null;
+ }
+
+ interface SysInfoWithPath extends SysInfo {
+ path: string;
+ }
+
+ interface SysInfoNoPath extends SysInfo {
+ path: null;
+ }
+
+ interface AddSubsystemsFromOptions extends CommonAddSubsystemInfo {
+ filter?: string[] | ((file: string) => boolean | Promise)
+ }
+ }
+
+ class Subsystem extends event.AsyncEmitter {
+ constructor(options?: { name?: string });
+
+ readonly name?: string;
+
+ readonly root?: Subsystem;
+
+ setRoot(root: Subsystem): void;
+
+ readonly parent?: Subsystem;
+
+ readonly state: number;
+
+ readonly isOwned: boolean;
+
+ setState(state: number): void;
+
+ waitForState(expectedState: number, timeout?: number): Promise;
+
+ configure(): void;
+
+ initialize(): void;
+
+ uninitialize(): void;
+
+ configureSubsystems(): Promise;
+
+ uninitializeSubsystems(): Promise;
+
+ reinitializeSubsystems(): Promise;
+
+ configureSubsystem(name: string): Promise;
+
+ loadSubsystem(subsystem: string | Subsystem, options?: I.LoadSubsystemOptions): Promise;
+
+ unloadSubsystem(name: string): Promise;
+
+ initializeSubsystem(name: string): Promise;
+
+ uninitializeSubsystem(name: string): Promise;
+
+ reinitializeSubsystem(name: string): Promise;
+
+ getSubsystem(name: string): Subsystem;
+
+ hasSubsystem(name: string): boolean;
+
+ hasSubsystems(): boolean;
+
+ addSubsystem(info: I.AddSubsystemInfo & { subsystem: Subsystem }): I.SysInfoNoPath;
+ addSubsystem(info: I.AddSubsystemInfo & { subsystem: string }): I.SysInfoWithPath;
+
+ addSubsystemsFrom(path: string, options?: I.AddSubsystemsFromOptions): I.SysInfoWithPath;
+
+ instantiateSubsystem(subsystem: string | Subsystem, options?: {
+ transpile?: boolean
+ }): Subsystem;
+
+ deleteSubsystem(name: string, force?: boolean): void;
+
+ getSubsystemInfo(name: string): I.SysInfo;
+
+ getSubsystems(): I.SysInfo[];
+ }
+
+ namespace I {
+ interface ReportOptions {
+ events?: string;
+ signal?: string;
+ filename?: string;
+ directory?: string;
+ }
+ }
+
+ class Application extends Subsystem {
+ readonly isMain: boolean;
+
+ main(): void;
+
+ enableReport(opts?: I.ReportOptions): void;
+
+ reportEnabled(): boolean;
+
+ run(): Promise;
+
+ exit(code?: number): Promise;
+
+ exitOnSignal(...names: string[]): void;
+
+ removeProcesshandlers(): void;
+
+ _uncaughtException(err: any): void;
+
+ _unhandledRejection(reson: any, p: Promise): void;
+
+ _rejectionHandled(p: Promise): void;
+
+ _signalExit(sigName: string): void;
+
+ }
+
+ namespace I {
+ interface Command {
+ // ?
+ }
+
+ interface Argument {
+ // ?
+ }
+
+ interface PositionalArgument extends Argument {
+ // ?
+ }
+
+ interface OptionalArgument extends Argument {
+ // ?
+ }
+
+ interface DefineCommandFromSubsystemOptions {
+ name?: string;
+ description?: string;
+ group?: string;
+ subsystem: string | Subsystem;
+ configureArgs?: any[];
+ lazily?: boolean;
+ transpile?: boolean;
+ }
+ }
+
+ class CliApplication extends Application {
+ run(options?: { ignoreArgs?: boolean }): Promise;
+
+ getVersion(): Promise;
+
+ exposeCliInterface(ctxId?: string): void;
+
+ readonly mainCommand: I.Command;
+
+ defineMainCommand(schema: I.MainCommandInfo): this;
+
+ defineArguments(schema: I.MainCommandInfo): this;
+
+ defineCommand(schema: I.CommandInfo): I.Command;
+
+ defineCommandFromSubsystem(options?: I.DefineCommandFromSubsystemOptions): void;
+
+ defineOption(schema: I.ArgumentInfo): void;
+
+ defineOptionsGroup(schema: I.Group): void;
+
+ defineCommandsGroup(schema: I.Group): void;
+
+ option(path: string, options?: { value?: boolean }): any;
+ }
+
+ function run(app: Application, ignoreArgs?: boolean): Promise;
+
+ function runCli(app: CliApplication, ignoreArgs?: boolean): Promise;
}
}
diff --git a/types/adone/glosses/archives.d.ts b/types/adone/glosses/archives.d.ts
index 3f059ff14d..ddeb25d891 100644
--- a/types/adone/glosses/archives.d.ts
+++ b/types/adone/glosses/archives.d.ts
@@ -448,7 +448,7 @@ declare namespace adone {
isCompressed(): boolean;
}
- interface ZipFile extends event.EventEmitter {
+ interface ZipFile extends event.Emitter {
/**
* true until close() is called; then it's false
*/
diff --git a/types/adone/glosses/assertion.d.ts b/types/adone/glosses/assertion.d.ts
index e7ba662791..f0cf377a21 100644
--- a/types/adone/glosses/assertion.d.ts
+++ b/types/adone/glosses/assertion.d.ts
@@ -38,7 +38,7 @@ declare namespace adone {
proxyExcludedKeys: string[];
}
- type PossibleTypes = util.I.PossibleTypes | "array";
+ type PossibleTypes = meta.I.PossibleTypes | "array";
type UseFunction = (fn: () => void) => assertion;
@@ -53,18 +53,10 @@ declare namespace adone {
* Throws an AssertionError, like node.js
*/
fail(actual?: any, expected?: any, message?: string, operator?: any): void;
- /**
- * Asserts that value is truthy
- */
- isOk(value: any, message?: string): void;
/**
* Asserts that value is truthy
*/
ok(value: any, message?: string): void;
- /**
- * Asserts that value is falsy
- */
- isNotOk(value: any, message?: string): void;
/**
* Asserts that value is falsy
*/
@@ -104,51 +96,51 @@ declare namespace adone {
/**
* Asserts that value > above
*/
- isAbove(value: any, above: any, message?: string): void;
+ above(value: any, above: any, message?: string): void;
/**
* Asserts that value >= atLeast
*/
- isAtLeast(value: any, atLeast: any, message?: string): void;
+ atLeast(value: any, atLeast: any, message?: string): void;
/**
* Asserts that value < below
*/
- isBelow(value: any, below: any, message?: string): void;
+ below(value: any, below: any, message?: string): void;
/**
* Asserts that value <= atMost
*/
- isAtMost(value: any, atMost: any, message?: string): void;
+ atMost(value: any, atMost: any, message?: string): void;
/**
* Asserts that value is true
*/
- isTrue(value: any, message?: string): void;
+ true(value: any, message?: string): void;
/**
* Asserts that value is not true
*/
- isNotTrue(value: any, message?: string): void;
+ notTrue(value: any, message?: string): void;
/**
* Asserts that value is false
*/
- isFalse(value: any, message?: string): void;
+ false(value: any, message?: string): void;
/**
* Asserts that value is not false
*/
- isNotFalse(value: any, message?: string): void;
+ notFalse(value: any, message?: string): void;
/**
* Asserts that value is null
*/
- isNull(value: any, message?: string): void;
+ null(value: any, message?: string): void;
/**
* Asserts that valus is not null
*/
- isNotNull(value: any, message?: string): void;
+ notNull(value: any, message?: string): void;
/**
* Asserts that value is NaN
*/
- isNaN(value: any, message?: string): void;
+ NaN(value: any, message?: string): void;
/**
* Asserts that value is not NaN
*/
- isNotNaN(value: any, message?: string): void;
+ NotNaN(value: any, message?: string): void;
/**
* Asserts that value is neither null nor undefined
*/
@@ -160,63 +152,63 @@ declare namespace adone {
/**
* Asserts that value is undefined
*/
- isUndefined(value: any, message?: string): void;
+ undefined(value: any, message?: string): void;
/**
* Asserts that value is not undefined
*/
- isDefined(value: any, message?: string): void;
+ defined(value: any, message?: string): void;
/**
* Asserts that value is a function
*/
- isFunction(value: any, message?: string): void;
+ function(value: any, message?: string): void;
/**
* Asserts that value is not a function
*/
- isNotFunction(value: any, message?: string): void;
+ notFunction(value: any, message?: string): void;
/**
* Asserts that value is an object of type Object
*/
- isObject(value: any, message?: string): void;
+ object(value: any, message?: string): void;
/**
* Asserts that value is not an object of type Object
*/
- isNotObject(value: any, message?: string): void;
+ notObject(value: any, message?: string): void;
/**
* Asserts that value is an array
*/
- isArray(value: any, message?: string): void;
+ array(value: any, message?: string): void;
/**
* Asserts that value is not an array
*/
- isNotArray(value: any, message?: string): void;
+ notArray(value: any, message?: string): void;
/**
* Asserts that value is a string
*/
- isString(value: any, message?: string): void;
+ string(value: any, message?: string): void;
/**
* Asserts that value is not a string
*/
- isNotString(value: any, message?: string): void;
+ notString(value: any, message?: string): void;
/**
* Asserts that value is a number
*/
- isNumber(value: any, message?: string): void;
+ number(value: any, message?: string): void;
/**
* Asserts that value is not a number
*/
- isNotNumber(value: any, message?: string): void;
+ notNumber(value: any, message?: string): void;
/**
* Asserts that value is a finite number
*/
- isFinite(value: any, message?: string): void;
+ finite(value: any, message?: string): void;
/**
* Asserts that value is a boolean
*/
- isBoolean(value: any, message?: string): void;
+ boolean(value: any, message?: string): void;
/**
* Asserts that value is not a boolean
*/
- isNotBoolean(value: any, message?: string): void;
+ notBoolean(value: any, message?: string): void;
/**
* Asserts that value's type is `type`
*/
@@ -562,66 +554,34 @@ declare namespace adone {
* Throws an error if value is truthy
*/
ifError(value: any): void;
- /**
- * Asserts that object is extensible
- */
- isExtensible(object: object, message?: string): void;
/**
* Asserts that object is extensible
*/
extensible(object: object, message?: string): void;
- /**
- * Asserts that object is not extensible
- */
- isNotExtensible(object: object, message?: string): void;
/**
* Asserts that object is not extensible
*/
notExtensible(object: object, message?: string): void;
- /**
- * Asserts that object is sealed
- */
- isSealed(object: object, message?: string): void;
/**
* Asserts that object is sealed
*/
sealed(object: object, message?: string): void;
- /**
- * Asserts that object is not sealed
- */
- isNotSealed(object: object, message?: string): void;
/**
* Asserts that object is not sealed
*/
notSealed(object: object, message?: string): void;
- /**
- * Asserts that object is frozen
- */
- isFrozen(object: object, message?: string): void;
/**
* Asserts that object is frozen
*/
frozen(object: object, message?: string): void;
- /**
- * Asserts that object is not frozen
- */
- isNotFrozen(object: object, message?: string): void;
/**
* Asserts that object is not frozen
*/
notFrozen(object: object, message?: string): void;
- /**
- * Asserts that value is empty
- */
- isEmpty(value: any, message?: string): void;
/**
* Asserts that value is empty
*/
empty(value: any, message?: string): void;
- /**
- * Asserts that value is not empty
- */
- isNotEmpty(value: any, message?: string): void;
/**
* Asserts that value is not empty
*/
@@ -710,43 +670,43 @@ declare namespace adone {
/**
* Asserts that the target is non-strictly equal to true
*/
- ok: this;
+ ok(): this;
/**
* Asserts that the target is true
*/
- true: this;
+ true(): this;
/**
* Asserts that the target is false
*/
- false: this;
+ false(): this;
/**
* Asserts that the target is null
*/
- null: this;
+ null(): this;
/**
* Asserts that the target is undefined
*/
- undefined: this;
+ undefined(): this;
/**
* Asserts that the target is NaN
*/
- NaN: this;
+ NaN(): this;
/**
* Asserts that the target is neither null nor undefined
*/
- exist: this;
+ exist(): this;
/**
* Asserts that the target is empty
*/
- empty: this;
+ empty(): this;
/**
* Asserts that the target is an arguments object
*/
- arguments: this;
+ arguments(): this;
/**
* Asserts that the target is an arguments object
*/
- Arguments: this;
+ Arguments(): this;
/**
* Asserts that the target is strictly equal to value(===)
*/
@@ -976,26 +936,26 @@ declare namespace adone {
/**
* Asserts that the target is extensible
*/
- extensible: this;
+ extensible(): this;
/**
* Asserts that the target is sealed
*/
- sealed: this;
+ sealed(): this;
/**
* Asserts that the target is frozen
*/
- frozen: this;
+ frozen(): this;
/**
* Asserts that the target is a finite number
*/
- finite: this;
+ finite(): this;
}
interface MockAssertions extends Assertion {
/**
* Asserts that the spy has been called
*/
- called: this;
+ called(): this;
/**
* Asserts that the spy has been called n times
*/
@@ -1003,15 +963,15 @@ declare namespace adone {
/**
* Asserts that the spy has been called once
*/
- calledOnce: this;
+ calledOnce(): this;
/**
* Asserts that the spy has been called twice
*/
- calledTwice: this;
+ calledTwice(): this;
/**
* Asserts that the spy has been been called with `new`
*/
- calledThrice: this;
+ calledThrice(): this;
/**
* Asserts that the spy has been called before anotherSpy
*/
@@ -1059,7 +1019,7 @@ declare namespace adone {
}
}
- class AssertionError extends x.Exception {
+ class AssertionError extends error.Exception {
constructor(message?: string, props?: object, ssf?: object)
}
diff --git a/types/adone/glosses/collections.d.ts b/types/adone/glosses/collections.d.ts
deleted file mode 100644
index 178921136d..0000000000
--- a/types/adone/glosses/collections.d.ts
+++ /dev/null
@@ -1,1965 +0,0 @@
-declare namespace adone {
- namespace collection {
- namespace I.LinkedList {
- /**
- * Represents the node of a linked list
- */
- interface Node {
- /**
- * The next node
- */
- next?: Node;
-
- /**
- * The previous node
- */
- prev?: Node;
-
- /**
- * The value this node contains
- */
- value: T;
- }
- }
-
- /**
- * Represents a linked list
- */
- class LinkedList {
- /**
- * The maximum length of the list
- */
- readonly maxLength: number;
-
- /**
- * Current length of the list
- */
- readonly length: number;
-
- /**
- * Whether the list is autoresizable
- */
- readonly autoresize: boolean;
-
- /**
- * @param maxLength Maximum length of the linked list
- */
- constructor(maxLength?: number);
-
- /**
- * Whether the list is full
- */
- readonly full: boolean;
-
- /**
- * Whether the list is empty
- */
- readonly empty: boolean;
-
- /**
- * Resizes the list
- */
- resize(newLength: number): this;
-
- /**
- * Adds a new node to the end
- *
- * @returns Added node
- */
- push(value: T): I.LinkedList.Node;
-
- /**
- * Removes the last node, returns undefined if the list is empty
- */
- pop(): T | undefined;
-
- /**
- * Removes the first node, returns undefined if the list is empty
- */
- shift(): T | undefined;
-
- /**
- * Inserts a new node at the beginning of the list
- *
- * @returns Added node
- */
- unshift(value: T): I.LinkedList.Node;
-
- /**
- * Moves the given node to the end of the list
- */
- pushNode(node: I.LinkedList.Node): void;
-
- /**
- * Moved the given node to the beginning of the list
- */
- unshiftNode(node: I.LinkedList.Node): void;
-
- /**
- * Removes the given node from the list
- */
- removeNode(node: I.LinkedList.Node): void;
-
- /**
- * Clears the list
- *
- * @param strong Whether to reset all the node's values
- */
- clear(strong?: boolean): void;
-
- /**
- * Convers the list to an array
- */
- toArray(): T[];
-
- /**
- * The first element of the list
- */
- readonly front: T;
-
- /**
- * The last element of the list
- */
- readonly back: T;
-
- /**
- * Returns an iterator over the list elements
- */
- [Symbol.iterator](): IterableIterator;
-
- /**
- * Returns the next node for the given node
- */
- nextNode(node: I.LinkedList.Node): I.LinkedList.Node;
-
- /**
- * Maps this linked list to a new one using the given function
- */
- map(fn: (value: T, index: number) => R): LinkedList;
-
- /**
- * Invokes the given callback for each value from the beginning to the end (much faster than for-of).
- * If the given function returns false it stops iterating.
- */
- forEach(callback: (value: T, index: number) => void | boolean): void;
-
- /**
- * Default length of a new created linked list
- */
- static DEFAULT_LENGTH: number;
- }
-
- namespace I {
- type Long = math.Long;
-
- type Longable = math.I.Longable;
-
- namespace ByteArray {
- interface Varint32 {
- value: number;
- length: number;
- }
-
- interface Varint64 {
- value: Long;
- length: number;
- }
-
- interface String {
- string: string;
- length: number;
- }
-
- type Wrappable = string | ByteArray | Buffer | Uint8Array | ArrayBuffer;
-
- type Metrics = "b" | "c";
- }
- }
-
- /**
- * Represents an array of bytes, enhanced Node.js Buffer
- */
- class ByteArray {
- /**
- * Constructs a new ByteArray
- *
- * @param capacity Initial capacity. Defaults to ByteArray.DEFAULT_CAPACITY(64)
- * @param noAssert Whether to skip assertions of offsets and values. Defaults to ByteArray.DEFAULT_NOASSERT(false)
- */
- constructor(capacity?: number, noAssert?: boolean);
-
- /**
- * Reads a BitSet as an array of booleans.
- *
- * @param offset Offset to read from. Will use and increase offset by length if omitted.
- */
- readBitSet(offset?: number): boolean[];
-
- /**
- * Reads the specified number of bytes.
- *
- * @param length Number of bytes to read
- * @param offset Offset to read from. Will use and increase offset by length if omitted.
- */
- read(length: number, offset?: number): ByteArray;
-
- /**
- * Reads an 8bit signed integer
- *
- * @param offset Offset to read from
- */
- readInt8(offset?: number): number;
-
- /**
- * Reads an 8bit unsigned integer
- *
- * @param offset Offset to read from
- */
- readUInt8(offset?: number): number;
-
- /**
- * Reads a 16bit signed le integer
- *
- * @param offset Offset to read from
- */
- readInt16LE(offset?: number): number;
-
- /**
- * Reads a 16bit unsigned le integer
- *
- * @param offset Offset to read from
- */
- readUInt16LE(offset?: number): number;
-
- /**
- * Reads a 16bit signed be integer
- *
- * @param offset Offset to read from
- */
- readInt16BE(offset?: number): number;
-
- /**
- * Reads a 16bit unsigned be integer
- *
- * @param offset Offset to read from
- */
- readUInt16BE(offset?: number): number;
-
- /**
- * Reads a 32bit signed le integer
- *
- * @param offset Offset to read from
- */
- readInt32LE(offset?: number): number;
-
- /**
- * Reads a 32bit unsigned le integer
- *
- * @param offset Offset to read from
- */
- readUInt32LE(offset?: number): number;
-
- /**
- * Reads a 32bit signed be integer
- *
- * @param offset Offset to read from
- */
- readInt32BE(offset?: number): number;
-
- /**
- * Reads a 32bit unsigned be integer
- *
- * @param offset Offset to read from
- */
- readUInt32BE(offset?: number): number;
-
- /**
- * Reads a 64bit signed le integer as math.Long
- *
- * @param offset Offset to read from
- */
- readInt64LE(offset?: number): math.Long;
-
- /**
- * Reads a 64bit unsigned le integer as math.Long
- *
- * @param offset Offset to read from
- */
- readUInt64LE(offset?: number): math.Long;
-
- /**
- * Reads a 64bit signed be integer as math.Long
- *
- * @param offset Offset to read from
- */
- readInt64BE(offset?: number): math.Long;
-
- /**
- * Reads a 64bit unsigned be integer as math.Long
- *
- * @param offset Offset to read from
- */
- readUInt64BE(offset?: number): math.Long;
-
- /**
- * Reads a 32bit le float
- *
- * @param offset Offset to read from
- */
- readFloatLE(offset?: number): number;
-
- /**
- * Reads a 32bit be float
- *
- * @param offset Offset to read from
- */
- readFloatBE(offset?: number): number;
-
- /**
- * Reads a 64bit le float
- *
- * @param offset Offset to read from
- */
- readDoubleLE(offset?: number): number;
-
- /**
- * Reads a 64bit be float
- *
- * @param offset Offset to read from
- */
- readDoubleBE(offset?: number): number;
-
- /**
- * Appends some data to this ByteArray.
- * This will overwrite any contents behind the specified offset up to the appended data's length.
- *
- * @param source The source write from
- * @param offset Offset to write to
- * @param length length to read from the source
- * @param encoding encoding to use for wrapping the source in bytearray
- */
- write(source: I.ByteArray.Wrappable, offset?: number, length?: number, encoding?: string): this;
-
- /**
- * Writes the array as a bitset.
- * @param value Array of booleans to write
- */
- writeBitSet(value: number[]): this;
-
- /**
- * Writes the array as a bitset.
- * @param value Array of booleans to write
- * @param offset Offset to write to
- */
- writeBitSet(value: number[], offset: number): number;
-
- /**
- * Writes an 8bit signed integer
- *
- * @param offset Offset to write to
- */
- writeInt8(value: number, offset?: number): this;
-
- /**
- * Writes an 8bit unsigned integer
- *
- * @param offset Offset to write to
- */
- writeUInt8(value: number, offset?: number): this;
-
- /**
- * Writes a 16bit signed le integer
- *
- * @param offset Offset to write to
- */
- writeInt16LE(value: number, offset?: number): this;
-
- /**
- * Writes a 16bit signed be integer
- *
- * @param offset Offset to write to
- */
- writeInt16BE(value: number, offset?: number): this;
-
- /**
- * Writes a 16bit unsigned le integer
- *
- * @param offset Offset to write to
- */
- writeUInt16LE(value: number, offset?: number): this;
-
- /**
- * Writes a 16bit unsigned be integer
- *
- * @param offset Offset to write to
- */
- writeUInt16BE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit signed le integer
- *
- * @param offset Offset to write to
- */
- writeInt32LE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit signed be integer
- *
- * @param offset Offset to write to
- */
- writeInt32BE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit unsigned le integer
- *
- * @param offset Offset to write to
- */
- writeUInt32LE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit unsigned be integer
- *
- * @param offset Offset to write to
- */
- writeUInt32BE(value: number, offset?: number): this;
-
- /**
- * Writes a 64bit signed le long integer
- *
- * @param offset Offset to write to
- */
- writeInt64LE(value: math.Long | string | number, offset?: number): this;
-
- /**
- * Writes a 64bit signed be long integer
- *
- * @param offset Offset to write to
- */
- writeInt64BE(value: math.Long | string | number, offset?: number): this;
-
- /**
- * Writes a 64bit unsigned le long integer
- *
- * @param offset Offset to write to
- */
- writeUInt64LE(value: math.Long | string | number, offset?: number): this;
-
- /**
- * Writes a 64bit unsigned be long integer
- *
- * @param offset Offset to write to
- */
- writeUInt64BE(value: math.Long | string | number, offset?: number): this;
-
- /**
- * Writes a 32bit le float
- *
- * @param offset Offset to write to
- */
- writeFloatLE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit be float
- *
- * @param offset Offset to write to
- */
- writeFloatBE(value: number, offset?: number): this;
-
- /**
- * Writes a 64bit le float
- *
- * @param offset Offset to write to
- */
- writeDoubleLE(value: number, offset?: number): this;
-
- /**
- * Writes a 64bit be float
- *
- * @param offset Offset to write to
- */
- writeDoubleBE(value: number, offset?: number): this;
-
- /**
- * Writes a 32bit base 128 variable-length integer
- */
- writeVarint32(value: number): this;
-
- /**
- * Writes a 32bit base 128 variable-length integer
- *
- * @param offset Offset to write to
- */
- writeVarint32(value: number, offset: number): number;
-
- /**
- * Writes a zig-zag encoded 32bit base 128 variable-length integer
- */
- writeVarint32ZigZag(value: number): this;
-
- /**
- * Writes a zig-zag encoded 32bit base 128 variable-length integer
- *
- * @param offset Offset to write to
- */
- writeVarint32ZigZag(value: number, offset: number): number;
-
- /**
- * Reads a 32bit base 128 variable-length integer
- */
- readVarint32(): number;
-
- /**
- * Reads a 32bit base 128 variable-length integer
- *
- * @param offset Offset to read from
- */
- readVarint32(offset: number): I.ByteArray.Varint32;
-
- /**
- * Reads a zig-zag encoded 32bit base 128 variable-length integer
- */
- readVarint32ZigZag(): number;
-
- /**
- * Reads a zig-zag encoded 32bit base 128 variable-length integer
- *
- * @param offset Offset to read from
- */
- readVarint32ZigZag(offset: number): I.ByteArray.Varint32;
-
- /**
- * Writes a 64bit base 128 variable-length integer
- */
- writeVarint64(value: math.Long | string | number): this;
-
- /**
- * Writes a 64bit base 128 variable-length integer
- *
- * @param offset Offset to write to
- */
- writeVarint64(value: math.Long | string | number, offset: number): number;
-
- /**
- * Writes a zig-zag encoded 64bit base 128 variable-length integer
- */
- writeVarint64ZigZag(value: math.Long | string | number): this;
-
- /**
- * Writes a zig-zag encoded 64bit base 128 variable-length integer
- *
- * @param offset Offset to write to
- */
- writeVarint64ZigZag(value: math.Long | string | number, offset: number): number;
-
- /**
- * Reads a 64bit base 128 variable-length integer
- */
- readVarint64(): I.Long;
-
- /**
- * Reads a 64bit base 128 variable-length integer
- *
- * @param offset Offset to read from
- */
- readVarint64(offset: number): I.ByteArray.Varint64;
-
- /**
- * Reads a zig-zag encoded 64bit base 128 variable-length integer
- */
- readVarint64ZigZag(): math.Long;
-
- /**
- * Reads a zig-zag encoded 64bit base 128 variable-length integer
- *
- * @param offset Offset to read from
- */
- readVarint64ZigZag(offset: number): I.ByteArray.Varint64;
-
- /**
- * Writes a NULL-terminated UTF8 encoded string.
- * For this to work the specified string must not contain any NULL characters itself
- */
- writeCString(str: string): this;
-
- /**
- * Writes a NULL-terminated UTF8 encoded string.
- * For this to work the specified string must not contain any NULL characters itself
- *
- * @param offset Offset to write to
- */
- writeCString(str: string, offset: number): number;
-
- /**
- * Reads a NULL-terminated UTF8 encoded string.
- * For this to work the string read must not contain any NULL characters itself
- */
- readCString(): string;
-
- /**
- * Reads a NULL-terminated UTF8 encoded string.
- * For this to work the string read must not contain any NULL characters itself
- *
- * @param offset Offset to read from
- */
- readCString(offset: number): I.ByteArray.String;
-
- /**
- * Writes an UTF8 encoded string
- */
- writeString(str: string): this;
-
- /**
- * Writes an UTF8 encoded string
- *
- * @param offset Offset to write to
- */
- writeString(str: string, offset: number): number;
-
- /**
- * Reads an UTF8 encoded string
- *
- * @param length Number of characters or bytes to read
- * @param metrics Metrics specifying what n is meant to count. Defaults to ByteArray.METRICS_CHARS("c")
- */
- readString(length: number, metrics?: I.ByteArray.Metrics): string;
-
- /**
- * Reads an UTF8 encoded string
- *
- * @param length Number of characters or bytes to read
- * @param metrics Metrics specifying what n is meant to count. Defaults to ByteArray.METRICS_CHARS("c")
- * @param offset Offset to read from
- */
- readString(length: number, metrics: I.ByteArray.Metrics, offset: number): I.ByteArray.String;
-
- /**
- * Reads an UTF8 encoded string
- *
- * @param length Number of characters or bytes to read
- * @param offset Offset to read from
- */
- readString(length: number, offset: number): I.ByteArray.String;
-
- /**
- * Writes a length as varint32 prefixed UTF8 encoded string
- */
- writeVString(str: string): this;
-
- /**
- * Writes a length as varint32 prefixed UTF8 encoded string
- *
- * @param offset Offset to read from
- */
- writeVString(str: string, offset: number): number;
-
- /**
- * Reads a length as varint32 prefixed UTF8 encoded string
- */
- readVString(): string;
-
- /**
- * Reads a length as varint32 prefixed UTF8 encoded string
- *
- * @param offset Offset to read from
- */
- readVString(offset: number): I.ByteArray.String;
-
- /**
- * Appends this ByteArray's contents to another ByteArray.
- * This will overwrite any contents behind the specified offset up to the length of this ByteArray's data
- *
- * @param offset Offset to append to
- */
- appendTo(target: ByteArray, offset?: number): this;
-
- /**
- * Enables or disables assertions of argument types and offsets.
- * Assertions are enabled by default but you can opt to disable them if your code already makes sure that everything is valid
- */
- assert(assert?: boolean): this;
-
- /**
- * Gets the capacity of this ByteArray's backing buffer
- */
- capacity(): number;
-
- /**
- * Clears this ByteArray's offsets by setting offset to 0 and limit to the backing buffer's capacity
- */
- clear(): this;
-
- /**
- * Creates a cloned instance of this ByteArray,
- * preset with this ByteArray's values for offset, markedOffset and limit
- *
- * @param copy Whether to copy the backing buffer or to return another view on the same, false by default
- */
- clone(copy?: boolean): ByteArray;
-
- /**
- * Compacts this ByteArray to be backed by a buffer of its contents' length.
- * Will set offset = 0 and limit = capacity and adapt markedOffset to the same relative position if set
- *
- * @param begin Offset to start at, buffer offset by default
- * @param end Offset to end at, buffer limit by default
- */
- compact(begin?: number, end?: number): this;
-
- /**
- * Creates a copy of this ByteArray's contents.
- *
- * @param begin Begin offset, buffer offset by default
- * @param end End offset, buffer limit by default
- */
- copy(begin?: number, end?: number): ByteArray;
-
- /**
- * Copies this ByteArray's contents to another ByteArray.
- *
- * @param targetOffset Offset to copy to. Will use and increase the target's offset by the number of bytes copied if omitted
- * @param sourceOffset Offset to start copying from. Will use and increase offset by the number of bytes copied if omitted
- * @param sourceLimit Offset to end copying from, defaults to the buffer limit
- */
- copyTo(target: ByteArray, targetOffset?: number, souceOffset?: number, sourceLimit?: number): this | ByteArray;
-
- /**
- * Makes sure that this ByteArray is backed by a ByteArray#buffer of at least the specified capacity.
- * If the current capacity is exceeded, it will be doubled.
- * If double the current capacity is less than the required capacity, the required capacity will be used instead
- */
- ensureCapacity(capacity: number): this;
-
- /**
- * Overwrites this ByteArray's contents with the specified value.
- *
- * @param value Byte value to fill with. If given as a string, the first character is used
- * @param begin Begin offset. Will use and increase offset by the number of bytes written if omitted. defaults to offset
- * @param end End offset, defaults to limit.
- */
- fill(value: string | number, begin?: number, end?: number): this;
-
- /**
- * Makes this ByteArray ready for a new sequence of write or relative read operations.
- * Sets limit = offset and offset = 0.
- * Make sure always to flip a ByteArray when all relative read or write operations are complete
- */
- flip(): this;
-
- /**
- * Marks an offset on this ByteArray to be used later
- *
- * @param offset Offset to mark. Defaults to offset.
- */
- mark(offset?: number): this;
-
- /**
- * Prepends some data to this ByteArray.
- * This will overwrite any contents before the specified offset up to the prepended data's length.
- * If there is not enough space available before the specified offset,
- * the backing buffer will be resized and its contents moved accordingly
- *
- * @param source Data to prepend
- * @param offset Offset to prepend at. Will use and decrease offset by the number of bytes prepended if omitted.
- */
- prepend(source: I.ByteArray.Wrappable, offset: number): this;
-
- /**
- * Prepends some data to this ByteArray.
- * This will overwrite any contents before the specified offset up to the prepended data's length.
- * If there is not enough space available before the specified offset,
- * the backing buffer will be resized and its contents moved accordingly
- *
- * @param source Data to prepend
- * @param encoding Encoding if data is a string
- * @param offset Offset to prepend at. Will use and decrease offset by the number of bytes prepended if omitted.
- */
- prepend(source: I.ByteArray.Wrappable, encoding?: string, offset?: number): this;
-
- /**
- * Prepends this ByteArray to another ByteArray.
- * This will overwrite any contents before the specified offset up to the prepended data's length.
- * If there is not enough space available before the specified offset,
- * the backing buffer will be resized and its contents moved accordingly
- *
- * @param offset Offset to prepend at
- */
- prependTo(target: ByteArray, offset?: number): this;
-
- /**
- * Gets the number of remaining readable bytes
- */
- remaining(): number;
-
- /**
- * Resets this ByteArray's offset.
- * If an offset has been marked through mark before, offset will be set to markedOffset, which will then be discarded.
- * If no offset has been marked, sets offset = 0
- */
- reset(): this;
-
- /**
- * Resizes this ByteArray to be backed by a buffer of at least the given capacity.
- * Will do nothing if already that large or larger.
- *
- * @param capacity Capacity required
- */
- resize(capacity: number): this;
-
- /**
- * Reverses this ByteArray's contents.
- *
- * @param begin Offset to start at, defaults to offset
- * @param end Offset to end at, defaults to limit
- */
- reverse(begin?: number, end?: number): this;
-
- /**
- * Skips the next length bytes. This will just advance
- */
- skip(length: number): this;
-
- /**
- * Slices this ByteArray by creating a cloned instance with offset = begin and limit = end
- *
- * @param begin Begin offset, defaults to offset
- * @param end End offset, defaults to limit
- */
- slice(begin?: number, end?: number): ByteArray;
-
- /**
- * Returns a copy of the backing buffer that contains this ByteArray's contents.
- *
- * @param forceCopy If true returns a copy, otherwise returns a view referencing the same memory if possible, false by default
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toBuffer(forceCopy?: boolean, begin?: number, end?: number): Buffer;
-
- /**
- * Returns a raw buffer compacted to contain this ByteArray's contents
- */
- toArrayBuffer(): ArrayBuffer;
-
- /**
- * Converts the ByteArray's contents to a string
- *
- * @param encoding Output encoding
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toString(encoding?: string, begin?: number, end?: number): string;
-
- /**
- * Encodes this ByteArray's contents to a base64 encoded string
- *
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toBase64(begin?: number, end?: number): string;
-
- /**
- * Encodes this ByteArray to a binary encoded string, that is using only characters 0x00-0xFF as bytes
- *
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toBinary(begin?: number, end?: number): string;
-
- /**
- * Encodes this ByteArray to a hex encoded string with marked offsets
- *
- * @param columns If true returns two columns hex + ascii, defaults to false
- */
- toDebug(columns?: boolean): string;
-
- /**
- * Encodes this ByteArray's contents to a hex encoded string
- *
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toHex(begin?: number, end?: number): string;
-
- /**
- * Encodes this ByteArray's contents to an UTF8 encoded string
- *
- * @param begin Begin offset, offset by default
- * @param end End offset, limit by default
- */
- toUTF8(begin?: number, end?: number): string;
-
- static accessor(): typeof Buffer;
-
- /**
- * Allocates a new ByteArray backed by a buffer of the specified capacity.
- *
- * @param capacity Initial capacity. Defaults to ByteArray.DEFAULT_CAPACITY(64)
- * @param noAssert Whether to skip assertions of offsets and values. Defaults to ByteArray.DEFAULT_NOASSERT(false)
- */
- static allocate(capacity?: number, noAssert?: boolean): ByteArray;
-
- /**
- * Concatenates multiple ByteArrays into one
- *
- * @param encoding Encoding for strings
- * @param noAssert Whether to skip assertions of offsets and values. Defaults to ByteArray.DEFAULT_NOASSERT(false)
- */
- static concat(buffers: I.ByteArray.Wrappable[], encoding?: string, noAssert?: boolean): ByteArray;
-
- static type(): typeof Buffer;
-
- /**
- * Wraps a buffer or a string.
- * Sets the allocated ByteArray's offset to 0 and its limit to the length of the wrapped data
- *
- * @param encoding Encoding for strings
- * @param noAssert Whether to skip assertions of offsets and values. Defaults to ByteArray.DEFAULT_NOASSERT(false)
- */
- static wrap(buffer: I.ByteArray.Wrappable, encoding?: string, noAssert?: boolean): ByteArray;
-
- /**
- * Calculates the actual number of bytes required to store a 32bit base 128 variable-length integer
- */
- static calculateVarint32(value: number): number;
-
- /**
- * Zigzag encodes a signed 32bit integer so that it can be effectively used with varint encoding
- */
- static zigZagEncode32(n: number): number;
-
- /**
- * Decodes a zigzag encoded signed 32bit integer
- */
- static zigZagDecode32(n: number): number;
-
- /**
- * Calculates the actual number of bytes required to store a 64bit base 128 variable-length integer
- */
- static calculateVarint64(value: number | string): number;
-
- /**
- * Zigzag encodes a signed 64bit integer so that it can be effectively used with varint encoding
- */
- static zigZagEncode64(value: number | string | I.Long): I.Long;
-
- /**
- * Decodes a zigzag encoded signed 64bit integer.
- */
- static zigZagDecode64(value: number | string | I.Long): I.Long;
-
- /**
- * Calculates the number of UTF8 characters of a string.
- * JavaScript itself uses UTF-16,
- * so that a string's length property does not reflect its actual UTF8 size if it contains code points larger than 0xFFFF
- */
- static calculateUTF8Chars(str: string): number;
-
- /**
- * Calculates the number of UTF8 bytes of a string.
- */
- static calculateString(str: string): number;
-
- /**
- * Decodes a base64 encoded string to a ByteArray
- */
- static fromBase64(str: string): ByteArray;
-
- /**
- * Encodes a binary string to base64 like window.btoa does
- */
- static btoa(str: string): string;
-
- /**
- * Decodes a base64 encoded string to binary like window.atob does
- */
- static atob(b64: string): string;
-
- /**
- * Decodes a binary encoded string, that is using only characters 0x00-0xFF as bytes, to a ByteArray
- */
- static fromBinary(str: string): ByteArray;
-
- /**
- * Decodes a hex encoded string with marked offsets to a ByteArray
- */
- static fromDebug(str: string, noAssert?: boolean): ByteArray;
-
- /**
- * Decodes a hex encoded string to a ByteArray
- */
- static fromHex(str: string, noAssert?: boolean): ByteArray;
-
- /**
- * Decodes an UTF8 encoded string to a ByteArray
- */
- static fromUTF8(str: string, noAssert?: boolean): ByteArray;
-
- /**
- * Default initial capacity
- */
- static DEFAULT_CAPACITY: number;
-
- /**
- * Default no assertions flag
- */
- static DEFAULT_NOASSERT: boolean;
-
- /**
- * Maximum number of bytes required to store a 32bit base 128 variable-length integer
- */
- static MAX_VARINT32_BYTES: number;
-
- /**
- * Maximum number of bytes required to store a 64bit base 128 variable-length integer
- */
- static MAX_VARINT64_BYTES: number;
-
- /**
- * Metrics representing number of UTF8 characters. Evaluates to `c`.
- */
- static METRICS_CHARS: string;
-
- /**
- * Metrics representing number of bytes. Evaluates to `b`.
- */
- static METRICS_BYTES: string;
- }
-
- /**
- * Represents a queue
- */
- class Queue {
- /**
- * Whether the queue is full
- */
- readonly full: boolean;
-
- /**
- * The length of the queue
- */
- readonly length: number;
-
- /**
- * Whether the queue is empty
- */
- readonly empty: boolean;
-
- /**
- * Inserts a new element at the end
- */
- push(x: S): this;
-
- /**
- * Removes and returns an element from the beginning
- */
- pop(): T | undefined;
- }
-
- /**
- * Represents an asynchronous queue, each pop is a promise
- * that is resolved with an existing element or an element that will be pushed in the future
- */
- class AsyncQueue extends Queue> {
- /**
- * Returns a promise that will be resolved with an existing element or an element that will be pushed in the future
- */
- pop(): Promise;
- }
-
- namespace I.PriorityQueue {
- interface ConstructorOptions {
- /**
- * Function that compares objects.
- *
- * Must return a positive value if a > b, a negative if a < b, and zero for equal objects
- */
- compare?(a: T, b: T): number;
-
- /**
- * Function that evaluates the priority value by the given objects,
- * if the returned value > 0, then the first argument has higher priority,
- * = 0 same priority, < 0 lower priority.
- * By default the top element is an element that has the highest priority,
- * the default priority function is equal to the compare function
- */
- priority?(a: T, b: T): number;
- }
- }
-
- /**
- * Represents a priority queue
- */
- class PriorityQueue {
- /**
- * Whether the queue is empty
- */
- readonly empty: boolean;
-
- /**
- * The length of the queue
- */
- readonly length: number;
-
- constructor(options?: I.PriorityQueue.ConstructorOptions);
-
- /**
- * Clones the queue
- */
- clone(): PriorityQueue;
-
- /**
- * Inserts a new element
- */
- push(x: T): this;
-
- /**
- * Removes the top element (that has the highest priority)
- */
- pop(): T | undefined;
-
- /**
- * Deletes the given element from the queue
- */
- delete(x: T): this;
-
- /**
- * Replaces the top element (pop + push)
- */
- replace(x: T): T;
-
- /**
- * Faster push + pop
- */
- pushpop(x: T): T;
-
- /**
- * Converts the queue to an array, it works with a clone of the queue, so the original queue is untouched
- */
- toArray(): T[];
-
- /**
- * Creates a queue object from the given iterable
- */
- static from(iterable: Iterable, options?: I.PriorityQueue.ConstructorOptions): PriorityQueue;
- }
-
- /**
- * Represents a faster LRU cache but with less functionality
- */
- class FastLRU {
- /**
- * @param size Cache size, unlimited by default
- */
- constructor(size?: number, options?: {
- /**
- * Function that is called when a value is deleted
- */
- dispose?(key: K, value: V): void
- });
-
- /**
- * The actual size of the cache
- */
- readonly size: number;
-
- /**
- * Gets the value by the given key
- */
- get(key: K): V | undefined;
-
- /**
- * Sets a new value for the given key
- */
- set(key: K, value: V): void;
-
- /**
- * Deletes the given key from the cache
- */
- delete(key: K): boolean;
-
- /**
- * Checks whether the cache has an element with the given key
- */
- has(key: K): boolean;
-
- /**
- * Returns the keys iterator
- */
- keys(): IterableIterator;
-
- /**
- * Returns the values iterator
- */
- values(): IterableIterator;
-
- /**
- * Returns the entries iterator
- */
- entries(): IterableIterator<[K, V]>;
-
- /**
- * Clears the cache
- */
- clear(): void;
- }
-
- /**
- * Represents a stack
- */
- class Stack {
- /**
- * Whether the stack is empty
- */
- readonly empty: boolean;
-
- /**
- * The top element of the stack
- */
- readonly top: T;
-
- /**
- * Inserts a new element
- */
- push(x: T): this;
-
- /**
- * Removes the top element
- */
- pop(): T | undefined;
-
- /**
- * Returns an iterator over the values
- */
- [Symbol.iterator](): IterableIterator;
-
- /**
- * Creates a stack and pushed all the values from the given iterable object
- */
- static from(iterable: Iterable): Stack;
- }
-
- namespace I.BinarySearchTree {
- interface ConstructorOptions {
- /**
- * The parent tree
- */
- parent?: Tree;
-
- /**
- * Value to keep in this node
- */
- value?: V;
-
- /**
- * WHether the values must be unique, false by default.
- * If false you can store many values for same keys, otherwise only one
- */
- unique?: boolean;
-
- /**
- * Custom keys comparator, by default if a > b => -1, a < b -1, a === b => 0
- */
- compareKeys?(a: K, b: K): number;
-
- /**
- * Function that defines whether 2 values are the same, by default a === b
- */
- checkValueEquality?(a: V, b: V): boolean;
- }
-
- interface Query {
- $lt?: K;
- $lte?: K;
- $gt?: K;
- $gte?: K;
- }
- }
-
- /**
- * Represents a binary search tree
- */
- class BinarySearchTree {
- constructor(options?: I.BinarySearchTree.ConstructorOptions>);
-
- /**
- * Returns the max descendant tree
- */
- getMaxKeyDescendant(): BinarySearchTree;
-
- /**
- * Returns the maximum key
- */
- getMaxKey(): K;
-
- /**
- * Returns the min descendant tree
- */
- getMinKeyDescendant(): BinarySearchTree;
-
- /**
- * Returns the minumum key
- */
- getMinKey(): K;
-
- /**
- * Traverses the tree and calls the given function for each node
- */
- checkAllNodesFullfillCondition(test: (key: K, value: V) => void): void;
-
- /**
- * Checks whether the tree is a binary search tree
- */
- checkIsBST(): void;
-
- /**
- * Returns the of keys in the tree
- */
- getNumberOfKeys(): number;
-
- /**
- * Inserts a new key/value
- */
- insert(key: K, value: V): void;
-
- /**
- * Searches the given key in the tree
- */
- search(key: K): V[];
-
- /**
- * Returns all the values from the given key bounds
- */
- betweenBounds(query: I.BinarySearchTree.Query): V[];
-
- /**
- * Deletes the given key/value from the tree
- */
- delete(key: K, value?: V): void;
-
- /**
- * Executed the given callback for each node from left to right
- */
- executeOnEveryNode(fn: (tree: BinarySearchTree) => void): void;
-
- /**
- * Prints the tree
- */
- prettyPrint(printData?: boolean, spacing?: string): void;
- }
-
- /**
- * Represents an AVL tree, a self-balancing binary search tree
- */
- class AVLTree {
- constructor(options?: I.BinarySearchTree.ConstructorOptions>);
-
- /**
- * Checks whether the tree is an avl tree
- */
- checkIsAVLT(): void;
-
- /**
- * Inserts a new key/value
- */
- insert(key: K, value: V): void;
-
- /**
- * Deletes the given key/value from the tree
- */
- delete(key: K, value?: V): void;
-
- /**
- * Returns the of keys in the tree
- */
- getNumberOFKeys(): number;
-
- /**
- * Searches the given key in the tree
- */
- search(key: K): V[];
-
- /**
- * Returns all the values from the given key bounds
- */
- betweenBounds(query: I.BinarySearchTree.Query): V[];
-
- /**
- * Executed the given callback for each node from left to right
- */
- executeOnEveryNode(fn: (tree: AVLTree) => void): void;
-
- /**
- * Prints the tree
- */
- prettyPrint(printDate?: boolean, spacing?: string): void;
- }
-
- namespace I.RedBlackTree {
- interface Node {
- /**
- * The key associated to the node
- */
- key: K;
-
- /**
- * The value associated to the node
- */
- value: V;
-
- /**
- * The left subtree of the node
- */
- left?: Node;
-
- /**
- * The right subtree of the node
- */
- right?: Node;
- }
-
- interface Iterator {
- /**
- * Checks if the iterator is valid
- */
- readonly valid: boolean;
-
- /**
- * The value of the node at the iterator's current position, null if invalid
- */
- readonly node: Node | null;
-
- /**
- * The key of the item referenced by the iterator, undefined if invalid
- */
- readonly key?: K;
-
- /**
- * The value of the item referenced by the iterator, undefined if invalid
- */
- readonly value?: V;
-
- /**
- * Returns the position of this iterator in the sequence
- */
- readonly index: number;
-
- /**
- * If true, then the iterator is not at the end of the sequence
- */
- readonly hasNext: boolean;
-
- /**
- * If true, then the iterator is not at the beginning of the sequence
- */
- readonly hasPrev: boolean;
-
- /**
- * The tree associated to the iterator
- */
- tree: RedBlackTree;
-
- /**
- * Makes a copy of the iterator
- */
- clone(): Iterator;
-
- /**
- * Removes the item at the position of the iterator and returns a new rb-tree
- */
- remove(): RedBlackTree;
-
- /**
- * Advances the iterator to the next position
- */
- next(): void;
-
- /**
- * Updates the value of the node in the tree at this iterator and returns a new rb-tree
- */
- update(value: V): RedBlackTree;
-
- /**
- * Moves the iterator backward one element
- */
- prev(): void;
- }
- }
-
- /**
- * Represents a fully persistent red-black tree
- */
- class RedBlackTree {
- /**
- * The root node of the tree
- */
- root: I.RedBlackTree.Node;
-
- constructor(compare?: (a: K, b: K) => number, root?: RedBlackTree);
-
- /**
- * A sorted array of all the keys in the tree
- */
- readonly keys: K[];
-
- /**
- * An array of all the values in the tree
- */
- readonly values: V[];
-
- /**
- * The number of items in the tree
- */
- readonly length: number;
-
- /**
- * An iterator pointing to the first element in the tree
- */
- readonly begin: I.RedBlackTree.Iterator;
-
- /**
- * An iterator pointing to the last element in the tree
- */
- readonly end: I.RedBlackTree.Iterator;
-
- /**
- * Creates a new tree with the new pair inserted
- */
- insert(key: K, value: V): RedBlackTree;
-
- /**
- * Walks a visitor function over the nodes of the tree in order
- *
- * @param visit A callback that gets executed on each node.
- * If a truthy value is returned from the visitor, then iteration is stopped.
- * @param lo An optional start of the range to visit (inclusive)
- * @param hi An optional end of the range to visit (non-inclusive)
- */
- forEach(visit: (key: K, value: V) => T, lo?: K, hi?: K): T;
-
- /**
- * Finds an iterator starting at the given element
- */
- at(idx: number): I.RedBlackTree.Iterator;
-
- /**
- * Finds the first item in the tree whose key is >= key
- */
- ge(key: K): I.RedBlackTree.Iterator;
-
- /**
- * Finds the first item in the tree whose key is > key
- */
- gt(key: K): I.RedBlackTree.Iterator;
-
- /**
- * Finds the first item in the tree whose key is < key
- */
- lt(key: K): I.RedBlackTree.Iterator;
-
- /**
- * Finds the first item in the tree whose key is <= key
- */
- le(key: K): I.RedBlackTree.Iterator;
-
- /**
- * Returns an iterator pointing to the first item in the tree with key, otherwise null
- */
- find(key: K): I.RedBlackTree.Iterator | null;
-
- /**
- * Removes the first item with key in the tree
- */
- remove(key: K): RedBlackTree;
-
- /**
- * Retrieves the value associated to the given key
- */
- get(key: K): V | undefined;
- }
-
- /**
- * Respresetns a data structure which is a combination of an array and a set.
- * Adding a new member is O(1), testing for membership is O(1),
- * and finding the index of an element is O(1).
- */
- class ArraySet {
- /**
- * The number of unique items in this ArraySet.
- * If duplicates have been added, than those do not count towards the size.
- */
- readonly length: number;
-
- /**
- * Adds the given value to this set.
- *
- * @param allowDuplicates Whether to allow duplicates in the set, false by default
- */
- add(value: T, allowDuplicates?: boolean): this;
-
- /**
- * Checks whether the given value is a member of the set
- */
- has(value: T): boolean;
-
- /**
- * Returns the index of the given element.
- * If the value is not present it will return -1
- */
- indexOf(value: T): number;
-
- /**
- * Converts the set to an array
- */
- toArray(): T[];
-
- /**
- * Creates an ArraySet from the given iterable object
- *
- * @param allowDuplicates Whether to allow duplicates in the set, false by default
- */
- static from(iterable: Iterable, allowDuplicates?: boolean): ArraySet;
- }
-
- namespace I.BufferList {
- type Appendable = Buffer | BufferList | string | number | Array;
- }
-
- /**
- * Represents a Node.js Buffer list collector, reader and streamer with callback/promise interface support
- */
- class BufferList extends std.stream.Duplex implements PromiseLike {
- /**
- * Creates a new buffer list
- */
- constructor();
-
- /**
- * Creates a new buffer list and initiates with the given value
- */
- constructor(buffer: I.BufferList.Appendable);
-
- /**
- * Creates a new buffer list and subscribes the given callback on the end/error event
- */
- constructor(callback: (err: any, data: Buffer) => void);
-
- /**
- * Adds an additional buffer or BufferList to the internal list
- */
- append(buf: I.BufferList.Appendable): this;
-
- /**
- * Ends the stream
- */
- end(chunk?: Buffer): void;
- end(chunk?: () => void): void;
-
- /**
- * Returns the byte at the specified index
- */
- get(idx: number): number;
-
- /**
- * Returns a new Buffer object containing the bytes within the range specified.
- */
- slice(start?: number, end?: number): Buffer;
-
- /**
- * Copies the content of the list in the dest buffer
- * starting from destStart and containing the bytes within the range specified with srcStart to srcEnd
- *
- * @param dstStart writes from this position
- * @param srcStart reads bytes from this position
- * @param srcEnd read bytes to this position
- */
- copy(dst: T, dstStart?: number, srcStart?: number, srcEnd?: number): T;
-
- /**
- * Returns a new BufferList object containing the bytes within the range specified.
- * No copies will be performed. All buffers in the result share memory with the original list.
- *
- * @param start slice from
- * @param end slice to
- */
- shallowSlice(start?: number, end?: number): BufferList;
-
- /**
- * Return a string representation of the buffer
- */
- toString(encoding?: fs.I.Encoding, start?: number, end?: number): string;
-
- /**
- * Shifts bytes off the start of the list
- */
- consume(bytes: number): this;
-
- /**
- * Performs a shallow-copy of the list.
- */
- duplicate(): BufferList;
-
- /**
- * Destroys the stream
- */
- destroy(): void;
-
- then(
- onfulfilled?: ((value: Buffer) => T1 | PromiseLike) | null,
- onrejected?: ((reason: any) => T2 | PromiseLike) | null
- ): PromiseLike;
-
- catch