Skip to content

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

PackageUsage
@svta/cml-608Parsing of CEA-608 embedded captions
@svta/cml-cmcdCMCD (Common Media Client Data) encoding
@svta/cml-cmsdCMSD (Common Media Server Data) parsing
@svta/cml-dashCommon DASH utilities, e.g. for segment handling
@svta/cml-id3Parsing of ID3 timed metadata
@svta/cml-requestCommonMediaRequest/CommonMediaResponse types used by the HTTP loading stack and the network interceptor API
@svta/cml-xmlXML parsing used by the manifest parser
bcp-47-matchMatch BCP 47 language tags with language ranges per RFC 4647
codem-isoboxerISOBMFF box parser used to parse boxes such as EMSG
fast-deep-equalUsed to deep compare two objects
html-entitiesUsed to decode HTML entities when playing in offline mode
imscLibrary for rendering IMSC 1.0.1 and IMSC 1.1 documents to HTML5
localforageStorage library used for offline playback
path-browserifyNode path library used to extract and compare URLs

Dev Dependencies

PackageUsage
@babel/coreRequired by babel-loader for Webpack and transpiling to ES5
@babel/eslint-parserAllows ESLint to run on source code that is transformed by Babel
@babel/plugin-transform-parametersTransforms ES2015 parameters to ES5 as part of the Webpack process
@babel/plugin-transform-runtimeA plugin that enables the re-use of Babel's injected helper code to save on codesize
@babel/preset-envRequired by babel-loader for Webpack and transpiling to ES5
@babel/runtimeBabel's runtime helpers referenced by the transpiled legacy build
@chiragrupani/karma-chromium-edge-launcherAn Edge launcher for Karma that is used for executing functional tests in the Edge browser
@eslint/jsESLint JavaScript language implementation
babel-loaderUsed for transpiling JavaScript by Webpack
babel-plugin-istanbulInstruments the source code for unit test coverage reports
bufferNode Buffer polyfill for the browser bundles
chaiAssertion library used by the Karma testing framework
chai-spiesAddon plugin for the chai assertion library. It provides the most basic function spy ability and tests
clean-jsdoc-themeClean and fully responsive theme to generate the JSDoc
concurrentlyRuns the modern and legacy Webpack builds in parallel
core-jsModular standard library for JavaScript to polyfill ECMAScript features
es-checkVerifies that the built bundles conform to the targeted ECMAScript versions
eslintTool for identifying and reporting on patterns found in JavaScript code
globalsGlobal identifiers from different JavaScript environments
jsdocGenerates the API documentation from the JSDoc comments in the source code
karmaTestrunner for unit and functional tests
karma-browserstack-launcherLaunch tests on Browserstack via Karma
karma-chaiUse asserts like "expect" from the chai library
karma-chrome-launcherLaunches Chrome for unit and functional tests
karma-coverageCreates coverage report for unit tests
karma-firefox-launcherLaunches Firefox for unit and functional tests
karma-htmlfile-reporterCreates an HTML test report for functional tests
karma-junit-reporterCreates a JUnit test report for unit and functional test
karma-mochaTestframework for unit and functional tests
karma-mocha-reporterMocha like test output for unit tests
karma-safarinative-launcherLaunches Safari for test execution on macOS
karma-webpackWebpack bundler for Karma testcases
mermaidRenders the architecture diagrams in this documentation
mochaJavaScript test framework for our unit and functional tests
niseFake XHR/server implementations used in unit tests
publintLints package.json and the published package for packaging errors
rimrafDependency to remove dist folder before building dash.js
sinonStandalone and test framework agnostic JavaScript test spies, stubs and mocks
stream-browserifyThe stream module from node core, for browsers
string-replace-loaderUsed to perform text replacements when building with webpack
timers-browserifyAdds support for the timers module to browserify
typescriptTypeScript adds optional types to JavaScript; used to verify index.d.ts
vitepressStatic site generator used to build this documentation site
vitepress-plugin-mermaidMermaid diagram support for the documentation site
webpackModule bundler used to create the dash.js builds
webpack-cliAllows setup of webpack custom configuration
webpack-dev-serverDevelopment server that uses webpack for bundling
webpack-mergeUsed to merge Webpack configuration files
yargsParses arguments provided via command line for execution of functional tests