epoxy-tls-polyfill
v1.0.0
Published
Polyfills for XHR, fetch, and the Brython AJAX interface using epoxy-tls
Maintainers
Readme
epoxy-tls-polyfill
This package provides polyfills for XHR, fetch, and the Brython AJAX interface using epoxy-tls. It allows making web requests using these APIs without CORS restrictions using a Wisp proxy, which keeps your data encrypted unlike HTTP proxies.
Demos
- demo/index.html: A demo of each of the APIs in action.
- demo/frametest.html: An experiment which loads websites into a same-origin iframe, fetching page content using epoxt-tls.
Contents
This package contains four scripts:
javascript.min.js- ForXMLHttpRequestandfetchin JavaScriptbrython.min.js- For theajaxmodule in Brythonjavascript-bundled.min.js- Javascript version bundled withepoxy-tlsbrython-bundled.min.js- Brython version bundled withepoxy-tls
It is strongly recommended to not use the bundled versions unless a single script file is required,
as the base64 encoded bundle is around 500KB larger than dynamically loading the epoxy-tls library.
Installation / Usage
The scripts are designed to be included with <script> tags in an HTML file and require no additional configuration:
<script src="https://cdn.jsdelivr.net/npm/epoxy-tls-polyfill@1/dist/javascript.min.js"></script>If using the Brython versions (brython.min.js or brython-bundled.min.js), place this script after all Brython scripts, for example:
<script src="https://cdn.jsdelivr.net/npm/brython@3/brython.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/brython@3/brython_stdlib.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/epoxy-tls-polyfill@1/dist/brython.min.js"></script>Including both unbundled or both bundled script versions is supported and they will share a single epoxy-tls instance.
Mixing bundled and unbundled versions is untested and may lead to unexpected behavior.
Todo
- Allow configuring the
epoxy-tlsinstance (e.g. proxy URL, theEpoxyClientOptionsobject)
License
The scripts make extensive usage of AGPL code, so the entire package is licensed under AGPLv3.
