Skip to content
WIP - Splitting wombat.js library from pywb
JavaScript HTML Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
internal
src
test
.eslintrc.json
.gitignore
.npmignore
.travis.yml
LICENSE.md
README.md
bootstrap.sh
package.json
rollup.config.dev.js
rollup.config.prod.js
rollup.config.test.js
yarn.lock

README.md

Wombat

Wombat is a standalone client-side URL rewriting system that performs the rewrites through targeted JavaScript overrides.

Wombat was originally included in and distributed as part of pywb but has now been refactored and split off into this module for improved maintainance.

pywb release >=2.3 rely on this standalone module. This standalone module now includes a thorough testing suite that checks for the correctness of the overrides with respect to web standards.

The remaining portions of this documentation covers the development and testing of the library, as well as, the creation of the system from library.

Before we continue, please note the following terminology:

  • bundle
    A single file that is the result of concatenating multiple source files into a single file

  • bundle entry point
    The root file that imports all additional functionality required to produce the resulting bundle

Components

The Wombat client-side URL rewriting system is comprised of three files (bundles)

  • wombat.js
  • wombatProxyMode.js
  • wombatWorkers.js

These files are located in the static directory of pywb and are generated as apart of the libraries build step.

The library can be found in the wombat directory located int the root of the projects repository (i.e. pywb/wombat).

Note: We do not go into details of each file included in a bundle as those details are out of the scope of this documentation and ask those interested to consult the documentation included in each files source code.

wombat.js

This bundle is the primary bundle of Wombat as it is used in both non-proxy recording and replay.

The entry point for this bundle is src/wbWombat.js.

An representation of the bundles contents is shown below.

wbWombat.js
 - wombat.js
   - funcMap.js
   - customStorage.js
   - wombatLocation.js
   - listeners.js
   - autoFetchWorker.js

wombatProxyMode.js

This bundle is an stripped down version of wombat.js that applies a minimal set of overrides to the browsers JavaScript APIs in order to facilitate pywb's proxy recording mode

The entry point for this bundle is src/wbWombatProxyMode.js

An representation of the bundles contents is shown below.

wbWombatProxyMode.js
 - wombatLite.js
   - autoFetchWorkerProxyMode.js

wombatWorkers.js

This bundle is not a bundle per say but rather a flat file that applies the minimal set of overrides necessary to ensure that JavaScript web and service worker's operate as expected in both non-proxy recording and replay.

You can’t perform that action at this time.