Dependencies

dash.js relies on multiple other NPM packages to implement media player functionalities and for tasks related to development. The dependencies are listed in package.json and are installed when running npm install.

Direct Dependencies

Package Usage
@svta/common-media-library Implements common media player functionalities such as ID3 parsing and CMCD encoding
bcp-47-match Match BCP 47 language tags with language ranges per RFC 4647
bcp-47-normalize Normalize, canonicalize, and format BCP 47 tags
codem-isoboxer ISOBMFF box parser used to parse boxes such as EMSG
fast-deep-equal Used to deep compare two objects
html-entities Used to decoded HTML entities when playing in offline mode
imsc Library for rendering IMSC 1.0.1 and IMSC 1.1 documents to HTML5
localforage Storage library used for offline playback
path-browserify Node path library used to extract and compare URLs
ua-parser-js Parsing library used to identify the browser and/or the underlying platform

Dev Dependencies

Package Usage  
@babel/core Required by babel-loader for Webpack and transpiling to ES5  
@babel/eslint-parser Allows ESLint to run on source code that is transformed by Babel.  
@babel/preset-env Required by babel-loader for Webpack and transpiling to ES5  
babel-loader Used for transpiling JavaScript by Webpack  
chai Assertion library used by the Karma testing framework  
chai-spies Addon plugin for the chai assertion library. It provides the most basic function spy ability and tests.  
clean-jsdoc-theme Clean and fully responsive theme to generate the JSDoc.  
eslint Tool for identifying and reporting on patterns found in JavaScript code  
eslint-webpack-plugin Webpack plugin to run ESLint  
karma Testrunner for unit and functional tests  
karma-browserstack-launcher Launch tests on Browserstack via Karma  
karma-chai Use asserts like “expect” from the chai library  
karma-chrome-launcher Launches Chrome for unit and functional tests  
karma-coverage Creates coverage report for unit tests  
karma-firefox-launcher Launches Firefox for unit and functional tests  
karma-htmlfile-reporter Creates an HTML test report for functional tests  
karma-junit-reporter Creates a JUnit test report for unit and functional test  
karma-mocha Testframework for unit and functional tests  
karma-mocha-reporter Mocha like test output for unit tests  
karma-webdriver-launche Run Karma tests using Webdriver. Required for test execution via Selenium  
karma-webpack Webpack bundler for Karma testcases.  
mocha JavaScript test framework for our unit and functional tests  
rimraf Dependency to remove dist folder before building dash.js  
sinon Standalone and test framework agnostic JavaScript test spies, stubs and mocks  
stream-browserify The stream module from node core, for browsers  
string-replace-loader Used to perform text replacements when building with webpack  
typescript TypeScript adds optional types to JavaScript  
webpack Module bundler used to create the dash.js builds  
webpack-cli Allows setup of webpack custom configuration  
webpack-dev-server Development server that uses webpack for bundling  
webpack-merge Used to merge Webpack configuration files  
yargs Parses arguments provided via command line for execution of functional tests