UNPKG

@nx/angular

Version:

The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: - Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypre

1 lines • 26.9 kB
{"version":3,"file":"nx-angular-mf.mjs","sources":["../tmp-esm2022/mf/url-helpers.js","../tmp-esm2022/mf/mf.js","../tmp-esm2022/mf/nx-angular-mf.js"],"sourcesContent":["// Helper function to extract file extension from a path\nfunction extname(path) {\n const lastDot = path.lastIndexOf('.');\n const lastSlash = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\\\'));\n if (lastDot === -1 || lastDot < lastSlash) {\n return '';\n }\n return path.slice(lastDot);\n}\n/**\n * Checks if a URL string is absolute (has protocol)\n */\nexport function isAbsoluteUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Safely processes remote locations, handling both relative and absolute URLs\n * while preserving query parameters and hash fragments for absolute URLs\n */\nexport function processRemoteLocation(remoteLocation, remoteEntryExt) {\n // Handle promise-based remotes as-is\n if (remoteLocation.startsWith('promise new Promise')) {\n return remoteLocation;\n }\n if (isAbsoluteUrl(remoteLocation)) {\n // Use new URL parsing for absolute URLs (supports query params/hash)\n const url = new URL(remoteLocation);\n const ext = extname(url.pathname);\n const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);\n if (needsRemoteEntry) {\n url.pathname = url.pathname.endsWith('/')\n ? `${url.pathname}remoteEntry.${remoteEntryExt}`\n : `${url.pathname}/remoteEntry.${remoteEntryExt}`;\n }\n return url.href;\n }\n else {\n // Use string manipulation for relative URLs (backward compatibility)\n const ext = extname(remoteLocation);\n const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);\n if (needsRemoteEntry) {\n const baseRemote = remoteLocation.endsWith('/')\n ? remoteLocation.slice(0, -1)\n : remoteLocation;\n return `${baseRemote}/remoteEntry.${remoteEntryExt}`;\n }\n return remoteLocation;\n }\n}\n/**\n * Processes remote URLs for runtime environments, resolving relative URLs against window.location.origin\n */\nexport function processRuntimeRemoteUrl(remoteUrl, remoteEntryExt) {\n if (isAbsoluteUrl(remoteUrl)) {\n return processRemoteLocation(remoteUrl, remoteEntryExt);\n }\n else {\n // For runtime relative URLs, resolve against current origin\n const baseUrl = typeof globalThis !== 'undefined' &&\n typeof globalThis.window !== 'undefined' &&\n globalThis.window.location\n ? globalThis.window.location.origin\n : 'http://localhost';\n const absoluteUrl = new URL(remoteUrl, baseUrl).href;\n return processRemoteLocation(absoluteUrl, remoteEntryExt);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL3VybC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUN2QyxJQUFJLENBQUM7UUFDSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGNBQXNCLEVBQ3RCLGNBQTRCO0lBRTVCLHFDQUFxQztJQUNyQyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ2xDLHFFQUFxRTtRQUNyRSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsZUFBZSxjQUFjLEVBQUU7Z0JBQ2hELENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLGdCQUFnQixjQUFjLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7U0FBTSxDQUFDO1FBQ04scUVBQXFFO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUNuQixPQUFPLEdBQUcsVUFBVSxnQkFBZ0IsY0FBYyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFNBQWlCLEVBQ2pCLGNBQTRCO0lBRTVCLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUQsQ0FBQztTQUFNLENBQUM7UUFDTiw0REFBNEQ7UUFDNUQsTUFBTSxPQUFPLEdBQ1gsT0FBTyxVQUFVLEtBQUssV0FBVztZQUNqQyxPQUFRLFVBQWtCLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFDaEQsVUFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNqQyxDQUFDLENBQUUsVUFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDNUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckQsT0FBTyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZXh0cmFjdCBmaWxlIGV4dGVuc2lvbiBmcm9tIGEgcGF0aFxuZnVuY3Rpb24gZXh0bmFtZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYXN0RG90ID0gcGF0aC5sYXN0SW5kZXhPZignLicpO1xuICBjb25zdCBsYXN0U2xhc2ggPSBNYXRoLm1heChwYXRoLmxhc3RJbmRleE9mKCcvJyksIHBhdGgubGFzdEluZGV4T2YoJ1xcXFwnKSk7XG4gIGlmIChsYXN0RG90ID09PSAtMSB8fCBsYXN0RG90IDwgbGFzdFNsYXNoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBwYXRoLnNsaWNlKGxhc3REb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIFVSTCBzdHJpbmcgaXMgYWJzb2x1dGUgKGhhcyBwcm90b2NvbClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFNhZmVseSBwcm9jZXNzZXMgcmVtb3RlIGxvY2F0aW9ucywgaGFuZGxpbmcgYm90aCByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgVVJMc1xuICogd2hpbGUgcHJlc2VydmluZyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBoYXNoIGZyYWdtZW50cyBmb3IgYWJzb2x1dGUgVVJMc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc1JlbW90ZUxvY2F0aW9uKFxuICByZW1vdGVMb2NhdGlvbjogc3RyaW5nLFxuICByZW1vdGVFbnRyeUV4dDogJ2pzJyB8ICdtanMnXG4pOiBzdHJpbmcge1xuICAvLyBIYW5kbGUgcHJvbWlzZS1iYXNlZCByZW1vdGVzIGFzLWlzXG4gIGlmIChyZW1vdGVMb2NhdGlvbi5zdGFydHNXaXRoKCdwcm9taXNlIG5ldyBQcm9taXNlJykpIHtcbiAgICByZXR1cm4gcmVtb3RlTG9jYXRpb247XG4gIH1cblxuICBpZiAoaXNBYnNvbHV0ZVVybChyZW1vdGVMb2NhdGlvbikpIHtcbiAgICAvLyBVc2UgbmV3IFVSTCBwYXJzaW5nIGZvciBhYnNvbHV0ZSBVUkxzIChzdXBwb3J0cyBxdWVyeSBwYXJhbXMvaGFzaClcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlbW90ZUxvY2F0aW9uKTtcbiAgICBjb25zdCBleHQgPSBleHRuYW1lKHVybC5wYXRobmFtZSk7XG4gICAgY29uc3QgbmVlZHNSZW1vdGVFbnRyeSA9ICFbJy5qcycsICcubWpzJywgJy5qc29uJ10uaW5jbHVkZXMoZXh0KTtcblxuICAgIGlmIChuZWVkc1JlbW90ZUVudHJ5KSB7XG4gICAgICB1cmwucGF0aG5hbWUgPSB1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgICA/IGAke3VybC5wYXRobmFtZX1yZW1vdGVFbnRyeS4ke3JlbW90ZUVudHJ5RXh0fWBcbiAgICAgICAgOiBgJHt1cmwucGF0aG5hbWV9L3JlbW90ZUVudHJ5LiR7cmVtb3RlRW50cnlFeHR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsLmhyZWY7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIHN0cmluZyBtYW5pcHVsYXRpb24gZm9yIHJlbGF0aXZlIFVSTHMgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgY29uc3QgZXh0ID0gZXh0bmFtZShyZW1vdGVMb2NhdGlvbik7XG4gICAgY29uc3QgbmVlZHNSZW1vdGVFbnRyeSA9ICFbJy5qcycsICcubWpzJywgJy5qc29uJ10uaW5jbHVkZXMoZXh0KTtcblxuICAgIGlmIChuZWVkc1JlbW90ZUVudHJ5KSB7XG4gICAgICBjb25zdCBiYXNlUmVtb3RlID0gcmVtb3RlTG9jYXRpb24uZW5kc1dpdGgoJy8nKVxuICAgICAgICA/IHJlbW90ZUxvY2F0aW9uLnNsaWNlKDAsIC0xKVxuICAgICAgICA6IHJlbW90ZUxvY2F0aW9uO1xuICAgICAgcmV0dXJuIGAke2Jhc2VSZW1vdGV9L3JlbW90ZUVudHJ5LiR7cmVtb3RlRW50cnlFeHR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVtb3RlTG9jYXRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgcmVtb3RlIFVSTHMgZm9yIHJ1bnRpbWUgZW52aXJvbm1lbnRzLCByZXNvbHZpbmcgcmVsYXRpdmUgVVJMcyBhZ2FpbnN0IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSdW50aW1lUmVtb3RlVXJsKFxuICByZW1vdGVVcmw6IHN0cmluZyxcbiAgcmVtb3RlRW50cnlFeHQ6ICdqcycgfCAnbWpzJ1xuKTogc3RyaW5nIHtcbiAgaWYgKGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKSkge1xuICAgIHJldHVybiBwcm9jZXNzUmVtb3RlTG9jYXRpb24ocmVtb3RlVXJsLCByZW1vdGVFbnRyeUV4dCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gRm9yIHJ1bnRpbWUgcmVsYXRpdmUgVVJMcywgcmVzb2x2ZSBhZ2FpbnN0IGN1cnJlbnQgb3JpZ2luXG4gICAgY29uc3QgYmFzZVVybCA9XG4gICAgICB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHR5cGVvZiAoZ2xvYmFsVGhpcyBhcyBhbnkpLndpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIChnbG9iYWxUaGlzIGFzIGFueSkud2luZG93LmxvY2F0aW9uXG4gICAgICAgID8gKGdsb2JhbFRoaXMgYXMgYW55KS53aW5kb3cubG9jYXRpb24ub3JpZ2luXG4gICAgICAgIDogJ2h0dHA6Ly9sb2NhbGhvc3QnO1xuICAgIGNvbnN0IGFic29sdXRlVXJsID0gbmV3IFVSTChyZW1vdGVVcmwsIGJhc2VVcmwpLmhyZWY7XG4gICAgcmV0dXJuIHByb2Nlc3NSZW1vdGVMb2NhdGlvbihhYnNvbHV0ZVVybCwgcmVtb3RlRW50cnlFeHQpO1xuICB9XG59XG4iXX0=","import { processRuntimeRemoteUrl } from './url-helpers';\nlet resolveRemoteUrl;\n/**\n * @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n */\nexport function setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nlet remoteUrlDefinitions;\n/**\n * @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:\n * ```ts\n * import { setRemoteDefinitions } from '@nx/angular/mf';\n *\n * setRemoteDefinitions({\n * 'my-remote-app': 'http://localhost:4201/mf-manifest.json'\n * });\n * ```\n * to use init():\n * ```ts\n * import { init } from '@module-federation/enhanced/runtime';\n *\n * init({\n * name: 'host',\n * remotes: [{\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }]\n * });\n * ```\n */\nexport function setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\n/**\n * @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a remote app with `setRemoteDefinition` such as:\n * ```ts\n * import { setRemoteDefinition } from '@nx/angular/mf';\n *\n * setRemoteDefinition(\n * 'my-remote-app',\n * 'http://localhost:4201/mf-manifest.json'\n * );\n * ```\n * change it to use registerRemotes():\n * ```ts\n * import { registerRemotes } from '@module-federation/enhanced/runtime';\n *\n * registerRemotes([\n * {\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }\n * ]);\n * ```\n */\nexport function setRemoteDefinition(remoteName, remoteUrl) {\n remoteUrlDefinitions ??= {};\n remoteUrlDefinitions[remoteName] = remoteUrl;\n}\nlet remoteModuleMap = new Map();\nlet remoteContainerMap = new Map();\n/**\n * @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a load a remote with `loadRemoteModule` such as:\n * ```ts\n * import { loadRemoteModule } from '@nx/angular/mf';\n *\n * loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);\n * ```\n * change it to use loadRemote():\n * ```ts\n * import { loadRemote } from '@module-federation/enhanced/runtime';\n *\n * loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);\n * ```\n */\nexport async function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nfunction loadModule(url) {\n return import(/* webpackIgnore:true */ url);\n}\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n const containerUrl = processRuntimeRemoteUrl(remoteUrl, 'mjs');\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL21mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVN4RCxJQUFJLGdCQUEwQyxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxpQkFBMkM7SUFFM0MsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkMsQ0FBQztBQUVELElBQUksb0JBQTRDLENBQUM7QUFFakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBbUM7SUFDdEUsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLFNBQWlCO0lBQ3ZFLG9CQUFvQixLQUFLLEVBQUUsQ0FBQztJQUM1QixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDL0MsQ0FBQztBQUVELElBQUksZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBQ2pELElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsVUFBa0I7SUFDM0UsTUFBTSxlQUFlLEdBQUcsR0FBRyxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7SUFDdEQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QixlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFdkMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQWtCO0lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYixrSEFBa0gsQ0FDbkgsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNoQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsb0JBQW9CO1FBQ3BDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9ELE1BQU0sU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9jZXNzUnVudGltZVJlbW90ZVVybCB9IGZyb20gJy4vdXJsLWhlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb24gPSAoXG4gIHJlbW90ZU5hbWU6IHN0cmluZ1xuKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fOiAoc2NvcGU6ICdkZWZhdWx0JykgPT4gUHJvbWlzZTx2b2lkPjtcbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fOiB7IGRlZmF1bHQ6IHVua25vd24gfTtcblxubGV0IHJlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgUnVudGltZSBIZWxwZXJzIGZyb20gJ0Btb2R1bGUtZmVkZXJhdGlvbi9lbmhhbmNlZC9ydW50aW1lJyBpbnN0ZWFkLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBOeCAyMi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZVVybFJlc29sdmVyKFxuICBfcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uXG4pIHtcbiAgcmVzb2x2ZVJlbW90ZVVybCA9IF9yZXNvbHZlUmVtb3RlVXJsO1xufVxuXG5sZXQgcmVtb3RlVXJsRGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGluaXQoKSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZScgaW5zdGVhZC4gVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gTnggMjIuXG4gKiBJZiB5b3UgaGF2ZSBhIHJlbW90ZSBhcHAgY2FsbGVkIGBteS1yZW1vdGUtYXBwYCBhbmQgeW91IHdhbnQgdG8gdXNlIHRoZSBgaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb25gIGFzIHRoZSByZW1vdGUgdXJsLCB5b3Ugc2hvdWxkIGNoYW5nZSBpdCBmcm9tOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHNldFJlbW90ZURlZmluaXRpb25zIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIHNldFJlbW90ZURlZmluaXRpb25zKHtcbiAqICAgJ215LXJlbW90ZS1hcHAnOiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiB9KTtcbiAqIGBgYFxuICogdG8gdXNlIGluaXQoKTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbml0IH0gZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnO1xuICpcbiAqIGluaXQoe1xuICogICBuYW1lOiAnaG9zdCcsXG4gKiAgIHJlbW90ZXM6IFt7XG4gKiAgICAgbmFtZTogJ215LXJlbW90ZS1hcHAnLFxuICogICAgIGVudHJ5OiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiAgIH1dXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcmVnaXN0ZXJSZW1vdGVzKCkgZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnIGluc3RlYWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIE54IDIyLlxuICogSWYgeW91IHNldCBhIHJlbW90ZSBhcHAgd2l0aCBgc2V0UmVtb3RlRGVmaW5pdGlvbmAgc3VjaCBhczpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBzZXRSZW1vdGVEZWZpbml0aW9uIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIHNldFJlbW90ZURlZmluaXRpb24oXG4gKiAgICdteS1yZW1vdGUtYXBwJyxcbiAqICAgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMS9tZi1tYW5pZmVzdC5qc29uJ1xuICogKTtcbiAqIGBgYFxuICogY2hhbmdlIGl0IHRvIHVzZSByZWdpc3RlclJlbW90ZXMoKTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyByZWdpc3RlclJlbW90ZXMgfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZSc7XG4gKlxuICogcmVnaXN0ZXJSZW1vdGVzKFtcbiAqICB7XG4gKiAgICAgbmFtZTogJ215LXJlbW90ZS1hcHAnLFxuICogICAgIGVudHJ5OiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiAgIH1cbiAqIF0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVEZWZpbml0aW9uKHJlbW90ZU5hbWU6IHN0cmluZywgcmVtb3RlVXJsOiBzdHJpbmcpIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPz89IHt9O1xuICByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXSA9IHJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZU1vZHVsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xubGV0IHJlbW90ZUNvbnRhaW5lck1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBsb2FkUmVtb3RlKCkgZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnIGluc3RlYWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIE54IDIyLlxuICogSWYgeW91IHNldCBhIGxvYWQgYSByZW1vdGUgd2l0aCBgbG9hZFJlbW90ZU1vZHVsZWAgc3VjaCBhczpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIGxvYWRSZW1vdGVNb2R1bGUoJ215LXJlbW90ZS1hcHAnLCAnLi9Nb2R1bGUnKS50aGVuKG0gPT4gbS5SZW1vdGVFbnRyeU1vZHVsZSk7XG4gKiBgYGBcbiAqIGNoYW5nZSBpdCB0byB1c2UgbG9hZFJlbW90ZSgpOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGxvYWRSZW1vdGUgfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZSc7XG4gKlxuICogbG9hZFJlbW90ZTx0eXBlb2YgaW1wb3J0KCdteS1yZW1vdGUtYXBwL01vZHVsZScpPignbXktcmVtb3RlLWFwcC9Nb2R1bGUnKS50aGVuKG0gPT4gbS5SZW1vdGVFbnRyeU1vZHVsZSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVNb2R1bGUocmVtb3RlTmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVtb3RlTW9kdWxlS2V5ID0gYCR7cmVtb3RlTmFtZX06JHttb2R1bGVOYW1lfWA7XG4gIGlmIChyZW1vdGVNb2R1bGVNYXAuaGFzKHJlbW90ZU1vZHVsZUtleSkpIHtcbiAgICByZXR1cm4gcmVtb3RlTW9kdWxlTWFwLmdldChyZW1vdGVNb2R1bGVLZXkpO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gcmVtb3RlQ29udGFpbmVyTWFwLmhhcyhyZW1vdGVOYW1lKVxuICAgID8gcmVtb3RlQ29udGFpbmVyTWFwLmdldChyZW1vdGVOYW1lKVxuICAgIDogYXdhaXQgbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lKTtcblxuICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgY29udGFpbmVyLmdldChtb2R1bGVOYW1lKTtcbiAgY29uc3QgTW9kdWxlID0gZmFjdG9yeSgpO1xuXG4gIHJlbW90ZU1vZHVsZU1hcC5zZXQocmVtb3RlTW9kdWxlS2V5LCBNb2R1bGUpO1xuXG4gIHJldHVybiBNb2R1bGU7XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGltcG9ydCgvKiB3ZWJwYWNrSWdub3JlOnRydWUgKi8gdXJsKTtcbn1cblxubGV0IGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gZmFsc2U7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVDb250YWluZXIocmVtb3RlTmFtZTogc3RyaW5nKSB7XG4gIGlmICghcmVzb2x2ZVJlbW90ZVVybCAmJiAhcmVtb3RlVXJsRGVmaW5pdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbCBzZXRSZW1vdGVEZWZpbml0aW9ucyBvciBzZXRSZW1vdGVVcmxSZXNvbHZlciB0byBhbGxvdyBEeW5hbWljIEZlZGVyYXRpb24gdG8gZmluZCB0aGUgcmVtb3RlIGFwcHMgY29ycmVjdGx5LidcbiAgICApO1xuICB9XG5cbiAgaWYgKCFpbml0aWFsU2hhcmluZ1Njb3BlQ3JlYXRlZCkge1xuICAgIGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gdHJ1ZTtcbiAgICBhd2FpdCBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKTtcbiAgfVxuXG4gIGNvbnN0IHJlbW90ZVVybCA9IHJlbW90ZVVybERlZmluaXRpb25zXG4gICAgPyByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXVxuICAgIDogYXdhaXQgcmVzb2x2ZVJlbW90ZVVybChyZW1vdGVOYW1lKTtcblxuICBjb25zdCBjb250YWluZXJVcmwgPSBwcm9jZXNzUnVudGltZVJlbW90ZVVybChyZW1vdGVVcmwsICdtanMnKTtcblxuICBjb25zdCBjb250YWluZXIgPSBhd2FpdCBsb2FkTW9kdWxlKGNvbnRhaW5lclVybCk7XG4gIGF3YWl0IGNvbnRhaW5lci5pbml0KF9fd2VicGFja19zaGFyZV9zY29wZXNfXy5kZWZhdWx0KTtcblxuICByZW1vdGVDb250YWluZXJNYXAuc2V0KHJlbW90ZU5hbWUsIGNvbnRhaW5lcik7XG4gIHJldHVybiBjb250YWluZXI7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtYW5ndWxhci1tZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbWYvbngtYW5ndWxhci1tZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}