This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greatest.deepsurf.us/scripts/509664/1455336/WME%20Utils%20-%20Bootstrap.js
      
    Usage:
// Add this to your userscript header:
// @require    https://update.greatest.deepsurf.us/scripts/509664/WME%20Utils%20-%20Bootstrap.js
// If using WazeWrap and/or its ScriptUpdateMonitor feature, be sure to also include this in the userscript header:
// @require    https://greatest.deepsurf.us/scripts/24851-wazewrap/code/WazeWrap.js
let wmeSdk; // A "global" variable to store your WmeSdk reference.
function init(sdk) { // sdk is passed to init (callback function) by bootstrap. Alternative, async/await or Promise.then() may be used.
    // Store the reference to the sdk
    wmeSdk = sdk;
    // The rest of your init code...
}
bootstrap({
    scriptName: 'My Script',
    scriptId: 'myScript',
    useWazeWrap: true,
    scriptUpdateMonitor: {
        scriptVersion: '1.0',
        downloadUrl: 'https://...',
        metaUrl: 'https://...',
        metaRegExp: /some regex/ 
    },
    init
});
// OR...
bootstrap({
    scriptName: 'My Script',
    scriptId: 'myScript',
    useWazeWrap: true,
    scriptUpdateMonitor: {
        scriptVersion: '1.0',
        downloadUrl: 'https://...',
        metaUrl: 'https://...',
        metaRegExp: /some regex/ 
    }
}).then(sdk => init(sdk));
// OR...
// NOTE: if using await, the outer function must be declared async, e.g. your IIFE
wmeSdk = await bootstrap({
    scriptName: 'My Script',
    scriptId: 'myScript',
    useWazeWrap: true,
    scriptUpdateMonitor: {
        scriptVersion: '1.0',
        downloadUrl: 'https://...',
        metaUrl: 'https://...',
        metaRegExp: /some regex/ 
    }
});
init();
The options object passed to bootstrap:
- scriptName: The name of your script. Used in initializing the WME SDK and for ScriptUpdateMonitor alerts (if using WazeWrap.Alerts.ScriptUpdateMonitor)
 
- scriptId: Used in initializing the WME SDK
 
- useWazeWrap: OPTIONAL. Set to true if your script uses the WazeWrap library (you must still @require it in your script header). Must be set to true if using ScriptUpdateMonitor.
 
- scriptUpdateMonitor: OPTIONAL. An object containing the following properties, only needed if using ScriptUpdateMonitor.
- scriptVersion: The current version of your script.
 
- downloadUrl: The download URL of your script.
 
- metaUrl: OPTIONAL. A page containing script version information. Scripts on Greasy Fork do not need to use this.
 
- metaRegExp: OPTIONAL. A regular expression that returns the script version from the metaUrl page. Scripts on Greasy Fork do not need to use this.
 
 
- callback: OPTIONAL. A function to call once bootstrapping is completed. The WmeSdk object will be passed as the first argument to the function. Alternatively, use 
bootstrap(...).then(sdk => init(sdk)); or sdk = await bootstrap(...); init();