What is in the Microsoft Teams “Electron” App?

So you decided to install Microsoft Teams eh?
Did you know it is an Electron app?
Do you know what you just did?
Probably not.  Electron is a platform to run node.js and any other supported JavaScript frameworks across multiple platforms.  This means any application that utilizes electron will be made up of many different “inherited” technologies and core components.  Each application is required to provide a license file that defines all the “used” 3rd party components.
So have you checked to see what you have installed when you installed Microsoft Teams?  Its a pretty massive set of frameworks, most open source and available from github.  The list is long and “somewhat” distinguished.
If you weren’t aware of what you just did when you installed Microsoft Teams, this blog post puts it into perspective for you.  This blog post is also used as a reference for a Teams Desktop App deep dive post later this year.  I’ll be updating the usage of each of these components over the next few months and updating as the list changes, so here ya go:

  • electron
    • What is it?
    • Where did it come from?
      • 1.7.1 <https://github.com/electron/electron/archive/v1.7.1.zip>
  • Chromium
    • What is it?
    • Where did it come from?
  • ffmpeg
    • What is it?
    • Where did it come from?
      • 56.0.2924.87 <https://github.com/zcbenz/chromium-source-tarball/releases/download/56.0.2924.87/chromium-56.0.2924.87.tar.xz>
  • debug
    • What is it?
    • Where did it come from?
      • 2.6.3 <https://github.com/visionmedia/debug>
  • socket.io
    0.9.6 <undefined>
  • @nodert-win10/windows.applicationmodel
    0.2.95 <https://github.com/NodeRT/NodeRT>
  • @paulcbetts/cld
    2.4.6 <https://github.com/dachev/cld>
  • @paulcbetts/spellchecker
    4.0.5 <https://github.com/atom/node-spellchecker>
  • ajv
    4.11.8 <https://github.com/epoberezkin/ajv>
  • ansi-regex
    2.1.1 <https://github.com/chalk/ansi-regex>
  • ansi-styles
    2.2.1 <https://github.com/chalk/ansi-styles>
  • asn1
    0.2.3 <https://github.com/mcavage/node-asn1>
  • assert-plus
    1.0.0 <https://github.com/mcavage/node-assert-plus>
  • async2.2.0 <https://github.com/caolan/async>
  • asynckit
    0.4.0 <https://github.com/alexindigo/asynckit>
  • aws-sign2
    0.6.0 <https://github.com/mikeal/aws-sign>
  • aws4
    1.6.0 <https://github.com/mhart/aws4>
  • azure-storage
    2.3.0 <https://github.com/Azure/azure-storage-node>
  • balanced-match
    0.4.2 <https://github.com/juliangruber/balanced-match>
  • bcrypt-pbkdf
    1.0.1 <>
  • bl
    1.0.3 <https://github.com/rvagg/bl>
  • boom
    2.10.1 <https://github.com/hapijs/boom>
  • brace-expansion
    1.1.6 <https://github.com/juliangruber/brace-expansion>
  • browserify-mime
    1.2.9 <https://github.com/broofa/node-mime>
  • caseless
    0.12.0 <https://github.com/mikeal/caseless>
  • chalk
    1.1.3 <https://github.com/chalk/chalk>
  • co
    4.6.0 <https://github.com/tj/co>
  • combined-stream
    1.0.5 <https://github.com/felixge/node-combined-stream>
  • commander
    2.9.0 <https://github.com/tj/commander.js>
  • concat-map
    0.0.1 <https://github.com/substack/node-concat-map>
  • core-util-is
    1.0.2 <https://github.com/isaacs/core-util-is>
  • cryptiles
    2.0.5 <https://github.com/hapijs/cryptiles>
  • d
    1.0.0 <https://github.com/medikoo/d>
  • dashdash
    1.14.1 <https://github.com/trentm/node-dashdash>
  • delayed-stream
    1.0.0 <https://github.com/felixge/node-delayed-stream>
  • ecc-jsbn
    0.1.1 <https://github.com/quartzjer/ecc-jsbn>
  • electron-remote
    1.1.2 <https://github.com/paulcbetts/electron-remote>
  • electron-spellchecker
    1.0.4 <https://github.com/paulcbetts/electron-spellchecker>
  • emissary
    1.3.3 <https://github.com/atom/emissary>
  • es5-ext
    0.10.15 <https://github.com/medikoo/es5-ext>
  • es6-iterator
    2.0.1 <https://github.com/medikoo/es6-iterator>
  • es6-symbol
    3.1.1 <https://github.com/medikoo/es6-symbol>
  • es6-weak-map
    0.1.4 <https://github.com/medikoo/es6-weak-map>
  • escape-string-regexp
    1.0.5 <https://github.com/sindresorhus/escape-string-regexp>
  • event-kit
    1.5.0 <https://github.com/atom/event-kit>
  • extend
    3.0.0 <https://github.com/justmoon/node-extend>
  • extsprintf
    1.0.2 <https://github.com/davepacheco/node-extsprintf>
  • forever-agent
    0.6.1 <https://github.com/mikeal/forever-agent>
  • form-data
    2.1.4 <https://github.com/form-data/form-data>
  • fs-jetpack
    0.6.5 <https://github.com/szwacz/fs-jetpack>
  • fs.realpath
    1.0.0 <https://github.com/isaacs/fs.realpath>
  • generate-function
    2.0.0 <https://github.com/mafintosh/generate-function>
  • generate-object-property
    1.2.0 <https://github.com/mafintosh/generate-object-property>
  • getpass
    0.1.6 <https://github.com/arekinath/node-getpass>
  • glob
    7.1.1 <https://github.com/isaacs/node-glob>
  • graceful-readlink
    1.0.1 <https://github.com/zhiyelee/graceful-readlink>
  • grim
    1.5.0 <https://github.com/atom/grim>
  • har-schema
    1.0.5 <https://github.com/ahmadnassri/har-schema>
  • har-validator
    4.2.1 <https://github.com/ahmadnassri/har-validator>
  • has-ansi
    2.0.0 <https://github.com/sindresorhus/has-ansi>
  • hash-base
    3.0.4 <https://github.com/crypto-browserify/hash-base>
  • hashids
    1.1.1 <https://github.com/ivanakimov/hashids.js>
  • hawk
    3.1.3 <https://github.com/hueniverse/hawk>
  • hoek
    2.16.3 <https://github.com/hapijs/hoek>
  • http-signature
    1.1.1 <https://github.com/joyent/node-http-signature>
  • inflight
    1.0.6 <https://github.com/npm/inflight>
  • inherits
    2.0.3 <https://github.com/isaacs/inherits>
  • is-my-json-valid
    2.16.0 <https://github.com/mafintosh/is-my-json-valid>
  • is-property
    1.0.2 <https://github.com/mikolalysenko/is-property>
  • is-typedarray
    1.0.0 <https://github.com/hughsk/is-typedarray>
  • isarray
    1.0.0 <https://github.com/juliangruber/isarray>
  • isstream
    0.1.2 <https://github.com/rvagg/isstream>
  • jodid25519
    1.0.2 <https://github.com/meganz/jodid25519>
  • jsbn
    0.1.1 <https://github.com/andyperlitch/jsbn>
  • json-edm-parser
    0.1.2 <https://github.com/yaxia/json-edm-parser>
  • json-schema
    0.2.3 <https://github.com/kriszyp/json-schema>
  • json-stable-stringify
    1.0.1 <https://github.com/substack/json-stable-stringify>
  • json-stringify-safe
    5.0.1 <https://github.com/isaacs/json-stringify-safe>
  • jsonify
    0.0.0 <https://github.com/substack/jsonify>
  • jsonparse
    1.2.0 <https://github.com/creationix/jsonparse>
  • jsonpointer
    4.0.1 <https://github.com/janl/node-jsonpointer>
  • jsprim
    1.4.0 <https://github.com/joyent/node-jsprim>
  • jwt-decode
    2.1.0 <https://github.com/auth0/jwt-decode>
  • keyboard-layout
    2.0.11 <https://github.com/atom/keyboard-layout>
  • keytar4
    4.0.2 <https://github.com/atom/node-keytar>
  • keytar
    3.0.2 <https://github.com/atom/node-keytar>
  • lodash.assign
    4.2.0 <https://github.com/lodash/lodash>
  • lodash
    4.17.2 <https://github.com/lodash/lodash>
  • lru-cache
    4.0.2 <https://github.com/isaacs/node-lru-cache>
  • md5.js
    1.3.4 <https://github.com/crypto-browserify/md5.js>
  • mime-db
    1.27.0 <https://github.com/jshttp/mime-db>
  • mime-types
    2.1.15 <https://github.com/jshttp/mime-types>
  • minimatch
    3.0.3 <https://github.com/isaacs/minimatch>
  • minimist
    0.0.8 <https://github.com/substack/minimist>
  • mixto
    1.0.0 <https://github.com/atom/mixto>
  • mkdirp
    0.5.1 <https://github.com/substack/node-mkdirp>
  • ms
    0.7.2 <https://github.com/zeit/ms>
  • nan
    2.7.0 <https://github.com/nodejs/nan>
  • node-uuid
    1.4.7 <https://github.com/broofa/node-uuid>
  • oauth-sign
    0.8.2 <https://github.com/mikeal/oauth-sign>
  • once
    1.4.0 <https://github.com/isaacs/once>
  • path-is-absolute
    1.0.1 <https://github.com/sindresorhus/path-is-absolute>
  • performance-now
    0.2.0 <https://github.com/meryn/performance-now>
  • pify
    2.3.0 <https://github.com/sindresorhus/pify>
  • pinkie-promise
    2.0.1 <https://github.com/floatdrop/pinkie-promise>
  • pinkie
    2.0.4 <https://github.com/floatdrop/pinkie>
  • process-nextick-args
    1.0.7 <https://github.com/calvinmetcalf/process-nextick-args>
  • property-accessors
    1.1.3 <https://github.com/atom/property-accessors>
  • pseudomap
    1.0.2 <https://github.com/isaacs/pseudomap>
  • punycode
    1.4.1 <https://github.com/bestiejs/punycode.js>
  • qs
    6.4.0 <https://github.com/ljharb/qs>
  • readable-stream
    2.0.6 <https://github.com/nodejs/readable-stream>
  • request
    2.81.0 <https://github.com/request/request>
  • rimraf
    2.6.1 <https://github.com/isaacs/rimraf>
  • rxjs-serial-subscription
    0.1.1 <https://github.com/paulcbetts/rxjs-serial-subscription>
  • rxjs
    5.2.0 <https://github.com/ReactiveX/RxJS>
  • safe-buffer
    5.1.1 <https://github.com/feross/safe-buffer>
  • sax
    0.5.2 <https://github.com/isaacs/sax-js>
  • semver
    5.1.0 <https://github.com/npm/node-semver>
  • sntp
    1.0.9 <https://github.com/hueniverse/sntp>
  • spawn-rx
    2.0.10 <https://github.com/paulcbetts/spawn-rx>
  • sshpk
    1.11.0 <https://github.com/arekinath/node-sshpk>
  • string_decoder
    0.10.31 <https://github.com/rvagg/string_decoder>
  • stringstream
    0.0.5 <https://github.com/mhart/StringStream>
  • strip-ansi
    3.0.1 <https://github.com/chalk/strip-ansi>
  • supports-color
    2.0.0 <https://github.com/chalk/supports-color>
  • symbol-observable
    1.0.4 <https://github.com/blesh/symbol-observable>
  • tough-cookie
    2.3.2 <https://github.com/salesforce/tough-cookie>
  • tunnel-agent
    0.6.0 <https://github.com/mikeal/tunnel-agent>
  • tweetnacl
    0.14.5 <https://github.com/dchest/tweetnacl-js>
  • underscore-plus
    1.6.6 <https://github.com/atom/underscore-plus>
  • underscore
    1.8.3 <https://github.com/jashkenas/underscore>
  • util-deprecate
    1.0.2 <https://github.com/TooTallNate/util-deprecate>
  • uuid
    3.1.0 <https://github.com/kelektiv/node-uuid>
  • v8-profiler-jrieken
    5.6.5 <https://github.com/node-inspector/v8-profiler>
  • valid-url
    1.0.9 <https://github.com/ogt/valid-url>
  • validator
    3.35.0 <https://github.com/chriso/validator.js>
  • verror
    1.3.6 <https://github.com/davepacheco/node-verror>
  • wrappy
    1.0.2 <https://github.com/npm/wrappy>
  • xml2js
    0.2.7 <https://github.com/Leonidas-from-XIV/node-xml2js>
  • xmlbuilder
    0.4.3 <https://github.com/oozcitak/xmlbuilder-js>
  • xmlhttprequest
    1.8.0 <https://github.com/driverdan/node-XMLHttpRequest>
  • xtend
    4.0.1 <https://github.com/Raynos/xtend>
  • yallist
    2.1.2 <https://github.com/isaacs/yallist>