From 13c3da20211fc718cefd64082e277b099bc4b0b8 Mon Sep 17 00:00:00 2001 From: Daniel Silhavy Date: Mon, 29 Apr 2024 13:59:00 +0200 Subject: [PATCH] Add documentation for dependencies --- pages/advanced/mpd-patching.md | 0 pages/developers/dependencies.md | 65 +++++++++++++++++++++++++------- 2 files changed, 52 insertions(+), 13 deletions(-) create mode 100644 pages/advanced/mpd-patching.md diff --git a/pages/advanced/mpd-patching.md b/pages/advanced/mpd-patching.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pages/developers/dependencies.md b/pages/developers/dependencies.md index aca8e2582c..70d077ae49 100644 --- a/pages/developers/dependencies.md +++ b/pages/developers/dependencies.md @@ -4,20 +4,59 @@ title: Dependencies parent: Developers --- +# Dependencies -## 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 | -|:------------------------------------|:---------------------------------------------------------| -| `karma` | Testrunner for unit and functional tests | -| `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-webpack` | Webpack bundler for Karma testcases. | +| 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 |