From 9ea84be9b26bb59ad7ae3e0ec705a60ea4683c9e Mon Sep 17 00:00:00 2001 From: Casey Occhialini <1508707+littlespex@users.noreply.github.com> Date: Tue, 1 Sep 2026 12:01:39 -0400 Subject: [PATCH] docs: remove stale sax-js references from README Commit 665e022 removed sax from the browser path and dropped the imsc.all.* bundles, but the README still documented both. Update the RUNTIME DEPENDENCIES, QUICK START, API and BUILD sections to match: the native DOMParser is used by default, a custom parser can be passed to fromXML(), and dist contains imsc.debug.js, imsc.min.js and main/. Co-Authored-By: Claude Fable 5 --- README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 8ebf4629..39fb7ef6 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ imscJS bugs are tracked at https://github.com/sandflow/imscJS/issues. RUNTIME DEPENDENCIES ==================== -(required) [sax-js 1.2.1](https://www.npmjs.com/package/sax) +imscJS requires an XML parser. By default it uses the browser's native [`DOMParser`](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser), so no additional library is needed in a browser environment. In environments where `DOMParser` is not available, e.g. Node.js, the caller must provide `fromXML()` with a parser that implements the contract defined in [src/main/js/parser.js](src/main/js/parser.js), e.g. [sax-js](https://www.npmjs.com/package/sax). Rendering to HTML5 requires a browser environment, but parsing an IMSC document and transforming it into ISDs does not. @@ -52,10 +52,9 @@ QUICK START * run the `build` target defined in [Gruntfile.cjs](./Gruntfile.cjs) using [grunt](http://gruntjs.com/). -* the resulting `imsc.js` and `sax.js` files at `build/public_html/libs` are, respectively, the imscJS library and its sax-js dependency. For example, both libraries can be included in a web page as follows: +* the resulting `imsc.js` file at `build/public_html/libs` is the imscJS library. For example, it can be included in a web page as follows: ```html - ``` @@ -71,7 +70,7 @@ API imscJS renders an IMSC document in three distinct steps: -* `fromXML(xmlstring, errorHandler, metadataHandler)` parses the document and returns a TT object. The latter contains opaque representation of the document and exposes the method `getMediaTimeEvents()` that returns a list of time offsets (in seconds) of the ISD, i.e. the points in time where the visual representation of the document change. +* `fromXML(xmlstring, errorHandler, metadataHandler, parser)` parses the document and returns a TT object. The latter contains opaque representation of the document and exposes the method `getMediaTimeEvents()` that returns a list of time offsets (in seconds) of the ISD, i.e. the points in time where the visual representation of the document change. The optional `parser` argument allows the caller to provide an alternative XML parser, e.g. in environments where the browser's native `DOMParser` is not available. * `generateISD(tt, offset, errorHandler)` creates a canonical representation of the document (provided as a TT object generated by `fromXML()`) at a point in time (`offset` parameter). This point in time does not have to be one of the values returned by `getMediaTimeEvents()`. For example, given an ISOBMFF sample covering the interval `[a, b[`, `generateISD(tt, offset, errorHandler)` would be called first with `offset = a`, then in turn with offset set to each value of `getMediaTimeEvents()` that fall in the interval `]a, b[`. @@ -104,12 +103,11 @@ BUILD imscJS is built using the `build:release` or `build:debug` Grunt tasks -- the `build` task is an alias of `build:debug`. The `dist` directory contains the following build artifacts: -* `imsc.all.debug.js`: Non-minified build that includes the sax-js dependency. -* `imsc.all.min.js`: Minified build that includes the sax-js dependency. -* `imsc.debug.js`: Non-minified build that does not include the sax-js dependency. -* `imsc.min.js`: Minified build that does not include the sax-js dependency. +* `imsc.debug.js`: Non-minified UMD build. +* `imsc.min.js`: Minified UMD build. +* `main/`: ES modules and TypeScript type declarations, used when the library is imported as an NPM package. -The `build/public_html/libs/imsc.js` files is identical to: +The `build/public_html/libs/imsc.js` file is identical to: * `imsc.debug.js`, if the `build:debug` task is executed. * `imsc.min.js`, if the `build:release` task is executed.