{"version":3,"file":"single-spa.dev.cjs","sources":["../../../node_modules/.pnpm/custom-event@1.0.1/node_modules/custom-event/index.js","../../../src/applications/app-errors.js","../../../src/applications/app.helpers.js","../../../src/utils/assign.js","../../../src/utils/find.js","../../../src/lifecycles/lifecycle.helpers.js","../../../src/devtools/profiler.js","../../../src/lifecycles/bootstrap.js","../../../src/lifecycles/unmount.js","../../../src/lifecycles/mount.js","../../../src/lifecycles/update.js","../../../src/parcels/mount-parcel.js","../../../src/lifecycles/prop.helpers.js","../../../src/applications/timeouts.js","../../../src/lifecycles/load.js","../../../src/utils/runtime-environment.js","../../../src/navigation/navigation-events.js","../../../src/jquery-support.js","../../../src/lifecycles/unload.js","../../../src/applications/apps.js","../../../src/navigation/reroute.js","../../../src/start.js","../../../src/devtools/devtools.js","../../../src/single-spa.js"],"sourcesContent":["\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","import { objectType, toName } from \"./app.helpers\";\n\nlet errorHandlers = [];\n\nexport function handleAppError(err, app, newStatus) {\n  const transformedErr = transformErr(err, app, newStatus);\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 Error(\n      formatErrorMessage(\n        28,\n        __DEV__ && \"a single-spa error handler must be a function\"\n      )\n    );\n  }\n\n  errorHandlers.push(handler);\n}\n\nexport function removeErrorHandler(handler) {\n  if (typeof handler !== \"function\") {\n    throw Error(\n      formatErrorMessage(\n        29,\n        __DEV__ && \"a single-spa error handler must be a function\"\n      )\n    );\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 formatErrorMessage(code, msg, ...args) {\n  return `single-spa minified message #${code}: ${\n    msg ? msg + \" \" : \"\"\n  }See https://single-spa.js.org/error/?code=${code}${\n    args.length ? `&arg=${args.join(\"&arg=\")}` : \"\"\n  }`;\n}\n\nexport function transformErr(ogErr, appOrParcel, newStatus) {\n  const errPrefix = `${objectType(appOrParcel)} '${toName(\n    appOrParcel\n  )}' 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(\n      formatErrorMessage(\n        30,\n        __DEV__ &&\n          `While ${appOrParcel.status}, '${toName(\n            appOrParcel\n          )}' rejected its lifecycle function promise with a non-Error. This will cause stack traces to not be accurate.`,\n        appOrParcel.status,\n        toName(appOrParcel)\n      )\n    );\n    try {\n      result = 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.appOrParcelName = toName(appOrParcel);\n\n  // We set the status after transforming the error so that the error message\n  // references the state the application was in before the status change.\n  appOrParcel.status = newStatus;\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 LOAD_ERROR = \"LOAD_ERROR\";\nexport const SKIP_BECAUSE_BROKEN = \"SKIP_BECAUSE_BROKEN\";\n\nexport function isActive(app) {\n  return app.status === MOUNTED;\n}\n\nexport function shouldBeActive(app) {\n  try {\n    return app.activeWhen(window.location);\n  } catch (err) {\n    handleAppError(err, app, SKIP_BECAUSE_BROKEN);\n    return false;\n  }\n}\n\nexport function toName(app) {\n  return app.name;\n}\n\nexport function isParcel(appOrParcel) {\n  return Boolean(appOrParcel.unmountThisParcel);\n}\n\nexport function objectType(appOrParcel) {\n  return isParcel(appOrParcel) ? \"parcel\" : \"application\";\n}\n","// Object.assign() is not available in IE11. And the babel compiled output for object spread\n// syntax checks a bunch of Symbol stuff and is almost a kb. So this function is the smaller replacement.\nexport function assign() {\n  for (let i = arguments.length - 1; i > 0; i--) {\n    for (let key in arguments[i]) {\n      if (key === \"__proto__\") {\n        continue;\n      }\n      arguments[i - 1][key] = arguments[i][key];\n    }\n  }\n\n  return arguments[0];\n}\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 < arr.length; i++) {\n    if (func(arr[i])) {\n      return arr[i];\n    }\n  }\n\n  return null;\n}\n","import { find } from \"../utils/find.js\";\nimport { objectType, toName } from \"../applications/app.helpers.js\";\nimport { formatErrorMessage } from \"../applications/app-errors.js\";\n\nexport function validLifecycleFn(fn) {\n  return fn && (typeof fn === \"function\" || isArrayOfFns(fn));\n\n  function isArrayOfFns(arr) {\n    return (\n      Array.isArray(arr) && !find(arr, (item) => typeof item !== \"function\")\n    );\n  }\n}\n\nexport function flattenFnArray(appOrParcel, lifecycle) {\n  let fns = appOrParcel[lifecycle] || [];\n  fns = Array.isArray(fns) ? fns : [fns];\n  if (fns.length === 0) {\n    fns = [() => Promise.resolve()];\n  }\n\n  const type = objectType(appOrParcel);\n  const name = toName(appOrParcel);\n\n  return function (props) {\n    return fns.reduce((resultPromise, fn, index) => {\n      return resultPromise.then(() => {\n        const thisPromise = fn(props);\n        return smellsLikeAPromise(thisPromise)\n          ? thisPromise\n          : Promise.reject(\n              formatErrorMessage(\n                15,\n                __DEV__ &&\n                  `Within ${type} ${name}, the lifecycle function ${lifecycle} at array index ${index} did not return a promise`,\n                type,\n                name,\n                lifecycle,\n                index\n              )\n            );\n      });\n    }, Promise.resolve());\n  };\n}\n\nexport function smellsLikeAPromise(promise) {\n  return (\n    promise &&\n    typeof promise.then === \"function\" &&\n    typeof promise.catch === \"function\"\n  );\n}\n","let profileEntries = [];\n\nexport function getProfilerData() {\n  return profileEntries;\n}\n\n/**\n *\n * @type {'application' | 'parcel' | 'routing'} ProfileType\n *\n * @param {ProfileType} type\n * @param {String} name\n * @param {number} start\n * @param {number} end\n */\nexport function addProfileEntry(\n  type,\n  name,\n  kind,\n  start,\n  end,\n  operationSucceeded\n) {\n  profileEntries.push({\n    type,\n    name,\n    start,\n    end,\n    kind,\n    operationSucceeded,\n  });\n}\n\nexport function clearProfilerData() {\n  profileEntries = [];\n}\n","import {\n  NOT_BOOTSTRAPPED,\n  BOOTSTRAPPING,\n  NOT_MOUNTED,\n  SKIP_BECAUSE_BROKEN,\n  toName,\n  isParcel,\n} from \"../applications/app.helpers.js\";\nimport { reasonableTime } from \"../applications/timeouts.js\";\nimport { handleAppError, transformErr } from \"../applications/app-errors.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nexport function toBootstrapPromise(appOrParcel, hardFail) {\n  let startTime, profileEventType;\n\n  return Promise.resolve().then(() => {\n    if (appOrParcel.status !== NOT_BOOTSTRAPPED) {\n      return appOrParcel;\n    }\n\n    if (__PROFILE__) {\n      profileEventType = isParcel(appOrParcel) ? \"parcel\" : \"application\";\n      startTime = performance.now();\n    }\n\n    appOrParcel.status = BOOTSTRAPPING;\n\n    if (!appOrParcel.bootstrap) {\n      // Default implementation of bootstrap\n      return Promise.resolve().then(successfulBootstrap);\n    }\n\n    return reasonableTime(appOrParcel, \"bootstrap\")\n      .then(successfulBootstrap)\n      .catch((err) => {\n        if (__PROFILE__) {\n          addProfileEntry(\n            profileEventType,\n            toName(appOrParcel),\n            \"bootstrap\",\n            startTime,\n            performance.now(),\n            false\n          );\n        }\n\n        if (hardFail) {\n          throw transformErr(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n        } else {\n          handleAppError(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n          return appOrParcel;\n        }\n      });\n  });\n\n  function successfulBootstrap() {\n    appOrParcel.status = NOT_MOUNTED;\n\n    if (__PROFILE__) {\n      addProfileEntry(\n        profileEventType,\n        toName(appOrParcel),\n        \"bootstrap\",\n        startTime,\n        performance.now(),\n        true\n      );\n    }\n\n    return appOrParcel;\n  }\n}\n","import {\n  UNMOUNTING,\n  NOT_MOUNTED,\n  MOUNTED,\n  SKIP_BECAUSE_BROKEN,\n  toName,\n  isParcel,\n} from \"../applications/app.helpers.js\";\nimport { handleAppError, transformErr } from \"../applications/app-errors.js\";\nimport { reasonableTime } from \"../applications/timeouts.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nexport function toUnmountPromise(appOrParcel, hardFail) {\n  return Promise.resolve().then(() => {\n    if (appOrParcel.status !== MOUNTED) {\n      return appOrParcel;\n    }\n\n    let startTime, profileEventType;\n\n    if (__PROFILE__) {\n      startTime = performance.now();\n      profileEventType = isParcel(appOrParcel) ? \"parcel\" : \"application\";\n    }\n\n    appOrParcel.status = UNMOUNTING;\n\n    const unmountChildrenParcels = Object.keys(appOrParcel.parcels).map(\n      (parcelId) => appOrParcel.parcels[parcelId].unmountThisParcel()\n    );\n\n    let parcelError;\n\n    return Promise.all(unmountChildrenParcels)\n      .then(unmountAppOrParcel, (parcelError) => {\n        // There is a parcel unmount error\n        return unmountAppOrParcel().then(() => {\n          // Unmounting the app/parcel succeeded, but unmounting its children parcels did not\n          const parentError = Error(parcelError.message);\n          if (hardFail) {\n            throw transformErr(parentError, appOrParcel, SKIP_BECAUSE_BROKEN);\n          } else {\n            handleAppError(parentError, appOrParcel, SKIP_BECAUSE_BROKEN);\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\").then(\n        () => {\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          if (__PROFILE__) {\n            addProfileEntry(\n              profileEventType,\n              toName(appOrParcel),\n              \"unmount\",\n              startTime,\n              performance.now(),\n              true\n            );\n          }\n        },\n        (err) => {\n          if (__PROFILE__) {\n            addProfileEntry(\n              profileEventType,\n              toName(appOrParcel),\n              \"unmount\",\n              startTime,\n              performance.now(),\n              false\n            );\n          }\n\n          if (hardFail) {\n            throw transformErr(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n          } else {\n            handleAppError(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n          }\n        }\n      );\n    }\n  });\n}\n","import {\n  NOT_MOUNTED,\n  MOUNTED,\n  SKIP_BECAUSE_BROKEN,\n  MOUNTING,\n  toName,\n  isParcel,\n} 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 { toUnmountPromise } from \"./unmount.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nlet beforeFirstMountFired = false;\nlet firstMountFired = false;\n\nexport function toMountPromise(appOrParcel, hardFail) {\n  return Promise.resolve().then(() => {\n    if (appOrParcel.status !== NOT_MOUNTED) {\n      return appOrParcel;\n    }\n\n    let startTime, profileEventType;\n\n    if (__PROFILE__) {\n      profileEventType = isParcel(appOrParcel) ? \"parcel\" : \"application\";\n      startTime = performance.now();\n    }\n\n    if (!beforeFirstMountFired) {\n      window.dispatchEvent(new CustomEvent(\"single-spa:before-first-mount\"));\n      beforeFirstMountFired = true;\n    }\n\n    appOrParcel.status = MOUNTING;\n\n    return reasonableTime(appOrParcel, \"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        if (__PROFILE__) {\n          addProfileEntry(\n            profileEventType,\n            toName(appOrParcel),\n            \"mount\",\n            startTime,\n            performance.now(),\n            true\n          );\n        }\n\n        return appOrParcel;\n      })\n      .catch((err) => {\n        // If we fail to mount the appOrParcel, we should attempt to unmount it before putting in SKIP_BECAUSE_BROKEN\n        // We temporarily put the appOrParcel into MOUNTED status so that toUnmountPromise actually attempts to unmount it\n        // instead of just doing a no-op.\n        appOrParcel.status = MOUNTED;\n        return toUnmountPromise(appOrParcel, true).then(\n          setSkipBecauseBroken,\n          setSkipBecauseBroken\n        );\n\n        function setSkipBecauseBroken() {\n          if (__PROFILE__) {\n            addProfileEntry(\n              profileEventType,\n              toName(appOrParcel),\n              \"mount\",\n              startTime,\n              performance.now(),\n              false\n            );\n          }\n\n          if (!hardFail) {\n            handleAppError(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n            return appOrParcel;\n          } else {\n            throw transformErr(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n          }\n        }\n      });\n  });\n}\n","import {\n  UPDATING,\n  MOUNTED,\n  SKIP_BECAUSE_BROKEN,\n  toName,\n  isParcel,\n} from \"../applications/app.helpers.js\";\nimport {\n  transformErr,\n  formatErrorMessage,\n} from \"../applications/app-errors.js\";\nimport { reasonableTime } from \"../applications/timeouts.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nexport function toUpdatePromise(appOrParcel) {\n  return Promise.resolve().then(() => {\n    let startTime, profileEventType;\n\n    if (__PROFILE__) {\n      profileEventType = isParcel(appOrParcel) ? \"parcel\" : \"application\";\n      startTime = performance.now();\n    }\n\n    if (appOrParcel.status !== MOUNTED) {\n      throw Error(\n        formatErrorMessage(\n          32,\n          __DEV__ &&\n            `Cannot update parcel '${toName(\n              appOrParcel\n            )}' because it is not mounted`,\n          toName(appOrParcel)\n        )\n      );\n    }\n\n    appOrParcel.status = UPDATING;\n\n    return reasonableTime(appOrParcel, \"update\")\n      .then(() => {\n        appOrParcel.status = MOUNTED;\n\n        if (__PROFILE__) {\n          addProfileEntry(\n            profileEventType,\n            toName(appOrParcel),\n            \"update\",\n            startTime,\n            performance.now(),\n            true\n          );\n        }\n\n        return appOrParcel;\n      })\n      .catch((err) => {\n        if (__PROFILE__) {\n          addProfileEntry(\n            profileEventType,\n            toName(appOrParcel),\n            \"update\",\n            startTime,\n            performance.now(),\n            false\n          );\n        }\n\n        throw transformErr(err, appOrParcel, SKIP_BECAUSE_BROKEN);\n      });\n  });\n}\n","import {\n  validLifecycleFn,\n  flattenFnArray,\n} from \"../lifecycles/lifecycle.helpers.js\";\nimport {\n  NOT_BOOTSTRAPPED,\n  NOT_MOUNTED,\n  MOUNTED,\n  LOADING_SOURCE_CODE,\n  SKIP_BECAUSE_BROKEN,\n  toName,\n} from \"../applications/app.helpers.js\";\nimport { toBootstrapPromise } from \"../lifecycles/bootstrap.js\";\nimport { toMountPromise } from \"../lifecycles/mount.js\";\nimport { toUpdatePromise } from \"../lifecycles/update.js\";\nimport { toUnmountPromise } from \"../lifecycles/unmount.js\";\nimport { ensureValidAppTimeouts } from \"../applications/timeouts.js\";\nimport { formatErrorMessage } from \"../applications/app-errors.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 Error(\n      formatErrorMessage(\n        2,\n        __DEV__ &&\n          \"Cannot mount parcel without a config object or config loading function\"\n      )\n    );\n  }\n\n  if (config.name && typeof config.name !== \"string\") {\n    throw Error(\n      formatErrorMessage(\n        3,\n        __DEV__ &&\n          `Parcel name must be a string, if provided. Was given ${typeof config.name}`,\n        typeof config.name\n      )\n    );\n  }\n\n  const id = parcelCount++;\n  let name = config.name || `parcel-${id}`;\n\n  if (typeof customProps !== \"object\") {\n    throw Error(\n      formatErrorMessage(\n        4,\n        __DEV__ &&\n          `Parcel ${name} has invalid customProps -- must be an object but was given ${typeof customProps}`,\n        name,\n        typeof customProps\n      )\n    );\n  }\n\n  if (!customProps.domElement) {\n    throw Error(\n      formatErrorMessage(\n        5,\n        __DEV__ &&\n          `Parcel ${name} cannot be mounted without a domElement provided as a prop`,\n        name\n      )\n    );\n  }\n\n  const passedConfigLoadingFunction = typeof config === \"function\";\n  const configLoadingFunction = passedConfigLoadingFunction\n    ? config\n    : () => Promise.resolve(config);\n\n  // Internal representation\n  const parcel = {\n    id,\n    parcels: {},\n    status: passedConfigLoadingFunction\n      ? LOADING_SOURCE_CODE\n      : NOT_BOOTSTRAPPED,\n    customProps,\n    parentName: toName(owningAppOrParcel),\n    unmountThisParcel() {\n      return mountPromise\n        .then(() => {\n          if (parcel.status !== MOUNTED) {\n            throw Error(\n              formatErrorMessage(\n                6,\n                __DEV__ &&\n                  `Cannot unmount parcel '${name}' -- it is in a ${parcel.status} status`,\n                name,\n                parcel.status\n              )\n            );\n          }\n          return toUnmountPromise(parcel, true);\n        })\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 Error(\n      formatErrorMessage(\n        7,\n        __DEV__ &&\n          `When mounting a parcel, the config loading function must return a promise that resolves with the parcel config`\n      )\n    );\n  }\n\n  loadPromise = loadPromise.then((config) => {\n    if (!config) {\n      throw Error(\n        formatErrorMessage(\n          8,\n          __DEV__ &&\n            `When mounting a parcel, the config loading function returned a promise that did not resolve with a parcel config`\n        )\n      );\n    }\n\n    name = config.name || `parcel-${id}`;\n\n    if (\n      // ES Module objects don't have the object prototype\n      Object.prototype.hasOwnProperty.call(config, \"bootstrap\") &&\n      !validLifecycleFn(config.bootstrap)\n    ) {\n      throw Error(\n        formatErrorMessage(\n          9,\n          __DEV__ && `Parcel ${name} provided an invalid bootstrap function`,\n          name\n        )\n      );\n    }\n\n    if (!validLifecycleFn(config.mount)) {\n      throw Error(\n        formatErrorMessage(\n          10,\n          __DEV__ && `Parcel ${name} must have a valid mount function`,\n          name\n        )\n      );\n    }\n\n    if (!validLifecycleFn(config.unmount)) {\n      throw Error(\n        formatErrorMessage(\n          11,\n          __DEV__ && `Parcel ${name} must have a valid unmount function`,\n          name\n        )\n      );\n    }\n\n    if (config.update && !validLifecycleFn(config.update)) {\n      throw Error(\n        formatErrorMessage(\n          12,\n          __DEV__ && `Parcel ${name} provided an invalid update function`,\n          name\n        )\n      );\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(() =>\n    toBootstrapPromise(parcel, true)\n  );\n  const mountPromise = bootstrapPromise.then(() =>\n    toMountPromise(parcel, true)\n  );\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.resolve().then(() => {\n          if (parcel.status !== NOT_MOUNTED) {\n            throw Error(\n              formatErrorMessage(\n                13,\n                __DEV__ &&\n                  `Cannot mount parcel '${name}' -- it is in a ${parcel.status} status`,\n                name,\n                parcel.status\n              )\n            );\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(parcel.unmountThisParcel());\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","import * as singleSpa from \"../single-spa.js\";\nimport { mountParcel } from \"../parcels/mount-parcel.js\";\nimport { assign } from \"../utils/assign.js\";\nimport { isParcel, toName } from \"../applications/app.helpers.js\";\nimport { formatErrorMessage } from \"../applications/app-errors.js\";\n\nexport function getProps(appOrParcel) {\n  const name = toName(appOrParcel);\n  let customProps =\n    typeof appOrParcel.customProps === \"function\"\n      ? appOrParcel.customProps(name, window.location)\n      : appOrParcel.customProps;\n  if (\n    typeof customProps !== \"object\" ||\n    customProps === null ||\n    Array.isArray(customProps)\n  ) {\n    customProps = {};\n    console.warn(\n      formatErrorMessage(\n        40,\n        __DEV__ &&\n          `single-spa: ${name}'s customProps function must return an object. Received ${customProps}`\n      ),\n      name,\n      customProps\n    );\n  }\n  const result = assign({}, customProps, {\n    name,\n    mountParcel: mountParcel.bind(appOrParcel),\n    singleSpa,\n  });\n\n  if (isParcel(appOrParcel)) {\n    result.unmountSelf = appOrParcel.unmountThisParcel;\n  }\n\n  return result;\n}\n","import { assign } from \"../utils/assign\";\nimport { getProps } from \"../lifecycles/prop.helpers\";\nimport { objectType, toName } from \"./app.helpers\";\nimport { formatErrorMessage } from \"./app-errors\";\n\nconst defaultWarningMillis = 1000;\n\nconst globalTimeoutConfig = {\n  bootstrap: {\n    millis: 4000,\n    dieOnTimeout: false,\n    warningMillis: defaultWarningMillis,\n  },\n  mount: {\n    millis: 3000,\n    dieOnTimeout: false,\n    warningMillis: defaultWarningMillis,\n  },\n  unmount: {\n    millis: 3000,\n    dieOnTimeout: false,\n    warningMillis: defaultWarningMillis,\n  },\n  unload: {\n    millis: 3000,\n    dieOnTimeout: false,\n    warningMillis: defaultWarningMillis,\n  },\n  update: {\n    millis: 3000,\n    dieOnTimeout: false,\n    warningMillis: defaultWarningMillis,\n  },\n};\n\nexport function setBootstrapMaxTime(time, dieOnTimeout, warningMillis) {\n  if (typeof time !== \"number\" || time <= 0) {\n    throw Error(\n      formatErrorMessage(\n        16,\n        __DEV__ &&\n          `bootstrap max time must be a positive integer number of milliseconds`\n      )\n    );\n  }\n\n  globalTimeoutConfig.bootstrap = {\n    millis: time,\n    dieOnTimeout,\n    warningMillis: warningMillis || defaultWarningMillis,\n  };\n}\n\nexport function setMountMaxTime(time, dieOnTimeout, warningMillis) {\n  if (typeof time !== \"number\" || time <= 0) {\n    throw Error(\n      formatErrorMessage(\n        17,\n        __DEV__ &&\n          `mount max time must be a positive integer number of milliseconds`\n      )\n    );\n  }\n\n  globalTimeoutConfig.mount = {\n    millis: time,\n    dieOnTimeout,\n    warningMillis: warningMillis || defaultWarningMillis,\n  };\n}\n\nexport function setUnmountMaxTime(time, dieOnTimeout, warningMillis) {\n  if (typeof time !== \"number\" || time <= 0) {\n    throw Error(\n      formatErrorMessage(\n        18,\n        __DEV__ &&\n          `unmount max time must be a positive integer number of milliseconds`\n      )\n    );\n  }\n\n  globalTimeoutConfig.unmount = {\n    millis: time,\n    dieOnTimeout,\n    warningMillis: warningMillis || defaultWarningMillis,\n  };\n}\n\nexport function setUnloadMaxTime(time, dieOnTimeout, warningMillis) {\n  if (typeof time !== \"number\" || time <= 0) {\n    throw Error(\n      formatErrorMessage(\n        19,\n        __DEV__ &&\n          `unload max time must be a positive integer number of milliseconds`\n      )\n    );\n  }\n\n  globalTimeoutConfig.unload = {\n    millis: time,\n    dieOnTimeout,\n    warningMillis: warningMillis || defaultWarningMillis,\n  };\n}\n\nexport function reasonableTime(appOrParcel, lifecycle) {\n  const timeoutConfig = appOrParcel.timeouts[lifecycle];\n  const warningPeriod = timeoutConfig.warningMillis;\n  const type = objectType(appOrParcel);\n\n  return new Promise((resolve, reject) => {\n    let finished = false;\n    let errored = false;\n\n    appOrParcel[lifecycle](getProps(appOrParcel))\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    const errMsg = formatErrorMessage(\n      31,\n      __DEV__ &&\n        `Lifecycle function ${lifecycle} for ${type} ${toName(\n          appOrParcel\n        )} lifecycle did not resolve or reject for ${timeoutConfig.millis} ms.`,\n      lifecycle,\n      type,\n      toName(appOrParcel),\n      timeoutConfig.millis\n    );\n\n    function maybeTimingOut(shouldError) {\n      if (!finished) {\n        if (shouldError === true) {\n          errored = true;\n          if (timeoutConfig.dieOnTimeout) {\n            reject(Error(errMsg));\n          } else {\n            console.error(errMsg);\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(errMsg);\n          if (numMillis + warningPeriod < timeoutConfig.millis) {\n            setTimeout(() => maybeTimingOut(numWarnings + 1), warningPeriod);\n          }\n        }\n      }\n    }\n  });\n}\n\nexport function ensureValidAppTimeouts(timeouts) {\n  const result = {};\n\n  for (let key in globalTimeoutConfig) {\n    result[key] = assign(\n      {},\n      globalTimeoutConfig[key],\n      (timeouts && timeouts[key]) || {}\n    );\n  }\n\n  return result;\n}\n","import {\n  LOAD_ERROR,\n  NOT_BOOTSTRAPPED,\n  LOADING_SOURCE_CODE,\n  SKIP_BECAUSE_BROKEN,\n  NOT_LOADED,\n  objectType,\n  toName,\n} from \"../applications/app.helpers.js\";\nimport { ensureValidAppTimeouts } from \"../applications/timeouts.js\";\nimport {\n  handleAppError,\n  formatErrorMessage,\n} from \"../applications/app-errors.js\";\nimport {\n  flattenFnArray,\n  smellsLikeAPromise,\n  validLifecycleFn,\n} from \"./lifecycle.helpers.js\";\nimport { getProps } from \"./prop.helpers.js\";\nimport { assign } from \"../utils/assign.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nexport function toLoadPromise(appOrParcel) {\n  return Promise.resolve().then(() => {\n    if (appOrParcel.loadPromise) {\n      return appOrParcel.loadPromise;\n    }\n\n    if (\n      appOrParcel.status !== NOT_LOADED &&\n      appOrParcel.status !== LOAD_ERROR\n    ) {\n      return appOrParcel;\n    }\n\n    let startTime;\n\n    if (__PROFILE__) {\n      startTime = performance.now();\n    }\n\n    appOrParcel.status = LOADING_SOURCE_CODE;\n\n    let appOpts, isUserErr;\n\n    return (appOrParcel.loadPromise = Promise.resolve()\n      .then(() => {\n        const loadPromise = appOrParcel.loadApp(getProps(appOrParcel));\n        if (!smellsLikeAPromise(loadPromise)) {\n          // The name of the app will be prepended to this error message inside of the handleAppError function\n          isUserErr = true;\n          throw Error(\n            formatErrorMessage(\n              33,\n              __DEV__ &&\n                `single-spa loading function did not return a promise. Check the second argument to registerApplication('${toName(\n                  appOrParcel\n                )}', loadingFunction, activityFunction)`,\n              toName(appOrParcel)\n            )\n          );\n        }\n        return loadPromise.then((val) => {\n          appOrParcel.loadErrorTime = null;\n\n          appOpts = val;\n\n          let validationErrMessage, validationErrCode;\n\n          if (typeof appOpts !== \"object\") {\n            validationErrCode = 34;\n            if (__DEV__) {\n              validationErrMessage = `does not export anything`;\n            }\n          }\n\n          if (\n            // ES Modules don't have the Object prototype\n            Object.prototype.hasOwnProperty.call(appOpts, \"bootstrap\") &&\n            !validLifecycleFn(appOpts.bootstrap)\n          ) {\n            validationErrCode = 35;\n            if (__DEV__) {\n              validationErrMessage = `does not export a valid bootstrap function or array of functions`;\n            }\n          }\n\n          if (!validLifecycleFn(appOpts.mount)) {\n            validationErrCode = 36;\n            if (__DEV__) {\n              validationErrMessage = `does not export a mount function or array of functions`;\n            }\n          }\n\n          if (!validLifecycleFn(appOpts.unmount)) {\n            validationErrCode = 37;\n            if (__DEV__) {\n              validationErrMessage = `does not export a unmount function or array of functions`;\n            }\n          }\n\n          const type = objectType(appOpts);\n\n          if (validationErrCode) {\n            let appOptsStr;\n            try {\n              appOptsStr = JSON.stringify(appOpts);\n            } catch {}\n            console.error(\n              formatErrorMessage(\n                validationErrCode,\n                __DEV__ &&\n                  `The loading function for single-spa ${type} '${toName(\n                    appOrParcel\n                  )}' resolved with the following, which does not have bootstrap, mount, and unmount functions`,\n                type,\n                toName(appOrParcel),\n                appOptsStr\n              ),\n              appOpts\n            );\n            handleAppError(\n              validationErrMessage,\n              appOrParcel,\n              SKIP_BECAUSE_BROKEN\n            );\n            return appOrParcel;\n          }\n\n          if (appOpts.devtools && appOpts.devtools.overlays) {\n            appOrParcel.devtools.overlays = assign(\n              {},\n              appOrParcel.devtools.overlays,\n              appOpts.devtools.overlays\n            );\n          }\n\n          appOrParcel.status = NOT_BOOTSTRAPPED;\n          appOrParcel.bootstrap = flattenFnArray(appOpts, \"bootstrap\");\n          appOrParcel.mount = flattenFnArray(appOpts, \"mount\");\n          appOrParcel.unmount = flattenFnArray(appOpts, \"unmount\");\n          appOrParcel.unload = flattenFnArray(appOpts, \"unload\");\n          appOrParcel.timeouts = ensureValidAppTimeouts(appOpts.timeouts);\n\n          delete appOrParcel.loadPromise;\n\n          if (__PROFILE__) {\n            addProfileEntry(\n              \"application\",\n              toName(appOrParcel),\n              \"load\",\n              startTime,\n              performance.now(),\n              true\n            );\n          }\n\n          return appOrParcel;\n        });\n      })\n      .catch((err) => {\n        delete appOrParcel.loadPromise;\n\n        let newStatus;\n        if (isUserErr) {\n          newStatus = SKIP_BECAUSE_BROKEN;\n        } else {\n          newStatus = LOAD_ERROR;\n          appOrParcel.loadErrorTime = new Date().getTime();\n        }\n        handleAppError(err, appOrParcel, newStatus);\n\n        if (__PROFILE__) {\n          addProfileEntry(\n            \"application\",\n            toName(appOrParcel),\n            \"load\",\n            startTime,\n            performance.now(),\n            false\n          );\n        }\n\n        return appOrParcel;\n      }));\n  });\n}\n","export const isInBrowser = typeof window !== \"undefined\";\n","import { reroute } from \"./reroute.js\";\nimport { find } from \"../utils/find.js\";\nimport { formatErrorMessage } from \"../applications/app-errors.js\";\nimport { isInBrowser } from \"../utils/runtime-environment.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) {\n  let url;\n  if (typeof obj === \"string\") {\n    url = obj;\n  } else if (this && this.href) {\n    url = this.href;\n  } else if (\n    obj &&\n    obj.currentTarget &&\n    obj.currentTarget.href &&\n    obj.preventDefault\n  ) {\n    url = obj.currentTarget.href;\n    obj.preventDefault();\n  } else {\n    throw Error(\n      formatErrorMessage(\n        14,\n        __DEV__ &&\n          `singleSpaNavigate/navigateToUrl must be either called with a string url, with an <a> tag as its context, or with an event whose currentTarget is an <a> tag`\n      )\n    );\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.hash;\n  } else if (current.host !== destination.host && destination.host) {\n    if (process.env.BABEL_ENV === \"test\") {\n      return { wouldHaveReloadedThePage: true };\n    } else {\n      window.location.href = url;\n    }\n  } else if (\n    destination.pathname === current.pathname &&\n    destination.search === current.search\n  ) {\n    window.location.hash = destination.hash;\n  } else {\n    // different path, host, or query params\n    window.history.pushState(null, null, url);\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        try {\n          // The error thrown by application event listener should not break single-spa down.\n          // Just like https://github.com/single-spa/single-spa/blob/85f5042dff960e40936f3a5069d56fc9477fac04/src/navigation/reroute.js#L140-L146 did\n          listener.apply(this, eventArguments);\n        } catch (e) {\n          setTimeout(() => {\n            throw e;\n          });\n        }\n      });\n    }\n  }\n}\n\nlet urlRerouteOnly;\n\nfunction urlReroute() {\n  reroute([], arguments);\n}\n\nfunction patchedUpdateState(updateState, methodName) {\n  return function () {\n    const urlBefore = window.location.href;\n    const result = updateState.apply(this, arguments);\n    const urlAfter = window.location.href;\n\n    if (!urlRerouteOnly || urlBefore !== urlAfter) {\n      // fire an artificial popstate event so that\n      // single-spa applications know about routing that\n      // occurs in a different application\n      window.dispatchEvent(\n        createPopStateEvent(window.history.state, methodName)\n      );\n    }\n\n    return result;\n  };\n}\n\nfunction createPopStateEvent(state, originalMethodName) {\n  // https://github.com/single-spa/single-spa/issues/224 and https://github.com/single-spa/single-spa-angular/issues/49\n  // We need a popstate event even though the browser doesn't do one by default when you call replaceState, so that\n  // all the applications can reroute. We explicitly identify this extraneous event by setting singleSpa=true and\n  // singleSpaTrigger=<pushState|replaceState> on the event instance.\n  let evt;\n  try {\n    evt = new PopStateEvent(\"popstate\", { state });\n  } catch (err) {\n    // IE 11 compatibility https://github.com/single-spa/single-spa/issues/299\n    // https://docs.microsoft.com/en-us/openspecs/ie_standards/ms-html5e/bd560f47-b349-4d2c-baa8-f1560fb489dd\n    evt = document.createEvent(\"PopStateEvent\");\n    evt.initPopStateEvent(\"popstate\", false, false, state);\n  }\n  evt.singleSpa = true;\n  evt.singleSpaTrigger = originalMethodName;\n  return evt;\n}\n\nexport let originalReplaceState = null;\n\nlet historyApiIsPatched = false;\n\n// We patch the history API so single-spa is notified of all calls to pushState/replaceState.\n// We patch addEventListener/removeEventListener so we can capture all popstate/hashchange event listeners,\n// and delay calling them until single-spa has finished mounting/unmounting applications\nexport function patchHistoryApi(opts) {\n  if (historyApiIsPatched) {\n    throw Error(\n      formatErrorMessage(\n        43,\n        __DEV__ &&\n          `single-spa: patchHistoryApi() was called after the history api was already patched.`\n      )\n    );\n  }\n\n  // True by default, as a performance optimization that reduces\n  // the number of extraneous popstate events\n  urlRerouteOnly =\n    opts && opts.hasOwnProperty(\"urlRerouteOnly\") ? opts.urlRerouteOnly : true;\n\n  historyApiIsPatched = true;\n\n  originalReplaceState = window.history.replaceState;\n\n  // We will trigger an app change for any routing events.\n  window.addEventListener(\"hashchange\", urlReroute);\n  window.addEventListener(\"popstate\", urlReroute);\n\n  // Monkeypatch addEventListener so that we can ensure correct timing\n  const originalAddEventListener = window.addEventListener;\n  const originalRemoveEventListener = window.removeEventListener;\n  window.addEventListener = function (eventName, fn) {\n    if (typeof fn === \"function\") {\n      if (\n        routingEventsListeningTo.indexOf(eventName) >= 0 &&\n        !find(capturedEventListeners[eventName], (listener) => listener === fn)\n      ) {\n        capturedEventListeners[eventName].push(fn);\n        return;\n      }\n    }\n\n    return originalAddEventListener.apply(this, arguments);\n  };\n\n  window.removeEventListener = function (eventName, listenerFn) {\n    if (typeof listenerFn === \"function\") {\n      if (routingEventsListeningTo.indexOf(eventName) >= 0) {\n        capturedEventListeners[eventName] = capturedEventListeners[\n          eventName\n        ].filter((fn) => fn !== listenerFn);\n      }\n    }\n\n    return originalRemoveEventListener.apply(this, arguments);\n  };\n\n  window.history.pushState = patchedUpdateState(\n    window.history.pushState,\n    \"pushState\"\n  );\n  window.history.replaceState = patchedUpdateState(\n    originalReplaceState,\n    \"replaceState\"\n  );\n}\n\n// Detect if single-spa has already been loaded on the page.\n// If so, warn because this can result in lots of problems, including\n// lots of extraneous popstate events and unexpected results for\n// apis like getAppNames().\nif (isInBrowser) {\n  if (window.singleSpaNavigate) {\n    console.warn(\n      formatErrorMessage(\n        41,\n        __DEV__ &&\n          \"single-spa has been loaded twice on the page. This can result in unexpected behavior.\"\n      )\n    );\n  } else {\n    /* For convenience in `onclick` attributes, we expose a global function for navigating to\n     * whatever an <a> tag's href is.\n     */\n    window.singleSpaNavigate = navigateToUrl;\n  }\n}\n\nfunction parseUri(str) {\n  const anchor = document.createElement(\"a\");\n  anchor.href = str;\n  return anchor;\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(\n        this,\n        originalJQueryOn,\n        window.addEventListener,\n        eventString,\n        fn,\n        arguments\n      );\n    };\n\n    jQuery.fn.off = function (eventString, fn) {\n      return captureRoutingEvents.call(\n        this,\n        originalJQueryOff,\n        window.removeEventListener,\n        eventString,\n        fn,\n        arguments\n      );\n    };\n\n    hasInitialized = true;\n  }\n}\n\nfunction captureRoutingEvents(\n  originalJQueryFunction,\n  nativeFunctionToCall,\n  eventString,\n  fn,\n  originalArgs\n) {\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 {\n  NOT_MOUNTED,\n  UNLOADING,\n  NOT_LOADED,\n  LOAD_ERROR,\n  SKIP_BECAUSE_BROKEN,\n  toName,\n} from \"../applications/app.helpers.js\";\nimport { handleAppError } from \"../applications/app-errors.js\";\nimport { reasonableTime } from \"../applications/timeouts.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nconst appsToUnload = {};\n\nexport function toUnloadPromise(appOrParcel) {\n  return Promise.resolve().then(() => {\n    const unloadInfo = appsToUnload[toName(appOrParcel)];\n\n    if (!unloadInfo) {\n      /* No one has called unloadApplication for this app,\n       */\n      return appOrParcel;\n    }\n\n    if (appOrParcel.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(appOrParcel, unloadInfo);\n      return appOrParcel;\n    }\n\n    if (appOrParcel.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(() => appOrParcel);\n    }\n\n    if (\n      appOrParcel.status !== NOT_MOUNTED &&\n      appOrParcel.status !== LOAD_ERROR\n    ) {\n      /* The app cannot be unloaded until it is unmounted.\n       */\n      return appOrParcel;\n    }\n\n    let startTime;\n\n    if (__PROFILE__) {\n      startTime = performance.now();\n    }\n\n    const unloadPromise =\n      appOrParcel.status === LOAD_ERROR\n        ? Promise.resolve()\n        : reasonableTime(appOrParcel, \"unload\");\n\n    appOrParcel.status = UNLOADING;\n\n    return unloadPromise\n      .then(() => {\n        if (__PROFILE__) {\n          addProfileEntry(\n            \"application\",\n            toName(appOrParcel),\n            \"unload\",\n            startTime,\n            performance.now(),\n            true\n          );\n        }\n\n        finishUnloadingApp(appOrParcel, unloadInfo);\n\n        return appOrParcel;\n      })\n      .catch((err) => {\n        if (__PROFILE__) {\n          addProfileEntry(\n            \"application\",\n            toName(appOrParcel),\n            \"unload\",\n            startTime,\n            performance.now(),\n            false\n          );\n        }\n\n        errorUnloadingApp(appOrParcel, unloadInfo, err);\n\n        return appOrParcel;\n      });\n  });\n}\n\nfunction finishUnloadingApp(app, unloadInfo) {\n  delete appsToUnload[toName(app)];\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[toName(app)];\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, SKIP_BECAUSE_BROKEN);\n  unloadInfo.reject(err);\n}\n\nexport function addAppToUnload(app, promiseGetter, resolve, reject) {\n  appsToUnload[toName(app)] = { app, resolve, reject };\n  Object.defineProperty(appsToUnload[toName(app)], \"promise\", {\n    get: promiseGetter,\n  });\n}\n\nexport function getAppUnloadInfo(appName) {\n  return appsToUnload[appName];\n}\n","import { ensureJQuerySupport } from \"../jquery-support.js\";\nimport {\n  isActive,\n  toName,\n  NOT_LOADED,\n  NOT_BOOTSTRAPPED,\n  NOT_MOUNTED,\n  MOUNTED,\n  LOAD_ERROR,\n  SKIP_BECAUSE_BROKEN,\n  LOADING_SOURCE_CODE,\n  shouldBeActive,\n} from \"./app.helpers.js\";\nimport { reroute, triggerAppChange } from \"../navigation/reroute.js\";\nimport { find } from \"../utils/find.js\";\nimport { toUnmountPromise } from \"../lifecycles/unmount.js\";\nimport {\n  toUnloadPromise,\n  getAppUnloadInfo,\n  addAppToUnload,\n} from \"../lifecycles/unload.js\";\nimport { formatErrorMessage } from \"./app-errors.js\";\nimport { isInBrowser } from \"../utils/runtime-environment.js\";\nimport { assign } from \"../utils/assign\";\nimport { isStarted } from \"../start.js\";\n\nconst apps = [];\n\nexport function getAppChanges() {\n  const appsToUnload = [],\n    appsToUnmount = [],\n    appsToLoad = [],\n    appsToMount = [];\n\n  // We re-attempt to download applications in LOAD_ERROR after a timeout of 200 milliseconds\n  const currentTime = new Date().getTime();\n\n  apps.forEach((app) => {\n    const appShouldBeActive =\n      app.status !== SKIP_BECAUSE_BROKEN && shouldBeActive(app);\n\n    switch (app.status) {\n      case LOAD_ERROR:\n        if (appShouldBeActive && currentTime - app.loadErrorTime >= 200) {\n          appsToLoad.push(app);\n        }\n        break;\n      case NOT_LOADED:\n      case LOADING_SOURCE_CODE:\n        if (appShouldBeActive) {\n          appsToLoad.push(app);\n        }\n        break;\n      case NOT_BOOTSTRAPPED:\n      case NOT_MOUNTED:\n        if (!appShouldBeActive && getAppUnloadInfo(toName(app))) {\n          appsToUnload.push(app);\n        } else if (appShouldBeActive) {\n          appsToMount.push(app);\n        }\n        break;\n      case MOUNTED:\n        if (!appShouldBeActive) {\n          appsToUnmount.push(app);\n        }\n        break;\n      // all other statuses are ignored\n    }\n  });\n\n  return { appsToUnload, appsToUnmount, appsToLoad, appsToMount };\n}\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) => toName(app) === appName);\n  return app ? app.status : null;\n}\n\nlet startWarningInitialized = false;\n\nexport function registerApplication(\n  appNameOrConfig,\n  appOrLoadApp,\n  activeWhen,\n  customProps\n) {\n  const registration = sanitizeArguments(\n    appNameOrConfig,\n    appOrLoadApp,\n    activeWhen,\n    customProps\n  );\n\n  if (!isStarted() && !startWarningInitialized) {\n    startWarningInitialized = true;\n\n    setTimeout(() => {\n      if (!isStarted()) {\n        console.warn(\n          formatErrorMessage(\n            1,\n            __DEV__ &&\n              `singleSpa.start() has not been called, 5000ms after single-spa was loaded. Before start() is called, apps can be declared and loaded, but not bootstrapped or mounted.`\n          )\n        );\n      }\n    }, 5000);\n  }\n\n  if (getAppNames().indexOf(registration.name) !== -1)\n    throw Error(\n      formatErrorMessage(\n        21,\n        __DEV__ &&\n          `There is already an app registered with name ${registration.name}`,\n        registration.name\n      )\n    );\n\n  apps.push(\n    assign(\n      {\n        loadErrorTime: null,\n        status: NOT_LOADED,\n        parcels: {},\n        devtools: {\n          overlays: {\n            options: {},\n            selectors: [],\n          },\n        },\n      },\n      registration\n    )\n  );\n\n  if (isInBrowser) {\n    ensureJQuerySupport();\n    reroute();\n  }\n}\n\nexport function checkActivityFunctions(location = window.location) {\n  return apps.filter((app) => app.activeWhen(location)).map(toName);\n}\n\nexport function unregisterApplication(appName) {\n  if (apps.filter((app) => toName(app) === appName).length === 0) {\n    throw Error(\n      formatErrorMessage(\n        25,\n        __DEV__ &&\n          `Cannot unregister application '${appName}' because no such application has been registered`,\n        appName\n      )\n    );\n  }\n\n  const unloadPromise = isInBrowser\n    ? // See https://github.com/single-spa/single-spa/issues/871 for why waitForUnmount is false\n      unloadApplication(appName, { waitForUnmount: false })\n    : Promise.resolve();\n\n  return unloadPromise.then(() => {\n    const appIndex = apps.map(toName).indexOf(appName);\n    apps.splice(appIndex, 1);\n  });\n}\n\nexport function unloadApplication(appName, opts = { waitForUnmount: false }) {\n  if (typeof appName !== \"string\") {\n    throw Error(\n      formatErrorMessage(\n        26,\n        __DEV__ && `unloadApplication requires a string 'appName'`\n      )\n    );\n  }\n  const app = find(apps, (App) => toName(App) === appName);\n  if (!app) {\n    throw Error(\n      formatErrorMessage(\n        27,\n        __DEV__ &&\n          `Could not unload application '${appName}' because no such application has been registered`,\n        appName\n      )\n    );\n  }\n\n  const appUnloadInfo = getAppUnloadInfo(toName(app));\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  Promise.resolve()\n    .then(() => {\n      // Before unmounting the application, we first must wait for it to finish mounting\n      // Otherwise, the test for issue 871 in unregister-application.spec.js fails because\n      // the application isn't really unmounted.\n      if (\n        find(checkActivityFunctions(), (activeApp) => activeApp === toName(app))\n      ) {\n        return triggerAppChange();\n      }\n    })\n    .then(() => {\n      return toUnmountPromise(app)\n        .then(toUnloadPromise)\n        .then(() => {\n          resolve();\n          setTimeout(() => {\n            // reroute, but the unload promise is done\n            reroute();\n          });\n        });\n    })\n    .catch(reject);\n}\n\nfunction validateRegisterWithArguments(\n  name,\n  appOrLoadApp,\n  activeWhen,\n  customProps\n) {\n  if (typeof name !== \"string\" || name.length === 0)\n    throw Error(\n      formatErrorMessage(\n        20,\n        __DEV__ &&\n          `The 1st argument to registerApplication must be a non-empty string 'appName'`\n      )\n    );\n\n  if (!appOrLoadApp)\n    throw Error(\n      formatErrorMessage(\n        23,\n        __DEV__ &&\n          \"The 2nd argument to registerApplication must be an application or loading application function\"\n      )\n    );\n\n  if (typeof activeWhen !== \"function\")\n    throw Error(\n      formatErrorMessage(\n        24,\n        __DEV__ &&\n          \"The 3rd argument to registerApplication must be an activeWhen function\"\n      )\n    );\n\n  if (!validCustomProps(customProps))\n    throw Error(\n      formatErrorMessage(\n        22,\n        __DEV__ &&\n          \"The optional 4th argument is a customProps and must be an object\"\n      )\n    );\n}\n\nexport function validateRegisterWithConfig(config) {\n  if (Array.isArray(config) || config === null)\n    throw Error(\n      formatErrorMessage(\n        39,\n        __DEV__ && \"Configuration object can't be an Array or null!\"\n      )\n    );\n  const validKeys = [\"name\", \"app\", \"activeWhen\", \"customProps\"];\n  const invalidKeys = Object.keys(config).reduce(\n    (invalidKeys, prop) =>\n      validKeys.indexOf(prop) >= 0 ? invalidKeys : invalidKeys.concat(prop),\n    []\n  );\n  if (invalidKeys.length !== 0)\n    throw Error(\n      formatErrorMessage(\n        38,\n        __DEV__ &&\n          `The configuration object accepts only: ${validKeys.join(\n            \", \"\n          )}. Invalid keys: ${invalidKeys.join(\", \")}.`,\n        validKeys.join(\", \"),\n        invalidKeys.join(\", \")\n      )\n    );\n  if (typeof config.name !== \"string\" || config.name.length === 0)\n    throw Error(\n      formatErrorMessage(\n        20,\n        __DEV__ &&\n          \"The config.name on registerApplication must be a non-empty string\"\n      )\n    );\n  if (typeof config.app !== \"object\" && typeof config.app !== \"function\")\n    throw Error(\n      formatErrorMessage(\n        20,\n        __DEV__ &&\n          \"The config.app on registerApplication must be an application or a loading function\"\n      )\n    );\n  const allowsStringAndFunction = (activeWhen) =>\n    typeof activeWhen === \"string\" || typeof activeWhen === \"function\";\n  if (\n    !allowsStringAndFunction(config.activeWhen) &&\n    !(\n      Array.isArray(config.activeWhen) &&\n      config.activeWhen.every(allowsStringAndFunction)\n    )\n  )\n    throw Error(\n      formatErrorMessage(\n        24,\n        __DEV__ &&\n          \"The config.activeWhen on registerApplication must be a string, function or an array with both\"\n      )\n    );\n  if (!validCustomProps(config.customProps))\n    throw Error(\n      formatErrorMessage(\n        22,\n        __DEV__ && \"The optional config.customProps must be an object\"\n      )\n    );\n}\n\nfunction validCustomProps(customProps) {\n  return (\n    !customProps ||\n    typeof customProps === \"function\" ||\n    (typeof customProps === \"object\" &&\n      customProps !== null &&\n      !Array.isArray(customProps))\n  );\n}\n\nfunction sanitizeArguments(\n  appNameOrConfig,\n  appOrLoadApp,\n  activeWhen,\n  customProps\n) {\n  const usingObjectAPI = typeof appNameOrConfig === \"object\";\n\n  const registration = {\n    name: null,\n    loadApp: null,\n    activeWhen: null,\n    customProps: null,\n  };\n\n  if (usingObjectAPI) {\n    validateRegisterWithConfig(appNameOrConfig);\n    registration.name = appNameOrConfig.name;\n    registration.loadApp = appNameOrConfig.app;\n    registration.activeWhen = appNameOrConfig.activeWhen;\n    registration.customProps = appNameOrConfig.customProps;\n  } else {\n    validateRegisterWithArguments(\n      appNameOrConfig,\n      appOrLoadApp,\n      activeWhen,\n      customProps\n    );\n    registration.name = appNameOrConfig;\n    registration.loadApp = appOrLoadApp;\n    registration.activeWhen = activeWhen;\n    registration.customProps = customProps;\n  }\n\n  registration.loadApp = sanitizeLoadApp(registration.loadApp);\n  registration.customProps = sanitizeCustomProps(registration.customProps);\n  registration.activeWhen = sanitizeActiveWhen(registration.activeWhen);\n\n  return registration;\n}\n\nfunction sanitizeLoadApp(loadApp) {\n  if (typeof loadApp !== \"function\") {\n    return () => Promise.resolve(loadApp);\n  }\n\n  return loadApp;\n}\n\nfunction sanitizeCustomProps(customProps) {\n  return customProps ? customProps : {};\n}\n\nfunction sanitizeActiveWhen(activeWhen) {\n  let activeWhenArray = Array.isArray(activeWhen) ? activeWhen : [activeWhen];\n  activeWhenArray = activeWhenArray.map((activeWhenOrPath) =>\n    typeof activeWhenOrPath === \"function\"\n      ? activeWhenOrPath\n      : pathToActiveWhen(activeWhenOrPath)\n  );\n\n  return (location) =>\n    activeWhenArray.some((activeWhen) => activeWhen(location));\n}\n\nexport function pathToActiveWhen(path, exactMatch) {\n  const regex = toDynamicPathValidatorRegex(path, exactMatch);\n\n  return (location) => {\n    // compatible with IE10\n    let origin = location.origin;\n    if (!origin) {\n      origin = `${location.protocol}//${location.host}`;\n    }\n    const route = location.href\n      .replace(origin, \"\")\n      .replace(location.search, \"\")\n      .split(\"?\")[0];\n    return regex.test(route);\n  };\n}\n\nfunction toDynamicPathValidatorRegex(path, exactMatch) {\n  let lastIndex = 0,\n    inDynamic = false,\n    regexStr = \"^\";\n\n  if (path[0] !== \"/\") {\n    path = \"/\" + path;\n  }\n\n  for (let charIndex = 0; charIndex < path.length; charIndex++) {\n    const char = path[charIndex];\n    const startOfDynamic = !inDynamic && char === \":\";\n    const endOfDynamic = inDynamic && char === \"/\";\n    if (startOfDynamic || endOfDynamic) {\n      appendToRegex(charIndex);\n    }\n  }\n\n  appendToRegex(path.length);\n  return new RegExp(regexStr, \"i\");\n\n  function appendToRegex(index) {\n    const anyCharMaybeTrailingSlashRegex = \"[^/]+/?\";\n    const commonStringSubPath = escapeStrRegex(path.slice(lastIndex, index));\n\n    regexStr += inDynamic\n      ? anyCharMaybeTrailingSlashRegex\n      : commonStringSubPath;\n\n    if (index === path.length) {\n      if (inDynamic) {\n        if (exactMatch) {\n          // Ensure exact match paths that end in a dynamic portion don't match\n          // urls with characters after a slash after the dynamic portion.\n          regexStr += \"$\";\n        }\n      } else {\n        // For exact matches, expect no more characters. Otherwise, allow\n        // any characters.\n        const suffix = exactMatch ? \"\" : \".*\";\n\n        regexStr =\n          // use charAt instead as we could not use es6 method endsWith\n          regexStr.charAt(regexStr.length - 1) === \"/\"\n            ? `${regexStr}${suffix}$`\n            : `${regexStr}(/${suffix})?(#.*)?$`;\n      }\n    }\n\n    inDynamic = !inDynamic;\n    lastIndex = index;\n  }\n\n  function escapeStrRegex(str) {\n    // borrowed from https://github.com/sindresorhus/escape-string-regexp/blob/master/index.js\n    return str.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n  }\n}\n","import CustomEvent from \"custom-event\";\nimport { isStarted } from \"../start.js\";\nimport { toLoadPromise } from \"../lifecycles/load.js\";\nimport { toBootstrapPromise } from \"../lifecycles/bootstrap.js\";\nimport { toMountPromise } from \"../lifecycles/mount.js\";\nimport { toUnmountPromise } from \"../lifecycles/unmount.js\";\nimport {\n  getAppStatus,\n  getAppChanges,\n  getMountedApps,\n} from \"../applications/apps.js\";\nimport {\n  callCapturedEventListeners,\n  originalReplaceState,\n} from \"./navigation-events.js\";\nimport { toUnloadPromise } from \"../lifecycles/unload.js\";\nimport {\n  toName,\n  shouldBeActive,\n  NOT_MOUNTED,\n  MOUNTED,\n  NOT_LOADED,\n  SKIP_BECAUSE_BROKEN,\n} from \"../applications/app.helpers.js\";\nimport { assign } from \"../utils/assign.js\";\nimport { isInBrowser } from \"../utils/runtime-environment.js\";\nimport { formatErrorMessage } from \"../applications/app-errors.js\";\nimport { addProfileEntry } from \"../devtools/profiler.js\";\n\nlet appChangeUnderway = false,\n  peopleWaitingOnAppChange = [],\n  currentUrl = isInBrowser && window.location.href;\n\nexport function triggerAppChange() {\n  // Call reroute with no arguments, intentionally\n  return reroute();\n}\n\nexport function reroute(\n  pendingPromises = [],\n  eventArguments,\n  silentNavigation = false\n) {\n  if (appChangeUnderway) {\n    return new Promise((resolve, reject) => {\n      peopleWaitingOnAppChange.push({\n        resolve,\n        reject,\n        eventArguments,\n      });\n    });\n  }\n\n  let startTime, profilerKind;\n\n  if (__PROFILE__) {\n    startTime = performance.now();\n    if (silentNavigation) {\n      profilerKind = \"silentNavigation\";\n    } else if (eventArguments) {\n      profilerKind = \"browserNavigation\";\n    } else {\n      profilerKind = \"triggerAppChange\";\n    }\n  }\n\n  const { appsToUnload, appsToUnmount, appsToLoad, appsToMount } =\n    getAppChanges();\n  let appsThatChanged,\n    cancelPromises = [],\n    oldUrl = currentUrl,\n    newUrl = (currentUrl = window.location.href);\n\n  if (isStarted()) {\n    appChangeUnderway = true;\n    appsThatChanged = appsToUnload.concat(\n      appsToLoad,\n      appsToUnmount,\n      appsToMount\n    );\n    return performAppChanges();\n  } else {\n    appsThatChanged = appsToLoad;\n    return loadApps();\n  }\n\n  function cancelNavigation(val = true) {\n    const promise =\n      typeof val?.then === \"function\" ? val : Promise.resolve(val);\n    cancelPromises.push(\n      promise.catch((err) => {\n        console.warn(\n          Error(\n            formatErrorMessage(\n              42,\n              __DEV__ &&\n                `single-spa: A cancelNavigation promise rejected with the following value: ${err}`\n            )\n          )\n        );\n        console.warn(err);\n\n        // Interpret a Promise rejection to mean that the navigation should not be canceled\n        return false;\n      })\n    );\n  }\n\n  function loadApps() {\n    return Promise.resolve().then(() => {\n      const loadPromises = appsToLoad.map(toLoadPromise);\n      let succeeded;\n\n      return (\n        Promise.all(loadPromises)\n          .then(callAllEventListeners)\n          // there are no mounted apps, before start() is called, so we always return []\n          .then(() => {\n            if (__PROFILE__) {\n              succeeded = true;\n            }\n\n            return [];\n          })\n          .catch((err) => {\n            if (__PROFILE__) {\n              succeeded = false;\n            }\n\n            callAllEventListeners();\n            throw err;\n          })\n          .finally(() => {\n            if (__PROFILE__) {\n              addProfileEntry(\n                \"routing\",\n                \"loadApps\",\n                profilerKind,\n                startTime,\n                performance.now(),\n                succeeded\n              );\n            }\n          })\n      );\n    });\n  }\n\n  function performAppChanges() {\n    return Promise.resolve().then(() => {\n      // https://github.com/single-spa/single-spa/issues/545\n      fireSingleSpaEvent(\n        appsThatChanged.length === 0\n          ? \"before-no-app-change\"\n          : \"before-app-change\",\n        getCustomEventDetail(true)\n      );\n\n      fireSingleSpaEvent(\n        \"before-routing-event\",\n        getCustomEventDetail(true, { cancelNavigation })\n      );\n\n      return Promise.all(cancelPromises).then((cancelValues) => {\n        const navigationIsCanceled = cancelValues.some((v) => v);\n\n        if (navigationIsCanceled) {\n          // Change url back to old url, without triggering the normal single-spa reroute\n          originalReplaceState.call(\n            window.history,\n            history.state,\n            \"\",\n            oldUrl.substring(location.origin.length)\n          );\n\n          // Single-spa's internal tracking of current url needs to be updated after the url change above\n          currentUrl = location.href;\n\n          // necessary for the reroute function to know that the current reroute is finished\n          appChangeUnderway = false;\n\n          if (__PROFILE__) {\n            addProfileEntry(\n              \"routing\",\n              \"navigationCanceled\",\n              profilerKind,\n              startTime,\n              performance.now(),\n              true\n            );\n          }\n\n          // Tell single-spa to reroute again, this time with the url set to the old URL\n          return reroute(pendingPromises, eventArguments, true);\n        }\n\n        const unloadPromises = appsToUnload.map(toUnloadPromise);\n\n        const unmountUnloadPromises = appsToUnmount\n          .map(toUnmountPromise)\n          .map((unmountPromise) => unmountPromise.then(toUnloadPromise));\n\n        const allUnmountPromises = unmountUnloadPromises.concat(unloadPromises);\n\n        const unmountAllPromise = Promise.all(allUnmountPromises);\n\n        let unmountFinishedTime;\n\n        unmountAllPromise.then(\n          () => {\n            if (__PROFILE__) {\n              unmountFinishedTime = performance.now();\n\n              addProfileEntry(\n                \"routing\",\n                \"unmountAndUnload\",\n                profilerKind,\n                startTime,\n                performance.now(),\n                true\n              );\n            }\n            fireSingleSpaEvent(\n              \"before-mount-routing-event\",\n              getCustomEventDetail(true)\n            );\n          },\n          (err) => {\n            if (__PROFILE__) {\n              addProfileEntry(\n                \"routing\",\n                \"unmountAndUnload\",\n                profilerKind,\n                startTime,\n                performance.now(),\n                true\n              );\n            }\n\n            throw err;\n          }\n        );\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).then((app) =>\n            tryToBootstrapAndMount(app, unmountAllPromise)\n          );\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 = appsToMount\n          .filter((appToMount) => appsToLoad.indexOf(appToMount) < 0)\n          .map((appToMount) => {\n            return tryToBootstrapAndMount(appToMount, unmountAllPromise);\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.all(loadThenMountPromises.concat(mountPromises))\n              .catch((err) => {\n                pendingPromises.forEach((promise) => promise.reject(err));\n                throw err;\n              })\n              .then(finishUpAndReturn)\n              .then(\n                () => {\n                  if (__PROFILE__) {\n                    addProfileEntry(\n                      \"routing\",\n                      \"loadAndMount\",\n                      profilerKind,\n                      unmountFinishedTime,\n                      performance.now(),\n                      true\n                    );\n                  }\n                },\n                (err) => {\n                  if (__PROFILE__) {\n                    addProfileEntry(\n                      \"routing\",\n                      \"loadAndMount\",\n                      profilerKind,\n                      unmountFinishedTime,\n                      performance.now(),\n                      false\n                    );\n                  }\n\n                  throw err;\n                }\n              );\n          });\n      });\n    });\n  }\n\n  function finishUpAndReturn() {\n    const returnValue = getMountedApps();\n    pendingPromises.forEach((promise) => promise.resolve(returnValue));\n\n    try {\n      const appChangeEventName =\n        appsThatChanged.length === 0 ? \"no-app-change\" : \"app-change\";\n      fireSingleSpaEvent(appChangeEventName, getCustomEventDetail());\n      fireSingleSpaEvent(\"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    // During silent navigation (when navigation was canceled and we're going back to the old URL),\n    // we should not fire any popstate / hashchange events\n    if (!silentNavigation) {\n      pendingPromises.forEach((pendingPromise) => {\n        callCapturedEventListeners(pendingPromise.eventArguments);\n      });\n\n      callCapturedEventListeners(eventArguments);\n    }\n  }\n\n  function getCustomEventDetail(isBeforeChanges = false, extraProperties) {\n    const newAppStatuses = {};\n    const appsByNewStatus = {\n      // for apps that were mounted\n      [MOUNTED]: [],\n      // for apps that were unmounted\n      [NOT_MOUNTED]: [],\n      // apps that were forcibly unloaded\n      [NOT_LOADED]: [],\n      // apps that attempted to do something but are broken now\n      [SKIP_BECAUSE_BROKEN]: [],\n    };\n\n    if (isBeforeChanges) {\n      appsToLoad.concat(appsToMount).forEach((app, index) => {\n        addApp(app, MOUNTED);\n      });\n      appsToUnload.forEach((app) => {\n        addApp(app, NOT_LOADED);\n      });\n      appsToUnmount.forEach((app) => {\n        addApp(app, NOT_MOUNTED);\n      });\n    } else {\n      appsThatChanged.forEach((app) => {\n        addApp(app);\n      });\n    }\n\n    const result = {\n      detail: {\n        newAppStatuses,\n        appsByNewStatus,\n        totalAppChanges: appsThatChanged.length,\n        originalEvent: eventArguments?.[0],\n        oldUrl,\n        newUrl,\n      },\n    };\n\n    if (extraProperties) {\n      assign(result.detail, extraProperties);\n    }\n\n    return result;\n\n    function addApp(app, status) {\n      const appName = toName(app);\n      status = status || getAppStatus(appName);\n      newAppStatuses[appName] = status;\n      const statusArr = (appsByNewStatus[status] =\n        appsByNewStatus[status] || []);\n      statusArr.push(appName);\n    }\n  }\n\n  function fireSingleSpaEvent(name, eventProperties) {\n    // During silent navigation (caused by navigation cancelation), we should not\n    // fire any single-spa events\n    if (!silentNavigation) {\n      window.dispatchEvent(\n        new CustomEvent(`single-spa:${name}`, eventProperties)\n      );\n    }\n  }\n}\n\n/**\n * Let's imagine that some kind of delay occurred during application loading.\n * The user without waiting for the application to load switched to another route,\n * this means that we shouldn't bootstrap and mount that application, thus we check\n * twice if that application should be active before bootstrapping and mounting.\n * https://github.com/single-spa/single-spa/issues/524\n */\nfunction tryToBootstrapAndMount(app, unmountAllPromise) {\n  if (shouldBeActive(app)) {\n    return toBootstrapPromise(app).then((app) =>\n      unmountAllPromise.then(() =>\n        shouldBeActive(app) ? toMountPromise(app) : app\n      )\n    );\n  } else {\n    return unmountAllPromise.then(() => app);\n  }\n}\n","import { reroute } from \"./navigation/reroute.js\";\nimport { patchHistoryApi } from \"./navigation/navigation-events.js\";\nimport { isInBrowser } from \"./utils/runtime-environment.js\";\n\nlet started = false;\n\nexport function start(opts) {\n  started = true;\n  if (isInBrowser) {\n    patchHistoryApi(opts);\n    reroute();\n  }\n}\n\nexport function isStarted() {\n  return started;\n}\n","import { getRawAppData, unregisterApplication } 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\";\nimport { getProfilerData } from \"./profiler\";\n\nexport default {\n  getRawAppData,\n  reroute,\n  NOT_LOADED,\n  toLoadPromise,\n  toBootstrapPromise,\n  unregisterApplication,\n  getProfilerData,\n};\n","export { start } from \"./start.js\";\nexport { ensureJQuerySupport } from \"./jquery-support.js\";\nexport {\n  setBootstrapMaxTime,\n  setMountMaxTime,\n  setUnmountMaxTime,\n  setUnloadMaxTime,\n} from \"./applications/timeouts.js\";\nexport {\n  registerApplication,\n  unregisterApplication,\n  getMountedApps,\n  getAppStatus,\n  unloadApplication,\n  checkActivityFunctions,\n  getAppNames,\n  pathToActiveWhen,\n} from \"./applications/apps.js\";\nexport {\n  navigateToUrl,\n  patchHistoryApi,\n} from \"./navigation/navigation-events.js\";\nexport { triggerAppChange } from \"./navigation/reroute.js\";\nexport {\n  addErrorHandler,\n  removeErrorHandler,\n} from \"./applications/app-errors.js\";\nexport { mountRootParcel } from \"./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  LOAD_ERROR,\n  MOUNTED,\n  UNLOADING,\n  UNMOUNTING,\n  SKIP_BECAUSE_BROKEN,\n} from \"./applications/app.helpers.js\";\n\nimport devtools from \"./devtools/devtools\";\nimport { isInBrowser } from \"./utils/runtime-environment.js\";\n\nif (isInBrowser && window.__SINGLE_SPA_DEVTOOLS__) {\n  window.__SINGLE_SPA_DEVTOOLS__.exposedMethods = devtools;\n}\n"],"names":["global","errorHandlers","handleAppError","err","app","newStatus","transformedErr","transformErr","length","forEach","handler","setTimeout","addErrorHandler","Error","formatErrorMessage","push","removeErrorHandler","removedSomething","filter","h","isHandler","code","msg","args","join","ogErr","appOrParcel","errPrefix","objectType","toName","status","result","message","console","warn","JSON","stringify","appOrParcelName","NOT_LOADED","LOADING_SOURCE_CODE","NOT_BOOTSTRAPPED","BOOTSTRAPPING","NOT_MOUNTED","MOUNTING","MOUNTED","UPDATING","UNMOUNTING","UNLOADING","LOAD_ERROR","SKIP_BECAUSE_BROKEN","isActive","shouldBeActive","activeWhen","window","location","name","isParcel","Boolean","unmountThisParcel","assign","i","arguments","key","find","arr","func","validLifecycleFn","fn","isArrayOfFns","Array","isArray","item","flattenFnArray","lifecycle","fns","Promise","resolve","type","props","reduce","resultPromise","index","then","thisPromise","smellsLikeAPromise","reject","promise","catch","profileEntries","getProfilerData","addProfileEntry","kind","start","end","operationSucceeded","toBootstrapPromise","hardFail","startTime","profileEventType","performance","now","bootstrap","successfulBootstrap","reasonableTime","toUnmountPromise","unmountChildrenParcels","Object","keys","parcels","map","parcelId","all","unmountAppOrParcel","parcelError","parentError","beforeFirstMountFired","firstMountFired","toMountPromise","dispatchEvent","CustomEvent","setSkipBecauseBroken","toUpdatePromise","parcelCount","rootParcels","mountRootParcel","mountParcel","apply","config","customProps","owningAppOrParcel","id","domElement","passedConfigLoadingFunction","configLoadingFunction","parcel","parentName","mountPromise","value","resolveUnmount","rejectUnmount","externalRepresentation","loadPromise","prototype","hasOwnProperty","call","mount","unmount","update","timeouts","ensureValidAppTimeouts","promiseWithoutReturnValue","bootstrapPromise","unmountPromise","getStatus","getProps","bind","singleSpa","unmountSelf","defaultWarningMillis","globalTimeoutConfig","millis","dieOnTimeout","warningMillis","unload","setBootstrapMaxTime","time","setMountMaxTime","setUnmountMaxTime","setUnloadMaxTime","timeoutConfig","warningPeriod","finished","errored","val","maybeTimingOut","errMsg","shouldError","error","numWarnings","numMillis","toLoadPromise","appOpts","isUserErr","loadApp","loadErrorTime","validationErrMessage","validationErrCode","appOptsStr","devtools","overlays","Date","getTime","isInBrowser","capturedEventListeners","hashchange","popstate","routingEventsListeningTo","navigateToUrl","obj","url","href","currentTarget","preventDefault","current","parseUri","destination","indexOf","hash","host","pathname","search","history","pushState","callCapturedEventListeners","eventArguments","eventType","listener","e","urlRerouteOnly","urlReroute","reroute","patchedUpdateState","updateState","methodName","urlBefore","urlAfter","createPopStateEvent","state","originalMethodName","evt","PopStateEvent","document","createEvent","initPopStateEvent","singleSpaTrigger","originalReplaceState","historyApiIsPatched","patchHistoryApi","opts","replaceState","addEventListener","originalAddEventListener","originalRemoveEventListener","removeEventListener","eventName","listenerFn","singleSpaNavigate","str","anchor","createElement","hasInitialized","ensureJQuerySupport","jQuery","$","jquery","originalJQueryOn","on","originalJQueryOff","off","eventString","captureRoutingEvents","originalJQueryFunction","nativeFunctionToCall","originalArgs","eventNames","split","replace","trim","appsToUnload","toUnloadPromise","unloadInfo","finishUnloadingApp","unloadPromise","errorUnloadingApp","addAppToUnload","promiseGetter","defineProperty","get","getAppUnloadInfo","appName","apps","getAppChanges","appsToUnmount","appsToLoad","appsToMount","currentTime","appShouldBeActive","getMountedApps","getAppNames","getRawAppData","getAppStatus","startWarningInitialized","registerApplication","appNameOrConfig","appOrLoadApp","registration","sanitizeArguments","isStarted","options","selectors","checkActivityFunctions","unregisterApplication","unloadApplication","waitForUnmount","appIndex","splice","App","appUnloadInfo","immediatelyUnloadApp","activeApp","triggerAppChange","validateRegisterWithArguments","validCustomProps","validateRegisterWithConfig","validKeys","invalidKeys","prop","concat","allowsStringAndFunction","every","usingObjectAPI","sanitizeLoadApp","sanitizeCustomProps","sanitizeActiveWhen","activeWhenArray","activeWhenOrPath","pathToActiveWhen","some","path","exactMatch","regex","toDynamicPathValidatorRegex","origin","protocol","route","test","lastIndex","inDynamic","regexStr","charIndex","char","startOfDynamic","endOfDynamic","appendToRegex","RegExp","anyCharMaybeTrailingSlashRegex","commonStringSubPath","escapeStrRegex","slice","suffix","charAt","appChangeUnderway","peopleWaitingOnAppChange","currentUrl","pendingPromises","silentNavigation","profilerKind","appsThatChanged","cancelPromises","oldUrl","newUrl","performAppChanges","loadApps","cancelNavigation","loadPromises","succeeded","callAllEventListeners","finally","fireSingleSpaEvent","getCustomEventDetail","cancelValues","navigationIsCanceled","v","substring","unloadPromises","unmountUnloadPromises","allUnmountPromises","unmountAllPromise","unmountFinishedTime","loadThenMountPromises","tryToBootstrapAndMount","mountPromises","appToMount","finishUpAndReturn","returnValue","appChangeEventName","nextPendingPromises","pendingPromise","isBeforeChanges","extraProperties","newAppStatuses","appsByNewStatus","addApp","detail","totalAppChanges","originalEvent","statusArr","eventProperties","started","__SINGLE_SPA_DEVTOOLS__","exposedMethods"],"mappings":"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"}