{"version":3,"sources":["webpack://singleSpa/webpack/universalModuleDefinition","webpack://singleSpa/webpack/bootstrap","webpack://singleSpa/./node_modules/custom-event/index.js","webpack://singleSpa/(webpack)/buildin/global.js","webpack://singleSpa/./src/applications/app-errors.js","webpack://singleSpa/./src/applications/app.helpers.js","webpack://singleSpa/./src/applications/apps.js","webpack://singleSpa/./src/applications/timeouts.js","webpack://singleSpa/./src/devtools/devtools.js","webpack://singleSpa/./src/jquery-support.js","webpack://singleSpa/./src/lifecycles/bootstrap.js","webpack://singleSpa/./src/lifecycles/lifecycle.helpers.js","webpack://singleSpa/./src/lifecycles/load.js","webpack://singleSpa/./src/lifecycles/mount.js","webpack://singleSpa/./src/lifecycles/prop.helpers.js","webpack://singleSpa/./src/lifecycles/unload.js","webpack://singleSpa/./src/lifecycles/unmount.js","webpack://singleSpa/./src/lifecycles/update.js","webpack://singleSpa/./src/navigation/navigation-events.js","webpack://singleSpa/./src/navigation/reroute.js","webpack://singleSpa/./src/parcels/mount-parcel.js","webpack://singleSpa/./src/single-spa.js","webpack://singleSpa/./src/start.js","webpack://singleSpa/./src/utils/find.js"],"names":["errorHandlers","handleAppError","err","app","transformedErr","transformErr","length","forEach","handler","setTimeout","addErrorHandler","Error","push","removeErrorHandler","removedSomething","filter","h","isHandler","ogErr","appOrParcel","objectType","unmountThisParcel","errPrefix","name","status","result","message","console","warn","JSON","stringify","appName","NOT_LOADED","LOADING_SOURCE_CODE","NOT_BOOTSTRAPPED","BOOTSTRAPPING","NOT_MOUNTED","MOUNTING","MOUNTED","UPDATING","UNMOUNTING","UNLOADING","SKIP_BECAUSE_BROKEN","isActive","isntActive","isLoaded","isntLoaded","shouldBeActive","activeWhen","window","location","shouldntBeActive","notBootstrapped","notSkipped","item","toName","apps","getMountedApps","map","getAppNames","getRawAppData","getAppStatus","find","declareChildApplication","arg1","arg2","registerApplication","applicationOrLoadingFn","activityFn","customProps","indexOf","Array","isArray","loadImpl","Promise","resolve","parcels","devtools","overlays","options","selectors","ensureJQuerySupport","reroute","checkActivityFunctions","activeApps","i","getAppsToLoad","getAppsToUnmount","getAppsToMount","unloadChildApplication","opts","unloadApplication","waitForUnmount","App","appUnloadInfo","getAppUnloadInfo","promise","reject","addAppToUnload","resultPromise","immediatelyUnloadApp","toUnmountPromise","then","toUnloadPromise","catch","globalTimeoutConfig","bootstrap","millis","dieOnTimeout","mount","unmount","unload","setBootstrapMaxTime","time","setMountMaxTime","setUnmountMaxTime","setUnloadMaxTime","reasonableTime","description","timeoutConfig","warningPeriod","finished","errored","val","maybeTimingOut","shouldError","error","numWarnings","numMillis","ensureValidAppTimeouts","timeouts","toLoadPromise","toBootstrapPromise","hasInitialized","jQuery","$","fn","jquery","originalJQueryOn","on","originalJQueryOff","off","eventString","captureRoutingEvents","call","addEventListener","arguments","removeEventListener","originalJQueryFunction","nativeFunctionToCall","originalArgs","apply","eventNames","split","eventName","routingEventsListeningTo","replace","trim","hardFail","getProps","validLifecycleFn","isArrayOfFns","arr","flattenFnArray","fns","props","waitForPromises","index","smellsLikeAPromise","appOpts","loadPromise","validationErrMessage","beforeFirstMountFired","firstMountFired","toMountPromise","dispatchEvent","CustomEvent","mountParcel","bind","singleSpa","unmountSelf","appsToUnload","unloadInfo","finishUnloadingApp","errorUnloadingApp","promiseGetter","Object","defineProperty","get","getAppsToUnload","keys","unmountChildrenParcels","parcelId","parcelError","all","unmountAppOrParcel","parentError","toUpdatePromise","parcel","update","capturedEventListeners","hashchange","popstate","navigateToUrl","obj","url","href","currentTarget","preventDefault","current","parseUri","destination","hash","anchor","host","isTestingEnv","wouldHaveReloadedThePage","isSamePath","path","history","pushState","callCapturedEventListeners","eventArguments","eventType","type","listener","urlReroute","originalAddEventListener","originalRemoveEventListener","listenerFn","originalPushState","state","originalReplaceState","replaceState","singleSpaNavigate","str","parseOptions","strictMode","key","q","parser","strict","loose","o","m","exec","uri","$0","$1","$2","appChangeUnderway","peopleWaitingOnAppChange","pendingPromises","wasNoOp","isStarted","performAppChanges","loadApps","loadPromises","finishUpAndReturn","callAllEventListeners","getCustomEventDetail","unloadPromises","unmountUnloadPromises","unmountPromise","allUnmountPromises","concat","unmountAllPromise","appsToLoad","loadThenMountPromises","mountPromises","appToMount","callEventListeners","returnValue","appChangeEventName","nextPendingPromises","pendingPromise","detail","originalEvent","parcelCount","rootParcels","mountRootParcel","config","owningAppOrParcel","domElement","id","passedConfigLoadingFunction","configLoadingFunction","parentName","value","resolveUnmount","rejectUnmount","externalRepresentation","promiseWithoutReturnValue","bootstrapPromise","mountPromise","getStatus","__SINGLE_SPA_DEVTOOLS__","exposedMethods","started","start","startWarningDelay","func"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;ACjFA;;AAEA;AACA;AACA,0CAA0C,UAAU,aAAa,EAAE;AACnE;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/CA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAIA,aAAa,GAAG,EAApB;AAEO,SAASC,cAAT,CAAwBC,GAAxB,EAA6BC,GAA7B,EAAkC;AACvC,MAAMC,cAAc,GAAGC,YAAY,CAACH,GAAD,EAAMC,GAAN,CAAnC;;AAEA,MAAIH,aAAa,CAACM,MAAlB,EAA0B;AACxBN,iBAAa,CAACO,OAAd,CAAsB,UAAAC,OAAO;AAAA,aAAIA,OAAO,CAACJ,cAAD,CAA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","file":"single-spa.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"singleSpa\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"singleSpa\"] = factory();\n\telse\n\t\troot[\"singleSpa\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","\nvar NativeCustomEvent = global.CustomEvent;\n\nfunction useNative () {\n try {\n var p = new NativeCustomEvent('cat', { detail: { foo: 'bar' } });\n return 'cat' === p.type && 'bar' === p.detail.foo;\n } catch (e) {\n }\n return false;\n}\n\n/**\n * Cross-browser `CustomEvent` constructor.\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent.CustomEvent\n *\n * @public\n */\n\nmodule.exports = useNative() ? NativeCustomEvent :\n\n// IE >= 9\n'undefined' !== typeof document && 'function' === typeof document.createEvent ? function CustomEvent (type, params) {\n var e = document.createEvent('CustomEvent');\n if (params) {\n e.initCustomEvent(type, params.bubbles, params.cancelable, params.detail);\n } else {\n e.initCustomEvent(type, false, false, void 0);\n }\n return e;\n} :\n\n// IE <= 8\nfunction CustomEvent (type, params) {\n var e = document.createEventObject();\n e.type = type;\n if (params) {\n e.bubbles = Boolean(params.bubbles);\n e.cancelable = Boolean(params.cancelable);\n e.detail = params.detail;\n } else {\n e.bubbles = false;\n e.cancelable = false;\n e.detail = void 0;\n }\n return e;\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","let errorHandlers = []\n\nexport function handleAppError(err, app) {\n const transformedErr = transformErr(err, app);\n\n if (errorHandlers.length) {\n errorHandlers.forEach(handler => handler(transformedErr));\n } else {\n setTimeout(() => {\n throw transformedErr;\n });\n }\n}\n\nexport function addErrorHandler(handler) {\n if (typeof handler !== 'function') {\n throw new Error('a single-spa error handler must be a function');\n }\n\n errorHandlers.push(handler);\n}\n\nexport function removeErrorHandler(handler) {\n if (typeof handler !== 'function') {\n throw new Error('a single-spa error handler must be a function');\n }\n\n let removedSomething = false;\n errorHandlers = errorHandlers.filter(h => {\n const isHandler = h === handler;\n removedSomething = removedSomething || isHandler;\n return !isHandler;\n })\n\n return removedSomething;\n}\n\nexport function transformErr(ogErr, appOrParcel) {\n const objectType = appOrParcel.unmountThisParcel ? 'Parcel' : 'Application';\n const errPrefix = `${objectType} '${appOrParcel.name}' died in status ${appOrParcel.status}: `;\n\n let result;\n\n if (ogErr instanceof Error) {\n try {\n ogErr.message = errPrefix + ogErr.message;\n } catch(err) {\n /* Some errors have read-only message properties, in which case there is nothing\n * that we can do.\n */\n }\n result = ogErr;\n } else {\n console.warn(`While ${appOrParcel.status}, '${appOrParcel.name}' rejected its lifecycle function promise with a non-Error. This will cause stack traces to not be accurate.`);\n try {\n result = new Error(errPrefix + JSON.stringify(ogErr));\n } catch(err) {\n // If it's not an Error and you can't stringify it, then what else can you even do to it?\n result = ogErr;\n }\n }\n\n result.appName = appOrParcel.name;\n result.name = appOrParcel.name\n\n return result;\n}\n","import { handleAppError } from './app-errors.js';\n\n// App statuses\nexport const NOT_LOADED = 'NOT_LOADED';\nexport const LOADING_SOURCE_CODE = 'LOADING_SOURCE_CODE';\nexport const NOT_BOOTSTRAPPED = 'NOT_BOOTSTRAPPED';\nexport const BOOTSTRAPPING = 'BOOTSTRAPPING';\nexport const NOT_MOUNTED = 'NOT_MOUNTED';\nexport const MOUNTING = 'MOUNTING';\nexport const MOUNTED = 'MOUNTED';\nexport const UPDATING = 'UPDATING';\nexport const UNMOUNTING = 'UNMOUNTING';\nexport const UNLOADING = 'UNLOADING';\nexport const SKIP_BECAUSE_BROKEN = 'SKIP_BECAUSE_BROKEN';\n\nexport function isActive(app) {\n return app.status === MOUNTED;\n}\n\nexport function isntActive(app) {\n return !isActive(app);\n}\n\nexport function isLoaded(app) {\n return app.status !== NOT_LOADED && app.status !== LOADING_SOURCE_CODE;\n}\n\nexport function isntLoaded(app) {\n return !isLoaded(app);\n}\n\nexport function shouldBeActive(app) {\n try {\n return app.activeWhen(window.location);\n } catch (err) {\n handleAppError(err, app);\n app.status = SKIP_BECAUSE_BROKEN;\n }\n}\n\nexport function shouldntBeActive(app) {\n try {\n return !app.activeWhen(window.location);\n } catch (err) {\n handleAppError(err, app);\n app.status = SKIP_BECAUSE_BROKEN;\n }\n}\n\nexport function notBootstrapped(app) {\n return app.status !== NOT_BOOTSTRAPPED;\n}\n\nexport function notSkipped(item) {\n return item !== SKIP_BECAUSE_BROKEN && (!item || item.status !== SKIP_BECAUSE_BROKEN);\n}\n\nexport function toName(app) {\n return app.name;\n}\n","import { ensureJQuerySupport } from '../jquery-support.js';\nimport { isActive, isLoaded, isntLoaded, toName, NOT_LOADED, shouldBeActive, shouldntBeActive, isntActive, notSkipped } from './app.helpers.js';\nimport { reroute } from 'src/navigation/reroute.js';\nimport { find } from 'src/utils/find.js';\nimport { toUnmountPromise } from 'src/lifecycles/unmount.js';\nimport { toUnloadPromise, getAppUnloadInfo, addAppToUnload } from 'src/lifecycles/unload.js';\n\nconst apps = [];\n\nexport function getMountedApps() {\n return apps.filter(isActive).map(toName);\n}\n\nexport function getAppNames() {\n return apps.map(toName);\n}\n\n// used in devtools, not (currently) exposed as a single-spa API\nexport function getRawAppData() {\n return [...apps];\n}\n\nexport function getAppStatus(appName) {\n const app = find(apps, app => app.name === appName);\n return app ? app.status : null;\n}\n\nexport function declareChildApplication(appName, arg1, arg2) {\n console.warn('declareChildApplication is deprecated and will be removed in the next major version, use \"registerApplication\" instead')\n return registerApplication(appName, arg1, arg2)\n}\n\nexport function registerApplication(appName, applicationOrLoadingFn, activityFn, customProps = {}) {\n if (typeof appName !== 'string' || appName.length === 0)\n throw new Error(`The first argument must be a non-empty string 'appName'`);\n if (getAppNames().indexOf(appName) !== -1)\n throw new Error(`There is already an app declared with name ${appName}`);\n if (typeof customProps !== 'object' || Array.isArray(customProps))\n throw new Error('customProps must be an object');\n\n if (!applicationOrLoadingFn)\n throw new Error(`The application or loading function is required`);\n\n let loadImpl;\n if (typeof applicationOrLoadingFn !== 'function') {\n // applicationOrLoadingFn is an application\n loadImpl = () => Promise.resolve(applicationOrLoadingFn);\n } else {\n // applicationOrLoadingFn is a loadingFn\n loadImpl = applicationOrLoadingFn;\n }\n\n if (typeof activityFn !== 'function')\n throw new Error(`The activeWhen argument must be a function`);\n\n apps.push({\n name: appName,\n loadImpl,\n activeWhen: activityFn,\n status: NOT_LOADED,\n parcels: {},\n devtools: {\n overlays: {\n options: {},\n selectors: [],\n }\n },\n customProps\n });\n\n ensureJQuerySupport();\n\n reroute();\n}\n\nexport function checkActivityFunctions(location) {\n const activeApps = []\n for (let i = 0; i < apps.length; i++) {\n if (apps[i].activeWhen(location)) {\n activeApps.push(apps[i].name)\n }\n }\n return activeApps\n}\n\nexport function getAppsToLoad() {\n return apps\n .filter(notSkipped)\n .filter(isntLoaded)\n .filter(shouldBeActive)\n}\n\nexport function getAppsToUnmount() {\n return apps\n .filter(notSkipped)\n .filter(isActive)\n .filter(shouldntBeActive)\n}\n\nexport function getAppsToMount() {\n return apps\n .filter(notSkipped)\n .filter(isntActive)\n .filter(isLoaded)\n .filter(shouldBeActive)\n}\n\nexport function unloadChildApplication(appName, opts) {\n console.warn('unloadChildApplication is deprecated and will be removed in the next major version, use \"unloadApplication\" instead')\n return unloadApplication(appName, opts)\n}\n\nexport function unloadApplication(appName, opts={waitForUnmount: false}) {\n if (typeof appName !== 'string') {\n throw new Error(`unloadApplication requires a string 'appName'`);\n }\n const app = find(apps, App => App.name === appName);\n if (!app) {\n throw new Error(`Could not unload application '${appName}' because no such application has been declared`);\n }\n\n const appUnloadInfo = getAppUnloadInfo(app.name);\n if (opts && opts.waitForUnmount) {\n // We need to wait for unmount before unloading the app\n\n if (appUnloadInfo) {\n // Someone else is already waiting for this, too\n return appUnloadInfo.promise;\n } else {\n // We're the first ones wanting the app to be resolved.\n const promise = new Promise((resolve, reject) => {\n addAppToUnload(app, () => promise, resolve, reject);\n });\n return promise;\n }\n } else {\n /* We should unmount the app, unload it, and remount it immediately.\n */\n\n let resultPromise;\n\n if (appUnloadInfo) {\n // Someone else is already waiting for this app to unload\n resultPromise = appUnloadInfo.promise;\n immediatelyUnloadApp(app, appUnloadInfo.resolve, appUnloadInfo.reject);\n } else {\n // We're the first ones wanting the app to be resolved.\n resultPromise = new Promise((resolve, reject) => {\n addAppToUnload(app, () => resultPromise, resolve, reject);\n immediatelyUnloadApp(app, resolve, reject);\n });\n }\n\n return resultPromise;\n }\n}\n\nfunction immediatelyUnloadApp(app, resolve, reject) {\n toUnmountPromise(app)\n .then(toUnloadPromise)\n .then(() => {\n resolve()\n setTimeout(() => {\n // reroute, but the unload promise is done\n reroute()\n });\n })\n .catch(reject);\n}\n","const globalTimeoutConfig = {\n bootstrap: {\n millis: 4000,\n dieOnTimeout: false,\n },\n mount: {\n millis: 3000,\n dieOnTimeout: false,\n },\n unmount: {\n millis: 3000,\n dieOnTimeout: false,\n },\n unload: {\n millis: 3000,\n dieOnTimeout: false,\n },\n};\n\nexport function setBootstrapMaxTime(time, dieOnTimeout = false) {\n if (typeof time !== 'number' || time <= 0) {\n throw new Error(`bootstrap max time must be a positive integer number of milliseconds`);\n }\n\n globalTimeoutConfig.bootstrap = {\n millis: time,\n dieOnTimeout,\n };\n}\n\nexport function setMountMaxTime(time, dieOnTimeout = false) {\n if (typeof time !== 'number' || time <= 0) {\n throw new Error(`mount max time must be a positive integer number of milliseconds`);\n }\n\n globalTimeoutConfig.mount = {\n millis: time,\n dieOnTimeout,\n };\n}\n\nexport function setUnmountMaxTime(time, dieOnTimeout = false) {\n if (typeof time !== 'number' || time <= 0) {\n throw new Error(`unmount max time must be a positive integer number of milliseconds`);\n }\n\n globalTimeoutConfig.unmount = {\n millis: time,\n dieOnTimeout,\n };\n}\n\nexport function setUnloadMaxTime(time, dieOnTimeout = false) {\n if (typeof time !== 'number' || time <= 0) {\n throw new Error(`unload max time must be a positive integer number of milliseconds`);\n }\n\n globalTimeoutConfig.unload = {\n millis: time,\n dieOnTimeout,\n };\n}\n\nexport function reasonableTime(promise, description, timeoutConfig) {\n const warningPeriod = 1000;\n\n return new Promise((resolve, reject) => {\n let finished = false;\n let errored = false;\n\n promise\n .then(val => {\n finished = true;\n resolve(val);\n })\n .catch(val => {\n finished = true;\n reject(val);\n });\n\n setTimeout(() => maybeTimingOut(1), warningPeriod);\n setTimeout(() => maybeTimingOut(true), timeoutConfig.millis);\n\n function maybeTimingOut(shouldError) {\n if (!finished) {\n if (shouldError === true) {\n errored = true;\n if (timeoutConfig.dieOnTimeout) {\n reject(`${description} did not resolve or reject for ${timeoutConfig.millis} milliseconds`);\n } else {\n console.error(`${description} did not resolve or reject for ${timeoutConfig.millis} milliseconds -- we're no longer going to warn you about it.`);\n //don't resolve or reject, we're waiting this one out\n }\n } else if (!errored) {\n const numWarnings = shouldError;\n const numMillis = numWarnings * warningPeriod;\n console.warn(`${description} did not resolve or reject within ${numMillis} milliseconds`);\n if (numMillis + warningPeriod < timeoutConfig.millis) {\n setTimeout(() => maybeTimingOut(numWarnings + 1), warningPeriod);\n }\n }\n }\n }\n });\n}\n\nexport function ensureValidAppTimeouts(timeouts = {}) {\n return {\n ...globalTimeoutConfig,\n ...timeouts,\n }\n}\n","import {getRawAppData} from '../applications/apps'\nimport {reroute} from '../navigation/reroute'\nimport {NOT_LOADED} from '../applications/app.helpers'\nimport {toLoadPromise} from '../lifecycles/load'\nimport {toBootstrapPromise} from '../lifecycles/bootstrap'\n\nexport default {\n getRawAppData,\n reroute,\n NOT_LOADED,\n toLoadPromise,\n toBootstrapPromise,\n}\n\n","import { routingEventsListeningTo } from './navigation/navigation-events.js';\n\nlet hasInitialized = false;\n\nexport function ensureJQuerySupport(jQuery = window.jQuery) {\n if (!jQuery) {\n if (window.$ && window.$.fn && window.$.fn.jquery) {\n jQuery = window.$;\n }\n }\n\n if (jQuery && !hasInitialized) {\n const originalJQueryOn = jQuery.fn.on;\n const originalJQueryOff = jQuery.fn.off;\n\n jQuery.fn.on = function(eventString, fn) {\n return captureRoutingEvents.call(this, originalJQueryOn, window.addEventListener, eventString, fn, arguments);\n }\n\n jQuery.fn.off = function(eventString, fn) {\n return captureRoutingEvents.call(this, originalJQueryOff, window.removeEventListener, eventString, fn, arguments);\n }\n\n hasInitialized = true;\n }\n}\n\nfunction captureRoutingEvents(originalJQueryFunction, nativeFunctionToCall, eventString, fn, originalArgs) {\n if (typeof eventString !== 'string') {\n return originalJQueryFunction.apply(this, originalArgs);\n }\n\n const eventNames = eventString.split(/\\s+/);\n eventNames.forEach(eventName => {\n if (routingEventsListeningTo.indexOf(eventName) >= 0) {\n nativeFunctionToCall(eventName, fn);\n eventString = eventString.replace(eventName, '');\n }\n });\n\n if (eventString.trim() === '') {\n return this;\n } else {\n return originalJQueryFunction.apply(this, originalArgs);\n }\n}\n","import { NOT_BOOTSTRAPPED, BOOTSTRAPPING, NOT_MOUNTED, SKIP_BECAUSE_BROKEN } from '../applications/app.helpers.js';\nimport { reasonableTime } from '../applications/timeouts.js';\nimport { handleAppError, transformErr } from '../applications/app-errors.js';\nimport { getProps } from './prop.helpers.js'\n\nexport function toBootstrapPromise(appOrParcel, hardFail = false) {\n return Promise.resolve().then(() => {\n if (appOrParcel.status !== NOT_BOOTSTRAPPED) {\n return appOrParcel;\n }\n\n appOrParcel.status = BOOTSTRAPPING;\n\n return reasonableTime(appOrParcel.bootstrap(getProps(appOrParcel)), `Bootstrapping appOrParcel '${appOrParcel.name}'`, appOrParcel.timeouts.bootstrap)\n .then(() => {\n appOrParcel.status = NOT_MOUNTED;\n return appOrParcel;\n })\n .catch(err => {\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n if (hardFail) {\n const transformedErr = transformErr(err, appOrParcel)\n throw transformedErr\n } else {\n handleAppError(err, appOrParcel);\n return appOrParcel;\n }\n })\n })\n}\n","import { find } from 'src/utils/find.js';\n\nexport function validLifecycleFn(fn) {\n return fn && (typeof fn === 'function' || isArrayOfFns(fn));\n\n function isArrayOfFns(arr) {\n return Array.isArray(arr) && !find(arr, item => typeof item !== 'function');\n }\n}\n\nexport function flattenFnArray(fns, description) {\n fns = Array.isArray(fns) ? fns : [fns];\n if (fns.length === 0) {\n fns = [() => Promise.resolve()];\n }\n\n return function(props) {\n return new Promise((resolve, reject) => {\n waitForPromises(0);\n\n function waitForPromises(index) {\n const promise = fns[index](props);\n if (!smellsLikeAPromise(promise)) {\n reject(`${description} at index ${index} did not return a promise`);\n } else {\n promise\n .then(() => {\n if (index === fns.length - 1) {\n resolve();\n } else {\n waitForPromises(index + 1);\n }\n })\n .catch(reject);\n }\n }\n });\n }\n}\n\nexport function smellsLikeAPromise(promise) {\n return promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n}\n","import { NOT_BOOTSTRAPPED, LOADING_SOURCE_CODE, SKIP_BECAUSE_BROKEN, NOT_LOADED } from '../applications/app.helpers.js';\nimport { ensureValidAppTimeouts } from '../applications/timeouts.js';\nimport { handleAppError } from '../applications/app-errors.js';\nimport { flattenFnArray, smellsLikeAPromise, validLifecycleFn } from './lifecycle.helpers.js';\nimport { getProps } from './prop.helpers.js';\n\nexport function toLoadPromise(app) {\n return Promise.resolve().then(() => {\n if (app.status !== NOT_LOADED) {\n return app;\n }\n\n app.status = LOADING_SOURCE_CODE;\n\n let appOpts;\n\n return Promise.resolve().then(() => {\n const loadPromise = app.loadImpl(getProps(app));\n if (!smellsLikeAPromise(loadPromise)) {\n // The name of the app will be prepended to this error message inside of the handleAppError function\n throw new Error(`single-spa loading function did not return a promise. Check the second argument to registerApplication('${app.name}', loadingFunction, activityFunction)`);\n }\n return loadPromise.then(val => {\n appOpts = val;\n\n let validationErrMessage;\n\n if (typeof appOpts !== 'object') {\n validationErrMessage = `does not export anything`;\n }\n\n if (!validLifecycleFn(appOpts.bootstrap)) {\n validationErrMessage = `does not export a bootstrap function or array of functions`;\n }\n\n if (!validLifecycleFn(appOpts.mount)) {\n validationErrMessage = `does not export a mount function or array of functions`;\n }\n\n if (!validLifecycleFn(appOpts.unmount)) {\n validationErrMessage = `does not export an unmount function or array of functions`;\n }\n\n if (validationErrMessage) {\n handleAppError(validationErrMessage, app);\n app.status = SKIP_BECAUSE_BROKEN;\n return app;\n }\n\n if (appOpts.devtools && appOpts.devtools.overlays) {\n app.devtools.overlays = {...app.devtools.overlays, ...appOpts.devtools.overlays}\n }\n\n app.status = NOT_BOOTSTRAPPED;\n app.bootstrap = flattenFnArray(appOpts.bootstrap, `App '${app.name}' bootstrap function`);\n app.mount = flattenFnArray(appOpts.mount, `App '${app.name}' mount function`);\n app.unmount = flattenFnArray(appOpts.unmount, `App '${app.name}' unmount function`);\n app.unload = flattenFnArray(appOpts.unload || [], `App '${app.name}' unload function`);\n app.timeouts = ensureValidAppTimeouts(appOpts.timeouts);\n\n return app;\n })\n })\n .catch(err => {\n handleAppError(err, app);\n app.status = SKIP_BECAUSE_BROKEN;\n return app;\n })\n })\n}\n","import { NOT_MOUNTED, MOUNTED, SKIP_BECAUSE_BROKEN } from '../applications/app.helpers.js';\nimport { handleAppError, transformErr } from '../applications/app-errors.js';\nimport { reasonableTime } from '../applications/timeouts.js';\nimport CustomEvent from 'custom-event';\nimport { getProps } from './prop.helpers.js';\n\nlet beforeFirstMountFired = false;\nlet firstMountFired = false;\n\nexport function toMountPromise(appOrParcel, hardFail = false) {\n return Promise.resolve().then(() => {\n if (appOrParcel.status !== NOT_MOUNTED) {\n return appOrParcel;\n }\n\n if (!beforeFirstMountFired) {\n window.dispatchEvent(new CustomEvent('single-spa:before-first-mount'));\n beforeFirstMountFired = true;\n }\n\n return reasonableTime(appOrParcel.mount(getProps(appOrParcel)), `Mounting application '${appOrParcel.name}'`, appOrParcel.timeouts.mount)\n .then(() => {\n appOrParcel.status = MOUNTED;\n\n if (!firstMountFired) {\n window.dispatchEvent(new CustomEvent('single-spa:first-mount'));\n firstMountFired = true;\n }\n\n return appOrParcel;\n })\n .catch(err => {\n if (!hardFail) {\n handleAppError(err, appOrParcel);\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n return appOrParcel;\n } else {\n const transformedErr = transformErr(err, appOrParcel)\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n throw transformedErr\n }\n })\n })\n}\n","import * as singleSpa from 'src/single-spa.js'\nimport { mountParcel } from 'src/parcels/mount-parcel.js';\n\nexport function getProps(appOrParcel) {\n const result = {\n ...appOrParcel.customProps,\n name: appOrParcel.name,\n mountParcel: mountParcel.bind(appOrParcel),\n singleSpa\n };\n\n if (appOrParcel.unmountThisParcel) {\n result.unmountSelf = appOrParcel.unmountThisParcel;\n }\n\n return result;\n}\n","import { NOT_MOUNTED, UNLOADING, NOT_LOADED, SKIP_BECAUSE_BROKEN, isntActive } from '../applications/app.helpers.js';\nimport { handleAppError } from '../applications/app-errors.js';\nimport { reasonableTime } from '../applications/timeouts.js';\nimport { getProps } from './prop.helpers.js';\n\nconst appsToUnload = {};\n\nexport function toUnloadPromise(app) {\n return Promise.resolve().then(() => {\n const unloadInfo = appsToUnload[app.name];\n\n if (!unloadInfo) {\n /* No one has called unloadApplication for this app,\n */\n return app;\n }\n\n if (app.status === NOT_LOADED) {\n /* This app is already unloaded. We just need to clean up\n * anything that still thinks we need to unload the app.\n */\n finishUnloadingApp(app, unloadInfo);\n return app;\n }\n\n if (app.status === UNLOADING) {\n /* Both unloadApplication and reroute want to unload this app.\n * It only needs to be done once, though.\n */\n return unloadInfo.promise.then(() => app);\n }\n\n if (app.status !== NOT_MOUNTED) {\n /* The app cannot be unloaded until it is unmounted.\n */\n return app;\n }\n\n app.status = UNLOADING;\n return reasonableTime(app.unload(getProps(app)), `Unloading application '${app.name}'`, app.timeouts.unload)\n .then(() => {\n finishUnloadingApp(app, unloadInfo);\n return app;\n })\n .catch(err => {\n errorUnloadingApp(app, unloadInfo, err);\n return app;\n })\n })\n}\n\nfunction finishUnloadingApp(app, unloadInfo) {\n delete appsToUnload[app.name];\n\n // Unloaded apps don't have lifecycles\n delete app.bootstrap;\n delete app.mount;\n delete app.unmount;\n delete app.unload;\n\n app.status = NOT_LOADED;\n\n /* resolve the promise of whoever called unloadApplication.\n * This should be done after all other cleanup/bookkeeping\n */\n unloadInfo.resolve();\n}\n\nfunction errorUnloadingApp(app, unloadInfo, err) {\n delete appsToUnload[app.name];\n\n // Unloaded apps don't have lifecycles\n delete app.bootstrap;\n delete app.mount;\n delete app.unmount;\n delete app.unload;\n\n handleAppError(err, app);\n app.status = SKIP_BECAUSE_BROKEN;\n unloadInfo.reject(err);\n}\n\nexport function addAppToUnload(app, promiseGetter, resolve, reject) {\n appsToUnload[app.name] = {app, resolve, reject};\n Object.defineProperty(appsToUnload[app.name], 'promise', {get: promiseGetter});\n}\n\nexport function getAppUnloadInfo(appName) {\n return appsToUnload[appName];\n}\n\nexport function getAppsToUnload() {\n return Object.keys(appsToUnload)\n .map(appName => appsToUnload[appName].app)\n .filter(isntActive)\n}\n","import { UNMOUNTING, NOT_MOUNTED, MOUNTED, SKIP_BECAUSE_BROKEN } from '../applications/app.helpers.js';\nimport { handleAppError, transformErr } from '../applications/app-errors.js';\nimport { reasonableTime } from '../applications/timeouts.js';\nimport { getProps } from './prop.helpers.js';\n\nexport function toUnmountPromise(appOrParcel, hardFail = false) {\n return Promise.resolve().then(() => {\n if (appOrParcel.status !== MOUNTED) {\n return appOrParcel;\n }\n appOrParcel.status = UNMOUNTING;\n\n const unmountChildrenParcels = Object.keys(appOrParcel.parcels)\n .map(parcelId => appOrParcel.parcels[parcelId].unmountThisParcel());\n\n let parcelError;\n\n return Promise.all(unmountChildrenParcels)\n .then(\n unmountAppOrParcel,\n parcelError => {\n // There is a parcel unmount error\n return unmountAppOrParcel()\n .then(() => {\n // Unmounting the app/parcel succeeded, but unmounting its children parcels did not\n const parentError = new Error(parcelError.message)\n if (hardFail) {\n const transformedErr = transformErr(parentError, appOrParcel)\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n throw transformedErr\n } else {\n handleAppError(parentError, appOrParcel);\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n }\n })\n }\n )\n .then(() => appOrParcel)\n\n function unmountAppOrParcel() {\n // We always try to unmount the appOrParcel, even if the children parcels failed to unmount.\n return reasonableTime(appOrParcel.unmount(getProps(appOrParcel)), `Unmounting application ${appOrParcel.name}'`, appOrParcel.timeouts.unmount)\n .then(() => {\n // The appOrParcel needs to stay in a broken status if its children parcels fail to unmount\n if (!parcelError) {\n appOrParcel.status = NOT_MOUNTED;\n }\n })\n .catch(err => {\n if (hardFail) {\n const transformedErr = transformErr(err, appOrParcel);\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n throw transformedErr;\n } else {\n handleAppError(err, appOrParcel);\n appOrParcel.status = SKIP_BECAUSE_BROKEN;\n }\n })\n }\n })\n}\n","import { UPDATING, MOUNTED, SKIP_BECAUSE_BROKEN } from '../applications/app.helpers.js';\nimport { transformErr } from '../applications/app-errors.js';\nimport { reasonableTime } from '../applications/timeouts.js';\nimport { getProps } from './prop.helpers.js';\n\nexport function toUpdatePromise(parcel) {\n return Promise.resolve().then(() => {\n if (parcel.status !== MOUNTED) {\n throw new Error(`Cannot update parcel '${parcel.name}' because it is not mounted`)\n }\n\n parcel.status = UPDATING;\n\n return reasonableTime(parcel.update(getProps(parcel)), `Updating parcel '${parcel.name}'`, parcel.timeouts.mount)\n .then(() => {\n parcel.status = MOUNTED;\n return parcel;\n })\n .catch(err => {\n const transformedErr = transformErr(err, parcel)\n parcel.status = SKIP_BECAUSE_BROKEN;\n throw transformedErr;\n })\n })\n}\n\n","import { reroute } from './reroute.js';\nimport { find } from 'src/utils/find.js';\n\n/* We capture navigation event listeners so that we can make sure\n * that application navigation listeners are not called until\n * single-spa has ensured that the correct applications are\n * unmounted and mounted.\n */\nconst capturedEventListeners = {\n hashchange: [],\n popstate: [],\n};\n\nexport const routingEventsListeningTo = ['hashchange', 'popstate'];\n\nexport function navigateToUrl(obj, opts={}) {\n let url;\n if (typeof obj === 'string') {\n url = obj ;\n } else if (this && this.href) {\n url = this.href;\n } else if (obj && obj.currentTarget && obj.currentTarget.href && obj.preventDefault) {\n url = obj.currentTarget.href;\n obj.preventDefault();\n } else {\n throw new Error(`singleSpaNavigate must be either called with a string url, with an tag as its context, or with an event whose currentTarget is an tag`);\n }\n\n const current = parseUri(window.location.href);\n const destination = parseUri(url);\n\n if (url.indexOf('#') === 0) {\n window.location.hash = '#' + destination.anchor;\n } else if (current.host !== destination.host && destination.host) {\n if (opts.isTestingEnv) {\n return {wouldHaveReloadedThePage: true};\n } else {\n window.location.href = url;\n }\n } else if (!isSamePath(destination.path, current.path)) {\n // different path or a different host\n window.history.pushState(null, null, url);\n } else {\n window.location.hash = '#' + destination.anchor;\n }\n\n function isSamePath(destination, current) {\n // if the destination has a path but no domain, it doesn't include the root '/'\n return current === destination || current === '/' + destination;\n }\n}\n\nexport function callCapturedEventListeners(eventArguments) {\n if (eventArguments) {\n const eventType = eventArguments[0].type;\n if (routingEventsListeningTo.indexOf(eventType) >= 0) {\n capturedEventListeners[eventType].forEach(listener => {\n listener.apply(this, eventArguments);\n });\n }\n }\n}\n\nfunction urlReroute() {\n reroute([], arguments)\n}\n\n\n// We will trigger an app change for any routing events.\nwindow.addEventListener('hashchange', urlReroute);\nwindow.addEventListener('popstate', urlReroute);\n\n// Monkeypatch addEventListener so that we can ensure correct timing\nconst originalAddEventListener = window.addEventListener;\nconst originalRemoveEventListener = window.removeEventListener;\nwindow.addEventListener = function(eventName, fn) {\n if (typeof fn === 'function') {\n if (routingEventsListeningTo.indexOf(eventName) >= 0 && !find(capturedEventListeners[eventName], listener => listener === fn)) {\n capturedEventListeners[eventName].push(fn);\n return;\n }\n }\n\n return originalAddEventListener.apply(this, arguments);\n}\n\nwindow.removeEventListener = function(eventName, listenerFn) {\n if (typeof listenerFn === 'function') {\n if (routingEventsListeningTo.indexOf(eventName) >= 0) {\n capturedEventListeners[eventName] = capturedEventListeners[eventName].filter(fn => fn !== listenerFn);\n return;\n }\n }\n\n return originalRemoveEventListener.apply(this, arguments);\n}\n\nconst originalPushState = window.history.pushState;\nwindow.history.pushState = function(state) {\n const result = originalPushState.apply(this, arguments);\n\n reroute();\n \n return result;\n}\n\nconst originalReplaceState = window.history.replaceState;\nwindow.history.replaceState = function() {\n const result = originalReplaceState.apply(this, arguments);\n reroute();\n return result;\n}\n\n/* For convenience in `onclick` attributes, we expose a global function for navigating to\n * whatever an tag's href is.\n */\nwindow.singleSpaNavigate = navigateToUrl;\n\nfunction parseUri(str) {\n // parseUri 1.2.2\n // (c) Steven Levithan \n // MIT License\n // http://blog.stevenlevithan.com/archives/parseuri\n const parseOptions = {\n strictMode: true,\n key: [\"source\",\"protocol\",\"authority\",\"userInfo\",\"user\",\"password\",\"host\",\"port\",\"relative\",\"path\",\"directory\",\"file\",\"query\",\"anchor\"],\n q: {\n name: \"queryKey\",\n parser: /(?:^|&)([^&=]*)=?([^&]*)/g\n },\n parser: {\n strict: /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?))?((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)/,\n loose: /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/\n }\n };\n\n let o = parseOptions;\n let m = o.parser[o.strictMode ? \"strict\" : \"loose\"].exec(str);\n let uri = {};\n let i = 14;\n\n while (i--) uri[o.key[i]] = m[i] || \"\";\n\n uri[o.q.name] = {};\n uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {\n if ($1) uri[o.q.name][$1] = $2;\n });\n\n return uri;\n}\n","import CustomEvent from 'custom-event';\nimport { isStarted } from 'src/start.js';\nimport { toLoadPromise } from 'src/lifecycles/load.js';\nimport { toBootstrapPromise } from 'src/lifecycles/bootstrap.js';\nimport { toMountPromise } from 'src/lifecycles/mount.js';\nimport { toUnmountPromise } from 'src/lifecycles/unmount.js';\nimport { getMountedApps, getAppsToLoad, getAppsToUnmount, getAppsToMount } from 'src/applications/apps.js';\nimport { callCapturedEventListeners } from './navigation-events.js';\nimport { getAppsToUnload, toUnloadPromise } from 'src/lifecycles/unload.js';\n\nlet appChangeUnderway = false, peopleWaitingOnAppChange = [];\n\nexport function reroute(pendingPromises = [], eventArguments) {\n if (appChangeUnderway) {\n return new Promise((resolve, reject) => {\n peopleWaitingOnAppChange.push({\n resolve,\n reject,\n eventArguments,\n });\n });\n }\n\n appChangeUnderway = true;\n let wasNoOp = true;\n\n if (isStarted()) {\n return performAppChanges();\n } else {\n return loadApps();\n }\n\n function loadApps() {\n return Promise.resolve().then(() => {\n const loadPromises = getAppsToLoad().map(toLoadPromise);\n\n if (loadPromises.length > 0) {\n wasNoOp = false;\n }\n\n return Promise\n .all(loadPromises)\n .then(finishUpAndReturn)\n .catch(err => {\n callAllEventListeners();\n throw err;\n })\n })\n }\n\n function performAppChanges() {\n return Promise.resolve().then(() => {\n window.dispatchEvent(new CustomEvent(\"single-spa:before-routing-event\", getCustomEventDetail()));\n const unloadPromises = getAppsToUnload().map(toUnloadPromise);\n\n const unmountUnloadPromises = getAppsToUnmount()\n .map(toUnmountPromise)\n .map(unmountPromise => unmountPromise.then(toUnloadPromise));\n\n const allUnmountPromises = unmountUnloadPromises.concat(unloadPromises);\n if (allUnmountPromises.length > 0) {\n wasNoOp = false;\n }\n\n const unmountAllPromise = Promise.all(allUnmountPromises);\n\n const appsToLoad = getAppsToLoad();\n\n /* We load and bootstrap apps while other apps are unmounting, but we\n * wait to mount the app until all apps are finishing unmounting\n */\n const loadThenMountPromises = appsToLoad.map(app => {\n return toLoadPromise(app)\n .then(toBootstrapPromise)\n .then(app => {\n return unmountAllPromise\n .then(() => toMountPromise(app))\n })\n })\n if (loadThenMountPromises.length > 0) {\n wasNoOp = false;\n }\n\n /* These are the apps that are already bootstrapped and just need\n * to be mounted. They each wait for all unmounting apps to finish up\n * before they mount.\n */\n const mountPromises = getAppsToMount()\n .filter(appToMount => appsToLoad.indexOf(appToMount) < 0)\n .map(appToMount => {\n return toBootstrapPromise(appToMount)\n .then(() => unmountAllPromise)\n .then(() => toMountPromise(appToMount))\n })\n if (mountPromises.length > 0) {\n wasNoOp = false;\n }\n return unmountAllPromise\n .catch(err => {\n callAllEventListeners();\n throw err;\n })\n .then(() => {\n /* Now that the apps that needed to be unmounted are unmounted, their DOM navigation\n * events (like hashchange or popstate) should have been cleaned up. So it's safe\n * to let the remaining captured event listeners to handle about the DOM event.\n */\n callAllEventListeners();\n\n return Promise\n .all(loadThenMountPromises.concat(mountPromises))\n .catch(err => {\n pendingPromises.forEach(promise => promise.reject(err));\n throw err;\n })\n .then(() => finishUpAndReturn(false))\n })\n\n })\n }\n\n function finishUpAndReturn(callEventListeners=true) {\n const returnValue = getMountedApps();\n\n if (callEventListeners) {\n callAllEventListeners();\n }\n pendingPromises.forEach(promise => promise.resolve(returnValue));\n\n try {\n const appChangeEventName = wasNoOp ? \"single-spa:no-app-change\": \"single-spa:app-change\";\n window.dispatchEvent(new CustomEvent(appChangeEventName, getCustomEventDetail()));\n window.dispatchEvent(new CustomEvent(\"single-spa:routing-event\", getCustomEventDetail()));\n } catch (err) {\n /* We use a setTimeout because if someone else's event handler throws an error, single-spa\n * needs to carry on. If a listener to the event throws an error, it's their own fault, not\n * single-spa's.\n */\n setTimeout(() => {\n throw err;\n });\n }\n\n /* Setting this allows for subsequent calls to reroute() to actually perform\n * a reroute instead of just getting queued behind the current reroute call.\n * We want to do this after the mounting/unmounting is done but before we\n * resolve the promise for the `reroute` function.\n */\n appChangeUnderway = false;\n\n if (peopleWaitingOnAppChange.length > 0) {\n /* While we were rerouting, someone else triggered another reroute that got queued.\n * So we need reroute again.\n */\n const nextPendingPromises = peopleWaitingOnAppChange;\n peopleWaitingOnAppChange = [];\n reroute(nextPendingPromises);\n }\n\n return returnValue;\n }\n\n /* We need to call all event listeners that have been delayed because they were\n * waiting on single-spa. This includes haschange and popstate events for both\n * the current run of performAppChanges(), but also all of the queued event listeners.\n * We want to call the listeners in the same order as if they had not been delayed by\n * single-spa, which means queued ones first and then the most recent one.\n */\n function callAllEventListeners() {\n pendingPromises.forEach(pendingPromise => {\n callCapturedEventListeners(pendingPromise.eventArguments);\n });\n\n callCapturedEventListeners(eventArguments);\n }\n\n function getCustomEventDetail() {\n const result = {detail: {}}\n\n if (eventArguments && eventArguments[0]) {\n result.detail.originalEvent = eventArguments[0]\n }\n\n return result\n }\n}\n","import { validLifecycleFn, flattenFnArray } from 'src/lifecycles/lifecycle.helpers.js';\nimport { NOT_BOOTSTRAPPED, NOT_MOUNTED, MOUNTED, UPDATING, LOADING_SOURCE_CODE, SKIP_BECAUSE_BROKEN } from 'src/applications/app.helpers.js';\nimport { toBootstrapPromise } from 'src/lifecycles/bootstrap.js';\nimport { toMountPromise } from 'src/lifecycles/mount.js';\nimport { toUpdatePromise } from 'src/lifecycles/update.js';\nimport { toUnmountPromise } from 'src/lifecycles/unmount.js';\nimport { ensureValidAppTimeouts } from 'src/applications/timeouts.js';\n\nlet parcelCount = 0;\nconst rootParcels = {parcels: {}};\n\n// This is a public api, exported to users of single-spa\nexport function mountRootParcel() {\n return mountParcel.apply(rootParcels, arguments);\n}\n\nexport function mountParcel(config, customProps) {\n const owningAppOrParcel = this;\n\n // Validate inputs\n if (!config || (typeof config !== 'object' && typeof config !== 'function')) {\n throw new Error('Cannot mount parcel without a config object or config loading function');\n }\n\n if (config.name && typeof config.name !== 'string') {\n throw new Error('Parcel name must be a string, if provided');\n }\n\n if (typeof customProps !== 'object') {\n throw new Error(`Parcel ${name} has invalid customProps -- must be an object`);\n }\n\n if (!customProps.domElement) {\n throw new Error(`Parcel ${name} cannot be mounted without a domElement provided as a prop`);\n }\n\n const id = parcelCount++;\n\n const passedConfigLoadingFunction = typeof config === 'function'\n const configLoadingFunction = passedConfigLoadingFunction ? config : () => Promise.resolve(config)\n\n // Internal representation\n const parcel = {\n id,\n parcels: {},\n status: passedConfigLoadingFunction ? LOADING_SOURCE_CODE : NOT_BOOTSTRAPPED,\n customProps,\n parentName: owningAppOrParcel.name,\n unmountThisParcel() {\n if (parcel.status !== MOUNTED) {\n throw new Error(`Cannot unmount parcel '${name}' -- it is in a ${parcel.status} status`);\n }\n\n return toUnmountPromise(parcel, true)\n .then(value => {\n if (parcel.parentName) {\n delete owningAppOrParcel.parcels[parcel.id];\n }\n\n return value;\n })\n .then(value => {\n resolveUnmount(value);\n return value;\n })\n .catch(err => {\n parcel.status = SKIP_BECAUSE_BROKEN;\n rejectUnmount(err);\n throw err;\n });\n }\n };\n\n // We return an external representation\n let externalRepresentation\n\n // Add to owning app or parcel\n owningAppOrParcel.parcels[id] = parcel;\n\n let loadPromise = configLoadingFunction()\n\n if (!loadPromise || typeof loadPromise.then !== 'function') {\n throw new Error(`When mounting a parcel, the config loading function must return a promise that resolves with the parcel config`)\n }\n\n loadPromise = loadPromise.then(config => {\n if (!config) {\n throw new Error(`When mounting a parcel, the config loading function returned a promise that did not resolve with a parcel config`)\n }\n\n const name = config.name || `parcel-${id}`;\n\n if (!validLifecycleFn(config.bootstrap)) {\n throw new Error(`Parcel ${name} must have a valid bootstrap function`);\n }\n\n if (!validLifecycleFn(config.mount)) {\n throw new Error(`Parcel ${name} must have a valid mount function`);\n }\n\n if (!validLifecycleFn(config.unmount)) {\n throw new Error(`Parcel ${name} must have a valid unmount function`);\n }\n\n if (config.update && !validLifecycleFn(config.update)) {\n throw new Error(`Parcel ${name} provided an invalid update function`);\n }\n\n const bootstrap = flattenFnArray(config.bootstrap);\n const mount = flattenFnArray(config.mount);\n const unmount = flattenFnArray(config.unmount);\n\n parcel.status = NOT_BOOTSTRAPPED;\n parcel.name = name;\n parcel.bootstrap = bootstrap;\n parcel.mount = mount;\n parcel.unmount = unmount;\n parcel.timeouts = ensureValidAppTimeouts(config.timeouts);\n\n if (config.update) {\n parcel.update = flattenFnArray(config.update);\n externalRepresentation.update = function(customProps) {\n parcel.customProps = customProps;\n\n return promiseWithoutReturnValue(toUpdatePromise(parcel));\n }\n }\n })\n\n // Start bootstrapping and mounting\n // The .then() causes the work to be put on the event loop instead of happening immediately\n const bootstrapPromise = loadPromise.then(() => toBootstrapPromise(parcel, true));\n const mountPromise = bootstrapPromise.then(() => toMountPromise(parcel, true));\n\n let resolveUnmount, rejectUnmount;\n\n const unmountPromise = new Promise((resolve, reject) => {\n resolveUnmount = resolve;\n rejectUnmount = reject;\n });\n\n externalRepresentation = {\n mount() {\n return promiseWithoutReturnValue(\n Promise\n .resolve()\n .then(() => {\n if (parcel.status !== NOT_MOUNTED) {\n throw new Error(`Cannot mount parcel '${name}' -- it is in a ${parcel.status} status`);\n }\n\n // Add to owning app or parcel\n owningAppOrParcel.parcels[id] = parcel;\n\n return toMountPromise(parcel);\n })\n )\n },\n unmount() {\n return promiseWithoutReturnValue(\n parcel.unmountThisParcel()\n );\n },\n getStatus() {\n return parcel.status;\n },\n loadPromise: promiseWithoutReturnValue(loadPromise),\n bootstrapPromise: promiseWithoutReturnValue(bootstrapPromise),\n mountPromise: promiseWithoutReturnValue(mountPromise),\n unmountPromise: promiseWithoutReturnValue(unmountPromise),\n };\n\n return externalRepresentation\n}\n\nfunction promiseWithoutReturnValue(promise) {\n return promise.then(() => null);\n}\n","export { start } from './start.js';\nexport { ensureJQuerySupport } from './jquery-support.js';\nexport { setBootstrapMaxTime, setMountMaxTime, setUnmountMaxTime, setUnloadMaxTime } from './applications/timeouts.js';\nexport { registerApplication, getMountedApps, getAppStatus, unloadApplication, checkActivityFunctions, getAppNames, declareChildApplication, unloadChildApplication } from './applications/apps.js';\nexport { navigateToUrl } from './navigation/navigation-events.js';\nexport { reroute as triggerAppChange } from './navigation/reroute.js';\nexport { addErrorHandler, removeErrorHandler } from './applications/app-errors.js';\nexport { mountRootParcel } from 'src/parcels/mount-parcel.js';\n\nexport {\n NOT_LOADED,\n LOADING_SOURCE_CODE,\n NOT_BOOTSTRAPPED,\n BOOTSTRAPPING,\n NOT_MOUNTED,\n MOUNTING,\n UPDATING,\n MOUNTED,\n UNMOUNTING,\n SKIP_BECAUSE_BROKEN,\n} from './applications/app.helpers.js';\n\nimport devtools from \"./devtools/devtools\"\nif(window && window.__SINGLE_SPA_DEVTOOLS__) {\n window.__SINGLE_SPA_DEVTOOLS__.exposedMethods = devtools\n}\n","import { reroute } from './navigation/reroute.js';\n\nlet started = false;\n\nexport function start() {\n started = true;\n reroute();\n}\n\nexport function isStarted() {\n return started;\n}\n\nconst startWarningDelay = 5000;\n\nsetTimeout(() => {\n if (!started) {\n console.warn(`singleSpa.start() has not been called, ${startWarningDelay}ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted. See https://github.com/CanopyTax/single-spa/blob/master/docs/single-spa-api.md#start`);\n }\n}, startWarningDelay)\n","/* the array.prototype.find polyfill on npmjs.com is ~20kb (not worth it)\n * and lodash is ~200kb (not worth it)\n */\n\nexport function find(arr, func) {\n for (let i=0; i