diff --git a/.buildkite/scripts/bootstrap.sh b/.buildkite/scripts/bootstrap.sh index 272cd0a08617..d4e8434fe6df 100755 --- a/.buildkite/scripts/bootstrap.sh +++ b/.buildkite/scripts/bootstrap.sh @@ -18,6 +18,10 @@ if ! yarn kbn bootstrap; then yarn kbn bootstrap fi +if [[ "$DISABLE_BOOTSTRAP_VALIDATION" != "true" ]]; then + verify_no_git_changes 'yarn kbn bootstrap' +fi + ### ### upload ts-refs-cache artifacts as quickly as possible so they are available for download ### @@ -27,7 +31,3 @@ if [[ "${BUILD_TS_REFS_CACHE_CAPTURE:-}" == "true" ]]; then gsutil cp "*.zip" 'gs://kibana-ci-ts-refs-cache/' cd "$KIBANA_DIR" fi - -if [[ "$DISABLE_BOOTSTRAP_VALIDATION" != "true" ]]; then - verify_no_git_changes 'yarn kbn bootstrap' -fi diff --git a/.buildkite/scripts/common/util.sh b/.buildkite/scripts/common/util.sh index 0e5fb1c40eb6..4a81506200cf 100755 --- a/.buildkite/scripts/common/util.sh +++ b/.buildkite/scripts/common/util.sh @@ -16,12 +16,14 @@ is_pr() { verify_no_git_changes() { RED='\033[0;31m' + YELLOW='\033[0;33m' C_RESET='\033[0m' # Reset color GIT_CHANGES="$(git ls-files --modified -- . ':!:.bazelrc')" if [ "$GIT_CHANGES" ]; then echo -e "\n${RED}ERROR: '$1' caused changes to the following files:${C_RESET}\n" echo -e "$GIT_CHANGES\n" + echo -e "\n${YELLOW}TO FIX: Run '$1' locally, commit the changes and push to your branch${C_RESET}\n" exit 1 fi } diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index 0d4bc829ead7..9e335fc3cdea 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -2,6 +2,7 @@ set -euo pipefail +export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/bootstrap.sh .buildkite/scripts/steps/checks/commit/commit.sh diff --git a/docs/development/core/public/kibana-plugin-core-public.appmountparameters.md b/docs/development/core/public/kibana-plugin-core-public.appmountparameters.md index d32faa55a5f8..4608767651d2 100644 --- a/docs/development/core/public/kibana-plugin-core-public.appmountparameters.md +++ b/docs/development/core/public/kibana-plugin-core-public.appmountparameters.md @@ -20,4 +20,5 @@ export interface AppMountParameters | [history](./kibana-plugin-core-public.appmountparameters.history.md) | ScopedHistory<HistoryLocationState> | A scoped history instance for your application. Should be used to wire up your applications Router. | | [onAppLeave](./kibana-plugin-core-public.appmountparameters.onappleave.md) | (handler: AppLeaveHandler) => void | A function that can be used to register a handler that will be called when the user is leaving the current application, allowing to prompt a confirmation message before actually changing the page.This will be called either when the user goes to another application, or when trying to close the tab or manually changing the url. | | [setHeaderActionMenu](./kibana-plugin-core-public.appmountparameters.setheaderactionmenu.md) | (menuMount: MountPoint \| undefined) => void | A function that can be used to set the mount point used to populate the application action container in the chrome header.Calling the handler multiple time will erase the current content of the action menu with the mount from the latest call. Calling the handler with undefined will unmount the current mount point. Calling the handler after the application has been unmounted will have no effect. | +| [theme$](./kibana-plugin-core-public.appmountparameters.theme_.md) | Observable<CoreTheme> | An observable emitting [Core's theme](./kibana-plugin-core-public.coretheme.md). Should be used when mounting the application to include theme information. | diff --git a/docs/development/core/public/kibana-plugin-core-public.appmountparameters.theme_.md b/docs/development/core/public/kibana-plugin-core-public.appmountparameters.theme_.md new file mode 100644 index 000000000000..dd105e937a3a --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.appmountparameters.theme_.md @@ -0,0 +1,33 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [AppMountParameters](./kibana-plugin-core-public.appmountparameters.md) > [theme$](./kibana-plugin-core-public.appmountparameters.theme_.md) + +## AppMountParameters.theme$ property + +An observable emitting [Core's theme](./kibana-plugin-core-public.coretheme.md). Should be used when mounting the application to include theme information. + +Signature: + +```typescript +theme$: Observable; +``` + +## Example + +When mounting a react application: + +```ts +// application.tsx +import React from 'react'; +import ReactDOM from 'react-dom'; + +import { AppMountParameters } from 'src/core/public'; +import { wrapWithTheme } from 'src/plugins/kibana_react'; +import { MyApp } from './app'; + +export renderApp = ({ element, theme$ }: AppMountParameters) => { + ReactDOM.render(wrapWithTheme(, theme$), element); + return () => ReactDOM.unmountComponentAtNode(element); +} +``` + diff --git a/docs/development/core/public/kibana-plugin-core-public.coresetup.md b/docs/development/core/public/kibana-plugin-core-public.coresetup.md index 18af0c7ea585..9488b8a26b86 100644 --- a/docs/development/core/public/kibana-plugin-core-public.coresetup.md +++ b/docs/development/core/public/kibana-plugin-core-public.coresetup.md @@ -22,5 +22,6 @@ export interface CoreSetup + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [CoreSetup](./kibana-plugin-core-public.coresetup.md) > [theme](./kibana-plugin-core-public.coresetup.theme.md) + +## CoreSetup.theme property + +[ThemeServiceSetup](./kibana-plugin-core-public.themeservicesetup.md) + +Signature: + +```typescript +theme: ThemeServiceSetup; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.corestart.md b/docs/development/core/public/kibana-plugin-core-public.corestart.md index e0f6a6878241..ae67696e1250 100644 --- a/docs/development/core/public/kibana-plugin-core-public.corestart.md +++ b/docs/development/core/public/kibana-plugin-core-public.corestart.md @@ -27,5 +27,6 @@ export interface CoreStart | [notifications](./kibana-plugin-core-public.corestart.notifications.md) | NotificationsStart | [NotificationsStart](./kibana-plugin-core-public.notificationsstart.md) | | [overlays](./kibana-plugin-core-public.corestart.overlays.md) | OverlayStart | [OverlayStart](./kibana-plugin-core-public.overlaystart.md) | | [savedObjects](./kibana-plugin-core-public.corestart.savedobjects.md) | SavedObjectsStart | [SavedObjectsStart](./kibana-plugin-core-public.savedobjectsstart.md) | +| [theme](./kibana-plugin-core-public.corestart.theme.md) | ThemeServiceStart | [ThemeServiceStart](./kibana-plugin-core-public.themeservicestart.md) | | [uiSettings](./kibana-plugin-core-public.corestart.uisettings.md) | IUiSettingsClient | [IUiSettingsClient](./kibana-plugin-core-public.iuisettingsclient.md) | diff --git a/docs/development/core/public/kibana-plugin-core-public.corestart.theme.md b/docs/development/core/public/kibana-plugin-core-public.corestart.theme.md new file mode 100644 index 000000000000..306ab211798f --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.corestart.theme.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [CoreStart](./kibana-plugin-core-public.corestart.md) > [theme](./kibana-plugin-core-public.corestart.theme.md) + +## CoreStart.theme property + +[ThemeServiceStart](./kibana-plugin-core-public.themeservicestart.md) + +Signature: + +```typescript +theme: ThemeServiceStart; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.coretheme.darkmode.md b/docs/development/core/public/kibana-plugin-core-public.coretheme.darkmode.md new file mode 100644 index 000000000000..d62f9486e66e --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.coretheme.darkmode.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [CoreTheme](./kibana-plugin-core-public.coretheme.md) > [darkMode](./kibana-plugin-core-public.coretheme.darkmode.md) + +## CoreTheme.darkMode property + +is dark mode enabled or not + +Signature: + +```typescript +readonly darkMode: boolean; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.coretheme.md b/docs/development/core/public/kibana-plugin-core-public.coretheme.md new file mode 100644 index 000000000000..552113b8d2c4 --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.coretheme.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [CoreTheme](./kibana-plugin-core-public.coretheme.md) + +## CoreTheme interface + +Contains all the required information to apply Kibana's theme at the various levels it can be used. + +Signature: + +```typescript +export interface CoreTheme +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [darkMode](./kibana-plugin-core-public.coretheme.darkmode.md) | boolean | is dark mode enabled or not | + diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md index d7f159ad6f62..6e50afedbe0b 100644 --- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md +++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md @@ -211,7 +211,11 @@ readonly links: { uptimeDurationAnomaly: string; }>; readonly alerting: Record; - readonly maps: Record; + readonly maps: Readonly<{ + guide: string; + importGeospatialPrivileges: string; + gdalTutorial: string; + }>; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; diff --git a/docs/development/core/public/kibana-plugin-core-public.md b/docs/development/core/public/kibana-plugin-core-public.md index dee77e899415..b51f5ed833fd 100644 --- a/docs/development/core/public/kibana-plugin-core-public.md +++ b/docs/development/core/public/kibana-plugin-core-public.md @@ -58,6 +58,7 @@ The plugin integrates with the core system via lifecycle events: `setup` | [ChromeUserBanner](./kibana-plugin-core-public.chromeuserbanner.md) | | | [CoreSetup](./kibana-plugin-core-public.coresetup.md) | Core services exposed to the Plugin setup lifecycle | | [CoreStart](./kibana-plugin-core-public.corestart.md) | Core services exposed to the Plugin start lifecycle | +| [CoreTheme](./kibana-plugin-core-public.coretheme.md) | Contains all the required information to apply Kibana's theme at the various levels it can be used. | | [DeprecationsServiceStart](./kibana-plugin-core-public.deprecationsservicestart.md) | DeprecationsService provides methods to fetch domain deprecation details from the Kibana server. | | [DocLinksStart](./kibana-plugin-core-public.doclinksstart.md) | | | [ErrorToastOptions](./kibana-plugin-core-public.errortoastoptions.md) | Options available for [IToasts](./kibana-plugin-core-public.itoasts.md) error APIs. | @@ -131,6 +132,8 @@ The plugin integrates with the core system via lifecycle events: `setup` | [SavedObjectsResolveResponse](./kibana-plugin-core-public.savedobjectsresolveresponse.md) | | | [SavedObjectsStart](./kibana-plugin-core-public.savedobjectsstart.md) | | | [SavedObjectsUpdateOptions](./kibana-plugin-core-public.savedobjectsupdateoptions.md) | | +| [ThemeServiceSetup](./kibana-plugin-core-public.themeservicesetup.md) | | +| [ThemeServiceStart](./kibana-plugin-core-public.themeservicestart.md) | | | [ToastOptions](./kibana-plugin-core-public.toastoptions.md) | Options available for [IToasts](./kibana-plugin-core-public.itoasts.md) APIs. | | [UiSettingsParams](./kibana-plugin-core-public.uisettingsparams.md) | UiSettings parameters defined by the plugins. | | [UiSettingsState](./kibana-plugin-core-public.uisettingsstate.md) | | diff --git a/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.md b/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.md new file mode 100644 index 000000000000..f372ed9b22ef --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ThemeServiceSetup](./kibana-plugin-core-public.themeservicesetup.md) + +## ThemeServiceSetup interface + + +Signature: + +```typescript +export interface ThemeServiceSetup +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [theme$](./kibana-plugin-core-public.themeservicesetup.theme_.md) | Observable<CoreTheme> | | + diff --git a/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.theme_.md b/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.theme_.md new file mode 100644 index 000000000000..e043d32a6962 --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.themeservicesetup.theme_.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ThemeServiceSetup](./kibana-plugin-core-public.themeservicesetup.md) > [theme$](./kibana-plugin-core-public.themeservicesetup.theme_.md) + +## ThemeServiceSetup.theme$ property + +Signature: + +```typescript +theme$: Observable; +``` diff --git a/docs/development/core/public/kibana-plugin-core-public.themeservicestart.md b/docs/development/core/public/kibana-plugin-core-public.themeservicestart.md new file mode 100644 index 000000000000..85122b31e4f2 --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.themeservicestart.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ThemeServiceStart](./kibana-plugin-core-public.themeservicestart.md) + +## ThemeServiceStart interface + + +Signature: + +```typescript +export interface ThemeServiceStart +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [theme$](./kibana-plugin-core-public.themeservicestart.theme_.md) | Observable<CoreTheme> | | + diff --git a/docs/development/core/public/kibana-plugin-core-public.themeservicestart.theme_.md b/docs/development/core/public/kibana-plugin-core-public.themeservicestart.theme_.md new file mode 100644 index 000000000000..416f1b1de6ed --- /dev/null +++ b/docs/development/core/public/kibana-plugin-core-public.themeservicestart.theme_.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-core-public](./kibana-plugin-core-public.md) > [ThemeServiceStart](./kibana-plugin-core-public.themeservicestart.md) > [theme$](./kibana-plugin-core-public.themeservicestart.theme_.md) + +## ThemeServiceStart.theme$ property + +Signature: + +```typescript +theme$: Observable; +``` diff --git a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md index 36cb2d2d2094..ff9c57787f71 100644 --- a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md +++ b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.collect.md @@ -6,6 +6,8 @@ Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time `reset` was called or this EventLoopDelaysMonitor instance was created. +Returns metrics in milliseconds. + Signature: ```typescript diff --git a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md index 21bbd8b48840..e5d35547d3bd 100644 --- a/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md +++ b/docs/development/core/server/kibana-plugin-core-server.eventloopdelaysmonitor.md @@ -20,7 +20,7 @@ export declare class EventLoopDelaysMonitor | Method | Modifiers | Description | | --- | --- | --- | -| [collect()](./kibana-plugin-core-server.eventloopdelaysmonitor.collect.md) | | Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time reset was called or this EventLoopDelaysMonitor instance was created. | +| [collect()](./kibana-plugin-core-server.eventloopdelaysmonitor.collect.md) | | Collect gathers event loop delays metrics from nodejs perf\_hooks.monitorEventLoopDelay the histogram calculations start from the last time reset was called or this EventLoopDelaysMonitor instance was created.Returns metrics in milliseconds. | | [reset()](./kibana-plugin-core-server.eventloopdelaysmonitor.reset.md) | | Resets the collected histogram data. | | [stop()](./kibana-plugin-core-server.eventloopdelaysmonitor.stop.md) | | Disables updating the interval timer for collecting new data points. | diff --git a/docs/development/core/server/kibana-plugin-core-server.intervalhistogram.md b/docs/development/core/server/kibana-plugin-core-server.intervalhistogram.md index 39f2d570cd25..56a87a1577e9 100644 --- a/docs/development/core/server/kibana-plugin-core-server.intervalhistogram.md +++ b/docs/development/core/server/kibana-plugin-core-server.intervalhistogram.md @@ -4,7 +4,7 @@ ## IntervalHistogram interface -an IntervalHistogram object that samples and reports the event loop delay over time. The delays will be reported in nanoseconds. +an IntervalHistogram object that samples and reports the event loop delay over time. The delays will be reported in milliseconds. Signature: diff --git a/docs/development/core/server/kibana-plugin-core-server.md b/docs/development/core/server/kibana-plugin-core-server.md index 2eed71cc6ece..17c2ab736044 100644 --- a/docs/development/core/server/kibana-plugin-core-server.md +++ b/docs/development/core/server/kibana-plugin-core-server.md @@ -101,7 +101,7 @@ The plugin integrates with the core system via lifecycle events: `setup` | [IExternalUrlPolicy](./kibana-plugin-core-server.iexternalurlpolicy.md) | A policy describing whether access to an external destination is allowed. | | [IKibanaResponse](./kibana-plugin-core-server.ikibanaresponse.md) | A response data object, expected to returned as a result of [RequestHandler](./kibana-plugin-core-server.requesthandler.md) execution | | [IKibanaSocket](./kibana-plugin-core-server.ikibanasocket.md) | A tiny abstraction for TCP socket. | -| [IntervalHistogram](./kibana-plugin-core-server.intervalhistogram.md) | an IntervalHistogram object that samples and reports the event loop delay over time. The delays will be reported in nanoseconds. | +| [IntervalHistogram](./kibana-plugin-core-server.intervalhistogram.md) | an IntervalHistogram object that samples and reports the event loop delay over time. The delays will be reported in milliseconds. | | [IRenderOptions](./kibana-plugin-core-server.irenderoptions.md) | | | [IRouter](./kibana-plugin-core-server.irouter.md) | Registers route handlers for specified resource path and method. See [RouteConfig](./kibana-plugin-core-server.routeconfig.md) and [RequestHandler](./kibana-plugin-core-server.requesthandler.md) for more information about arguments to route registrations. | | [ISavedObjectsPointInTimeFinder](./kibana-plugin-core-server.isavedobjectspointintimefinder.md) | | diff --git a/docs/management/snapshot-restore/images/create-policy-example.png b/docs/management/snapshot-restore/images/create-policy-example.png deleted file mode 100644 index 4ab5e438b306..000000000000 Binary files a/docs/management/snapshot-restore/images/create-policy-example.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/create-policy.png b/docs/management/snapshot-restore/images/create-policy.png deleted file mode 100644 index 3ba33e2522bd..000000000000 Binary files a/docs/management/snapshot-restore/images/create-policy.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/register_repo.png b/docs/management/snapshot-restore/images/register_repo.png deleted file mode 100644 index c742028ce108..000000000000 Binary files a/docs/management/snapshot-restore/images/register_repo.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/repository_list.png b/docs/management/snapshot-restore/images/repository_list.png deleted file mode 100644 index c4eb4fc1a3d1..000000000000 Binary files a/docs/management/snapshot-restore/images/repository_list.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot-restore.png b/docs/management/snapshot-restore/images/snapshot-restore.png deleted file mode 100644 index 8ca5dc95e589..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot-restore.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot-retention.png b/docs/management/snapshot-restore/images/snapshot-retention.png deleted file mode 100644 index 44dfecc1a332..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot-retention.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot_details.png b/docs/management/snapshot-restore/images/snapshot_details.png deleted file mode 100644 index e6c463d7acb7..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot_details.png and /dev/null differ diff --git a/docs/management/snapshot-restore/images/snapshot_list.png b/docs/management/snapshot-restore/images/snapshot_list.png deleted file mode 100644 index f844bfddac4b..000000000000 Binary files a/docs/management/snapshot-restore/images/snapshot_list.png and /dev/null differ diff --git a/docs/management/snapshot-restore/index.asciidoc b/docs/management/snapshot-restore/index.asciidoc deleted file mode 100644 index b041bd0873a0..000000000000 --- a/docs/management/snapshot-restore/index.asciidoc +++ /dev/null @@ -1,299 +0,0 @@ -[role="xpack"] -[[snapshot-repositories]] -== Snapshot and Restore - -*Snapshot and Restore* lets you back up a running {es} -cluster using data and state snapshots. -Snapshots are important because they provide a copy of your data in case -something goes wrong. If you need to roll back to an older version of your data, -you can restore a snapshot from the repository. - -To get started, open the main menu, then click *Stack Management > Snapshot and Restore*. -With this UI, you can: - -* Register a repository for storing your snapshots -* View a list of your snapshots and drill down into details -* Restore data into your cluster from a snapshot -* Create a policy to automate snapshot creation and deletion -* Delete a snapshot to free storage space - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot_list.png["Snapshot list"] - -Before using this feature, you should be familiar with how snapshots work. -{ref}/snapshot-restore.html[Snapshot and Restore] is a good source for -more detailed information. - -[float] -[[snapshot-permissions]] -=== Required permissions -The minimum required permissions to access *Snapshot and Restore* include: - -* Cluster privileges: `monitor`, `manage_slm`, `cluster:admin/snapshot`, and `cluster:admin/repository` -* Index privileges: `all` on the `monitor` index if you want to access content in the *Restore Status* tab - -To add privileges, open the main menu, then click *Stack Management > Roles*. - -[float] -[[kib-snapshot-register-repository]] -=== Register a repository -A repository is where your snapshots live. You must register a snapshot -repository before you can perform snapshot and restore operations. - -{kib} supports three repository types -out of the box: shared file system, read-only URL, and source-only. -For more information on these repositories and their settings, -see {ref}/snapshots-register-repository.html[Repositories]. -To use other repositories, such as S3, see -{ref}/snapshots-register-repository.html#snapshots-repository-plugins[Repository plugins]. - -The *Repositories* view displays a list of registered repositories. Click a -repository name to view information about the repository, verify its status, or -clean it up. - -[role="screenshot"] -image:management/snapshot-restore/images/repository_list.png["Repository list"] - - -[float] -[[kib-view-snapshot]] -=== View your snapshots - -A snapshot is a backup taken from a running {es} cluster. You'll find an overview of -your snapshots in the *Snapshots* view, and you can drill down -into each snapshot for further investigation. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot_details.png["Snapshot details"] - -If you don’t have any snapshots, you can create them using the -{ref}/create-snapshot-api.html[create snapshot API]. - -[float] -[[kib-restore-snapshot]] -=== Restore a snapshot - -The information stored in a snapshot is not tied to a specific -cluster or a cluster name. This enables you to -restore a snapshot made from one cluster to another cluster. You might -use the restore operation to: - -* Recover data lost due to a failure -* Migrate an {es} cluster to a new version -* Move data from one cluster to another cluster - -To get started, go to the *Snapshots* view, find the -snapshot, and click the restore icon in the *Actions* column. -The Restore wizard presents -options for the restore operation, including which -data streams and indices to restore and whether to change index settings. -You can restore an existing index only if it’s closed and has the same -number of shards as the index in the snapshot. - -Once you initiate the restore, you're navigated to the *Restore Status* view, -where you can track the current state for each shard in the snapshot. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot-restore.png["Snapshot details"] - - -[float] -[[kib-snapshot-policy]] -=== Create a snapshot lifecycle policy - -Use a {ref}/snapshot-lifecycle-management-api.html[snapshot lifecycle policy] -to automate the creation and deletion -of cluster snapshots. Taking automatic snapshots: - -* Ensures your {es} data is backed up on a regular basis -* Ensures a recent and relevant snapshot is available if a situation -arises where a cluster needs to be recovered -* Allows you to manage your snapshots in {kib}, instead of using a -third-party tool - -If you don’t have any snapshot policies, follow the -*Create policy* wizard. It walks you through defining -when and where to take snapshots, the settings you want, -and how long to retain snapshots. - -[role="screenshot"] -image:management/snapshot-restore/images/snapshot-retention.png["Snapshot details"] - -An overview of your policies is on the *Policies* view. -You can drill down into each policy to examine its settings and last successful and failed run. - -You can perform the following actions on a snapshot policy: - -* *Run* a policy immediately without waiting for the scheduled time. This action -is useful before an upgrade or before performing maintenance. -* *Edit* a policy and immediately apply changes to the schedule. -* *Delete* a policy to prevent any future snapshots from being taken. -This action does not cancel any currently ongoing snapshots or remove any previously taken snapshots. - -[role="screenshot"] -image:management/snapshot-restore/images/create-policy.png["Snapshot details"] - -[float] -[[kib-delete-snapshot]] -=== Delete a snapshot - -Delete snapshots to manage your repository storage space. -Find the snapshot in the *Snapshots* view and click the trash icon in the -*Actions* column. To delete snapshots in bulk, select their checkboxes, -and then click *Delete snapshots*. - -[[snapshot-repositories-example]] - -[role="xpack"] -[[snapshot-restore-tutorial]] -=== Tutorial: Snapshot and Restore - - -Ready to try *Snapshot and Restore*? In this tutorial, you'll learn to: - -* Register a repository -* Add snapshots to the repository -* Create a snapshot lifecycle policy -* Restore a snapshot - -==== Before you begin - -This example shows you how to register a shared file system repository -and store snapshots. - -Before you begin, you must first mount the file system to the same location on -all master and data nodes. Then add the file system’s path or parent directory -to the -{ref}/snapshots-register-repository.html#snapshots-filesystem-repository[`path.repo`] -setting in `elasticsearch.yml` for each master and data node. - -[float] -[[register-repo-example]] -==== Register a repository - -Use *Snapshot and Restore* to register the repository where your snapshots -will live. - -. Open the main menu, then click *Stack Management > Snapshot and Restore*. -. Click *Register a repository* in either the introductory message or *Repository view*. -. Enter a name for your repository, for example, `my_backup`. -. Select *Shared file system*. -+ -[role="screenshot"] -image:management/snapshot-restore/images/register_repo.png["Register repository"] - -. Click *Next*. -. In *File system location*, enter the path to the snapshot repository, `/tmp/es-backups`. -. In *Chunk size*, enter `100mb` so that snapshot files are not bigger than that size. -. Use the defaults for all other fields, and then click *Register*. -+ -Your new repository is listed on the *Repositories* view. -The repository currently doesn’t have any snapshots. - - -[float] -==== Add a snapshot to the repository -Use the {ref}/snapshots-take-snapshot.html[snapshot API] to create a snapshot. - -. Open the main menu, click *Dev Tools*, then select *Console*. -. Create the snapshot: -+ -[source,js] -PUT /_snapshot/my_backup/2099-04-25_snapshot?wait_for_completion=true -+ -In this example, the snapshot name is `2099-04-25_snapshot`. You can also -use {ref}/date-math-index-names.html[date math expression] for the snapshot name. - -. Return to *Snapshot and Restore*. -+ -Your new snapshot is available in the *Snapshots* view. - -[[create-policy-example]] -==== Create a snapshot lifecycle policy - -Now you'll automate the creation and deletion of snapshots -using the repository created in the previous example. - -. Open the *Policies* view. -. Click *Create a policy*. -+ -[role="screenshot"] -image:management/snapshot-restore/images/create-policy-example.png["Create policy wizard"] - -. As you walk through the wizard, enter the following values: -+ -|=== -|*Logistics* | - -|Policy name -|`daily-snapshots` - -|Snapshot name -|`` - -|Repository -|`my_backup` - -|Schedule -|Every day at 1:30 a.m. - -|*Snapshot settings* | - -|Data streams and indices -|Select the data streams and indices to back up. By default, all data streams -and indices, including system indices, are backed up. - -|All other settings -|Use the defaults. - -|*Snapshot retention* | - -|Expiration -|`30 days` - -|Snapshots to retain -|Minimum count: `5`, Maximum count: `50` -|=== - -. Review your input, and then click *Create policy*. -+ -Your new policy is listed in the *Policies* view, and you see a summary of its details. - -[[restore-snapshot-example]] -==== Restore a snapshot -Finally, you'll restore data streams and indices from an existing snapshot. - -. In the *Snapshots* view, find the snapshot you want to restore, for example `2099-04-25_snapshot`. -. Click the restore icon in the *Actions* column. -. As you walk through the wizard, enter the following values: -+ -|=== -|*Logistics* | - -|Data streams and indices -|Toggle to choose specific data streams and indices to restore. Use the default -to restore all data streams and indices in the snapshot. - -|Rename data streams and indices -|Toggle to give your restored data streams and indices new names. Use the -default to restore the original data stream and index names. - -|All other fields -|Use the defaults. - -|*Index settings* | - -|Modify index settings -|Toggle to overwrite index settings when they are restored, -or leave in place to keep existing settings. - -|Reset index settings -|Toggle to reset index settings back to the default when they are restored, -or leave in place to keep existing settings. -|=== - -. Review your restore settings, and then click *Restore snapshot*. -+ -The operation loads for a few seconds, -and then you’re navigated to *Restore Status*, -where you can monitor the status of your restored data streams and indices. diff --git a/docs/redirects.asciidoc b/docs/redirects.asciidoc index 2b00ccd67dc9..8b77bb755502 100644 --- a/docs/redirects.asciidoc +++ b/docs/redirects.asciidoc @@ -7,6 +7,14 @@ The following pages have moved or been deleted. -- +[role="exclude",id="snapshot-repositories"] +== Snapshot and Restore +Refer to {ref}/snapshot-restore.html[Snapshot and Restore]. + +[role="exclude",id="snapshot-restore-tutorial"] +== Tutorial: Snapshot and Restore +Refer to {ref}/snapshot-restore.html[Snapshot and Restore]. + [role="exclude",id="configuring-tls"] == Encrypt TLS communications in {kib} Refer to {ref}/security-basic-setup-https.html#encrypt-kibana-http[Encrypt HTTP client communications for {kib}]. diff --git a/docs/setup/upgrade.asciidoc b/docs/setup/upgrade.asciidoc index f5ed03f85cc1..29f21b850c13 100644 --- a/docs/setup/upgrade.asciidoc +++ b/docs/setup/upgrade.asciidoc @@ -44,12 +44,12 @@ a| [[upgrade-before-you-begin]] === Before you begin -WARNING: {kib} automatically runs upgrade migrations when required. To roll back to an earlier version in case of an upgrade failure, you **must** have a backup snapshot available. Use <> to back up {kib} data by targeting the `.kibana*` indices. For more information see <>. +WARNING: {kib} automatically runs upgrade migrations when required. To roll back to an earlier version in case of an upgrade failure, you **must** have a {ref}/snapshot-restore.html[backup snapshot] available. This snapshot must include the `kibana` feature state or all `kibana*` indices. For more information see <>. Before you upgrade {kib}: * Consult the <>. -* Back up your data with <>. To roll back to an earlier version, you **must** have a snapshot of the `.kibana*` indices. +* {ref}/snapshots-take-snapshot.html[Take a snapshot] of your data. To roll back to an earlier version, the snapshot must include the `kibana` feature state or all `.kibana*` indices. * Although not a requirement for rollbacks, we recommend taking a snapshot of all {kib} indices created by the plugins you use such as the `.reporting*` indices created by the reporting plugin. * Before you upgrade production servers, test the upgrades in a dev environment. * See <> for common reasons upgrades fail and how to prevent these. diff --git a/docs/setup/upgrade/upgrade-migrations.asciidoc b/docs/setup/upgrade/upgrade-migrations.asciidoc index adf86d2b2b54..c47c2c1745e9 100644 --- a/docs/setup/upgrade/upgrade-migrations.asciidoc +++ b/docs/setup/upgrade/upgrade-migrations.asciidoc @@ -151,17 +151,17 @@ In order to rollback after a failed upgrade migration, the saved object indices [float] ===== Rollback by restoring a backup snapshot: -1. Before proceeding ensure that you have a recent and successful backup snapshot of all `.kibana*` indices. +1. Before proceeding, {ref}/snapshots-take-snapshot.html[take a snapshot] that contains the `kibana` feature state or all `.kibana*` indices. 2. Shutdown all {kib} instances to be 100% sure that there are no instances currently performing a migration. 3. Delete all saved object indices with `DELETE /.kibana*` -4. Restore the `.kibana* indices and their aliases from the backup snapshot. See {es} {ref}/modules-snapshots.html[snapshots] +4. {ref}/snapshots-restore-snapshot.html[Restore] the `kibana` feature state or all `.kibana* indices and their aliases from the snapshot. 5. Start up all {kib} instances on the older version you wish to rollback to. [float] ===== (Not recommended) Rollback without a backup snapshot: 1. Shutdown all {kib} instances to be 100% sure that there are no {kib} instances currently performing a migration. -2. Create a backup snapshot of the `.kibana*` indices. +2. {ref}/snapshots-take-snapshot.html[Take a snapshot] that includes the `kibana` feature state or all `.kibana*` indices. 3. Delete the version specific indices created by the failed upgrade migration. E.g. if you wish to rollback from a failed upgrade to v7.12.0 `DELETE /.kibana_7.12.0_*,.kibana_task_manager_7.12.0_*` 4. Inspect the output of `GET /_cat/aliases`. If either the `.kibana` and/or `.kibana_task_manager` alias is missing, these will have to be created manually. Find the latest index from the output of `GET /_cat/indices` and create the missing alias to point to the latest index. E.g. if the `.kibana` alias was missing and the latest index is `.kibana_3` create a new alias with `POST /.kibana_3/_aliases/.kibana`. 5. Remove the write block from the rollback indices. `PUT /.kibana,.kibana_task_manager/_settings {"index.blocks.write": false}` diff --git a/docs/template.asciidoc b/docs/template.asciidoc index 16cf8fd04933..060c8611cc09 100644 --- a/docs/template.asciidoc +++ b/docs/template.asciidoc @@ -26,7 +26,6 @@ Provide a screenshot or video. //Screenshots must be 16:9 ratio. TIP: Need introduction inspiration? Here are some good examples: -* <> * <> * <> diff --git a/docs/user/management.asciidoc b/docs/user/management.asciidoc index 9d6392c39ba8..8888fcf568d9 100644 --- a/docs/user/management.asciidoc +++ b/docs/user/management.asciidoc @@ -45,7 +45,7 @@ through the hot, warm, cold, and delete phases. Such policies help you control operation costs because you can put data in different resource tiers. -| <> +| {ref}/snapshot-restore.html[Snapshot and Restore] |Define a policy that creates, schedules, and automatically deletes snapshots to ensure that you have backups of your cluster in case something goes wrong. @@ -193,8 +193,6 @@ include::{kib-repo-dir}/management/managing-saved-objects.asciidoc[] include::security/index.asciidoc[] -include::{kib-repo-dir}/management/snapshot-restore/index.asciidoc[] - include::{kib-repo-dir}/spaces/index.asciidoc[] include::{kib-repo-dir}/management/managing-tags.asciidoc[] diff --git a/package.json b/package.json index de6119dbdda2..b00d8c6d2cac 100644 --- a/package.json +++ b/package.json @@ -37,44 +37,47 @@ }, "author": "Rashid Khan ", "scripts": { + "backport-skip-ci": "backport --prDescription \"[skip-ci]\"", "bazel": "bazel", - "preinstall": "node ./preinstall_check", - "kbn": "node scripts/kbn", - "es": "node scripts/es", - "test:jest": "node scripts/jest", - "test:jest_integration": "node scripts/jest_integration", - "test:ftr": "node scripts/functional_tests", - "test:ftr:server": "node scripts/functional_tests_server", - "test:ftr:runner": "node scripts/functional_test_runner", - "checkLicenses": "node scripts/check_licenses --dev", "build": "node scripts/build --all-platforms", "build:apidocs": "node scripts/build_api_docs", - "start": "node scripts/kibana --dev", + "build:types": "rm -rf ./target/types && tsc --p tsconfig.types.json", + "checkLicenses": "node scripts/check_licenses --dev", + "cover:functional:merge": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report/functional --reporter=json-summary", + "cover:report": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report --reporter=lcov && open ./target/coverage/report/lcov-report/index.html", "debug": "node --nolazy --inspect scripts/kibana --dev", "debug-break": "node --nolazy --inspect-brk scripts/kibana --dev", + "docs:acceptApiChanges": "node --max-old-space-size=6144 scripts/check_published_api_changes.js --accept", + "es": "node scripts/es", + "preinstall": "node ./preinstall_check", + "postinstall": "node scripts/kbn patch_native_modules", + "kbn": "node scripts/kbn", "lint": "yarn run lint:es && yarn run lint:style", "lint:es": "node scripts/eslint", "lint:style": "node scripts/stylelint", "makelogs": "node scripts/makelogs", - "build:types": "rm -rf ./target/types && tsc --p tsconfig.types.json", - "docs:acceptApiChanges": "node --max-old-space-size=6144 scripts/check_published_api_changes.js --accept", "spec_to_console": "node scripts/spec_to_console", - "backport-skip-ci": "backport --prDescription \"[skip-ci]\"", + "start": "node scripts/kibana --dev", "storybook": "node scripts/storybook", - "cover:report": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report --reporter=lcov && open ./target/coverage/report/lcov-report/index.html", - "cover:functional:merge": "nyc report --temp-dir target/kibana-coverage/functional --report-dir target/coverage/report/functional --reporter=json-summary", - "postinstall": "node scripts/kbn patch_native_modules" + "test:ftr": "node scripts/functional_tests", + "test:ftr:runner": "node scripts/functional_test_runner", + "test:ftr:server": "node scripts/functional_tests_server", + "test:jest": "node scripts/jest", + "test:jest_integration": "node scripts/jest_integration" }, "repository": { "type": "git", "url": "https://github.com/elastic/kibana.git" }, + "engines": { + "node": "16.13.0", + "yarn": "^1.21.1" + }, "resolutions": { "**/@types/node": "16.10.2", "**/chokidar": "^3.4.3", "**/deepmerge": "^4.2.2", "**/fast-deep-equal": "^3.1.1", - "globby/fast-glob": "3.2.5", "**/hoist-non-react-statics": "^3.3.2", "**/isomorphic-fetch/node-fetch": "^2.6.1", "**/istanbul-instrumenter-loader/schema-utils": "1.0.0", @@ -85,14 +88,11 @@ "**/react-syntax-highlighter/**/highlight.js": "^10.4.1", "**/trim": "1.0.1", "**/typescript": "4.1.3", - "**/underscore": "^1.13.1" - }, - "engines": { - "node": "16.13.0", - "yarn": "^1.21.1" + "**/underscore": "^1.13.1", + "globby/fast-glob": "3.2.5" }, "dependencies": { - "@babel/runtime": "^7.15.4", + "@babel/runtime": "^7.16.3", "@dnd-kit/core": "^3.1.1", "@dnd-kit/sortable": "^4.0.0", "@dnd-kit/utilities": "^2.0.0", @@ -192,7 +192,7 @@ "axios": "^0.21.1", "base64-js": "^1.3.1", "brace": "0.11.1", - "broadcast-channel": "^4.2.0", + "broadcast-channel": "^4.5.0", "chalk": "^4.1.0", "cheerio": "^1.0.0-rc.10", "chokidar": "^3.4.3", @@ -205,7 +205,7 @@ "constate": "^1.3.2", "content-disposition": "0.5.3", "copy-to-clipboard": "^3.0.8", - "core-js": "^3.18.3", + "core-js": "^3.19.1", "cronstrue": "^1.51.0", "cytoscape": "^3.10.0", "cytoscape-dagre": "^2.2.2", @@ -410,25 +410,25 @@ "yauzl": "^2.10.0" }, "devDependencies": { - "@babel/cli": "^7.15.7", - "@babel/core": "^7.15.8", - "@babel/eslint-parser": "^7.15.8", + "@babel/cli": "^7.16.0", + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", "@babel/eslint-plugin": "^7.14.5", - "@babel/generator": "^7.15.8", - "@babel/parser": "^7.15.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.15.6", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-transform-runtime": "^7.15.8", - "@babel/preset-env": "^7.15.8", - "@babel/preset-react": "^7.14.5", - "@babel/preset-typescript": "^7.15.0", - "@babel/register": "^7.15.3", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6", + "@babel/generator": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.0", + "@babel/preset-env": "^7.16.0", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/register": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0", "@bazel/ibazel": "^0.15.10", "@bazel/typescript": "^3.8.0", "@cypress/snapshot": "^2.1.7", @@ -511,8 +511,8 @@ "@types/deep-freeze-strict": "^1.1.0", "@types/delete-empty": "^2.0.0", "@types/ejs": "^3.0.6", - "@types/elasticsearch": "^5.0.33", "@types/elastic__datemath": "link:bazel-bin/packages/elastic-datemath/npm_module_types", + "@types/elasticsearch": "^5.0.33", "@types/enzyme": "^3.10.8", "@types/eslint": "^7.28.0", "@types/extract-zip": "^1.6.2", @@ -571,7 +571,7 @@ "@types/nock": "^10.0.3", "@types/node": "16.10.2", "@types/node-fetch": "^2.5.7", - "@types/node-forge": "^0.10.5", + "@types/node-forge": "^0.10.10", "@types/nodemailer": "^6.4.0", "@types/normalize-path": "^3.0.0", "@types/object-hash": "^1.3.0", @@ -654,9 +654,9 @@ "babel-jest": "^26.6.3", "babel-loader": "^8.2.2", "babel-plugin-add-module-exports": "^1.0.4", - "babel-plugin-istanbul": "^6.0.0", + "babel-plugin-istanbul": "^6.1.1", "babel-plugin-require-context-hook": "^1.0.0", - "babel-plugin-styled-components": "^1.13.2", + "babel-plugin-styled-components": "^1.13.3", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "backport": "^5.6.6", "callsites": "^3.1.0", @@ -792,6 +792,7 @@ "shelljs": "^0.8.4", "simple-git": "1.116.0", "sinon": "^7.4.2", + "sort-package-json": "^1.53.1", "spawn-sync": "^1.0.15", "string-replace-loader": "^2.2.0", "strong-log-transformer": "^2.1.0", @@ -828,4 +829,4 @@ "yargs": "^15.4.1", "zlib": "^1.0.5" } -} +} \ No newline at end of file diff --git a/packages/kbn-babel-preset/node_preset.js b/packages/kbn-babel-preset/node_preset.js index e70ce15ca3f4..1c74d6771633 100644 --- a/packages/kbn-babel-preset/node_preset.js +++ b/packages/kbn-babel-preset/node_preset.js @@ -32,6 +32,7 @@ module.exports = (_, options = {}) => { // in the package.json in order to have the same polyfills between the environment // and the tests corejs: '3.2.1', + bugfixes: true, ...(options['@babel/preset-env'] || {}), }, diff --git a/packages/kbn-babel-preset/webpack_preset.js b/packages/kbn-babel-preset/webpack_preset.js index 0c949eae5b55..ea49c406d50f 100644 --- a/packages/kbn-babel-preset/webpack_preset.js +++ b/packages/kbn-babel-preset/webpack_preset.js @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -const { USES_STYLED_COMPONENTS } = require.resolve('./styled_components_files'); +const { USES_STYLED_COMPONENTS } = require('./styled_components_files'); module.exports = () => { return { @@ -19,6 +19,7 @@ module.exports = () => { // Please read the explanation for this // in node_preset.js corejs: '3.2.1', + bugfixes: true, }, ], require('./common_preset'), diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 49729eee0aa1..ab8b9766f28d 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -94,7 +94,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _cli__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "run", function() { return _cli__WEBPACK_IMPORTED_MODULE_0__["run"]; }); -/* harmony import */ var _production__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(561); +/* harmony import */ var _production__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(569); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildBazelProductionProjects", function() { return _production__WEBPACK_IMPORTED_MODULE_1__["buildBazelProductionProjects"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildNonBazelProductionProjects", function() { return _production__WEBPACK_IMPORTED_MODULE_1__["buildNonBazelProductionProjects"]; }); @@ -108,7 +108,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_package_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(349); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "transformDependencies", function() { return _utils_package_json__WEBPACK_IMPORTED_MODULE_4__["transformDependencies"]; }); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(560); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(568); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getProjectPaths", function() { return _config__WEBPACK_IMPORTED_MODULE_5__["getProjectPaths"]; }); /* @@ -141,7 +141,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); /* harmony import */ var _kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_kbn_dev_utils_tooling_log__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _commands__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(129); -/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(555); +/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(563); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(220); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one @@ -542,16 +542,16 @@ Object.defineProperty(exports, "ToolingLog", { return _tooling_log.ToolingLog; } }); -Object.defineProperty(exports, "ToolingLogTextWriter", { +Object.defineProperty(exports, "ToolingLogCollectingWriter", { enumerable: true, get: function () { - return _tooling_log_text_writer.ToolingLogTextWriter; + return _tooling_log_collecting_writer.ToolingLogCollectingWriter; } }); -Object.defineProperty(exports, "pickLevelFromFlags", { +Object.defineProperty(exports, "ToolingLogTextWriter", { enumerable: true, get: function () { - return _log_levels.pickLevelFromFlags; + return _tooling_log_text_writer.ToolingLogTextWriter; } }); Object.defineProperty(exports, "parseLogLevel", { @@ -560,10 +560,10 @@ Object.defineProperty(exports, "parseLogLevel", { return _log_levels.parseLogLevel; } }); -Object.defineProperty(exports, "ToolingLogCollectingWriter", { +Object.defineProperty(exports, "pickLevelFromFlags", { enumerable: true, get: function () { - return _tooling_log_collecting_writer.ToolingLogCollectingWriter; + return _log_levels.pickLevelFromFlags; } }); @@ -8677,10 +8677,10 @@ module.exports = (chalk, temporary) => { Object.defineProperty(exports, "__esModule", { value: true }); -exports.pickLevelFromFlags = pickLevelFromFlags; +exports.LOG_LEVEL_FLAGS = exports.DEFAULT_LOG_LEVEL = void 0; exports.getLogLevelFlagsHelp = getLogLevelFlagsHelp; exports.parseLogLevel = parseLogLevel; -exports.LOG_LEVEL_FLAGS = exports.DEFAULT_LOG_LEVEL = void 0; +exports.pickLevelFromFlags = pickLevelFromFlags; /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one @@ -8811,12 +8811,12 @@ exports.ToolingLogCollectingWriter = ToolingLogCollectingWriter; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "commands", function() { return commands; }); /* harmony import */ var _bootstrap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(130); -/* harmony import */ var _build__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(525); -/* harmony import */ var _clean__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(526); -/* harmony import */ var _reset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(550); -/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(551); -/* harmony import */ var _watch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(553); -/* harmony import */ var _patch_native_modules__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(554); +/* harmony import */ var _build__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(533); +/* harmony import */ var _clean__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(534); +/* harmony import */ var _reset__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(558); +/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(559); +/* harmony import */ var _watch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(561); +/* harmony import */ var _patch_native_modules__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(562); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License @@ -8857,8 +8857,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_link_project_executables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(346); /* harmony import */ var _utils_yarn_lock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(414); -/* harmony import */ var _utils_validate_dependencies__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(417); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(419); +/* harmony import */ var _utils_sort_package_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(417); +/* harmony import */ var _utils_validate_dependencies__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(425); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(427); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } @@ -8881,6 +8882,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope + const BootstrapCommand = { description: 'Install dependencies and crosslink projects', name: 'bootstrap', @@ -8905,12 +8907,12 @@ const BootstrapCommand = { // if the `.yarn-integrity` file is not found which // will be indicated by the return of yarnIntegrityFileExists. - const forceInstall = !!options && options['force-install'] === true || !(await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_8__["yarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules'))); // Ensure we have a `node_modules/.yarn-integrity` file as we depend on it + const forceInstall = !!options && options['force-install'] === true || !(await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["yarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules'))); // Ensure we have a `node_modules/.yarn-integrity` file as we depend on it // for bazel to know it has to re-install the node_modules after a reset or a clean - await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_8__["ensureYarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules')); // Install bazel machinery tools if needed + await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["ensureYarnIntegrityFileExists"])(Object(path__WEBPACK_IMPORTED_MODULE_0__["resolve"])(kibanaProjectPath, 'node_modules')); // Install bazel machinery tools if needed - await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_8__["installBazelTools"])(rootPath); // Bootstrap process for Bazel packages + await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["installBazelTools"])(rootPath); // Bootstrap process for Bazel packages // Bazel is now managing dependencies so yarn install // will happen as part of this // @@ -8922,7 +8924,7 @@ const BootstrapCommand = { if (forceInstall) { const forceInstallStartTime = Date.now(); - await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_8__["runBazel"])(['run', '@nodejs//:yarn'], runOffline); + await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["runBazel"])(['run', '@nodejs//:yarn'], runOffline); timings.push({ id: 'force install dependencies', ms: Date.now() - forceInstallStartTime @@ -8931,7 +8933,7 @@ const BootstrapCommand = { const packageStartTime = Date.now(); - await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_8__["runBazel"])(['build', '//packages:build', '--show_result=1'], runOffline); + await Object(_utils_bazel__WEBPACK_IMPORTED_MODULE_9__["runBazel"])(['build', '//packages:build', '--show_result=1'], runOffline); timings.push({ id: 'build packages', ms: Date.now() - packageStartTime @@ -8956,10 +8958,11 @@ const BootstrapCommand = { } } + await Object(_utils_sort_package_json__WEBPACK_IMPORTED_MODULE_7__["sortPackageJson"])(kbn); const yarnLock = await Object(_utils_yarn_lock__WEBPACK_IMPORTED_MODULE_6__["readYarnLock"])(kbn); if (options.validate) { - await Object(_utils_validate_dependencies__WEBPACK_IMPORTED_MODULE_7__["validateDependencies"])(kbn, yarnLock); + await Object(_utils_validate_dependencies__WEBPACK_IMPORTED_MODULE_8__["validateDependencies"])(kbn, yarnLock); } // Assure all kbn projects with bin defined scripts // copy those scripts into the top level node_modules folder // @@ -33051,11 +33054,7 @@ Object.defineProperty(exports, "__esModule", { exports.codeFrameColumns = codeFrameColumns; exports.default = _default; -var _highlight = _interopRequireWildcard(__webpack_require__(357)); - -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var _highlight = __webpack_require__(357); let deprecationWarningShown = false; @@ -33150,7 +33149,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) { const hasColumns = loc.start && typeof loc.start.column === "number"; const numberMaxWidth = String(end).length; const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; - let frame = highlightedLines.split(NEWLINE).slice(start, end).map((line, index) => { + let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { const number = start + 1 + index; const paddedNumber = ` ${number}`.slice(-numberMaxWidth); const gutter = ` ${paddedNumber} |`; @@ -33221,21 +33220,15 @@ function _default(rawLines, lineNumber, colNumber, opts = {}) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.shouldHighlight = shouldHighlight; -exports.getChalk = getChalk; exports.default = highlight; +exports.getChalk = getChalk; +exports.shouldHighlight = shouldHighlight; -var jsTokensNs = _interopRequireWildcard(__webpack_require__(358)); +var _jsTokens = __webpack_require__(358); var _helperValidatorIdentifier = __webpack_require__(359); -var _chalk = _interopRequireDefault(__webpack_require__(362)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; } - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +var _chalk = __webpack_require__(362); const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); @@ -33257,9 +33250,6 @@ const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; const BRACKET = /^[()[\]{}]$/; let tokenize; { - const { - matchToToken - } = jsTokensNs; const JSX_TAG = /^[a-z][\w-]*$/i; const getTokenType = function (token, offset, text) { @@ -33291,8 +33281,9 @@ let tokenize; tokenize = function* (text) { let match; - while (match = jsTokensNs.default.exec(text)) { - const token = matchToToken(match); + while (match = _jsTokens.default.exec(text)) { + const token = _jsTokens.matchToToken(match); + yield { type: getTokenType(token, match.index, text), value: token.value @@ -33321,14 +33312,14 @@ function highlightTokens(defs, text) { } function shouldHighlight(options) { - return !!_chalk.default.supportsColor || options.forceColor; + return !!_chalk.supportsColor || options.forceColor; } function getChalk(options) { - return options.forceColor ? new _chalk.default.constructor({ + return options.forceColor ? new _chalk.constructor({ enabled: true, level: 1 - }) : _chalk.default; + }) : _chalk; } function highlight(code, options = {}) { @@ -33446,13 +33437,13 @@ Object.defineProperty(exports, "__esModule", { exports.isIdentifierStart = isIdentifierStart; exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierName = isIdentifierName; -let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; +let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; +const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; +const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; function isInAstralSet(code, set) { let pos = 0x10000; @@ -53502,6 +53493,649 @@ module.exports = require("buffer"); /* 417 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortPackageJson", function() { return sortPackageJson; }); +/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(418); +/* harmony import */ var fs_promises__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(fs_promises__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var sort_package_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(419); +/* harmony import */ var sort_package_json__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(sort_package_json__WEBPACK_IMPORTED_MODULE_1__); +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + + +async function sortPackageJson(kbn) { + const packageJsonPath = kbn.getAbsolute('package.json'); + const packageJson = await fs_promises__WEBPACK_IMPORTED_MODULE_0___default.a.readFile(packageJsonPath, 'utf-8'); + await fs_promises__WEBPACK_IMPORTED_MODULE_0___default.a.writeFile(packageJsonPath, JSON.stringify(sort_package_json__WEBPACK_IMPORTED_MODULE_1___default()(JSON.parse(packageJson), { + // top level keys in the order they were written when this was implemented + sortOrder: ['name', 'description', 'keywords', 'private', 'version', 'branch', 'types', 'tsdocMetadata', 'build', 'homepage', 'bugs', 'kibana', 'author', 'scripts', 'repository', 'engines', 'resolutions'] + }), null, 2)); +} + +/***/ }), +/* 418 */ +/***/ (function(module, exports) { + +module.exports = require("fs/promises"); + +/***/ }), +/* 419 */ +/***/ (function(module, exports, __webpack_require__) { + +const sortObjectKeys = __webpack_require__(420) +const detectIndent = __webpack_require__(421) +const detectNewline = __webpack_require__(422).graceful +const gitHooks = __webpack_require__(423) +const isPlainObject = __webpack_require__(424) + +const hasOwnProperty = (object, property) => + Object.prototype.hasOwnProperty.call(object, property) +const pipe = (fns) => (x, ...args) => + fns.reduce((result, fn) => fn(result, ...args), x) +const onArray = (fn) => (x) => (Array.isArray(x) ? fn(x) : x) +const onStringArray = (fn) => (x) => + Array.isArray(x) && x.every((item) => typeof item === 'string') ? fn(x) : x +const uniq = onStringArray((xs) => xs.filter((x, i) => i === xs.indexOf(x))) +const sortArray = onStringArray((array) => [...array].sort()) +const uniqAndSortArray = pipe([uniq, sortArray]) +const onObject = (fn) => (x, ...args) => (isPlainObject(x) ? fn(x, ...args) : x) +const sortObjectBy = (comparator, deep) => { + const over = onObject((object) => { + object = sortObjectKeys(object, comparator) + if (deep) { + for (const [key, value] of Object.entries(object)) { + object[key] = over(value) + } + } + return object + }) + + return over +} +const sortObject = sortObjectBy() +const sortURLObject = sortObjectBy(['type', 'url']) +const sortPeopleObject = sortObjectBy(['name', 'email', 'url']) +const sortDirectories = sortObjectBy([ + 'lib', + 'bin', + 'man', + 'doc', + 'example', + 'test', +]) +const overProperty = (property, over) => (object, ...args) => + hasOwnProperty(object, property) + ? Object.assign(object, { [property]: over(object[property], ...args) }) + : object +const sortGitHooks = sortObjectBy(gitHooks) + +// https://github.com/eslint/eslint/blob/acc0e47572a9390292b4e313b4a4bf360d236358/conf/config-schema.js +const eslintBaseConfigProperties = [ + // `files` and `excludedFiles` are only on `overrides[]` + // for easier sort `overrides[]`, + // add them to here, so we don't need sort `overrides[]` twice + 'files', + 'excludedFiles', + // baseConfig + 'env', + 'parser', + 'parserOptions', + 'settings', + 'plugins', + 'extends', + 'rules', + 'overrides', + 'globals', + 'processor', + 'noInlineConfig', + 'reportUnusedDisableDirectives', +] +const sortEslintConfig = onObject( + pipe([ + sortObjectBy(eslintBaseConfigProperties), + overProperty('env', sortObject), + overProperty('globals', sortObject), + overProperty( + 'overrides', + onArray((overrides) => overrides.map(sortEslintConfig)), + ), + overProperty('parserOptions', sortObject), + overProperty( + 'rules', + sortObjectBy( + (rule1, rule2) => + rule1.split('/').length - rule2.split('/').length || + rule1.localeCompare(rule2), + ), + ), + overProperty('settings', sortObject), + ]), +) +const sortVSCodeBadgeObject = sortObjectBy(['description', 'url', 'href']) + +const sortPrettierConfig = onObject( + pipe([ + // sort keys alphabetically, but put `overrides` at bottom + (config) => + sortObjectKeys(config, [ + ...Object.keys(config) + .filter((key) => key !== 'overrides') + .sort(), + 'overrides', + ]), + // if `config.overrides` exists + overProperty( + 'overrides', + // and `config.overrides` is an array + onArray((overrides) => + overrides.map( + pipe([ + // sort `config.overrides[]` alphabetically + sortObject, + // sort `config.overrides[].options` alphabetically + overProperty('options', sortObject), + ]), + ), + ), + ), + ]), +) + +// See https://docs.npmjs.com/misc/scripts +const defaultNpmScripts = new Set([ + 'install', + 'pack', + 'prepare', + 'publish', + 'restart', + 'shrinkwrap', + 'start', + 'stop', + 'test', + 'uninstall', + 'version', +]) + +const hasDevDependency = (dependency, packageJson) => { + return ( + 'devDependencies' in packageJson && + !!packageJson.devDependencies[dependency] + ) +} + +const sortScripts = onObject((scripts, packageJson) => { + const names = Object.keys(scripts) + const prefixable = new Set() + + const keys = names.map((name) => { + const omitted = name.replace(/^(?:pre|post)/, '') + if (defaultNpmScripts.has(omitted) || names.includes(omitted)) { + prefixable.add(omitted) + return omitted + } + return name + }) + + if (!hasDevDependency('npm-run-all', packageJson)) { + keys.sort() + } + + const order = keys.reduce( + (order, key) => + order.concat( + prefixable.has(key) ? [`pre${key}`, key, `post${key}`] : [key], + ), + [], + ) + + return sortObjectKeys(scripts, order) +}) + +// fields marked `vscode` are for `Visual Studio Code extension manifest` only +// https://code.visualstudio.com/api/references/extension-manifest +// Supported fields: +// publisher, displayName, categories, galleryBanner, preview, contributes, +// activationEvents, badges, markdown, qna, extensionPack, +// extensionDependencies, icon + +// field.key{string}: field name +// field.over{function}: sort field subKey +const fields = [ + { key: '$schema' }, + { key: 'name' }, + /* vscode */ { key: 'displayName' }, + { key: 'version' }, + { key: 'private' }, + { key: 'description' }, + /* vscode */ { key: 'categories', over: uniq }, + { key: 'keywords', over: uniq }, + { key: 'homepage' }, + { key: 'bugs', over: sortObjectBy(['url', 'email']) }, + { key: 'repository', over: sortURLObject }, + { key: 'funding', over: sortURLObject }, + { key: 'license', over: sortURLObject }, + /* vscode */ { key: 'qna' }, + { key: 'author', over: sortPeopleObject }, + { + key: 'maintainers', + over: onArray((maintainers) => maintainers.map(sortPeopleObject)), + }, + { + key: 'contributors', + over: onArray((contributors) => contributors.map(sortPeopleObject)), + }, + /* vscode */ { key: 'publisher' }, + { key: 'sideEffects' }, + { key: 'type' }, + { key: 'imports' }, + { key: 'exports' }, + { key: 'main' }, + { key: 'umd:main' }, + { key: 'jsdelivr' }, + { key: 'unpkg' }, + { key: 'module' }, + { key: 'source' }, + { key: 'jsnext:main' }, + { key: 'browser' }, + { key: 'types' }, + { key: 'typesVersions' }, + { key: 'typings' }, + { key: 'style' }, + { key: 'example' }, + { key: 'examplestyle' }, + { key: 'assets' }, + { key: 'bin', over: sortObject }, + { key: 'man' }, + { key: 'directories', over: sortDirectories }, + { key: 'files', over: uniq }, + { key: 'workspaces' }, + // node-pre-gyp https://www.npmjs.com/package/node-pre-gyp#1-add-new-entries-to-your-packagejson + { + key: 'binary', + over: sortObjectBy([ + 'module_name', + 'module_path', + 'remote_path', + 'package_name', + 'host', + ]), + }, + { key: 'scripts', over: sortScripts }, + { key: 'betterScripts', over: sortScripts }, + /* vscode */ { key: 'contributes', over: sortObject }, + /* vscode */ { key: 'activationEvents', over: uniq }, + { key: 'husky', over: overProperty('hooks', sortGitHooks) }, + { key: 'simple-git-hooks', over: sortGitHooks }, + { key: 'pre-commit' }, + { key: 'commitlint', over: sortObject }, + { key: 'lint-staged' }, + { key: 'config', over: sortObject }, + { key: 'nodemonConfig', over: sortObject }, + { key: 'browserify', over: sortObject }, + { key: 'babel', over: sortObject }, + { key: 'browserslist' }, + { key: 'xo', over: sortObject }, + { key: 'prettier', over: sortPrettierConfig }, + { key: 'eslintConfig', over: sortEslintConfig }, + { key: 'eslintIgnore' }, + { key: 'npmpkgjsonlint', over: sortObject }, + { key: 'npmPackageJsonLintConfig', over: sortObject }, + { key: 'npmpackagejsonlint', over: sortObject }, + { key: 'release', over: sortObject }, + { key: 'remarkConfig', over: sortObject }, + { key: 'stylelint' }, + { key: 'ava', over: sortObject }, + { key: 'jest', over: sortObject }, + { key: 'mocha', over: sortObject }, + { key: 'nyc', over: sortObject }, + { key: 'c8', over: sortObject }, + { key: 'tap', over: sortObject }, + { key: 'resolutions', over: sortObject }, + { key: 'dependencies', over: sortObject }, + { key: 'devDependencies', over: sortObject }, + { key: 'dependenciesMeta', over: sortObjectBy(undefined, true) }, + { key: 'peerDependencies', over: sortObject }, + // TODO: only sort depth = 2 + { key: 'peerDependenciesMeta', over: sortObjectBy(undefined, true) }, + { key: 'optionalDependencies', over: sortObject }, + { key: 'bundledDependencies', over: uniqAndSortArray }, + { key: 'bundleDependencies', over: uniqAndSortArray }, + /* vscode */ { key: 'extensionPack', over: uniqAndSortArray }, + /* vscode */ { key: 'extensionDependencies', over: uniqAndSortArray }, + { key: 'flat' }, + { key: 'engines', over: sortObject }, + { key: 'engineStrict', over: sortObject }, + { key: 'languageName' }, + { key: 'os' }, + { key: 'cpu' }, + { key: 'preferGlobal', over: sortObject }, + { key: 'publishConfig', over: sortObject }, + /* vscode */ { key: 'icon' }, + /* vscode */ { + key: 'badges', + over: onArray((badge) => badge.map(sortVSCodeBadgeObject)), + }, + /* vscode */ { key: 'galleryBanner', over: sortObject }, + /* vscode */ { key: 'preview' }, + /* vscode */ { key: 'markdown' }, +] + +const defaultSortOrder = fields.map(({ key }) => key) +const overFields = pipe( + fields.reduce((fns, { key, over }) => { + if (over) { + fns.push(overProperty(key, over)) + } + return fns + }, []), +) + +function editStringJSON(json, over) { + if (typeof json === 'string') { + const { indent } = detectIndent(json) + const endCharacters = json.slice(-1) === '\n' ? '\n' : '' + const newline = detectNewline(json) + json = JSON.parse(json) + + let result = JSON.stringify(over(json), null, indent) + endCharacters + if (newline === '\r\n') { + result = result.replace(/\n/g, newline) + } + return result + } + + return over(json) +} + +const isPrivateKey = (key) => key[0] === '_' +const partition = (array, predicate) => + array.reduce( + (result, value) => { + result[predicate(value) ? 0 : 1].push(value) + return result + }, + [[], []], + ) +function sortPackageJson(jsonIsh, options = {}) { + return editStringJSON( + jsonIsh, + onObject((json) => { + let sortOrder = options.sortOrder ? options.sortOrder : defaultSortOrder + + if (Array.isArray(sortOrder)) { + const keys = Object.keys(json) + const [privateKeys, publicKeys] = partition(keys, isPrivateKey) + sortOrder = [ + ...sortOrder, + ...defaultSortOrder, + ...publicKeys.sort(), + ...privateKeys.sort(), + ] + } + + return overFields(sortObjectKeys(json, sortOrder), json) + }), + ) +} + +module.exports = sortPackageJson +module.exports.sortPackageJson = sortPackageJson +module.exports.sortOrder = defaultSortOrder +module.exports.default = sortPackageJson + + +/***/ }), +/* 420 */ +/***/ (function(module, exports) { + +module.exports = function sortObjectByKeyNameList(object, sortWith) { + var keys; + var sortFn; + + if (typeof sortWith === 'function') { + sortFn = sortWith; + } else { + keys = sortWith; + } + + var objectKeys = Object.keys(object); + return (keys || []).concat(objectKeys.sort(sortFn)).reduce(function(total, key) { + if (objectKeys.indexOf(key) !== -1) { + total[key] = object[key]; + } + return total; + }, Object.create(null)); +} + + +/***/ }), +/* 421 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// Detect either spaces or tabs but not both to properly handle tabs for indentation and spaces for alignment +const INDENT_REGEX = /^(?:( )+|\t+)/; + +const INDENT_TYPE_SPACE = 'space'; +const INDENT_TYPE_TAB = 'tab'; + +// Make a Map that counts how many indents/unindents have occurred for a given size and how many lines follow a given indentation. +// The key is a concatenation of the indentation type (s = space and t = tab) and the size of the indents/unindents. +// +// indents = { +// t3: [1, 0], +// t4: [1, 5], +// s5: [1, 0], +// s12: [1, 0], +// } +function makeIndentsMap(string, ignoreSingleSpaces) { + const indents = new Map(); + + // Remember the size of previous line's indentation + let previousSize = 0; + let previousIndentType; + + // Indents key (ident type + size of the indents/unindents) + let key; + + for (const line of string.split(/\n/g)) { + if (!line) { + // Ignore empty lines + continue; + } + + let indent; + let indentType; + let weight; + let entry; + const matches = line.match(INDENT_REGEX); + + if (matches === null) { + previousSize = 0; + previousIndentType = ''; + } else { + indent = matches[0].length; + + if (matches[1]) { + indentType = INDENT_TYPE_SPACE; + } else { + indentType = INDENT_TYPE_TAB; + } + + // Ignore single space unless it's the only indent detected to prevent common false positives + if (ignoreSingleSpaces && indentType === INDENT_TYPE_SPACE && indent === 1) { + continue; + } + + if (indentType !== previousIndentType) { + previousSize = 0; + } + + previousIndentType = indentType; + + weight = 0; + + const indentDifference = indent - previousSize; + previousSize = indent; + + // Previous line have same indent? + if (indentDifference === 0) { + weight++; + // We use the key from previous loop + } else { + const absoluteIndentDifference = indentDifference > 0 ? indentDifference : -indentDifference; + key = encodeIndentsKey(indentType, absoluteIndentDifference); + } + + // Update the stats + entry = indents.get(key); + + if (entry === undefined) { + entry = [1, 0]; // Init + } else { + entry = [++entry[0], entry[1] + weight]; + } + + indents.set(key, entry); + } + } + + return indents; +} + +// Encode the indent type and amount as a string (e.g. 's4') for use as a compound key in the indents Map. +function encodeIndentsKey(indentType, indentAmount) { + const typeCharacter = indentType === INDENT_TYPE_SPACE ? 's' : 't'; + return typeCharacter + String(indentAmount); +} + +// Extract the indent type and amount from a key of the indents Map. +function decodeIndentsKey(indentsKey) { + const keyHasTypeSpace = indentsKey[0] === 's'; + const type = keyHasTypeSpace ? INDENT_TYPE_SPACE : INDENT_TYPE_TAB; + + const amount = Number(indentsKey.slice(1)); + + return {type, amount}; +} + +// Return the key (e.g. 's4') from the indents Map that represents the most common indent, +// or return undefined if there are no indents. +function getMostUsedKey(indents) { + let result; + let maxUsed = 0; + let maxWeight = 0; + + for (const [key, [usedCount, weight]] of indents) { + if (usedCount > maxUsed || (usedCount === maxUsed && weight > maxWeight)) { + maxUsed = usedCount; + maxWeight = weight; + result = key; + } + } + + return result; +} + +function makeIndentString(type, amount) { + const indentCharacter = type === INDENT_TYPE_SPACE ? ' ' : '\t'; + return indentCharacter.repeat(amount); +} + +module.exports = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + // Identify indents while skipping single space indents to avoid common edge cases (e.g. code comments) + // If no indents are identified, run again and include all indents for comprehensive detection + let indents = makeIndentsMap(string, true); + if (indents.size === 0) { + indents = makeIndentsMap(string, false); + } + + const keyOfMostUsedIndent = getMostUsedKey(indents); + + let type; + let amount = 0; + let indent = ''; + + if (keyOfMostUsedIndent !== undefined) { + ({type, amount} = decodeIndentsKey(keyOfMostUsedIndent)); + indent = makeIndentString(type, amount); + } + + return { + amount, + type, + indent + }; +}; + + +/***/ }), +/* 422 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +const detectNewline = string => { + if (typeof string !== 'string') { + throw new TypeError('Expected a string'); + } + + const newlines = string.match(/(?:\r?\n)/g) || []; + + if (newlines.length === 0) { + return; + } + + const crlf = newlines.filter(newline => newline === '\r\n').length; + const lf = newlines.length - crlf; + + return crlf > lf ? '\r\n' : '\n'; +}; + +module.exports = detectNewline; +module.exports.graceful = string => (typeof string === 'string' && detectNewline(string)) || '\n'; + + +/***/ }), +/* 423 */ +/***/ (function(module) { + +module.exports = JSON.parse("[\"applypatch-msg\",\"pre-applypatch\",\"post-applypatch\",\"pre-commit\",\"pre-merge-commit\",\"prepare-commit-msg\",\"commit-msg\",\"post-commit\",\"pre-rebase\",\"post-checkout\",\"post-merge\",\"pre-push\",\"pre-receive\",\"update\",\"post-receive\",\"post-update\",\"push-to-checkout\",\"pre-auto-gc\",\"post-rewrite\",\"sendemail-validate\",\"fsmonitor-watchman\",\"p4-pre-submit\",\"post-index-change\"]"); + +/***/ }), +/* 424 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +module.exports = value => { + if (Object.prototype.toString.call(value) !== '[object Object]') { + return false; + } + + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.prototype; +}; + + +/***/ }), +/* 425 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "validateDependencies", function() { return validateDependencies; }); @@ -53516,7 +54150,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); /* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(220); /* harmony import */ var _package_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(349); -/* harmony import */ var _projects_tree__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(418); +/* harmony import */ var _projects_tree__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(426); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License @@ -53697,7 +54331,7 @@ function getDevOnlyProductionDepsTree(kbn, projectName) { } /***/ }), -/* 418 */ +/* 426 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53839,27 +54473,27 @@ function addProjectToTree(tree, pathParts, project) { } /***/ }), -/* 419 */ +/* 427 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(420); +/* harmony import */ var _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(428); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "yarnIntegrityFileExists", function() { return _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__["yarnIntegrityFileExists"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ensureYarnIntegrityFileExists", function() { return _yarn_integrity__WEBPACK_IMPORTED_MODULE_0__["ensureYarnIntegrityFileExists"]; }); -/* harmony import */ var _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(421); +/* harmony import */ var _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(429); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBazelDiskCacheFolder", function() { return _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__["getBazelDiskCacheFolder"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getBazelRepositoryCacheFolder", function() { return _get_cache_folders__WEBPACK_IMPORTED_MODULE_1__["getBazelRepositoryCacheFolder"]; }); -/* harmony import */ var _install_tools__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(422); +/* harmony import */ var _install_tools__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(430); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isBazelBinAvailable", function() { return _install_tools__WEBPACK_IMPORTED_MODULE_2__["isBazelBinAvailable"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "installBazelTools", function() { return _install_tools__WEBPACK_IMPORTED_MODULE_2__["installBazelTools"]; }); -/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(423); +/* harmony import */ var _run__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(431); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "runBazel", function() { return _run__WEBPACK_IMPORTED_MODULE_3__["runBazel"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "runIBazel", function() { return _run__WEBPACK_IMPORTED_MODULE_3__["runIBazel"]; }); @@ -53877,7 +54511,7 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 420 */ +/* 428 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53924,7 +54558,7 @@ async function ensureYarnIntegrityFileExists(nodeModulesPath) { } /***/ }), -/* 421 */ +/* 429 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53961,7 +54595,7 @@ async function getBazelRepositoryCacheFolder() { } /***/ }), -/* 422 */ +/* 430 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54080,7 +54714,7 @@ async function installBazelTools(repoRootPath) { } /***/ }), -/* 423 */ +/* 431 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54090,8 +54724,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(114); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(424); -/* harmony import */ var _kbn_dev_utils_stdio__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(522); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(432); +/* harmony import */ var _kbn_dev_utils_stdio__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(530); /* harmony import */ var _kbn_dev_utils_stdio__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_kbn_dev_utils_stdio__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _child_process__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(221); /* harmony import */ var _log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(220); @@ -54157,141 +54791,141 @@ async function runIBazel(bazelArgs, offline = false, runOpts = {}) { } /***/ }), -/* 424 */ +/* 432 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(425); +/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(433); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); -/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(426); +/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(434); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); -/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(427); +/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(435); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); -/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(428); +/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(436); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); -/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(429); +/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(437); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); -/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(430); +/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(438); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); -/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(431); +/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(439); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); -/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(432); +/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(440); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); -/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(433); +/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(441); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); -/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(434); +/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(442); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); -/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(435); +/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(443); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); /* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(81); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); -/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(436); +/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(444); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); -/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(437); +/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(445); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); -/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(438); +/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(446); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); -/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(439); +/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(447); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); -/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(440); +/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(448); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); -/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(441); +/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(449); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); -/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(442); +/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(450); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); -/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(444); +/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(452); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); -/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(445); +/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(453); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); -/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(446); +/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(454); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); -/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(447); +/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(455); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); -/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(448); +/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(456); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); -/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(449); +/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(457); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); -/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(452); +/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(460); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); -/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(453); +/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(461); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); -/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(454); +/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(462); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); -/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(455); +/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(463); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); -/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(456); +/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(464); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); /* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(106); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); -/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(457); +/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(465); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); -/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(458); +/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(466); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); -/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(459); +/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(467); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); -/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(460); +/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(468); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); /* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(32); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); -/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(461); +/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(469); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); -/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(462); +/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(470); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); -/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(463); +/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(471); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); /* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(67); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); -/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(465); +/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(473); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); -/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(466); +/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(474); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); -/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(467); +/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(475); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); -/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(470); +/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(478); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); /* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(82); @@ -54302,175 +54936,175 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["flatMap"]; }); -/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(471); +/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(479); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); -/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(472); +/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(480); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); -/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(473); +/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(481); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); -/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(474); +/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(482); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); /* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(42); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); -/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(475); +/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(483); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); -/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(476); +/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(484); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); -/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(477); +/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(485); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); -/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(478); +/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(486); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); -/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(479); +/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(487); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); -/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(480); +/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(488); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); -/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(481); +/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(489); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); -/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(482); +/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(490); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); -/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(483); +/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(491); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); -/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(468); +/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(476); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); -/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(484); +/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(492); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); -/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(485); +/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(493); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); -/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(486); +/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(494); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); -/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(487); +/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(495); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); /* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(31); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); -/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(488); +/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(496); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); -/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(489); +/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(497); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); -/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(469); +/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(477); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); -/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(490); +/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(498); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); -/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(491); +/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(499); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); -/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(492); +/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(500); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); -/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(493); +/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(501); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); -/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(494); +/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(502); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); -/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(495); +/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(503); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); -/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(496); +/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(504); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); -/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(497); +/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(505); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); -/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(498); +/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(506); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); -/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(499); +/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(507); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); -/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(501); +/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(509); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); -/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(502); +/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(510); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); -/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(503); +/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(511); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); -/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(451); +/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(459); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); -/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(464); +/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(472); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); -/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(504); +/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(512); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); -/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(505); +/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(513); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); -/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(506); +/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(514); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); -/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(507); +/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(515); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); -/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(508); +/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(516); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); -/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(450); +/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(458); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); -/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(509); +/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(517); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); -/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(510); +/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(518); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); -/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(511); +/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(519); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); -/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(512); +/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(520); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); -/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(513); +/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(521); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); -/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(514); +/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(522); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); -/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(515); +/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(523); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); -/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(516); +/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(524); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); -/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(517); +/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(525); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); -/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(518); +/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(526); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); -/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(519); +/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(527); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); -/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(520); +/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(528); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); -/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(521); +/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(529); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ @@ -54581,7 +55215,7 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 425 */ +/* 433 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54660,14 +55294,14 @@ var AuditSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 426 */ +/* 434 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56); -/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(425); +/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(433); /* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(109); /** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ @@ -54683,7 +55317,7 @@ function auditTime(duration, scheduler) { /***/ }), -/* 427 */ +/* 435 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54730,7 +55364,7 @@ var BufferSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 428 */ +/* 436 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54831,7 +55465,7 @@ var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 429 */ +/* 437 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -54992,7 +55626,7 @@ function dispatchBufferClose(arg) { /***/ }), -/* 430 */ +/* 438 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55111,7 +55745,7 @@ var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 431 */ +/* 439 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55204,7 +55838,7 @@ var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 432 */ +/* 440 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55264,7 +55898,7 @@ var CatchSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 433 */ +/* 441 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55280,7 +55914,7 @@ function combineAll(project) { /***/ }), -/* 434 */ +/* 442 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55312,7 +55946,7 @@ function combineLatest() { /***/ }), -/* 435 */ +/* 443 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55332,7 +55966,7 @@ function concat() { /***/ }), -/* 436 */ +/* 444 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55348,13 +55982,13 @@ function concatMap(project, resultSelector) { /***/ }), -/* 437 */ +/* 445 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); -/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(436); +/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(444); /** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ function concatMapTo(innerObservable, resultSelector) { @@ -55364,7 +55998,7 @@ function concatMapTo(innerObservable, resultSelector) { /***/ }), -/* 438 */ +/* 446 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55429,7 +56063,7 @@ var CountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 439 */ +/* 447 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55514,7 +56148,7 @@ var DebounceSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 440 */ +/* 448 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55590,7 +56224,7 @@ function dispatchNext(subscriber) { /***/ }), -/* 441 */ +/* 449 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55640,7 +56274,7 @@ var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 442 */ +/* 450 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55648,7 +56282,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(443); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(451); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12); /* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ @@ -55747,7 +56381,7 @@ var DelayMessage = /*@__PURE__*/ (function () { /***/ }), -/* 443 */ +/* 451 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55761,7 +56395,7 @@ function isDate(value) { /***/ }), -/* 444 */ +/* 452 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55907,7 +56541,7 @@ var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 445 */ +/* 453 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55945,7 +56579,7 @@ var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 446 */ +/* 454 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56021,7 +56655,7 @@ var DistinctSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 447 */ +/* 455 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56092,13 +56726,13 @@ var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 448 */ +/* 456 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); -/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(447); +/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(455); /** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ function distinctUntilKeyChanged(key, compare) { @@ -56108,7 +56742,7 @@ function distinctUntilKeyChanged(key, compare) { /***/ }), -/* 449 */ +/* 457 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56116,9 +56750,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); /* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(106); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(450); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(441); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(451); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(458); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(449); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(459); /** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ @@ -56140,7 +56774,7 @@ function elementAt(index, defaultValue) { /***/ }), -/* 450 */ +/* 458 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56206,7 +56840,7 @@ function defaultErrorFactory() { /***/ }), -/* 451 */ +/* 459 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56268,7 +56902,7 @@ var TakeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 452 */ +/* 460 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56290,7 +56924,7 @@ function endWith() { /***/ }), -/* 453 */ +/* 461 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56352,7 +56986,7 @@ var EverySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 454 */ +/* 462 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56406,7 +57040,7 @@ var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 455 */ +/* 463 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56500,7 +57134,7 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 456 */ +/* 464 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56612,7 +57246,7 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 457 */ +/* 465 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56650,7 +57284,7 @@ var FinallySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 458 */ +/* 466 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56722,13 +57356,13 @@ var FindValueSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 459 */ +/* 467 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); -/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(458); +/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(466); /** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ function findIndex(predicate, thisArg) { @@ -56738,7 +57372,7 @@ function findIndex(predicate, thisArg) { /***/ }), -/* 460 */ +/* 468 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56746,9 +57380,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(106); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(451); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(441); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(450); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(459); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(449); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(458); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26); /** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -56765,7 +57399,7 @@ function first(predicate, defaultValue) { /***/ }), -/* 461 */ +/* 469 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56802,7 +57436,7 @@ var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 462 */ +/* 470 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56846,7 +57480,7 @@ var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 463 */ +/* 471 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56854,9 +57488,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); /* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64); /* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(106); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(464); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(450); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(441); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(472); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(458); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(449); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26); /** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ @@ -56873,7 +57507,7 @@ function last(predicate, defaultValue) { /***/ }), -/* 464 */ +/* 472 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56950,7 +57584,7 @@ var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 465 */ +/* 473 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56989,7 +57623,7 @@ var MapToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 466 */ +/* 474 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57039,13 +57673,13 @@ var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 467 */ +/* 475 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(468); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(476); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function max(comparer) { @@ -57058,15 +57692,15 @@ function max(comparer) { /***/ }), -/* 468 */ +/* 476 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(469); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(464); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(441); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(477); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(472); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(449); /* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25); /** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ @@ -57087,7 +57721,7 @@ function reduce(accumulator, seed) { /***/ }), -/* 469 */ +/* 477 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57169,7 +57803,7 @@ var ScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 470 */ +/* 478 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57189,7 +57823,7 @@ function merge() { /***/ }), -/* 471 */ +/* 479 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57214,7 +57848,7 @@ function mergeMapTo(innerObservable, resultSelector, concurrent) { /***/ }), -/* 472 */ +/* 480 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57323,13 +57957,13 @@ var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 473 */ +/* 481 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(468); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(476); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function min(comparer) { @@ -57342,7 +57976,7 @@ function min(comparer) { /***/ }), -/* 474 */ +/* 482 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57391,7 +58025,7 @@ var MulticastOperator = /*@__PURE__*/ (function () { /***/ }), -/* 475 */ +/* 483 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57481,7 +58115,7 @@ var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 476 */ +/* 484 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57529,7 +58163,7 @@ var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 477 */ +/* 485 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57552,7 +58186,7 @@ function partition(predicate, thisArg) { /***/ }), -/* 478 */ +/* 486 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57592,14 +58226,14 @@ function plucker(props, length) { /***/ }), -/* 479 */ +/* 487 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(474); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(482); /** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ @@ -57612,14 +58246,14 @@ function publish(selector) { /***/ }), -/* 480 */ +/* 488 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); /* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(474); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(482); /** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ @@ -57630,14 +58264,14 @@ function publishBehavior(value) { /***/ }), -/* 481 */ +/* 489 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); /* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(474); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(482); /** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ @@ -57648,14 +58282,14 @@ function publishLast() { /***/ }), -/* 482 */ +/* 490 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); /* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(474); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(482); /** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ @@ -57671,7 +58305,7 @@ function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { /***/ }), -/* 483 */ +/* 491 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57698,7 +58332,7 @@ function race() { /***/ }), -/* 484 */ +/* 492 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57763,7 +58397,7 @@ var RepeatSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 485 */ +/* 493 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57857,7 +58491,7 @@ var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 486 */ +/* 494 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57910,7 +58544,7 @@ var RetrySubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 487 */ +/* 495 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -57996,7 +58630,7 @@ var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 488 */ +/* 496 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58051,7 +58685,7 @@ var SampleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 489 */ +/* 497 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58111,7 +58745,7 @@ function dispatchNotification(state) { /***/ }), -/* 490 */ +/* 498 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58234,13 +58868,13 @@ var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 491 */ +/* 499 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(474); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(482); /* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28); /** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ @@ -58257,7 +58891,7 @@ function share() { /***/ }), -/* 492 */ +/* 500 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58326,7 +58960,7 @@ function shareReplayOperator(_a) { /***/ }), -/* 493 */ +/* 501 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58406,7 +59040,7 @@ var SingleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 494 */ +/* 502 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58448,7 +59082,7 @@ var SkipSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 495 */ +/* 503 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58510,7 +59144,7 @@ var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 496 */ +/* 504 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58567,7 +59201,7 @@ var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 497 */ +/* 505 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58623,7 +59257,7 @@ var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 498 */ +/* 506 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58652,13 +59286,13 @@ function startWith() { /***/ }), -/* 499 */ +/* 507 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); -/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(500); +/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(508); /** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ function subscribeOn(scheduler, delay) { @@ -58683,7 +59317,7 @@ var SubscribeOnOperator = /*@__PURE__*/ (function () { /***/ }), -/* 500 */ +/* 508 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58747,13 +59381,13 @@ var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { /***/ }), -/* 501 */ +/* 509 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(502); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(510); /* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26); /** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ @@ -58765,7 +59399,7 @@ function switchAll() { /***/ }), -/* 502 */ +/* 510 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58853,13 +59487,13 @@ var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 503 */ +/* 511 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(502); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(510); /** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ function switchMapTo(innerObservable, resultSelector) { @@ -58869,7 +59503,7 @@ function switchMapTo(innerObservable, resultSelector) { /***/ }), -/* 504 */ +/* 512 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58917,7 +59551,7 @@ var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 505 */ +/* 513 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58985,7 +59619,7 @@ var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 506 */ +/* 514 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59073,7 +59707,7 @@ var TapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 507 */ +/* 515 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59175,7 +59809,7 @@ var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 508 */ +/* 516 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59184,7 +59818,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(56); -/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(507); +/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(515); /** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ @@ -59273,7 +59907,7 @@ function dispatchNext(arg) { /***/ }), -/* 509 */ +/* 517 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59281,7 +59915,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(469); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(477); /* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92); /* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67); /** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ @@ -59317,7 +59951,7 @@ var TimeInterval = /*@__PURE__*/ (function () { /***/ }), -/* 510 */ +/* 518 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59325,7 +59959,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(56); /* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65); -/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(511); +/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(519); /* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50); /** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ @@ -59342,7 +59976,7 @@ function timeout(due, scheduler) { /***/ }), -/* 511 */ +/* 519 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59350,7 +59984,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(443); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(451); /* harmony import */ var _innerSubscribe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(91); /** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_innerSubscribe PURE_IMPORTS_END */ @@ -59421,7 +60055,7 @@ var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 512 */ +/* 520 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59451,13 +60085,13 @@ var Timestamp = /*@__PURE__*/ (function () { /***/ }), -/* 513 */ +/* 521 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(468); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(476); /** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ function toArrayReducer(arr, item, index) { @@ -59474,7 +60108,7 @@ function toArray() { /***/ }), -/* 514 */ +/* 522 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59552,7 +60186,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 515 */ +/* 523 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59642,7 +60276,7 @@ var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 516 */ +/* 524 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59812,7 +60446,7 @@ function dispatchWindowClose(state) { /***/ }), -/* 517 */ +/* 525 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -59955,7 +60589,7 @@ var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 518 */ +/* 526 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60052,7 +60686,7 @@ var WindowSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 519 */ +/* 527 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60147,7 +60781,7 @@ var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 520 */ +/* 528 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60169,7 +60803,7 @@ function zip() { /***/ }), -/* 521 */ +/* 529 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60185,7 +60819,7 @@ function zipAll(project) { /***/ }), -/* 522 */ +/* 530 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60195,7 +60829,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _observe_lines = __webpack_require__(523); +var _observe_lines = __webpack_require__(531); Object.keys(_observe_lines).forEach(function (key) { if (key === "default" || key === "__esModule") return; @@ -60208,7 +60842,7 @@ Object.keys(_observe_lines).forEach(function (key) { }); }); -var _observe_readable = __webpack_require__(524); +var _observe_readable = __webpack_require__(532); Object.keys(_observe_readable).forEach(function (key) { if (key === "default" || key === "__esModule") return; @@ -60222,7 +60856,7 @@ Object.keys(_observe_readable).forEach(function (key) { }); /***/ }), -/* 523 */ +/* 531 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60235,9 +60869,9 @@ exports.observeLines = observeLines; var Rx = _interopRequireWildcard(__webpack_require__(9)); -var _operators = __webpack_require__(424); +var _operators = __webpack_require__(432); -var _observe_readable = __webpack_require__(524); +var _observe_readable = __webpack_require__(532); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } @@ -60300,7 +60934,7 @@ function observeLines(readable) { } /***/ }), -/* 524 */ +/* 532 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60313,7 +60947,7 @@ exports.observeReadable = observeReadable; var Rx = _interopRequireWildcard(__webpack_require__(9)); -var _operators = __webpack_require__(424); +var _operators = __webpack_require__(432); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } @@ -60337,13 +60971,13 @@ function observeReadable(readable) { } /***/ }), -/* 525 */ +/* 533 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BuildCommand", function() { return BuildCommand; }); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(419); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(427); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License @@ -60371,7 +61005,7 @@ const BuildCommand = { }; /***/ }), -/* 526 */ +/* 534 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60381,11 +61015,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var dedent__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dedent__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(240); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(del__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(527); +/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(535); /* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(ora__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(419); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(427); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(231); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(220); /* @@ -60488,20 +61122,20 @@ const CleanCommand = { }; /***/ }), -/* 527 */ +/* 535 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readline = __webpack_require__(528); -const chalk = __webpack_require__(529); -const cliCursor = __webpack_require__(532); -const cliSpinners = __webpack_require__(534); -const logSymbols = __webpack_require__(536); -const stripAnsi = __webpack_require__(542); -const wcwidth = __webpack_require__(544); -const isInteractive = __webpack_require__(548); -const MuteStream = __webpack_require__(549); +const readline = __webpack_require__(536); +const chalk = __webpack_require__(537); +const cliCursor = __webpack_require__(540); +const cliSpinners = __webpack_require__(542); +const logSymbols = __webpack_require__(544); +const stripAnsi = __webpack_require__(550); +const wcwidth = __webpack_require__(552); +const isInteractive = __webpack_require__(556); +const MuteStream = __webpack_require__(557); const TEXT = Symbol('text'); const PREFIX_TEXT = Symbol('prefixText'); @@ -60854,13 +61488,13 @@ module.exports.promise = (action, options) => { /***/ }), -/* 528 */ +/* 536 */ /***/ (function(module, exports) { module.exports = require("readline"); /***/ }), -/* 529 */ +/* 537 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60870,7 +61504,7 @@ const {stdout: stdoutColor, stderr: stderrColor} = __webpack_require__(121); const { stringReplaceAll, stringEncaseCRLFWithFirstIndex -} = __webpack_require__(530); +} = __webpack_require__(538); // `supportsColor.level` → `ansiStyles.color[name]` mapping const levelMapping = [ @@ -61071,7 +61705,7 @@ const chalkTag = (chalk, ...strings) => { } if (template === undefined) { - template = __webpack_require__(531); + template = __webpack_require__(539); } return template(chalk, parts.join('')); @@ -61100,7 +61734,7 @@ module.exports = chalk; /***/ }), -/* 530 */ +/* 538 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61146,7 +61780,7 @@ module.exports = { /***/ }), -/* 531 */ +/* 539 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61287,12 +61921,12 @@ module.exports = (chalk, temporary) => { /***/ }), -/* 532 */ +/* 540 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const restoreCursor = __webpack_require__(533); +const restoreCursor = __webpack_require__(541); let isHidden = false; @@ -61329,7 +61963,7 @@ exports.toggle = (force, writableStream) => { /***/ }), -/* 533 */ +/* 541 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61345,13 +61979,13 @@ module.exports = onetime(() => { /***/ }), -/* 534 */ +/* 542 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const spinners = Object.assign({}, __webpack_require__(535)); +const spinners = Object.assign({}, __webpack_require__(543)); const spinnersList = Object.keys(spinners); @@ -61369,18 +62003,18 @@ module.exports.default = spinners; /***/ }), -/* 535 */ +/* 543 */ /***/ (function(module) { module.exports = JSON.parse("{\"dots\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠹\",\"⠸\",\"⠼\",\"⠴\",\"⠦\",\"⠧\",\"⠇\",\"⠏\"]},\"dots2\":{\"interval\":80,\"frames\":[\"⣾\",\"⣽\",\"⣻\",\"⢿\",\"⡿\",\"⣟\",\"⣯\",\"⣷\"]},\"dots3\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠞\",\"⠖\",\"⠦\",\"⠴\",\"⠲\",\"⠳\",\"⠓\"]},\"dots4\":{\"interval\":80,\"frames\":[\"⠄\",\"⠆\",\"⠇\",\"⠋\",\"⠙\",\"⠸\",\"⠰\",\"⠠\",\"⠰\",\"⠸\",\"⠙\",\"⠋\",\"⠇\",\"⠆\"]},\"dots5\":{\"interval\":80,\"frames\":[\"⠋\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\"]},\"dots6\":{\"interval\":80,\"frames\":[\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠴\",\"⠲\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠚\",\"⠙\",\"⠉\",\"⠁\"]},\"dots7\":{\"interval\":80,\"frames\":[\"⠈\",\"⠉\",\"⠋\",\"⠓\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠖\",\"⠦\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\"]},\"dots8\":{\"interval\":80,\"frames\":[\"⠁\",\"⠁\",\"⠉\",\"⠙\",\"⠚\",\"⠒\",\"⠂\",\"⠂\",\"⠒\",\"⠲\",\"⠴\",\"⠤\",\"⠄\",\"⠄\",\"⠤\",\"⠠\",\"⠠\",\"⠤\",\"⠦\",\"⠖\",\"⠒\",\"⠐\",\"⠐\",\"⠒\",\"⠓\",\"⠋\",\"⠉\",\"⠈\",\"⠈\"]},\"dots9\":{\"interval\":80,\"frames\":[\"⢹\",\"⢺\",\"⢼\",\"⣸\",\"⣇\",\"⡧\",\"⡗\",\"⡏\"]},\"dots10\":{\"interval\":80,\"frames\":[\"⢄\",\"⢂\",\"⢁\",\"⡁\",\"⡈\",\"⡐\",\"⡠\"]},\"dots11\":{\"interval\":100,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⡀\",\"⢀\",\"⠠\",\"⠐\",\"⠈\"]},\"dots12\":{\"interval\":80,\"frames\":[\"⢀⠀\",\"⡀⠀\",\"⠄⠀\",\"⢂⠀\",\"⡂⠀\",\"⠅⠀\",\"⢃⠀\",\"⡃⠀\",\"⠍⠀\",\"⢋⠀\",\"⡋⠀\",\"⠍⠁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⢈⠩\",\"⡀⢙\",\"⠄⡙\",\"⢂⠩\",\"⡂⢘\",\"⠅⡘\",\"⢃⠨\",\"⡃⢐\",\"⠍⡐\",\"⢋⠠\",\"⡋⢀\",\"⠍⡁\",\"⢋⠁\",\"⡋⠁\",\"⠍⠉\",\"⠋⠉\",\"⠋⠉\",\"⠉⠙\",\"⠉⠙\",\"⠉⠩\",\"⠈⢙\",\"⠈⡙\",\"⠈⠩\",\"⠀⢙\",\"⠀⡙\",\"⠀⠩\",\"⠀⢘\",\"⠀⡘\",\"⠀⠨\",\"⠀⢐\",\"⠀⡐\",\"⠀⠠\",\"⠀⢀\",\"⠀⡀\"]},\"dots8Bit\":{\"interval\":80,\"frames\":[\"⠀\",\"⠁\",\"⠂\",\"⠃\",\"⠄\",\"⠅\",\"⠆\",\"⠇\",\"⡀\",\"⡁\",\"⡂\",\"⡃\",\"⡄\",\"⡅\",\"⡆\",\"⡇\",\"⠈\",\"⠉\",\"⠊\",\"⠋\",\"⠌\",\"⠍\",\"⠎\",\"⠏\",\"⡈\",\"⡉\",\"⡊\",\"⡋\",\"⡌\",\"⡍\",\"⡎\",\"⡏\",\"⠐\",\"⠑\",\"⠒\",\"⠓\",\"⠔\",\"⠕\",\"⠖\",\"⠗\",\"⡐\",\"⡑\",\"⡒\",\"⡓\",\"⡔\",\"⡕\",\"⡖\",\"⡗\",\"⠘\",\"⠙\",\"⠚\",\"⠛\",\"⠜\",\"⠝\",\"⠞\",\"⠟\",\"⡘\",\"⡙\",\"⡚\",\"⡛\",\"⡜\",\"⡝\",\"⡞\",\"⡟\",\"⠠\",\"⠡\",\"⠢\",\"⠣\",\"⠤\",\"⠥\",\"⠦\",\"⠧\",\"⡠\",\"⡡\",\"⡢\",\"⡣\",\"⡤\",\"⡥\",\"⡦\",\"⡧\",\"⠨\",\"⠩\",\"⠪\",\"⠫\",\"⠬\",\"⠭\",\"⠮\",\"⠯\",\"⡨\",\"⡩\",\"⡪\",\"⡫\",\"⡬\",\"⡭\",\"⡮\",\"⡯\",\"⠰\",\"⠱\",\"⠲\",\"⠳\",\"⠴\",\"⠵\",\"⠶\",\"⠷\",\"⡰\",\"⡱\",\"⡲\",\"⡳\",\"⡴\",\"⡵\",\"⡶\",\"⡷\",\"⠸\",\"⠹\",\"⠺\",\"⠻\",\"⠼\",\"⠽\",\"⠾\",\"⠿\",\"⡸\",\"⡹\",\"⡺\",\"⡻\",\"⡼\",\"⡽\",\"⡾\",\"⡿\",\"⢀\",\"⢁\",\"⢂\",\"⢃\",\"⢄\",\"⢅\",\"⢆\",\"⢇\",\"⣀\",\"⣁\",\"⣂\",\"⣃\",\"⣄\",\"⣅\",\"⣆\",\"⣇\",\"⢈\",\"⢉\",\"⢊\",\"⢋\",\"⢌\",\"⢍\",\"⢎\",\"⢏\",\"⣈\",\"⣉\",\"⣊\",\"⣋\",\"⣌\",\"⣍\",\"⣎\",\"⣏\",\"⢐\",\"⢑\",\"⢒\",\"⢓\",\"⢔\",\"⢕\",\"⢖\",\"⢗\",\"⣐\",\"⣑\",\"⣒\",\"⣓\",\"⣔\",\"⣕\",\"⣖\",\"⣗\",\"⢘\",\"⢙\",\"⢚\",\"⢛\",\"⢜\",\"⢝\",\"⢞\",\"⢟\",\"⣘\",\"⣙\",\"⣚\",\"⣛\",\"⣜\",\"⣝\",\"⣞\",\"⣟\",\"⢠\",\"⢡\",\"⢢\",\"⢣\",\"⢤\",\"⢥\",\"⢦\",\"⢧\",\"⣠\",\"⣡\",\"⣢\",\"⣣\",\"⣤\",\"⣥\",\"⣦\",\"⣧\",\"⢨\",\"⢩\",\"⢪\",\"⢫\",\"⢬\",\"⢭\",\"⢮\",\"⢯\",\"⣨\",\"⣩\",\"⣪\",\"⣫\",\"⣬\",\"⣭\",\"⣮\",\"⣯\",\"⢰\",\"⢱\",\"⢲\",\"⢳\",\"⢴\",\"⢵\",\"⢶\",\"⢷\",\"⣰\",\"⣱\",\"⣲\",\"⣳\",\"⣴\",\"⣵\",\"⣶\",\"⣷\",\"⢸\",\"⢹\",\"⢺\",\"⢻\",\"⢼\",\"⢽\",\"⢾\",\"⢿\",\"⣸\",\"⣹\",\"⣺\",\"⣻\",\"⣼\",\"⣽\",\"⣾\",\"⣿\"]},\"line\":{\"interval\":130,\"frames\":[\"-\",\"\\\\\",\"|\",\"/\"]},\"line2\":{\"interval\":100,\"frames\":[\"⠂\",\"-\",\"–\",\"—\",\"–\",\"-\"]},\"pipe\":{\"interval\":100,\"frames\":[\"┤\",\"┘\",\"┴\",\"└\",\"├\",\"┌\",\"┬\",\"┐\"]},\"simpleDots\":{\"interval\":400,\"frames\":[\". \",\".. \",\"...\",\" \"]},\"simpleDotsScrolling\":{\"interval\":200,\"frames\":[\". \",\".. \",\"...\",\" ..\",\" .\",\" \"]},\"star\":{\"interval\":70,\"frames\":[\"✶\",\"✸\",\"✹\",\"✺\",\"✹\",\"✷\"]},\"star2\":{\"interval\":80,\"frames\":[\"+\",\"x\",\"*\"]},\"flip\":{\"interval\":70,\"frames\":[\"_\",\"_\",\"_\",\"-\",\"`\",\"`\",\"'\",\"´\",\"-\",\"_\",\"_\",\"_\"]},\"hamburger\":{\"interval\":100,\"frames\":[\"☱\",\"☲\",\"☴\"]},\"growVertical\":{\"interval\":120,\"frames\":[\"▁\",\"▃\",\"▄\",\"▅\",\"▆\",\"▇\",\"▆\",\"▅\",\"▄\",\"▃\"]},\"growHorizontal\":{\"interval\":120,\"frames\":[\"▏\",\"▎\",\"▍\",\"▌\",\"▋\",\"▊\",\"▉\",\"▊\",\"▋\",\"▌\",\"▍\",\"▎\"]},\"balloon\":{\"interval\":140,\"frames\":[\" \",\".\",\"o\",\"O\",\"@\",\"*\",\" \"]},\"balloon2\":{\"interval\":120,\"frames\":[\".\",\"o\",\"O\",\"°\",\"O\",\"o\",\".\"]},\"noise\":{\"interval\":100,\"frames\":[\"▓\",\"▒\",\"░\"]},\"bounce\":{\"interval\":120,\"frames\":[\"⠁\",\"⠂\",\"⠄\",\"⠂\"]},\"boxBounce\":{\"interval\":120,\"frames\":[\"▖\",\"▘\",\"▝\",\"▗\"]},\"boxBounce2\":{\"interval\":100,\"frames\":[\"▌\",\"▀\",\"▐\",\"▄\"]},\"triangle\":{\"interval\":50,\"frames\":[\"◢\",\"◣\",\"◤\",\"◥\"]},\"arc\":{\"interval\":100,\"frames\":[\"◜\",\"◠\",\"◝\",\"◞\",\"◡\",\"◟\"]},\"circle\":{\"interval\":120,\"frames\":[\"◡\",\"⊙\",\"◠\"]},\"squareCorners\":{\"interval\":180,\"frames\":[\"◰\",\"◳\",\"◲\",\"◱\"]},\"circleQuarters\":{\"interval\":120,\"frames\":[\"◴\",\"◷\",\"◶\",\"◵\"]},\"circleHalves\":{\"interval\":50,\"frames\":[\"◐\",\"◓\",\"◑\",\"◒\"]},\"squish\":{\"interval\":100,\"frames\":[\"╫\",\"╪\"]},\"toggle\":{\"interval\":250,\"frames\":[\"⊶\",\"⊷\"]},\"toggle2\":{\"interval\":80,\"frames\":[\"▫\",\"▪\"]},\"toggle3\":{\"interval\":120,\"frames\":[\"□\",\"■\"]},\"toggle4\":{\"interval\":100,\"frames\":[\"■\",\"□\",\"▪\",\"▫\"]},\"toggle5\":{\"interval\":100,\"frames\":[\"▮\",\"▯\"]},\"toggle6\":{\"interval\":300,\"frames\":[\"ဝ\",\"၀\"]},\"toggle7\":{\"interval\":80,\"frames\":[\"⦾\",\"⦿\"]},\"toggle8\":{\"interval\":100,\"frames\":[\"◍\",\"◌\"]},\"toggle9\":{\"interval\":100,\"frames\":[\"◉\",\"◎\"]},\"toggle10\":{\"interval\":100,\"frames\":[\"㊂\",\"㊀\",\"㊁\"]},\"toggle11\":{\"interval\":50,\"frames\":[\"⧇\",\"⧆\"]},\"toggle12\":{\"interval\":120,\"frames\":[\"☗\",\"☖\"]},\"toggle13\":{\"interval\":80,\"frames\":[\"=\",\"*\",\"-\"]},\"arrow\":{\"interval\":100,\"frames\":[\"←\",\"↖\",\"↑\",\"↗\",\"→\",\"↘\",\"↓\",\"↙\"]},\"arrow2\":{\"interval\":80,\"frames\":[\"⬆️ \",\"↗️ \",\"➡️ \",\"↘️ \",\"⬇️ \",\"↙️ \",\"⬅️ \",\"↖️ \"]},\"arrow3\":{\"interval\":120,\"frames\":[\"▹▹▹▹▹\",\"▸▹▹▹▹\",\"▹▸▹▹▹\",\"▹▹▸▹▹\",\"▹▹▹▸▹\",\"▹▹▹▹▸\"]},\"bouncingBar\":{\"interval\":80,\"frames\":[\"[ ]\",\"[= ]\",\"[== ]\",\"[=== ]\",\"[ ===]\",\"[ ==]\",\"[ =]\",\"[ ]\",\"[ =]\",\"[ ==]\",\"[ ===]\",\"[====]\",\"[=== ]\",\"[== ]\",\"[= ]\"]},\"bouncingBall\":{\"interval\":80,\"frames\":[\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ●)\",\"( ● )\",\"( ● )\",\"( ● )\",\"( ● )\",\"(● )\"]},\"smiley\":{\"interval\":200,\"frames\":[\"😄 \",\"😝 \"]},\"monkey\":{\"interval\":300,\"frames\":[\"🙈 \",\"🙈 \",\"🙉 \",\"🙊 \"]},\"hearts\":{\"interval\":100,\"frames\":[\"💛 \",\"💙 \",\"💜 \",\"💚 \",\"❤️ \"]},\"clock\":{\"interval\":100,\"frames\":[\"🕛 \",\"🕐 \",\"🕑 \",\"🕒 \",\"🕓 \",\"🕔 \",\"🕕 \",\"🕖 \",\"🕗 \",\"🕘 \",\"🕙 \",\"🕚 \"]},\"earth\":{\"interval\":180,\"frames\":[\"🌍 \",\"🌎 \",\"🌏 \"]},\"material\":{\"interval\":17,\"frames\":[\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"███████▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"██████████▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"█████████████▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁██████████████▁▁▁▁\",\"▁▁▁██████████████▁▁▁\",\"▁▁▁▁█████████████▁▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁██████████████▁▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁██████████████▁\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁██████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁█████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁████████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁███████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁██████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁████████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"██████▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"████████▁▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"█████████▁▁▁▁▁▁▁▁▁▁▁\",\"███████████▁▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"████████████▁▁▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"██████████████▁▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁██████████████▁▁▁▁▁\",\"▁▁▁█████████████▁▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁████████████▁▁▁\",\"▁▁▁▁▁▁███████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁█████████▁▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁█████████▁▁\",\"▁▁▁▁▁▁▁▁▁▁█████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁████████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁███████▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁███████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\",\"▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁\"]},\"moon\":{\"interval\":80,\"frames\":[\"🌑 \",\"🌒 \",\"🌓 \",\"🌔 \",\"🌕 \",\"🌖 \",\"🌗 \",\"🌘 \"]},\"runner\":{\"interval\":140,\"frames\":[\"🚶 \",\"🏃 \"]},\"pong\":{\"interval\":80,\"frames\":[\"▐⠂ ▌\",\"▐⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂▌\",\"▐ ⠠▌\",\"▐ ⡀▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐ ⠠ ▌\",\"▐ ⠂ ▌\",\"▐ ⠈ ▌\",\"▐ ⠂ ▌\",\"▐ ⠠ ▌\",\"▐ ⡀ ▌\",\"▐⠠ ▌\"]},\"shark\":{\"interval\":120,\"frames\":[\"▐|\\\\____________▌\",\"▐_|\\\\___________▌\",\"▐__|\\\\__________▌\",\"▐___|\\\\_________▌\",\"▐____|\\\\________▌\",\"▐_____|\\\\_______▌\",\"▐______|\\\\______▌\",\"▐_______|\\\\_____▌\",\"▐________|\\\\____▌\",\"▐_________|\\\\___▌\",\"▐__________|\\\\__▌\",\"▐___________|\\\\_▌\",\"▐____________|\\\\▌\",\"▐____________/|▌\",\"▐___________/|_▌\",\"▐__________/|__▌\",\"▐_________/|___▌\",\"▐________/|____▌\",\"▐_______/|_____▌\",\"▐______/|______▌\",\"▐_____/|_______▌\",\"▐____/|________▌\",\"▐___/|_________▌\",\"▐__/|__________▌\",\"▐_/|___________▌\",\"▐/|____________▌\"]},\"dqpb\":{\"interval\":100,\"frames\":[\"d\",\"q\",\"p\",\"b\"]},\"weather\":{\"interval\":100,\"frames\":[\"☀️ \",\"☀️ \",\"☀️ \",\"🌤 \",\"⛅️ \",\"🌥 \",\"☁️ \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"🌧 \",\"🌨 \",\"⛈ \",\"🌨 \",\"🌧 \",\"🌨 \",\"☁️ \",\"🌥 \",\"⛅️ \",\"🌤 \",\"☀️ \",\"☀️ \"]},\"christmas\":{\"interval\":400,\"frames\":[\"🌲\",\"🎄\"]},\"grenade\":{\"interval\":80,\"frames\":[\"، \",\"′ \",\" ´ \",\" ‾ \",\" ⸌\",\" ⸊\",\" |\",\" ⁎\",\" ⁕\",\" ෴ \",\" ⁓\",\" \",\" \",\" \"]},\"point\":{\"interval\":125,\"frames\":[\"∙∙∙\",\"●∙∙\",\"∙●∙\",\"∙∙●\",\"∙∙∙\"]},\"layer\":{\"interval\":150,\"frames\":[\"-\",\"=\",\"≡\"]},\"betaWave\":{\"interval\":80,\"frames\":[\"ρββββββ\",\"βρβββββ\",\"ββρββββ\",\"βββρβββ\",\"ββββρββ\",\"βββββρβ\",\"ββββββρ\"]},\"aesthetic\":{\"interval\":80,\"frames\":[\"▰▱▱▱▱▱▱\",\"▰▰▱▱▱▱▱\",\"▰▰▰▱▱▱▱\",\"▰▰▰▰▱▱▱\",\"▰▰▰▰▰▱▱\",\"▰▰▰▰▰▰▱\",\"▰▰▰▰▰▰▰\",\"▰▱▱▱▱▱▱\"]}}"); /***/ }), -/* 536 */ +/* 544 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const chalk = __webpack_require__(537); +const chalk = __webpack_require__(545); const isSupported = process.platform !== 'win32' || process.env.CI || process.env.TERM === 'xterm-256color'; @@ -61402,16 +62036,16 @@ module.exports = isSupported ? main : fallbacks; /***/ }), -/* 537 */ +/* 545 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const escapeStringRegexp = __webpack_require__(363); -const ansiStyles = __webpack_require__(538); -const stdoutColor = __webpack_require__(539).stdout; +const ansiStyles = __webpack_require__(546); +const stdoutColor = __webpack_require__(547).stdout; -const template = __webpack_require__(541); +const template = __webpack_require__(549); const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm'); @@ -61637,7 +62271,7 @@ module.exports.default = module.exports; // For TypeScript /***/ }), -/* 538 */ +/* 546 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61810,13 +62444,13 @@ Object.defineProperty(module, 'exports', { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(116)(module))) /***/ }), -/* 539 */ +/* 547 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const os = __webpack_require__(122); -const hasFlag = __webpack_require__(540); +const hasFlag = __webpack_require__(548); const env = process.env; @@ -61948,7 +62582,7 @@ module.exports = { /***/ }), -/* 540 */ +/* 548 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -61963,7 +62597,7 @@ module.exports = (flag, argv) => { /***/ }), -/* 541 */ +/* 549 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62098,18 +62732,18 @@ module.exports = (chalk, tmp) => { /***/ }), -/* 542 */ +/* 550 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const ansiRegex = __webpack_require__(543); +const ansiRegex = __webpack_require__(551); module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; /***/ }), -/* 543 */ +/* 551 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62126,14 +62760,14 @@ module.exports = ({onlyFirst = false} = {}) => { /***/ }), -/* 544 */ +/* 552 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var defaults = __webpack_require__(545) -var combining = __webpack_require__(547) +var defaults = __webpack_require__(553) +var combining = __webpack_require__(555) var DEFAULTS = { nul: 0, @@ -62232,10 +62866,10 @@ function bisearch(ucs) { /***/ }), -/* 545 */ +/* 553 */ /***/ (function(module, exports, __webpack_require__) { -var clone = __webpack_require__(546); +var clone = __webpack_require__(554); module.exports = function(options, defaults) { options = options || {}; @@ -62250,7 +62884,7 @@ module.exports = function(options, defaults) { }; /***/ }), -/* 546 */ +/* 554 */ /***/ (function(module, exports, __webpack_require__) { var clone = (function() { @@ -62422,7 +63056,7 @@ if ( true && module.exports) { /***/ }), -/* 547 */ +/* 555 */ /***/ (function(module, exports) { module.exports = [ @@ -62478,7 +63112,7 @@ module.exports = [ /***/ }), -/* 548 */ +/* 556 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62494,7 +63128,7 @@ module.exports = ({stream = process.stdout} = {}) => { /***/ }), -/* 549 */ +/* 557 */ /***/ (function(module, exports, __webpack_require__) { var Stream = __webpack_require__(173) @@ -62645,7 +63279,7 @@ MuteStream.prototype.close = proxy('close') /***/ }), -/* 550 */ +/* 558 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -62655,11 +63289,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var dedent__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dedent__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(240); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(del__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(527); +/* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(535); /* harmony import */ var ora__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(ora__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(419); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(427); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(231); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(220); /* @@ -62768,7 +63402,7 @@ const ResetCommand = { }; /***/ }), -/* 551 */ +/* 559 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -62778,7 +63412,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var dedent__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dedent__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(347); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(220); -/* harmony import */ var _utils_parallelize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(552); +/* harmony import */ var _utils_parallelize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(560); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(346); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one @@ -62837,7 +63471,7 @@ const RunCommand = { }; /***/ }), -/* 552 */ +/* 560 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -62892,13 +63526,13 @@ async function parallelize(items, fn, concurrency = 4) { } /***/ }), -/* 553 */ +/* 561 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WatchCommand", function() { return WatchCommand; }); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(419); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(427); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License @@ -62929,7 +63563,7 @@ const WatchCommand = { }; /***/ }), -/* 554 */ +/* 562 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -63009,7 +63643,7 @@ const PatchNativeModulesCommand = { }; /***/ }), -/* 555 */ +/* 563 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -63020,8 +63654,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _utils_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(347); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(220); /* harmony import */ var _utils_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(346); -/* harmony import */ var _utils_projects_tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(418); -/* harmony import */ var _utils_kibana__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(556); +/* harmony import */ var _utils_projects_tree__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(426); +/* harmony import */ var _utils_kibana__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(564); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } @@ -63140,7 +63774,7 @@ function toArray(value) { } /***/ }), -/* 556 */ +/* 564 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -63150,13 +63784,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(132); /* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(557); +/* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(565); /* harmony import */ var multimatch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(multimatch__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var is_path_inside__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(339); /* harmony import */ var is_path_inside__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(is_path_inside__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(414); /* harmony import */ var _projects__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(346); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(560); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(568); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } @@ -63320,15 +63954,15 @@ class Kibana { } /***/ }), -/* 557 */ +/* 565 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const minimatch = __webpack_require__(247); const arrayUnion = __webpack_require__(242); -const arrayDiffer = __webpack_require__(558); -const arrify = __webpack_require__(559); +const arrayDiffer = __webpack_require__(566); +const arrify = __webpack_require__(567); module.exports = (list, patterns, options = {}) => { list = arrify(list); @@ -63352,7 +63986,7 @@ module.exports = (list, patterns, options = {}) => { /***/ }), -/* 558 */ +/* 566 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63367,7 +64001,7 @@ module.exports = arrayDiffer; /***/ }), -/* 559 */ +/* 567 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63397,7 +64031,7 @@ module.exports = arrify; /***/ }), -/* 560 */ +/* 568 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -63457,15 +64091,15 @@ function getProjectPaths({ } /***/ }), -/* 561 */ +/* 569 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _build_bazel_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(562); +/* harmony import */ var _build_bazel_production_projects__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(570); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildBazelProductionProjects", function() { return _build_bazel_production_projects__WEBPACK_IMPORTED_MODULE_0__["buildBazelProductionProjects"]; }); -/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(809); +/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(817); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buildNonBazelProductionProjects", function() { return _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_1__["buildNonBazelProductionProjects"]; }); /* @@ -63479,20 +64113,20 @@ __webpack_require__.r(__webpack_exports__); /***/ }), -/* 562 */ +/* 570 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildBazelProductionProjects", function() { return buildBazelProductionProjects; }); -/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(563); +/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(571); /* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cpy__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(775); +/* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(783); /* harmony import */ var globby__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(globby__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(809); -/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(419); +/* harmony import */ var _build_non_bazel_production_projects__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(817); +/* harmony import */ var _utils_bazel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(427); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(231); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(220); /* harmony import */ var _utils_package_json__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(349); @@ -63586,7 +64220,7 @@ async function applyCorrectPermissions(project, kibanaRoot, buildRoot) { } /***/ }), -/* 563 */ +/* 571 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63594,14 +64228,14 @@ async function applyCorrectPermissions(project, kibanaRoot, buildRoot) { const EventEmitter = __webpack_require__(164); const path = __webpack_require__(4); const os = __webpack_require__(122); -const pMap = __webpack_require__(564); -const arrify = __webpack_require__(559); -const globby = __webpack_require__(567); -const hasGlob = __webpack_require__(759); -const cpFile = __webpack_require__(761); -const junk = __webpack_require__(771); -const pFilter = __webpack_require__(772); -const CpyError = __webpack_require__(774); +const pMap = __webpack_require__(572); +const arrify = __webpack_require__(567); +const globby = __webpack_require__(575); +const hasGlob = __webpack_require__(767); +const cpFile = __webpack_require__(769); +const junk = __webpack_require__(779); +const pFilter = __webpack_require__(780); +const CpyError = __webpack_require__(782); const defaultOptions = { ignoreJunk: true @@ -63752,12 +64386,12 @@ module.exports = (source, destination, { /***/ }), -/* 564 */ +/* 572 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const AggregateError = __webpack_require__(565); +const AggregateError = __webpack_require__(573); module.exports = async ( iterable, @@ -63840,12 +64474,12 @@ module.exports = async ( /***/ }), -/* 565 */ +/* 573 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const indentString = __webpack_require__(566); +const indentString = __webpack_require__(574); const cleanStack = __webpack_require__(344); const cleanInternalStack = stack => stack.replace(/\s+at .*aggregate-error\/index.js:\d+:\d+\)?/g, ''); @@ -63894,7 +64528,7 @@ module.exports = AggregateError; /***/ }), -/* 566 */ +/* 574 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63936,17 +64570,17 @@ module.exports = (string, count = 1, options) => { /***/ }), -/* 567 */ +/* 575 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(132); -const arrayUnion = __webpack_require__(568); +const arrayUnion = __webpack_require__(576); const glob = __webpack_require__(244); -const fastGlob = __webpack_require__(570); -const dirGlob = __webpack_require__(753); -const gitignore = __webpack_require__(756); +const fastGlob = __webpack_require__(578); +const dirGlob = __webpack_require__(761); +const gitignore = __webpack_require__(764); const DEFAULT_FILTER = () => false; @@ -64091,12 +64725,12 @@ module.exports.gitignore = gitignore; /***/ }), -/* 568 */ +/* 576 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var arrayUniq = __webpack_require__(569); +var arrayUniq = __webpack_require__(577); module.exports = function () { return arrayUniq([].concat.apply([], arguments)); @@ -64104,7 +64738,7 @@ module.exports = function () { /***/ }), -/* 569 */ +/* 577 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64173,10 +64807,10 @@ if ('Set' in global) { /***/ }), -/* 570 */ +/* 578 */ /***/ (function(module, exports, __webpack_require__) { -const pkg = __webpack_require__(571); +const pkg = __webpack_require__(579); module.exports = pkg.async; module.exports.default = pkg.async; @@ -64189,19 +64823,19 @@ module.exports.generateTasks = pkg.generateTasks; /***/ }), -/* 571 */ +/* 579 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var optionsManager = __webpack_require__(572); -var taskManager = __webpack_require__(573); -var reader_async_1 = __webpack_require__(724); -var reader_stream_1 = __webpack_require__(748); -var reader_sync_1 = __webpack_require__(749); -var arrayUtils = __webpack_require__(751); -var streamUtils = __webpack_require__(752); +var optionsManager = __webpack_require__(580); +var taskManager = __webpack_require__(581); +var reader_async_1 = __webpack_require__(732); +var reader_stream_1 = __webpack_require__(756); +var reader_sync_1 = __webpack_require__(757); +var arrayUtils = __webpack_require__(759); +var streamUtils = __webpack_require__(760); /** * Synchronous API. */ @@ -64267,7 +64901,7 @@ function isString(source) { /***/ }), -/* 572 */ +/* 580 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64305,13 +64939,13 @@ exports.prepare = prepare; /***/ }), -/* 573 */ +/* 581 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var patternUtils = __webpack_require__(574); +var patternUtils = __webpack_require__(582); /** * Generate tasks based on parent directory of each pattern. */ @@ -64402,16 +65036,16 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 574 */ +/* 582 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var globParent = __webpack_require__(575); +var globParent = __webpack_require__(583); var isGlob = __webpack_require__(266); -var micromatch = __webpack_require__(578); +var micromatch = __webpack_require__(586); var GLOBSTAR = '**'; /** * Return true for static pattern. @@ -64557,15 +65191,15 @@ exports.matchAny = matchAny; /***/ }), -/* 575 */ +/* 583 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var path = __webpack_require__(4); -var isglob = __webpack_require__(576); -var pathDirname = __webpack_require__(577); +var isglob = __webpack_require__(584); +var pathDirname = __webpack_require__(585); var isWin32 = __webpack_require__(122).platform() === 'win32'; module.exports = function globParent(str) { @@ -64588,7 +65222,7 @@ module.exports = function globParent(str) { /***/ }), -/* 576 */ +/* 584 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -64619,7 +65253,7 @@ module.exports = function isGlob(str) { /***/ }), -/* 577 */ +/* 585 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64769,7 +65403,7 @@ module.exports.win32 = win32; /***/ }), -/* 578 */ +/* 586 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64780,18 +65414,18 @@ module.exports.win32 = win32; */ var util = __webpack_require__(113); -var braces = __webpack_require__(579); -var toRegex = __webpack_require__(580); -var extend = __webpack_require__(692); +var braces = __webpack_require__(587); +var toRegex = __webpack_require__(588); +var extend = __webpack_require__(700); /** * Local dependencies */ -var compilers = __webpack_require__(694); -var parsers = __webpack_require__(720); -var cache = __webpack_require__(721); -var utils = __webpack_require__(722); +var compilers = __webpack_require__(702); +var parsers = __webpack_require__(728); +var cache = __webpack_require__(729); +var utils = __webpack_require__(730); var MAX_LENGTH = 1024 * 64; /** @@ -65653,7 +66287,7 @@ module.exports = micromatch; /***/ }), -/* 579 */ +/* 587 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65663,18 +66297,18 @@ module.exports = micromatch; * Module dependencies */ -var toRegex = __webpack_require__(580); -var unique = __webpack_require__(600); -var extend = __webpack_require__(601); +var toRegex = __webpack_require__(588); +var unique = __webpack_require__(608); +var extend = __webpack_require__(609); /** * Local dependencies */ -var compilers = __webpack_require__(603); -var parsers = __webpack_require__(618); -var Braces = __webpack_require__(623); -var utils = __webpack_require__(604); +var compilers = __webpack_require__(611); +var parsers = __webpack_require__(626); +var Braces = __webpack_require__(631); +var utils = __webpack_require__(612); var MAX_LENGTH = 1024 * 64; var cache = {}; @@ -65978,16 +66612,16 @@ module.exports = braces; /***/ }), -/* 580 */ +/* 588 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var safe = __webpack_require__(581); -var define = __webpack_require__(587); -var extend = __webpack_require__(593); -var not = __webpack_require__(597); +var safe = __webpack_require__(589); +var define = __webpack_require__(595); +var extend = __webpack_require__(601); +var not = __webpack_require__(605); var MAX_LENGTH = 1024 * 64; /** @@ -66140,10 +66774,10 @@ module.exports.makeRe = makeRe; /***/ }), -/* 581 */ +/* 589 */ /***/ (function(module, exports, __webpack_require__) { -var parse = __webpack_require__(582); +var parse = __webpack_require__(590); var types = parse.types; module.exports = function (re, opts) { @@ -66189,13 +66823,13 @@ function isRegExp (x) { /***/ }), -/* 582 */ +/* 590 */ /***/ (function(module, exports, __webpack_require__) { -var util = __webpack_require__(583); -var types = __webpack_require__(584); -var sets = __webpack_require__(585); -var positions = __webpack_require__(586); +var util = __webpack_require__(591); +var types = __webpack_require__(592); +var sets = __webpack_require__(593); +var positions = __webpack_require__(594); module.exports = function(regexpStr) { @@ -66477,11 +67111,11 @@ module.exports.types = types; /***/ }), -/* 583 */ +/* 591 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(584); -var sets = __webpack_require__(585); +var types = __webpack_require__(592); +var sets = __webpack_require__(593); // All of these are private and only used by randexp. @@ -66594,7 +67228,7 @@ exports.error = function(regexp, msg) { /***/ }), -/* 584 */ +/* 592 */ /***/ (function(module, exports) { module.exports = { @@ -66610,10 +67244,10 @@ module.exports = { /***/ }), -/* 585 */ +/* 593 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(584); +var types = __webpack_require__(592); var INTS = function() { return [{ type: types.RANGE , from: 48, to: 57 }]; @@ -66698,10 +67332,10 @@ exports.anyChar = function() { /***/ }), -/* 586 */ +/* 594 */ /***/ (function(module, exports, __webpack_require__) { -var types = __webpack_require__(584); +var types = __webpack_require__(592); exports.wordBoundary = function() { return { type: types.POSITION, value: 'b' }; @@ -66721,7 +67355,7 @@ exports.end = function() { /***/ }), -/* 587 */ +/* 595 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66734,8 +67368,8 @@ exports.end = function() { -var isobject = __webpack_require__(588); -var isDescriptor = __webpack_require__(589); +var isobject = __webpack_require__(596); +var isDescriptor = __webpack_require__(597); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -66766,7 +67400,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 588 */ +/* 596 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66785,7 +67419,7 @@ module.exports = function isObject(val) { /***/ }), -/* 589 */ +/* 597 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66798,9 +67432,9 @@ module.exports = function isObject(val) { -var typeOf = __webpack_require__(590); -var isAccessor = __webpack_require__(591); -var isData = __webpack_require__(592); +var typeOf = __webpack_require__(598); +var isAccessor = __webpack_require__(599); +var isData = __webpack_require__(600); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -66814,7 +67448,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 590 */ +/* 598 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -66949,7 +67583,7 @@ function isBuffer(val) { /***/ }), -/* 591 */ +/* 599 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66962,7 +67596,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(590); +var typeOf = __webpack_require__(598); // accessor descriptor properties var accessor = { @@ -67025,7 +67659,7 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 592 */ +/* 600 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67038,7 +67672,7 @@ module.exports = isAccessorDescriptor; -var typeOf = __webpack_require__(590); +var typeOf = __webpack_require__(598); module.exports = function isDataDescriptor(obj, prop) { // data descriptor properties @@ -67081,14 +67715,14 @@ module.exports = function isDataDescriptor(obj, prop) { /***/ }), -/* 593 */ +/* 601 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(594); -var assignSymbols = __webpack_require__(596); +var isExtendable = __webpack_require__(602); +var assignSymbols = __webpack_require__(604); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -67148,7 +67782,7 @@ function isEnum(obj, key) { /***/ }), -/* 594 */ +/* 602 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67161,7 +67795,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -67169,7 +67803,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 595 */ +/* 603 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67182,7 +67816,7 @@ module.exports = function isExtendable(val) { -var isObject = __webpack_require__(588); +var isObject = __webpack_require__(596); function isObjectObject(o) { return isObject(o) === true @@ -67213,7 +67847,7 @@ module.exports = function isPlainObject(o) { /***/ }), -/* 596 */ +/* 604 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67260,14 +67894,14 @@ module.exports = function(receiver, objects) { /***/ }), -/* 597 */ +/* 605 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(598); -var safe = __webpack_require__(581); +var extend = __webpack_require__(606); +var safe = __webpack_require__(589); /** * The main export is a function that takes a `pattern` string and an `options` object. @@ -67339,14 +67973,14 @@ module.exports = toRegex; /***/ }), -/* 598 */ +/* 606 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(599); -var assignSymbols = __webpack_require__(596); +var isExtendable = __webpack_require__(607); +var assignSymbols = __webpack_require__(604); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -67406,7 +68040,7 @@ function isEnum(obj, key) { /***/ }), -/* 599 */ +/* 607 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67419,7 +68053,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -67427,7 +68061,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 600 */ +/* 608 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67477,13 +68111,13 @@ module.exports.immutable = function uniqueImmutable(arr) { /***/ }), -/* 601 */ +/* 609 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(602); +var isObject = __webpack_require__(610); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -67517,7 +68151,7 @@ function hasOwn(obj, key) { /***/ }), -/* 602 */ +/* 610 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -67537,13 +68171,13 @@ module.exports = function isExtendable(val) { /***/ }), -/* 603 */ +/* 611 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(604); +var utils = __webpack_require__(612); module.exports = function(braces, options) { braces.compiler @@ -67826,25 +68460,25 @@ function hasQueue(node) { /***/ }), -/* 604 */ +/* 612 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var splitString = __webpack_require__(605); +var splitString = __webpack_require__(613); var utils = module.exports; /** * Module dependencies */ -utils.extend = __webpack_require__(601); -utils.flatten = __webpack_require__(608); -utils.isObject = __webpack_require__(588); -utils.fillRange = __webpack_require__(609); -utils.repeat = __webpack_require__(617); -utils.unique = __webpack_require__(600); +utils.extend = __webpack_require__(609); +utils.flatten = __webpack_require__(616); +utils.isObject = __webpack_require__(596); +utils.fillRange = __webpack_require__(617); +utils.repeat = __webpack_require__(625); +utils.unique = __webpack_require__(608); utils.define = function(obj, key, val) { Object.defineProperty(obj, key, { @@ -68176,7 +68810,7 @@ utils.escapeRegex = function(str) { /***/ }), -/* 605 */ +/* 613 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68189,7 +68823,7 @@ utils.escapeRegex = function(str) { -var extend = __webpack_require__(606); +var extend = __webpack_require__(614); module.exports = function(str, options, fn) { if (typeof str !== 'string') { @@ -68354,14 +68988,14 @@ function keepEscaping(opts, str, idx) { /***/ }), -/* 606 */ +/* 614 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(607); -var assignSymbols = __webpack_require__(596); +var isExtendable = __webpack_require__(615); +var assignSymbols = __webpack_require__(604); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -68421,7 +69055,7 @@ function isEnum(obj, key) { /***/ }), -/* 607 */ +/* 615 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68434,7 +69068,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -68442,7 +69076,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 608 */ +/* 616 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68471,7 +69105,7 @@ function flat(arr, res) { /***/ }), -/* 609 */ +/* 617 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68485,10 +69119,10 @@ function flat(arr, res) { var util = __webpack_require__(113); -var isNumber = __webpack_require__(610); -var extend = __webpack_require__(613); -var repeat = __webpack_require__(615); -var toRegex = __webpack_require__(616); +var isNumber = __webpack_require__(618); +var extend = __webpack_require__(621); +var repeat = __webpack_require__(623); +var toRegex = __webpack_require__(624); /** * Return a range of numbers or letters. @@ -68686,7 +69320,7 @@ module.exports = fillRange; /***/ }), -/* 610 */ +/* 618 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68699,7 +69333,7 @@ module.exports = fillRange; -var typeOf = __webpack_require__(611); +var typeOf = __webpack_require__(619); module.exports = function isNumber(num) { var type = typeOf(num); @@ -68715,10 +69349,10 @@ module.exports = function isNumber(num) { /***/ }), -/* 611 */ +/* 619 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -68837,7 +69471,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 612 */ +/* 620 */ /***/ (function(module, exports) { /*! @@ -68864,13 +69498,13 @@ function isSlowBuffer (obj) { /***/ }), -/* 613 */ +/* 621 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(614); +var isObject = __webpack_require__(622); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -68904,7 +69538,7 @@ function hasOwn(obj, key) { /***/ }), -/* 614 */ +/* 622 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68924,7 +69558,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 615 */ +/* 623 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69001,7 +69635,7 @@ function repeat(str, num) { /***/ }), -/* 616 */ +/* 624 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69014,8 +69648,8 @@ function repeat(str, num) { -var repeat = __webpack_require__(615); -var isNumber = __webpack_require__(610); +var repeat = __webpack_require__(623); +var isNumber = __webpack_require__(618); var cache = {}; function toRegexRange(min, max, options) { @@ -69302,7 +69936,7 @@ module.exports = toRegexRange; /***/ }), -/* 617 */ +/* 625 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69327,14 +69961,14 @@ module.exports = function repeat(ele, num) { /***/ }), -/* 618 */ +/* 626 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Node = __webpack_require__(619); -var utils = __webpack_require__(604); +var Node = __webpack_require__(627); +var utils = __webpack_require__(612); /** * Braces parsers @@ -69694,15 +70328,15 @@ function concatNodes(pos, node, parent, options) { /***/ }), -/* 619 */ +/* 627 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(588); -var define = __webpack_require__(620); -var utils = __webpack_require__(621); +var isObject = __webpack_require__(596); +var define = __webpack_require__(628); +var utils = __webpack_require__(629); var ownNames; /** @@ -70193,7 +70827,7 @@ exports = module.exports = Node; /***/ }), -/* 620 */ +/* 628 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70206,7 +70840,7 @@ exports = module.exports = Node; -var isDescriptor = __webpack_require__(589); +var isDescriptor = __webpack_require__(597); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -70231,13 +70865,13 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 621 */ +/* 629 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(622); +var typeOf = __webpack_require__(630); var utils = module.exports; /** @@ -71257,10 +71891,10 @@ function assert(val, message) { /***/ }), -/* 622 */ +/* 630 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -71379,17 +72013,17 @@ module.exports = function kindOf(val) { /***/ }), -/* 623 */ +/* 631 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extend = __webpack_require__(601); -var Snapdragon = __webpack_require__(624); -var compilers = __webpack_require__(603); -var parsers = __webpack_require__(618); -var utils = __webpack_require__(604); +var extend = __webpack_require__(609); +var Snapdragon = __webpack_require__(632); +var compilers = __webpack_require__(611); +var parsers = __webpack_require__(626); +var utils = __webpack_require__(612); /** * Customize Snapdragon parser and renderer @@ -71490,17 +72124,17 @@ module.exports = Braces; /***/ }), -/* 624 */ +/* 632 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Base = __webpack_require__(625); -var define = __webpack_require__(655); -var Compiler = __webpack_require__(666); -var Parser = __webpack_require__(689); -var utils = __webpack_require__(669); +var Base = __webpack_require__(633); +var define = __webpack_require__(663); +var Compiler = __webpack_require__(674); +var Parser = __webpack_require__(697); +var utils = __webpack_require__(677); var regexCache = {}; var cache = {}; @@ -71671,20 +72305,20 @@ module.exports.Parser = Parser; /***/ }), -/* 625 */ +/* 633 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(113); -var define = __webpack_require__(626); -var CacheBase = __webpack_require__(627); -var Emitter = __webpack_require__(628); -var isObject = __webpack_require__(588); -var merge = __webpack_require__(649); -var pascal = __webpack_require__(652); -var cu = __webpack_require__(653); +var define = __webpack_require__(634); +var CacheBase = __webpack_require__(635); +var Emitter = __webpack_require__(636); +var isObject = __webpack_require__(596); +var merge = __webpack_require__(657); +var pascal = __webpack_require__(660); +var cu = __webpack_require__(661); /** * Optionally define a custom `cache` namespace to use. @@ -72113,7 +72747,7 @@ module.exports.namespace = namespace; /***/ }), -/* 626 */ +/* 634 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72126,7 +72760,7 @@ module.exports.namespace = namespace; -var isDescriptor = __webpack_require__(589); +var isDescriptor = __webpack_require__(597); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -72151,21 +72785,21 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 627 */ +/* 635 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(588); -var Emitter = __webpack_require__(628); -var visit = __webpack_require__(629); -var toPath = __webpack_require__(632); -var union = __webpack_require__(634); -var del = __webpack_require__(640); -var get = __webpack_require__(637); -var has = __webpack_require__(645); -var set = __webpack_require__(648); +var isObject = __webpack_require__(596); +var Emitter = __webpack_require__(636); +var visit = __webpack_require__(637); +var toPath = __webpack_require__(640); +var union = __webpack_require__(642); +var del = __webpack_require__(648); +var get = __webpack_require__(645); +var has = __webpack_require__(653); +var set = __webpack_require__(656); /** * Create a `Cache` constructor that when instantiated will @@ -72419,7 +73053,7 @@ module.exports.namespace = namespace; /***/ }), -/* 628 */ +/* 636 */ /***/ (function(module, exports, __webpack_require__) { @@ -72588,7 +73222,7 @@ Emitter.prototype.hasListeners = function(event){ /***/ }), -/* 629 */ +/* 637 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72601,8 +73235,8 @@ Emitter.prototype.hasListeners = function(event){ -var visit = __webpack_require__(630); -var mapVisit = __webpack_require__(631); +var visit = __webpack_require__(638); +var mapVisit = __webpack_require__(639); module.exports = function(collection, method, val) { var result; @@ -72625,7 +73259,7 @@ module.exports = function(collection, method, val) { /***/ }), -/* 630 */ +/* 638 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72638,7 +73272,7 @@ module.exports = function(collection, method, val) { -var isObject = __webpack_require__(588); +var isObject = __webpack_require__(596); module.exports = function visit(thisArg, method, target, val) { if (!isObject(thisArg) && typeof thisArg !== 'function') { @@ -72665,14 +73299,14 @@ module.exports = function visit(thisArg, method, target, val) { /***/ }), -/* 631 */ +/* 639 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(113); -var visit = __webpack_require__(630); +var visit = __webpack_require__(638); /** * Map `visit` over an array of objects. @@ -72709,7 +73343,7 @@ function isObject(val) { /***/ }), -/* 632 */ +/* 640 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72722,7 +73356,7 @@ function isObject(val) { -var typeOf = __webpack_require__(633); +var typeOf = __webpack_require__(641); module.exports = function toPath(args) { if (typeOf(args) !== 'arguments') { @@ -72749,10 +73383,10 @@ function filter(arr) { /***/ }), -/* 633 */ +/* 641 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -72871,16 +73505,16 @@ module.exports = function kindOf(val) { /***/ }), -/* 634 */ +/* 642 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(635); -var union = __webpack_require__(636); -var get = __webpack_require__(637); -var set = __webpack_require__(638); +var isObject = __webpack_require__(643); +var union = __webpack_require__(644); +var get = __webpack_require__(645); +var set = __webpack_require__(646); module.exports = function unionValue(obj, prop, value) { if (!isObject(obj)) { @@ -72908,7 +73542,7 @@ function arrayify(val) { /***/ }), -/* 635 */ +/* 643 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72928,7 +73562,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 636 */ +/* 644 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -72964,7 +73598,7 @@ module.exports = function union(init) { /***/ }), -/* 637 */ +/* 645 */ /***/ (function(module, exports) { /*! @@ -73020,7 +73654,7 @@ function toString(val) { /***/ }), -/* 638 */ +/* 646 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73033,10 +73667,10 @@ function toString(val) { -var split = __webpack_require__(605); -var extend = __webpack_require__(639); -var isPlainObject = __webpack_require__(595); -var isObject = __webpack_require__(635); +var split = __webpack_require__(613); +var extend = __webpack_require__(647); +var isPlainObject = __webpack_require__(603); +var isObject = __webpack_require__(643); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -73082,13 +73716,13 @@ function isValidKey(key) { /***/ }), -/* 639 */ +/* 647 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isObject = __webpack_require__(635); +var isObject = __webpack_require__(643); module.exports = function extend(o/*, objects*/) { if (!isObject(o)) { o = {}; } @@ -73122,7 +73756,7 @@ function hasOwn(obj, key) { /***/ }), -/* 640 */ +/* 648 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73135,8 +73769,8 @@ function hasOwn(obj, key) { -var isObject = __webpack_require__(588); -var has = __webpack_require__(641); +var isObject = __webpack_require__(596); +var has = __webpack_require__(649); module.exports = function unset(obj, prop) { if (!isObject(obj)) { @@ -73161,7 +73795,7 @@ module.exports = function unset(obj, prop) { /***/ }), -/* 641 */ +/* 649 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73174,9 +73808,9 @@ module.exports = function unset(obj, prop) { -var isObject = __webpack_require__(642); -var hasValues = __webpack_require__(644); -var get = __webpack_require__(637); +var isObject = __webpack_require__(650); +var hasValues = __webpack_require__(652); +var get = __webpack_require__(645); module.exports = function(obj, prop, noZero) { if (isObject(obj)) { @@ -73187,7 +73821,7 @@ module.exports = function(obj, prop, noZero) { /***/ }), -/* 642 */ +/* 650 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73200,7 +73834,7 @@ module.exports = function(obj, prop, noZero) { -var isArray = __webpack_require__(643); +var isArray = __webpack_require__(651); module.exports = function isObject(val) { return val != null && typeof val === 'object' && isArray(val) === false; @@ -73208,7 +73842,7 @@ module.exports = function isObject(val) { /***/ }), -/* 643 */ +/* 651 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -73219,7 +73853,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 644 */ +/* 652 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73262,7 +73896,7 @@ module.exports = function hasValue(o, noZero) { /***/ }), -/* 645 */ +/* 653 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73275,9 +73909,9 @@ module.exports = function hasValue(o, noZero) { -var isObject = __webpack_require__(588); -var hasValues = __webpack_require__(646); -var get = __webpack_require__(637); +var isObject = __webpack_require__(596); +var hasValues = __webpack_require__(654); +var get = __webpack_require__(645); module.exports = function(val, prop) { return hasValues(isObject(val) && prop ? get(val, prop) : val); @@ -73285,7 +73919,7 @@ module.exports = function(val, prop) { /***/ }), -/* 646 */ +/* 654 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73298,8 +73932,8 @@ module.exports = function(val, prop) { -var typeOf = __webpack_require__(647); -var isNumber = __webpack_require__(610); +var typeOf = __webpack_require__(655); +var isNumber = __webpack_require__(618); module.exports = function hasValue(val) { // is-number checks for NaN and other edge cases @@ -73352,10 +73986,10 @@ module.exports = function hasValue(val) { /***/ }), -/* 647 */ +/* 655 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -73477,7 +74111,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 648 */ +/* 656 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73490,10 +74124,10 @@ module.exports = function kindOf(val) { -var split = __webpack_require__(605); -var extend = __webpack_require__(639); -var isPlainObject = __webpack_require__(595); -var isObject = __webpack_require__(635); +var split = __webpack_require__(613); +var extend = __webpack_require__(647); +var isPlainObject = __webpack_require__(603); +var isObject = __webpack_require__(643); module.exports = function(obj, prop, val) { if (!isObject(obj)) { @@ -73539,14 +74173,14 @@ function isValidKey(key) { /***/ }), -/* 649 */ +/* 657 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(650); -var forIn = __webpack_require__(651); +var isExtendable = __webpack_require__(658); +var forIn = __webpack_require__(659); function mixinDeep(target, objects) { var len = arguments.length, i = 0; @@ -73610,7 +74244,7 @@ module.exports = mixinDeep; /***/ }), -/* 650 */ +/* 658 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73623,7 +74257,7 @@ module.exports = mixinDeep; -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -73631,7 +74265,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 651 */ +/* 659 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -73654,7 +74288,7 @@ module.exports = function forIn(obj, fn, thisArg) { /***/ }), -/* 652 */ +/* 660 */ /***/ (function(module, exports) { /*! @@ -73681,14 +74315,14 @@ module.exports = pascalcase; /***/ }), -/* 653 */ +/* 661 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(113); -var utils = __webpack_require__(654); +var utils = __webpack_require__(662); /** * Expose class utils @@ -74053,7 +74687,7 @@ cu.bubble = function(Parent, events) { /***/ }), -/* 654 */ +/* 662 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74067,10 +74701,10 @@ var utils = {}; * Lazily required module dependencies */ -utils.union = __webpack_require__(636); -utils.define = __webpack_require__(655); -utils.isObj = __webpack_require__(588); -utils.staticExtend = __webpack_require__(662); +utils.union = __webpack_require__(644); +utils.define = __webpack_require__(663); +utils.isObj = __webpack_require__(596); +utils.staticExtend = __webpack_require__(670); /** @@ -74081,7 +74715,7 @@ module.exports = utils; /***/ }), -/* 655 */ +/* 663 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74094,7 +74728,7 @@ module.exports = utils; -var isDescriptor = __webpack_require__(656); +var isDescriptor = __webpack_require__(664); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -74119,7 +74753,7 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 656 */ +/* 664 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74132,9 +74766,9 @@ module.exports = function defineProperty(obj, prop, val) { -var typeOf = __webpack_require__(657); -var isAccessor = __webpack_require__(658); -var isData = __webpack_require__(660); +var typeOf = __webpack_require__(665); +var isAccessor = __webpack_require__(666); +var isData = __webpack_require__(668); module.exports = function isDescriptor(obj, key) { if (typeOf(obj) !== 'object') { @@ -74148,7 +74782,7 @@ module.exports = function isDescriptor(obj, key) { /***/ }), -/* 657 */ +/* 665 */ /***/ (function(module, exports) { var toString = Object.prototype.toString; @@ -74301,7 +74935,7 @@ function isBuffer(val) { /***/ }), -/* 658 */ +/* 666 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74314,7 +74948,7 @@ function isBuffer(val) { -var typeOf = __webpack_require__(659); +var typeOf = __webpack_require__(667); // accessor descriptor properties var accessor = { @@ -74377,10 +75011,10 @@ module.exports = isAccessorDescriptor; /***/ }), -/* 659 */ +/* 667 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -74499,7 +75133,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 660 */ +/* 668 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74512,7 +75146,7 @@ module.exports = function kindOf(val) { -var typeOf = __webpack_require__(661); +var typeOf = __webpack_require__(669); // data descriptor properties var data = { @@ -74561,10 +75195,10 @@ module.exports = isDataDescriptor; /***/ }), -/* 661 */ +/* 669 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -74683,7 +75317,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 662 */ +/* 670 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -74696,8 +75330,8 @@ module.exports = function kindOf(val) { -var copy = __webpack_require__(663); -var define = __webpack_require__(655); +var copy = __webpack_require__(671); +var define = __webpack_require__(663); var util = __webpack_require__(113); /** @@ -74780,15 +75414,15 @@ module.exports = extend; /***/ }), -/* 663 */ +/* 671 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var typeOf = __webpack_require__(664); -var copyDescriptor = __webpack_require__(665); -var define = __webpack_require__(655); +var typeOf = __webpack_require__(672); +var copyDescriptor = __webpack_require__(673); +var define = __webpack_require__(663); /** * Copy static properties, prototype properties, and descriptors from one object to another. @@ -74961,10 +75595,10 @@ module.exports.has = has; /***/ }), -/* 664 */ +/* 672 */ /***/ (function(module, exports, __webpack_require__) { -var isBuffer = __webpack_require__(612); +var isBuffer = __webpack_require__(620); var toString = Object.prototype.toString; /** @@ -75083,7 +75717,7 @@ module.exports = function kindOf(val) { /***/ }), -/* 665 */ +/* 673 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75171,16 +75805,16 @@ function isObject(val) { /***/ }), -/* 666 */ +/* 674 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(667); -var define = __webpack_require__(655); +var use = __webpack_require__(675); +var define = __webpack_require__(663); var debug = __webpack_require__(205)('snapdragon:compiler'); -var utils = __webpack_require__(669); +var utils = __webpack_require__(677); /** * Create a new `Compiler` with the given `options`. @@ -75334,7 +75968,7 @@ Compiler.prototype = { // source map support if (opts.sourcemap) { - var sourcemaps = __webpack_require__(688); + var sourcemaps = __webpack_require__(696); sourcemaps(this); this.mapVisit(this.ast.nodes); this.applySourceMaps(); @@ -75355,7 +75989,7 @@ module.exports = Compiler; /***/ }), -/* 667 */ +/* 675 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75368,7 +76002,7 @@ module.exports = Compiler; -var utils = __webpack_require__(668); +var utils = __webpack_require__(676); module.exports = function base(app, opts) { if (!utils.isObject(app) && typeof app !== 'function') { @@ -75483,7 +76117,7 @@ module.exports = function base(app, opts) { /***/ }), -/* 668 */ +/* 676 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75497,8 +76131,8 @@ var utils = {}; * Lazily required module dependencies */ -utils.define = __webpack_require__(655); -utils.isObject = __webpack_require__(588); +utils.define = __webpack_require__(663); +utils.isObject = __webpack_require__(596); utils.isString = function(val) { @@ -75513,7 +76147,7 @@ module.exports = utils; /***/ }), -/* 669 */ +/* 677 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -75523,9 +76157,9 @@ module.exports = utils; * Module dependencies */ -exports.extend = __webpack_require__(639); -exports.SourceMap = __webpack_require__(670); -exports.sourceMapResolve = __webpack_require__(681); +exports.extend = __webpack_require__(647); +exports.SourceMap = __webpack_require__(678); +exports.sourceMapResolve = __webpack_require__(689); /** * Convert backslash in the given string to forward slashes @@ -75568,7 +76202,7 @@ exports.last = function(arr, n) { /***/ }), -/* 670 */ +/* 678 */ /***/ (function(module, exports, __webpack_require__) { /* @@ -75576,13 +76210,13 @@ exports.last = function(arr, n) { * Licensed under the New BSD license. See LICENSE.txt or: * http://opensource.org/licenses/BSD-3-Clause */ -exports.SourceMapGenerator = __webpack_require__(671).SourceMapGenerator; -exports.SourceMapConsumer = __webpack_require__(677).SourceMapConsumer; -exports.SourceNode = __webpack_require__(680).SourceNode; +exports.SourceMapGenerator = __webpack_require__(679).SourceMapGenerator; +exports.SourceMapConsumer = __webpack_require__(685).SourceMapConsumer; +exports.SourceNode = __webpack_require__(688).SourceNode; /***/ }), -/* 671 */ +/* 679 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -75592,10 +76226,10 @@ exports.SourceNode = __webpack_require__(680).SourceNode; * http://opensource.org/licenses/BSD-3-Clause */ -var base64VLQ = __webpack_require__(672); -var util = __webpack_require__(674); -var ArraySet = __webpack_require__(675).ArraySet; -var MappingList = __webpack_require__(676).MappingList; +var base64VLQ = __webpack_require__(680); +var util = __webpack_require__(682); +var ArraySet = __webpack_require__(683).ArraySet; +var MappingList = __webpack_require__(684).MappingList; /** * An instance of the SourceMapGenerator represents a source map which is @@ -76004,7 +76638,7 @@ exports.SourceMapGenerator = SourceMapGenerator; /***/ }), -/* 672 */ +/* 680 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76044,7 +76678,7 @@ exports.SourceMapGenerator = SourceMapGenerator; * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -var base64 = __webpack_require__(673); +var base64 = __webpack_require__(681); // A single base 64 digit can contain 6 bits of data. For the base 64 variable // length quantities we use in the source map spec, the first bit is the sign, @@ -76150,7 +76784,7 @@ exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { /***/ }), -/* 673 */ +/* 681 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76223,7 +76857,7 @@ exports.decode = function (charCode) { /***/ }), -/* 674 */ +/* 682 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76646,7 +77280,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate /***/ }), -/* 675 */ +/* 683 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76656,7 +77290,7 @@ exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflate * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(674); +var util = __webpack_require__(682); var has = Object.prototype.hasOwnProperty; var hasNativeMap = typeof Map !== "undefined"; @@ -76773,7 +77407,7 @@ exports.ArraySet = ArraySet; /***/ }), -/* 676 */ +/* 684 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76783,7 +77417,7 @@ exports.ArraySet = ArraySet; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(674); +var util = __webpack_require__(682); /** * Determine whether mappingB is after mappingA with respect to generated @@ -76858,7 +77492,7 @@ exports.MappingList = MappingList; /***/ }), -/* 677 */ +/* 685 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -76868,11 +77502,11 @@ exports.MappingList = MappingList; * http://opensource.org/licenses/BSD-3-Clause */ -var util = __webpack_require__(674); -var binarySearch = __webpack_require__(678); -var ArraySet = __webpack_require__(675).ArraySet; -var base64VLQ = __webpack_require__(672); -var quickSort = __webpack_require__(679).quickSort; +var util = __webpack_require__(682); +var binarySearch = __webpack_require__(686); +var ArraySet = __webpack_require__(683).ArraySet; +var base64VLQ = __webpack_require__(680); +var quickSort = __webpack_require__(687).quickSort; function SourceMapConsumer(aSourceMap) { var sourceMap = aSourceMap; @@ -77946,7 +78580,7 @@ exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; /***/ }), -/* 678 */ +/* 686 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -78063,7 +78697,7 @@ exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { /***/ }), -/* 679 */ +/* 687 */ /***/ (function(module, exports) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -78183,7 +78817,7 @@ exports.quickSort = function (ary, comparator) { /***/ }), -/* 680 */ +/* 688 */ /***/ (function(module, exports, __webpack_require__) { /* -*- Mode: js; js-indent-level: 2; -*- */ @@ -78193,8 +78827,8 @@ exports.quickSort = function (ary, comparator) { * http://opensource.org/licenses/BSD-3-Clause */ -var SourceMapGenerator = __webpack_require__(671).SourceMapGenerator; -var util = __webpack_require__(674); +var SourceMapGenerator = __webpack_require__(679).SourceMapGenerator; +var util = __webpack_require__(682); // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other // operating systems these days (capturing the result). @@ -78602,17 +79236,17 @@ exports.SourceNode = SourceNode; /***/ }), -/* 681 */ +/* 689 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014, 2015, 2016, 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var sourceMappingURL = __webpack_require__(682) -var resolveUrl = __webpack_require__(683) -var decodeUriComponent = __webpack_require__(684) -var urix = __webpack_require__(686) -var atob = __webpack_require__(687) +var sourceMappingURL = __webpack_require__(690) +var resolveUrl = __webpack_require__(691) +var decodeUriComponent = __webpack_require__(692) +var urix = __webpack_require__(694) +var atob = __webpack_require__(695) @@ -78910,7 +79544,7 @@ module.exports = { /***/ }), -/* 682 */ +/* 690 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;// Copyright 2014 Simon Lydell @@ -78973,7 +79607,7 @@ void (function(root, factory) { /***/ }), -/* 683 */ +/* 691 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -78991,13 +79625,13 @@ module.exports = resolveUrl /***/ }), -/* 684 */ +/* 692 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2017 Simon Lydell // X11 (“MIT”) Licensed. (See LICENSE.) -var decodeUriComponent = __webpack_require__(685) +var decodeUriComponent = __webpack_require__(693) function customDecodeUriComponent(string) { // `decodeUriComponent` turns `+` into ` `, but that's not wanted. @@ -79008,7 +79642,7 @@ module.exports = customDecodeUriComponent /***/ }), -/* 685 */ +/* 693 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79109,7 +79743,7 @@ module.exports = function (encodedURI) { /***/ }), -/* 686 */ +/* 694 */ /***/ (function(module, exports, __webpack_require__) { // Copyright 2014 Simon Lydell @@ -79132,7 +79766,7 @@ module.exports = urix /***/ }), -/* 687 */ +/* 695 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79146,7 +79780,7 @@ module.exports = atob.atob = atob; /***/ }), -/* 688 */ +/* 696 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79154,8 +79788,8 @@ module.exports = atob.atob = atob; var fs = __webpack_require__(132); var path = __webpack_require__(4); -var define = __webpack_require__(655); -var utils = __webpack_require__(669); +var define = __webpack_require__(663); +var utils = __webpack_require__(677); /** * Expose `mixin()`. @@ -79298,19 +79932,19 @@ exports.comment = function(node) { /***/ }), -/* 689 */ +/* 697 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var use = __webpack_require__(667); +var use = __webpack_require__(675); var util = __webpack_require__(113); -var Cache = __webpack_require__(690); -var define = __webpack_require__(655); +var Cache = __webpack_require__(698); +var define = __webpack_require__(663); var debug = __webpack_require__(205)('snapdragon:parser'); -var Position = __webpack_require__(691); -var utils = __webpack_require__(669); +var Position = __webpack_require__(699); +var utils = __webpack_require__(677); /** * Create a new `Parser` with the given `input` and `options`. @@ -79838,7 +80472,7 @@ module.exports = Parser; /***/ }), -/* 690 */ +/* 698 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -79945,13 +80579,13 @@ MapCache.prototype.del = function mapDelete(key) { /***/ }), -/* 691 */ +/* 699 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var define = __webpack_require__(655); +var define = __webpack_require__(663); /** * Store position for a node @@ -79966,14 +80600,14 @@ module.exports = function Position(start, parser) { /***/ }), -/* 692 */ +/* 700 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(693); -var assignSymbols = __webpack_require__(596); +var isExtendable = __webpack_require__(701); +var assignSymbols = __webpack_require__(604); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -80033,7 +80667,7 @@ function isEnum(obj, key) { /***/ }), -/* 693 */ +/* 701 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80046,7 +80680,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -80054,14 +80688,14 @@ module.exports = function isExtendable(val) { /***/ }), -/* 694 */ +/* 702 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var nanomatch = __webpack_require__(695); -var extglob = __webpack_require__(709); +var nanomatch = __webpack_require__(703); +var extglob = __webpack_require__(717); module.exports = function(snapdragon) { var compilers = snapdragon.compiler.compilers; @@ -80138,7 +80772,7 @@ function escapeExtglobs(compiler) { /***/ }), -/* 695 */ +/* 703 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -80149,17 +80783,17 @@ function escapeExtglobs(compiler) { */ var util = __webpack_require__(113); -var toRegex = __webpack_require__(580); -var extend = __webpack_require__(696); +var toRegex = __webpack_require__(588); +var extend = __webpack_require__(704); /** * Local dependencies */ -var compilers = __webpack_require__(698); -var parsers = __webpack_require__(699); -var cache = __webpack_require__(702); -var utils = __webpack_require__(704); +var compilers = __webpack_require__(706); +var parsers = __webpack_require__(707); +var cache = __webpack_require__(710); +var utils = __webpack_require__(712); var MAX_LENGTH = 1024 * 64; /** @@ -80983,14 +81617,14 @@ module.exports = nanomatch; /***/ }), -/* 696 */ +/* 704 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isExtendable = __webpack_require__(697); -var assignSymbols = __webpack_require__(596); +var isExtendable = __webpack_require__(705); +var assignSymbols = __webpack_require__(604); module.exports = Object.assign || function(obj/*, objects*/) { if (obj === null || typeof obj === 'undefined') { @@ -81050,7 +81684,7 @@ function isEnum(obj, key) { /***/ }), -/* 697 */ +/* 705 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81063,7 +81697,7 @@ function isEnum(obj, key) { -var isPlainObject = __webpack_require__(595); +var isPlainObject = __webpack_require__(603); module.exports = function isExtendable(val) { return isPlainObject(val) || typeof val === 'function' || Array.isArray(val); @@ -81071,7 +81705,7 @@ module.exports = function isExtendable(val) { /***/ }), -/* 698 */ +/* 706 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81417,15 +82051,15 @@ module.exports = function(nanomatch, options) { /***/ }), -/* 699 */ +/* 707 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regexNot = __webpack_require__(597); -var toRegex = __webpack_require__(580); -var isOdd = __webpack_require__(700); +var regexNot = __webpack_require__(605); +var toRegex = __webpack_require__(588); +var isOdd = __webpack_require__(708); /** * Characters to use in negation regex (we want to "not" match @@ -81811,7 +82445,7 @@ module.exports.not = NOT_REGEX; /***/ }), -/* 700 */ +/* 708 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81824,7 +82458,7 @@ module.exports.not = NOT_REGEX; -var isNumber = __webpack_require__(701); +var isNumber = __webpack_require__(709); module.exports = function isOdd(i) { if (!isNumber(i)) { @@ -81838,7 +82472,7 @@ module.exports = function isOdd(i) { /***/ }), -/* 701 */ +/* 709 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81866,14 +82500,14 @@ module.exports = function isNumber(num) { /***/ }), -/* 702 */ +/* 710 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(703))(); +module.exports = new (__webpack_require__(711))(); /***/ }), -/* 703 */ +/* 711 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -81886,7 +82520,7 @@ module.exports = new (__webpack_require__(703))(); -var MapCache = __webpack_require__(690); +var MapCache = __webpack_require__(698); /** * Create a new `FragmentCache` with an optional object to use for `caches`. @@ -82008,7 +82642,7 @@ exports = module.exports = FragmentCache; /***/ }), -/* 704 */ +/* 712 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82021,14 +82655,14 @@ var path = __webpack_require__(4); * Module dependencies */ -var isWindows = __webpack_require__(705)(); -var Snapdragon = __webpack_require__(624); -utils.define = __webpack_require__(706); -utils.diff = __webpack_require__(707); -utils.extend = __webpack_require__(696); -utils.pick = __webpack_require__(708); -utils.typeOf = __webpack_require__(590); -utils.unique = __webpack_require__(600); +var isWindows = __webpack_require__(713)(); +var Snapdragon = __webpack_require__(632); +utils.define = __webpack_require__(714); +utils.diff = __webpack_require__(715); +utils.extend = __webpack_require__(704); +utils.pick = __webpack_require__(716); +utils.typeOf = __webpack_require__(598); +utils.unique = __webpack_require__(608); /** * Returns true if the given value is effectively an empty string @@ -82394,7 +83028,7 @@ utils.unixify = function(options) { /***/ }), -/* 705 */ +/* 713 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -82422,7 +83056,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 706 */ +/* 714 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82435,8 +83069,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ -var isobject = __webpack_require__(588); -var isDescriptor = __webpack_require__(589); +var isobject = __webpack_require__(596); +var isDescriptor = __webpack_require__(597); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -82467,7 +83101,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 707 */ +/* 715 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82521,7 +83155,7 @@ function diffArray(one, two) { /***/ }), -/* 708 */ +/* 716 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82534,7 +83168,7 @@ function diffArray(one, two) { -var isObject = __webpack_require__(588); +var isObject = __webpack_require__(596); module.exports = function pick(obj, keys) { if (!isObject(obj) && typeof obj !== 'function') { @@ -82563,7 +83197,7 @@ module.exports = function pick(obj, keys) { /***/ }), -/* 709 */ +/* 717 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -82573,18 +83207,18 @@ module.exports = function pick(obj, keys) { * Module dependencies */ -var extend = __webpack_require__(639); -var unique = __webpack_require__(600); -var toRegex = __webpack_require__(580); +var extend = __webpack_require__(647); +var unique = __webpack_require__(608); +var toRegex = __webpack_require__(588); /** * Local dependencies */ -var compilers = __webpack_require__(710); -var parsers = __webpack_require__(716); -var Extglob = __webpack_require__(719); -var utils = __webpack_require__(718); +var compilers = __webpack_require__(718); +var parsers = __webpack_require__(724); +var Extglob = __webpack_require__(727); +var utils = __webpack_require__(726); var MAX_LENGTH = 1024 * 64; /** @@ -82901,13 +83535,13 @@ module.exports = extglob; /***/ }), -/* 710 */ +/* 718 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(711); +var brackets = __webpack_require__(719); /** * Extglob compilers @@ -83077,7 +83711,7 @@ module.exports = function(extglob) { /***/ }), -/* 711 */ +/* 719 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83087,17 +83721,17 @@ module.exports = function(extglob) { * Local dependencies */ -var compilers = __webpack_require__(712); -var parsers = __webpack_require__(714); +var compilers = __webpack_require__(720); +var parsers = __webpack_require__(722); /** * Module dependencies */ var debug = __webpack_require__(205)('expand-brackets'); -var extend = __webpack_require__(639); -var Snapdragon = __webpack_require__(624); -var toRegex = __webpack_require__(580); +var extend = __webpack_require__(647); +var Snapdragon = __webpack_require__(632); +var toRegex = __webpack_require__(588); /** * Parses the given POSIX character class `pattern` and returns a @@ -83295,13 +83929,13 @@ module.exports = brackets; /***/ }), -/* 712 */ +/* 720 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var posix = __webpack_require__(713); +var posix = __webpack_require__(721); module.exports = function(brackets) { brackets.compiler @@ -83389,7 +84023,7 @@ module.exports = function(brackets) { /***/ }), -/* 713 */ +/* 721 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83418,14 +84052,14 @@ module.exports = { /***/ }), -/* 714 */ +/* 722 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var utils = __webpack_require__(715); -var define = __webpack_require__(655); +var utils = __webpack_require__(723); +var define = __webpack_require__(663); /** * Text regex @@ -83644,14 +84278,14 @@ module.exports.TEXT_REGEX = TEXT_REGEX; /***/ }), -/* 715 */ +/* 723 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var toRegex = __webpack_require__(580); -var regexNot = __webpack_require__(597); +var toRegex = __webpack_require__(588); +var regexNot = __webpack_require__(605); var cached; /** @@ -83685,15 +84319,15 @@ exports.createRegex = function(pattern, include) { /***/ }), -/* 716 */ +/* 724 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var brackets = __webpack_require__(711); -var define = __webpack_require__(717); -var utils = __webpack_require__(718); +var brackets = __webpack_require__(719); +var define = __webpack_require__(725); +var utils = __webpack_require__(726); /** * Characters to use in text regex (we want to "not" match @@ -83848,7 +84482,7 @@ module.exports = parsers; /***/ }), -/* 717 */ +/* 725 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83861,7 +84495,7 @@ module.exports = parsers; -var isDescriptor = __webpack_require__(589); +var isDescriptor = __webpack_require__(597); module.exports = function defineProperty(obj, prop, val) { if (typeof obj !== 'object' && typeof obj !== 'function') { @@ -83886,14 +84520,14 @@ module.exports = function defineProperty(obj, prop, val) { /***/ }), -/* 718 */ +/* 726 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var regex = __webpack_require__(597); -var Cache = __webpack_require__(703); +var regex = __webpack_require__(605); +var Cache = __webpack_require__(711); /** * Utils @@ -83962,7 +84596,7 @@ utils.createRegex = function(str) { /***/ }), -/* 719 */ +/* 727 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -83972,16 +84606,16 @@ utils.createRegex = function(str) { * Module dependencies */ -var Snapdragon = __webpack_require__(624); -var define = __webpack_require__(717); -var extend = __webpack_require__(639); +var Snapdragon = __webpack_require__(632); +var define = __webpack_require__(725); +var extend = __webpack_require__(647); /** * Local dependencies */ -var compilers = __webpack_require__(710); -var parsers = __webpack_require__(716); +var compilers = __webpack_require__(718); +var parsers = __webpack_require__(724); /** * Customize Snapdragon parser and renderer @@ -84047,16 +84681,16 @@ module.exports = Extglob; /***/ }), -/* 720 */ +/* 728 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var extglob = __webpack_require__(709); -var nanomatch = __webpack_require__(695); -var regexNot = __webpack_require__(597); -var toRegex = __webpack_require__(580); +var extglob = __webpack_require__(717); +var nanomatch = __webpack_require__(703); +var regexNot = __webpack_require__(605); +var toRegex = __webpack_require__(588); var not; /** @@ -84137,14 +84771,14 @@ function textRegex(pattern) { /***/ }), -/* 721 */ +/* 729 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = new (__webpack_require__(703))(); +module.exports = new (__webpack_require__(711))(); /***/ }), -/* 722 */ +/* 730 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84157,13 +84791,13 @@ var path = __webpack_require__(4); * Module dependencies */ -var Snapdragon = __webpack_require__(624); -utils.define = __webpack_require__(723); -utils.diff = __webpack_require__(707); -utils.extend = __webpack_require__(692); -utils.pick = __webpack_require__(708); -utils.typeOf = __webpack_require__(590); -utils.unique = __webpack_require__(600); +var Snapdragon = __webpack_require__(632); +utils.define = __webpack_require__(731); +utils.diff = __webpack_require__(715); +utils.extend = __webpack_require__(700); +utils.pick = __webpack_require__(716); +utils.typeOf = __webpack_require__(598); +utils.unique = __webpack_require__(608); /** * Returns true if the platform is windows, or `path.sep` is `\\`. @@ -84460,7 +85094,7 @@ utils.unixify = function(options) { /***/ }), -/* 723 */ +/* 731 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84473,8 +85107,8 @@ utils.unixify = function(options) { -var isobject = __webpack_require__(588); -var isDescriptor = __webpack_require__(589); +var isobject = __webpack_require__(596); +var isDescriptor = __webpack_require__(597); var define = (typeof Reflect !== 'undefined' && Reflect.defineProperty) ? Reflect.defineProperty : Object.defineProperty; @@ -84505,7 +85139,7 @@ module.exports = function defineProperty(obj, key, val) { /***/ }), -/* 724 */ +/* 732 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84524,9 +85158,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(725); -var reader_1 = __webpack_require__(738); -var fs_stream_1 = __webpack_require__(742); +var readdir = __webpack_require__(733); +var reader_1 = __webpack_require__(746); +var fs_stream_1 = __webpack_require__(750); var ReaderAsync = /** @class */ (function (_super) { __extends(ReaderAsync, _super); function ReaderAsync() { @@ -84587,15 +85221,15 @@ exports.default = ReaderAsync; /***/ }), -/* 725 */ +/* 733 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const readdirSync = __webpack_require__(726); -const readdirAsync = __webpack_require__(734); -const readdirStream = __webpack_require__(737); +const readdirSync = __webpack_require__(734); +const readdirAsync = __webpack_require__(742); +const readdirStream = __webpack_require__(745); module.exports = exports = readdirAsyncPath; exports.readdir = exports.readdirAsync = exports.async = readdirAsyncPath; @@ -84679,7 +85313,7 @@ function readdirStreamStat (dir, options) { /***/ }), -/* 726 */ +/* 734 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84687,11 +85321,11 @@ function readdirStreamStat (dir, options) { module.exports = readdirSync; -const DirectoryReader = __webpack_require__(727); +const DirectoryReader = __webpack_require__(735); let syncFacade = { - fs: __webpack_require__(732), - forEach: __webpack_require__(733), + fs: __webpack_require__(740), + forEach: __webpack_require__(741), sync: true }; @@ -84720,7 +85354,7 @@ function readdirSync (dir, options, internalOptions) { /***/ }), -/* 727 */ +/* 735 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -84729,9 +85363,9 @@ function readdirSync (dir, options, internalOptions) { const Readable = __webpack_require__(173).Readable; const EventEmitter = __webpack_require__(164).EventEmitter; const path = __webpack_require__(4); -const normalizeOptions = __webpack_require__(728); -const stat = __webpack_require__(730); -const call = __webpack_require__(731); +const normalizeOptions = __webpack_require__(736); +const stat = __webpack_require__(738); +const call = __webpack_require__(739); /** * Asynchronously reads the contents of a directory and streams the results @@ -85107,14 +85741,14 @@ module.exports = DirectoryReader; /***/ }), -/* 728 */ +/* 736 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const globToRegExp = __webpack_require__(729); +const globToRegExp = __webpack_require__(737); module.exports = normalizeOptions; @@ -85291,7 +85925,7 @@ function normalizeOptions (options, internalOptions) { /***/ }), -/* 729 */ +/* 737 */ /***/ (function(module, exports) { module.exports = function (glob, opts) { @@ -85428,13 +86062,13 @@ module.exports = function (glob, opts) { /***/ }), -/* 730 */ +/* 738 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const call = __webpack_require__(731); +const call = __webpack_require__(739); module.exports = stat; @@ -85509,7 +86143,7 @@ function symlinkStat (fs, path, lstats, callback) { /***/ }), -/* 731 */ +/* 739 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85570,14 +86204,14 @@ function callOnce (fn) { /***/ }), -/* 732 */ +/* 740 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(132); -const call = __webpack_require__(731); +const call = __webpack_require__(739); /** * A facade around {@link fs.readdirSync} that allows it to be called @@ -85641,7 +86275,7 @@ exports.lstat = function (path, callback) { /***/ }), -/* 733 */ +/* 741 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85670,7 +86304,7 @@ function syncForEach (array, iterator, done) { /***/ }), -/* 734 */ +/* 742 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85678,12 +86312,12 @@ function syncForEach (array, iterator, done) { module.exports = readdirAsync; -const maybe = __webpack_require__(735); -const DirectoryReader = __webpack_require__(727); +const maybe = __webpack_require__(743); +const DirectoryReader = __webpack_require__(735); let asyncFacade = { fs: __webpack_require__(132), - forEach: __webpack_require__(736), + forEach: __webpack_require__(744), async: true }; @@ -85725,7 +86359,7 @@ function readdirAsync (dir, options, callback, internalOptions) { /***/ }), -/* 735 */ +/* 743 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85752,7 +86386,7 @@ module.exports = function maybe (cb, promise) { /***/ }), -/* 736 */ +/* 744 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85788,7 +86422,7 @@ function asyncForEach (array, iterator, done) { /***/ }), -/* 737 */ +/* 745 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -85796,11 +86430,11 @@ function asyncForEach (array, iterator, done) { module.exports = readdirStream; -const DirectoryReader = __webpack_require__(727); +const DirectoryReader = __webpack_require__(735); let streamFacade = { fs: __webpack_require__(132), - forEach: __webpack_require__(736), + forEach: __webpack_require__(744), async: true }; @@ -85820,16 +86454,16 @@ function readdirStream (dir, options, internalOptions) { /***/ }), -/* 738 */ +/* 746 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var path = __webpack_require__(4); -var deep_1 = __webpack_require__(739); -var entry_1 = __webpack_require__(741); -var pathUtil = __webpack_require__(740); +var deep_1 = __webpack_require__(747); +var entry_1 = __webpack_require__(749); +var pathUtil = __webpack_require__(748); var Reader = /** @class */ (function () { function Reader(options) { this.options = options; @@ -85895,14 +86529,14 @@ exports.default = Reader; /***/ }), -/* 739 */ +/* 747 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(740); -var patternUtils = __webpack_require__(574); +var pathUtils = __webpack_require__(748); +var patternUtils = __webpack_require__(582); var DeepFilter = /** @class */ (function () { function DeepFilter(options, micromatchOptions) { this.options = options; @@ -85985,7 +86619,7 @@ exports.default = DeepFilter; /***/ }), -/* 740 */ +/* 748 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86016,14 +86650,14 @@ exports.makeAbsolute = makeAbsolute; /***/ }), -/* 741 */ +/* 749 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var pathUtils = __webpack_require__(740); -var patternUtils = __webpack_require__(574); +var pathUtils = __webpack_require__(748); +var patternUtils = __webpack_require__(582); var EntryFilter = /** @class */ (function () { function EntryFilter(options, micromatchOptions) { this.options = options; @@ -86108,7 +86742,7 @@ exports.default = EntryFilter; /***/ }), -/* 742 */ +/* 750 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86128,8 +86762,8 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(173); -var fsStat = __webpack_require__(743); -var fs_1 = __webpack_require__(747); +var fsStat = __webpack_require__(751); +var fs_1 = __webpack_require__(755); var FileSystemStream = /** @class */ (function (_super) { __extends(FileSystemStream, _super); function FileSystemStream() { @@ -86179,14 +86813,14 @@ exports.default = FileSystemStream; /***/ }), -/* 743 */ +/* 751 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const optionsManager = __webpack_require__(744); -const statProvider = __webpack_require__(746); +const optionsManager = __webpack_require__(752); +const statProvider = __webpack_require__(754); /** * Asynchronous API. */ @@ -86217,13 +86851,13 @@ exports.statSync = statSync; /***/ }), -/* 744 */ +/* 752 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const fsAdapter = __webpack_require__(745); +const fsAdapter = __webpack_require__(753); function prepare(opts) { const options = Object.assign({ fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined), @@ -86236,7 +86870,7 @@ exports.prepare = prepare; /***/ }), -/* 745 */ +/* 753 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86259,7 +86893,7 @@ exports.getFileSystemAdapter = getFileSystemAdapter; /***/ }), -/* 746 */ +/* 754 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86311,7 +86945,7 @@ exports.isFollowedSymlink = isFollowedSymlink; /***/ }), -/* 747 */ +/* 755 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86342,7 +86976,7 @@ exports.default = FileSystem; /***/ }), -/* 748 */ +/* 756 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86362,9 +86996,9 @@ var __extends = (this && this.__extends) || (function () { })(); Object.defineProperty(exports, "__esModule", { value: true }); var stream = __webpack_require__(173); -var readdir = __webpack_require__(725); -var reader_1 = __webpack_require__(738); -var fs_stream_1 = __webpack_require__(742); +var readdir = __webpack_require__(733); +var reader_1 = __webpack_require__(746); +var fs_stream_1 = __webpack_require__(750); var TransformStream = /** @class */ (function (_super) { __extends(TransformStream, _super); function TransformStream(reader) { @@ -86432,7 +87066,7 @@ exports.default = ReaderStream; /***/ }), -/* 749 */ +/* 757 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86451,9 +87085,9 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var readdir = __webpack_require__(725); -var reader_1 = __webpack_require__(738); -var fs_sync_1 = __webpack_require__(750); +var readdir = __webpack_require__(733); +var reader_1 = __webpack_require__(746); +var fs_sync_1 = __webpack_require__(758); var ReaderSync = /** @class */ (function (_super) { __extends(ReaderSync, _super); function ReaderSync() { @@ -86513,7 +87147,7 @@ exports.default = ReaderSync; /***/ }), -/* 750 */ +/* 758 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86532,8 +87166,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); Object.defineProperty(exports, "__esModule", { value: true }); -var fsStat = __webpack_require__(743); -var fs_1 = __webpack_require__(747); +var fsStat = __webpack_require__(751); +var fs_1 = __webpack_require__(755); var FileSystemSync = /** @class */ (function (_super) { __extends(FileSystemSync, _super); function FileSystemSync() { @@ -86579,7 +87213,7 @@ exports.default = FileSystemSync; /***/ }), -/* 751 */ +/* 759 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86595,7 +87229,7 @@ exports.flatten = flatten; /***/ }), -/* 752 */ +/* 760 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86616,13 +87250,13 @@ exports.merge = merge; /***/ }), -/* 753 */ +/* 761 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const pathType = __webpack_require__(754); +const pathType = __webpack_require__(762); const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; @@ -86688,13 +87322,13 @@ module.exports.sync = (input, opts) => { /***/ }), -/* 754 */ +/* 762 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(132); -const pify = __webpack_require__(755); +const pify = __webpack_require__(763); function type(fn, fn2, fp) { if (typeof fp !== 'string') { @@ -86737,7 +87371,7 @@ exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink'); /***/ }), -/* 755 */ +/* 763 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -86828,17 +87462,17 @@ module.exports = (obj, opts) => { /***/ }), -/* 756 */ +/* 764 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const fs = __webpack_require__(132); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(570); -const gitIgnore = __webpack_require__(757); +const fastGlob = __webpack_require__(578); +const gitIgnore = __webpack_require__(765); const pify = __webpack_require__(410); -const slash = __webpack_require__(758); +const slash = __webpack_require__(766); const DEFAULT_IGNORE = [ '**/node_modules/**', @@ -86936,7 +87570,7 @@ module.exports.sync = options => { /***/ }), -/* 757 */ +/* 765 */ /***/ (function(module, exports) { // A simple implementation of make-array @@ -87405,7 +88039,7 @@ module.exports = options => new IgnoreBase(options) /***/ }), -/* 758 */ +/* 766 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87423,7 +88057,7 @@ module.exports = input => { /***/ }), -/* 759 */ +/* 767 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87436,7 +88070,7 @@ module.exports = input => { -var isGlob = __webpack_require__(760); +var isGlob = __webpack_require__(768); module.exports = function hasGlob(val) { if (val == null) return false; @@ -87456,7 +88090,7 @@ module.exports = function hasGlob(val) { /***/ }), -/* 760 */ +/* 768 */ /***/ (function(module, exports, __webpack_require__) { /*! @@ -87487,17 +88121,17 @@ module.exports = function isGlob(str) { /***/ }), -/* 761 */ +/* 769 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); const {constants: fsConstants} = __webpack_require__(132); -const pEvent = __webpack_require__(762); -const CpFileError = __webpack_require__(765); -const fs = __webpack_require__(767); -const ProgressEmitter = __webpack_require__(770); +const pEvent = __webpack_require__(770); +const CpFileError = __webpack_require__(773); +const fs = __webpack_require__(775); +const ProgressEmitter = __webpack_require__(778); const cpFileAsync = async (source, destination, options, progressEmitter) => { let readError; @@ -87611,12 +88245,12 @@ module.exports.sync = (source, destination, options) => { /***/ }), -/* 762 */ +/* 770 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pTimeout = __webpack_require__(763); +const pTimeout = __webpack_require__(771); const symbolAsyncIterator = Symbol.asyncIterator || '@@asyncIterator'; @@ -87907,12 +88541,12 @@ module.exports.iterator = (emitter, event, options) => { /***/ }), -/* 763 */ +/* 771 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pFinally = __webpack_require__(764); +const pFinally = __webpack_require__(772); class TimeoutError extends Error { constructor(message) { @@ -87958,7 +88592,7 @@ module.exports.TimeoutError = TimeoutError; /***/ }), -/* 764 */ +/* 772 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87980,12 +88614,12 @@ module.exports = (promise, onFinally) => { /***/ }), -/* 765 */ +/* 773 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(766); +const NestedError = __webpack_require__(774); class CpFileError extends NestedError { constructor(message, nested) { @@ -87999,7 +88633,7 @@ module.exports = CpFileError; /***/ }), -/* 766 */ +/* 774 */ /***/ (function(module, exports, __webpack_require__) { var inherits = __webpack_require__(113).inherits; @@ -88055,16 +88689,16 @@ module.exports = NestedError; /***/ }), -/* 767 */ +/* 775 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const {promisify} = __webpack_require__(113); const fs = __webpack_require__(233); -const makeDir = __webpack_require__(768); -const pEvent = __webpack_require__(762); -const CpFileError = __webpack_require__(765); +const makeDir = __webpack_require__(776); +const pEvent = __webpack_require__(770); +const CpFileError = __webpack_require__(773); const stat = promisify(fs.stat); const lstat = promisify(fs.lstat); @@ -88161,7 +88795,7 @@ exports.copyFileSync = (source, destination, flags) => { /***/ }), -/* 768 */ +/* 776 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -88169,7 +88803,7 @@ exports.copyFileSync = (source, destination, flags) => { const fs = __webpack_require__(132); const path = __webpack_require__(4); const {promisify} = __webpack_require__(113); -const semver = __webpack_require__(769); +const semver = __webpack_require__(777); const useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0'); @@ -88324,7 +88958,7 @@ module.exports.sync = (input, options) => { /***/ }), -/* 769 */ +/* 777 */ /***/ (function(module, exports) { exports = module.exports = SemVer @@ -89926,7 +90560,7 @@ function coerce (version, options) { /***/ }), -/* 770 */ +/* 778 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -89967,7 +90601,7 @@ module.exports = ProgressEmitter; /***/ }), -/* 771 */ +/* 779 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90013,12 +90647,12 @@ exports.default = module.exports; /***/ }), -/* 772 */ +/* 780 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const pMap = __webpack_require__(773); +const pMap = __webpack_require__(781); const pFilter = async (iterable, filterer, options) => { const values = await pMap( @@ -90035,7 +90669,7 @@ module.exports.default = pFilter; /***/ }), -/* 773 */ +/* 781 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90114,12 +90748,12 @@ module.exports.default = pMap; /***/ }), -/* 774 */ +/* 782 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const NestedError = __webpack_require__(766); +const NestedError = __webpack_require__(774); class CpyError extends NestedError { constructor(message, nested) { @@ -90133,7 +90767,7 @@ module.exports = CpyError; /***/ }), -/* 775 */ +/* 783 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90141,10 +90775,10 @@ module.exports = CpyError; const fs = __webpack_require__(132); const arrayUnion = __webpack_require__(242); const merge2 = __webpack_require__(243); -const fastGlob = __webpack_require__(776); +const fastGlob = __webpack_require__(784); const dirGlob = __webpack_require__(332); -const gitignore = __webpack_require__(807); -const {FilterStream, UniqueStream} = __webpack_require__(808); +const gitignore = __webpack_require__(815); +const {FilterStream, UniqueStream} = __webpack_require__(816); const DEFAULT_FILTER = () => false; @@ -90321,17 +90955,17 @@ module.exports.gitignore = gitignore; /***/ }), -/* 776 */ +/* 784 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const taskManager = __webpack_require__(777); -const async_1 = __webpack_require__(793); -const stream_1 = __webpack_require__(803); -const sync_1 = __webpack_require__(804); -const settings_1 = __webpack_require__(806); -const utils = __webpack_require__(778); +const taskManager = __webpack_require__(785); +const async_1 = __webpack_require__(801); +const stream_1 = __webpack_require__(811); +const sync_1 = __webpack_require__(812); +const settings_1 = __webpack_require__(814); +const utils = __webpack_require__(786); async function FastGlob(source, options) { assertPatternsInput(source); const works = getWorks(source, async_1.default, options); @@ -90395,14 +91029,14 @@ module.exports = FastGlob; /***/ }), -/* 777 */ +/* 785 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); function generate(patterns, settings) { const positivePatterns = getPositivePatterns(patterns); const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); @@ -90467,31 +91101,31 @@ exports.convertPatternGroupToTask = convertPatternGroupToTask; /***/ }), -/* 778 */ +/* 786 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; -const array = __webpack_require__(779); +const array = __webpack_require__(787); exports.array = array; -const errno = __webpack_require__(780); +const errno = __webpack_require__(788); exports.errno = errno; -const fs = __webpack_require__(781); +const fs = __webpack_require__(789); exports.fs = fs; -const path = __webpack_require__(782); +const path = __webpack_require__(790); exports.path = path; -const pattern = __webpack_require__(783); +const pattern = __webpack_require__(791); exports.pattern = pattern; -const stream = __webpack_require__(791); +const stream = __webpack_require__(799); exports.stream = stream; -const string = __webpack_require__(792); +const string = __webpack_require__(800); exports.string = string; /***/ }), -/* 779 */ +/* 787 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90520,7 +91154,7 @@ exports.splitWhen = splitWhen; /***/ }), -/* 780 */ +/* 788 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90534,7 +91168,7 @@ exports.isEnoentCodeError = isEnoentCodeError; /***/ }), -/* 781 */ +/* 789 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90560,7 +91194,7 @@ exports.createDirentFromStats = createDirentFromStats; /***/ }), -/* 782 */ +/* 790 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90600,7 +91234,7 @@ exports.removeLeadingDotSegment = removeLeadingDotSegment; /***/ }), -/* 783 */ +/* 791 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90609,7 +91243,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; const path = __webpack_require__(4); const globParent = __webpack_require__(265); -const micromatch = __webpack_require__(784); +const micromatch = __webpack_require__(792); const picomatch = __webpack_require__(285); const GLOBSTAR = '**'; const ESCAPE_SYMBOL = '\\'; @@ -90739,7 +91373,7 @@ exports.matchAny = matchAny; /***/ }), -/* 784 */ +/* 792 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -90747,8 +91381,8 @@ exports.matchAny = matchAny; const util = __webpack_require__(113); const braces = __webpack_require__(269); -const picomatch = __webpack_require__(785); -const utils = __webpack_require__(788); +const picomatch = __webpack_require__(793); +const utils = __webpack_require__(796); const isEmptyString = val => val === '' || val === './'; /** @@ -91213,27 +91847,27 @@ module.exports = micromatch; /***/ }), -/* 785 */ +/* 793 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = __webpack_require__(786); +module.exports = __webpack_require__(794); /***/ }), -/* 786 */ +/* 794 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(4); -const scan = __webpack_require__(787); -const parse = __webpack_require__(790); -const utils = __webpack_require__(788); -const constants = __webpack_require__(789); +const scan = __webpack_require__(795); +const parse = __webpack_require__(798); +const utils = __webpack_require__(796); +const constants = __webpack_require__(797); const isObject = val => val && typeof val === 'object' && !Array.isArray(val); /** @@ -91572,13 +92206,13 @@ module.exports = picomatch; /***/ }), -/* 787 */ +/* 795 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const utils = __webpack_require__(788); +const utils = __webpack_require__(796); const { CHAR_ASTERISK, /* * */ CHAR_AT, /* @ */ @@ -91595,7 +92229,7 @@ const { CHAR_RIGHT_CURLY_BRACE, /* } */ CHAR_RIGHT_PARENTHESES, /* ) */ CHAR_RIGHT_SQUARE_BRACKET /* ] */ -} = __webpack_require__(789); +} = __webpack_require__(797); const isPathSeparator = code => { return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; @@ -91970,7 +92604,7 @@ module.exports = scan; /***/ }), -/* 788 */ +/* 796 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -91983,7 +92617,7 @@ const { REGEX_REMOVE_BACKSLASH, REGEX_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_GLOBAL -} = __webpack_require__(789); +} = __webpack_require__(797); exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); @@ -92041,7 +92675,7 @@ exports.wrapOutput = (input, state = {}, options = {}) => { /***/ }), -/* 789 */ +/* 797 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92227,14 +92861,14 @@ module.exports = { /***/ }), -/* 790 */ +/* 798 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const constants = __webpack_require__(789); -const utils = __webpack_require__(788); +const constants = __webpack_require__(797); +const utils = __webpack_require__(796); /** * Constants @@ -93318,7 +93952,7 @@ module.exports = parse; /***/ }), -/* 791 */ +/* 799 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93342,7 +93976,7 @@ function propagateCloseEventToSources(streams) { /***/ }), -/* 792 */ +/* 800 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93360,14 +93994,14 @@ exports.isEmpty = isEmpty; /***/ }), -/* 793 */ +/* 801 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const stream_1 = __webpack_require__(794); -const provider_1 = __webpack_require__(796); +const stream_1 = __webpack_require__(802); +const provider_1 = __webpack_require__(804); class ProviderAsync extends provider_1.default { constructor() { super(...arguments); @@ -93395,7 +94029,7 @@ exports.default = ProviderAsync; /***/ }), -/* 794 */ +/* 802 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93404,7 +94038,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(173); const fsStat = __webpack_require__(295); const fsWalk = __webpack_require__(300); -const reader_1 = __webpack_require__(795); +const reader_1 = __webpack_require__(803); class ReaderStream extends reader_1.default { constructor() { super(...arguments); @@ -93457,7 +94091,7 @@ exports.default = ReaderStream; /***/ }), -/* 795 */ +/* 803 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93465,7 +94099,7 @@ exports.default = ReaderStream; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); const fsStat = __webpack_require__(295); -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); class Reader { constructor(_settings) { this._settings = _settings; @@ -93497,17 +94131,17 @@ exports.default = Reader; /***/ }), -/* 796 */ +/* 804 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = __webpack_require__(4); -const deep_1 = __webpack_require__(797); -const entry_1 = __webpack_require__(800); -const error_1 = __webpack_require__(801); -const entry_2 = __webpack_require__(802); +const deep_1 = __webpack_require__(805); +const entry_1 = __webpack_require__(808); +const error_1 = __webpack_require__(809); +const entry_2 = __webpack_require__(810); class Provider { constructor(_settings) { this._settings = _settings; @@ -93552,14 +94186,14 @@ exports.default = Provider; /***/ }), -/* 797 */ +/* 805 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(778); -const partial_1 = __webpack_require__(798); +const utils = __webpack_require__(786); +const partial_1 = __webpack_require__(806); class DeepFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -93621,13 +94255,13 @@ exports.default = DeepFilter; /***/ }), -/* 798 */ +/* 806 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const matcher_1 = __webpack_require__(799); +const matcher_1 = __webpack_require__(807); class PartialMatcher extends matcher_1.default { match(filepath) { const parts = filepath.split('/'); @@ -93666,13 +94300,13 @@ exports.default = PartialMatcher; /***/ }), -/* 799 */ +/* 807 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); class Matcher { constructor(_patterns, _settings, _micromatchOptions) { this._patterns = _patterns; @@ -93723,13 +94357,13 @@ exports.default = Matcher; /***/ }), -/* 800 */ +/* 808 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); class EntryFilter { constructor(_settings, _micromatchOptions) { this._settings = _settings; @@ -93786,13 +94420,13 @@ exports.default = EntryFilter; /***/ }), -/* 801 */ +/* 809 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); class ErrorFilter { constructor(_settings) { this._settings = _settings; @@ -93808,13 +94442,13 @@ exports.default = ErrorFilter; /***/ }), -/* 802 */ +/* 810 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const utils = __webpack_require__(778); +const utils = __webpack_require__(786); class EntryTransformer { constructor(_settings) { this._settings = _settings; @@ -93841,15 +94475,15 @@ exports.default = EntryTransformer; /***/ }), -/* 803 */ +/* 811 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const stream_1 = __webpack_require__(173); -const stream_2 = __webpack_require__(794); -const provider_1 = __webpack_require__(796); +const stream_2 = __webpack_require__(802); +const provider_1 = __webpack_require__(804); class ProviderStream extends provider_1.default { constructor() { super(...arguments); @@ -93879,14 +94513,14 @@ exports.default = ProviderStream; /***/ }), -/* 804 */ +/* 812 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const sync_1 = __webpack_require__(805); -const provider_1 = __webpack_require__(796); +const sync_1 = __webpack_require__(813); +const provider_1 = __webpack_require__(804); class ProviderSync extends provider_1.default { constructor() { super(...arguments); @@ -93909,7 +94543,7 @@ exports.default = ProviderSync; /***/ }), -/* 805 */ +/* 813 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -93917,7 +94551,7 @@ exports.default = ProviderSync; Object.defineProperty(exports, "__esModule", { value: true }); const fsStat = __webpack_require__(295); const fsWalk = __webpack_require__(300); -const reader_1 = __webpack_require__(795); +const reader_1 = __webpack_require__(803); class ReaderSync extends reader_1.default { constructor() { super(...arguments); @@ -93959,7 +94593,7 @@ exports.default = ReaderSync; /***/ }), -/* 806 */ +/* 814 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -94023,7 +94657,7 @@ exports.default = Settings; /***/ }), -/* 807 */ +/* 815 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -94031,7 +94665,7 @@ exports.default = Settings; const {promisify} = __webpack_require__(113); const fs = __webpack_require__(132); const path = __webpack_require__(4); -const fastGlob = __webpack_require__(776); +const fastGlob = __webpack_require__(784); const gitIgnore = __webpack_require__(335); const slash = __webpack_require__(336); @@ -94150,7 +94784,7 @@ module.exports.sync = options => { /***/ }), -/* 808 */ +/* 816 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -94203,7 +94837,7 @@ module.exports = { /***/ }), -/* 809 */ +/* 817 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -94211,13 +94845,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildNonBazelProductionProjects", function() { return buildNonBazelProductionProjects; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getProductionProjects", function() { return getProductionProjects; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buildProject", function() { return buildProject; }); -/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(563); +/* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(571); /* harmony import */ var cpy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(cpy__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(240); /* harmony import */ var del__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(del__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); /* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(560); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(568); /* harmony import */ var _utils_fs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); /* harmony import */ var _utils_log__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(220); /* harmony import */ var _utils_package_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(349); diff --git a/packages/kbn-pm/src/commands/bootstrap.ts b/packages/kbn-pm/src/commands/bootstrap.ts index 95eeeb329da3..12034a9f4a09 100644 --- a/packages/kbn-pm/src/commands/bootstrap.ts +++ b/packages/kbn-pm/src/commands/bootstrap.ts @@ -15,6 +15,7 @@ import { linkProjectExecutables } from '../utils/link_project_executables'; import { getNonBazelProjectsOnly, topologicallyBatchProjects } from '../utils/projects'; import { ICommand } from './'; import { readYarnLock } from '../utils/yarn_lock'; +import { sortPackageJson } from '../utils/sort_package_json'; import { validateDependencies } from '../utils/validate_dependencies'; import { ensureYarnIntegrityFileExists, @@ -107,6 +108,8 @@ export const BootstrapCommand: ICommand = { } } + await sortPackageJson(kbn); + const yarnLock = await readYarnLock(kbn); if (options.validate) { diff --git a/packages/kbn-pm/src/utils/sort_package_json.ts b/packages/kbn-pm/src/utils/sort_package_json.ts new file mode 100644 index 000000000000..0abab6f0f89b --- /dev/null +++ b/packages/kbn-pm/src/utils/sort_package_json.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import Fs from 'fs/promises'; + +import sorter from 'sort-package-json'; + +import { Kibana } from './kibana'; + +export async function sortPackageJson(kbn: Kibana) { + const packageJsonPath = kbn.getAbsolute('package.json'); + const packageJson = await Fs.readFile(packageJsonPath, 'utf-8'); + await Fs.writeFile( + packageJsonPath, + JSON.stringify( + sorter(JSON.parse(packageJson), { + // top level keys in the order they were written when this was implemented + sortOrder: [ + 'name', + 'description', + 'keywords', + 'private', + 'version', + 'branch', + 'types', + 'tsdocMetadata', + 'build', + 'homepage', + 'bugs', + 'kibana', + 'author', + 'scripts', + 'repository', + 'engines', + 'resolutions', + ], + }), + null, + 2 + ) + ); +} diff --git a/src/core/public/application/__snapshots__/application_service.test.ts.snap b/src/core/public/application/__snapshots__/application_service.test.ts.snap index a6c9eb27e338..17de9503bd53 100644 --- a/src/core/public/application/__snapshots__/application_service.test.ts.snap +++ b/src/core/public/application/__snapshots__/application_service.test.ts.snap @@ -83,5 +83,11 @@ exports[`#start() getComponent returns renderable JSX tree 1`] = ` setAppActionMenu={[Function]} setAppLeaveHandler={[Function]} setIsMounting={[Function]} + theme$={ + Observable { + "_isScalar": false, + "_subscribe": [Function], + } + } /> `; diff --git a/src/core/public/application/application_service.mock.ts b/src/core/public/application/application_service.mock.ts index 3799624800c9..6319d7caebf3 100644 --- a/src/core/public/application/application_service.mock.ts +++ b/src/core/public/application/application_service.mock.ts @@ -11,12 +11,15 @@ import { BehaviorSubject, Subject } from 'rxjs'; import type { MountPoint } from '../types'; import { capabilitiesServiceMock } from './capabilities/capabilities_service.mock'; +import { themeServiceMock } from '../theme/theme_service.mock'; +import { scopedHistoryMock } from './scoped_history.mock'; import { ApplicationSetup, InternalApplicationStart, ApplicationStart, InternalApplicationSetup, PublicAppInfo, + AppMountParameters, } from './types'; import { ApplicationServiceContract } from './test_types'; @@ -81,6 +84,19 @@ const createInternalStartContractMock = (): jest.Mocked) => { + const mock: AppMountParameters = { + element: document.createElement('div'), + history: scopedHistoryMock.create(), + appBasePath: '/app', + onAppLeave: jest.fn(), + setHeaderActionMenu: jest.fn(), + theme$: themeServiceMock.createTheme$(), + ...parts, + }; + return mock; +}; + const createMock = (): jest.Mocked => ({ setup: jest.fn().mockReturnValue(createInternalSetupContractMock()), start: jest.fn().mockReturnValue(createInternalStartContractMock()), @@ -93,4 +109,5 @@ export const applicationServiceMock = { createStartContract: createStartContractMock, createInternalSetupContract: createInternalSetupContractMock, createInternalStartContract: createInternalStartContractMock, + createAppMountParameters: createAppMountParametersMock, }; diff --git a/src/core/public/application/application_service.test.ts b/src/core/public/application/application_service.test.ts index f348936d2679..ccb0b220e024 100644 --- a/src/core/public/application/application_service.test.ts +++ b/src/core/public/application/application_service.test.ts @@ -19,6 +19,7 @@ import { mount, shallow } from 'enzyme'; import { httpServiceMock } from '../http/http_service.mock'; import { overlayServiceMock } from '../overlays/overlay_service.mock'; +import { themeServiceMock } from '../theme/theme_service.mock'; import { MockLifecycle } from './test_types'; import { ApplicationService } from './application_service'; import { App, AppDeepLink, AppNavLinkStatus, AppStatus, AppUpdater, PublicAppInfo } from './types'; @@ -44,7 +45,11 @@ describe('#setup()', () => { http, redirectTo: jest.fn(), }; - startDeps = { http, overlays: overlayServiceMock.createStartContract() }; + startDeps = { + http, + overlays: overlayServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), + }; service = new ApplicationService(); }); @@ -454,7 +459,11 @@ describe('#start()', () => { http, redirectTo: jest.fn(), }; - startDeps = { http, overlays: overlayServiceMock.createStartContract() }; + startDeps = { + http, + overlays: overlayServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), + }; service = new ApplicationService(); }); @@ -1124,7 +1133,11 @@ describe('#stop()', () => { setupDeps = { http, }; - startDeps = { http, overlays: overlayServiceMock.createStartContract() }; + startDeps = { + http, + overlays: overlayServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), + }; service = new ApplicationService(); }); diff --git a/src/core/public/application/application_service.tsx b/src/core/public/application/application_service.tsx index 3ba0d78cf15f..9f5470a2d248 100644 --- a/src/core/public/application/application_service.tsx +++ b/src/core/public/application/application_service.tsx @@ -15,6 +15,7 @@ import { MountPoint } from '../types'; import { HttpSetup, HttpStart } from '../http'; import { OverlayStart } from '../overlays'; import { PluginOpaqueId } from '../plugins'; +import type { ThemeServiceStart } from '../theme'; import { AppRouter } from './ui'; import { Capabilities, CapabilitiesService } from './capabilities'; import { @@ -44,6 +45,7 @@ interface SetupDeps { interface StartDeps { http: HttpStart; + theme: ThemeServiceStart; overlays: OverlayStart; } @@ -191,7 +193,7 @@ export class ApplicationService { }; } - public async start({ http, overlays }: StartDeps): Promise { + public async start({ http, overlays, theme }: StartDeps): Promise { if (!this.redirectTo) { throw new Error('ApplicationService#setup() must be invoked before start.'); } @@ -314,6 +316,7 @@ export class ApplicationService { return ( { http, history: history as any, }; - startDeps = { http, overlays: overlayServiceMock.createStartContract() }; + startDeps = { + http, + overlays: overlayServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), + }; service = new ApplicationService(); }); diff --git a/src/core/public/application/integration_tests/router.test.tsx b/src/core/public/application/integration_tests/router.test.tsx index 2543d22ee6d3..e627c8ee09a3 100644 --- a/src/core/public/application/integration_tests/router.test.tsx +++ b/src/core/public/application/integration_tests/router.test.tsx @@ -10,6 +10,7 @@ import React from 'react'; import { BehaviorSubject } from 'rxjs'; import { createMemoryHistory, History, createHashHistory } from 'history'; +import { themeServiceMock } from '../../theme/theme_service.mock'; import { AppRouter, AppNotFound } from '../ui'; import { MockedMounterMap, MockedMounterTuple } from '../test_types'; import { createRenderer, createAppMounter, getUnmounter } from './utils'; @@ -19,6 +20,7 @@ describe('AppRouter', () => { let mounters: MockedMounterMap; let globalHistory: History; let update: ReturnType; + let theme$: ReturnType; let scopedAppHistory: History; const navigate = (path: string) => { @@ -49,6 +51,7 @@ describe('AppRouter', () => { setAppLeaveHandler={noop} setAppActionMenu={noop} setIsMounting={noop} + theme$={theme$} /> ); @@ -85,10 +88,25 @@ describe('AppRouter', () => { appRoute: '/app/my-app/app6', }), ] as MockedMounterTuple[]); + theme$ = themeServiceMock.createTheme$(); globalHistory = createMemoryHistory(); update = createMountersRenderer(); }); + it('calls mount handler with the correct parameters', async () => { + const app1 = mounters.get('app1')!; + + await navigate('/app/app1'); + + expect(app1.mounter.mount).toHaveBeenCalledTimes(1); + expect(app1.mounter.mount).toHaveBeenCalledWith( + expect.objectContaining({ + appBasePath: '/app/app1', + theme$, + }) + ); + }); + it('calls mount handler and returned unmount function when navigating between apps', async () => { const app1 = mounters.get('app1')!; const app2 = mounters.get('app2')!; diff --git a/src/core/public/application/types.ts b/src/core/public/application/types.ts index 94930f55b8b2..9c3294086efc 100644 --- a/src/core/public/application/types.ts +++ b/src/core/public/application/types.ts @@ -11,6 +11,7 @@ import { History } from 'history'; import { RecursiveReadonly } from '@kbn/utility-types'; import { MountPoint } from '../types'; +import { CoreTheme } from '../theme'; import { Capabilities } from './capabilities'; import { PluginOpaqueId } from '../plugins'; import { AppCategory } from '../../types'; @@ -520,6 +521,29 @@ export interface AppMountParameters { * ``` */ setHeaderActionMenu: (menuMount: MountPoint | undefined) => void; + + /** + * An observable emitting {@link CoreTheme | Core's theme}. + * Should be used when mounting the application to include theme information. + * + * @example + * When mounting a react application: + * ```ts + * // application.tsx + * import React from 'react'; + * import ReactDOM from 'react-dom'; + * + * import { AppMountParameters } from 'src/core/public'; + * import { wrapWithTheme } from 'src/plugins/kibana_react'; + * import { MyApp } from './app'; + * + * export renderApp = ({ element, theme$ }: AppMountParameters) => { + * ReactDOM.render(wrapWithTheme(, theme$), element); + * return () => ReactDOM.unmountComponentAtNode(element); + * } + * ``` + */ + theme$: Observable; } /** diff --git a/src/core/public/application/ui/app_container.test.tsx b/src/core/public/application/ui/app_container.test.tsx index 4c056e748f06..9fc07530a009 100644 --- a/src/core/public/application/ui/app_container.test.tsx +++ b/src/core/public/application/ui/app_container.test.tsx @@ -8,8 +8,9 @@ import React from 'react'; import { act } from 'react-dom/test-utils'; -import { mount } from 'enzyme'; +import { mountWithIntl } from '@kbn/test/jest'; +import { themeServiceMock } from '../../theme/theme_service.mock'; import { AppContainer } from './app_container'; import { Mounter, AppMountParameters, AppStatus } from '../types'; import { createMemoryHistory } from 'history'; @@ -20,6 +21,7 @@ describe('AppContainer', () => { const setAppLeaveHandler = jest.fn(); const setAppActionMenu = jest.fn(); const setIsMounting = jest.fn(); + const theme$ = themeServiceMock.createTheme$(); beforeEach(() => { setAppLeaveHandler.mockClear(); @@ -59,11 +61,59 @@ describe('AppContainer', () => { }, }); + it('should call the `mount` function with the correct parameters', async () => { + const mounter: Mounter = { + appBasePath: '/base-path', + appRoute: '/some-route', + unmountBeforeMounting: false, + exactRoute: false, + deepLinkPaths: {}, + mount: jest.fn().mockImplementation(({ element }) => { + const container = document.createElement('div'); + container.innerHTML = 'some-content'; + element.appendChild(container); + return () => container.remove(); + }), + }; + + const wrapper = mountWithIntl( + + // Create a history using the appPath as the current location + new ScopedHistory(createMemoryHistory({ initialEntries: [appPath] }), appPath) + } + theme$={theme$} + /> + ); + + await act(async () => { + await flushPromises(); + wrapper.update(); + }); + + expect(mounter.mount).toHaveBeenCalledTimes(1); + expect(mounter.mount).toHaveBeenCalledWith({ + appBasePath: '/base-path', + history: expect.any(ScopedHistory), + element: expect.any(HTMLElement), + theme$, + onAppLeave: expect.any(Function), + setHeaderActionMenu: expect.any(Function), + }); + }); + it('should hide the "not found" page before mounting the route', async () => { const [waitPromise, resolvePromise] = createResolver(); const mounter = createMounter(waitPromise); - const wrapper = mount( + const wrapper = mountWithIntl( { // Create a history using the appPath as the current location new ScopedHistory(createMemoryHistory({ initialEntries: [appPath] }), appPath) } + theme$={theme$} /> ); @@ -104,7 +155,7 @@ describe('AppContainer', () => { const [waitPromise, resolvePromise] = createResolver(); const mounter = createMounter(waitPromise); - const wrapper = mount( + const wrapper = mountWithIntl( { // Create a history using the appPath as the current location new ScopedHistory(createMemoryHistory({ initialEntries: [appPath] }), appPath) } + theme$={theme$} /> ); @@ -147,7 +199,7 @@ describe('AppContainer', () => { }, }; - const wrapper = mount( + const wrapper = mountWithIntl( { // Create a history using the appPath as the current location new ScopedHistory(createMemoryHistory({ initialEntries: [appPath] }), appPath) } + theme$={theme$} /> ); diff --git a/src/core/public/application/ui/app_container.tsx b/src/core/public/application/ui/app_container.tsx index 0312c707e104..764a8e048510 100644 --- a/src/core/public/application/ui/app_container.tsx +++ b/src/core/public/application/ui/app_container.tsx @@ -7,6 +7,7 @@ */ import './app_container.scss'; +import { Observable } from 'rxjs'; import React, { Fragment, FunctionComponent, @@ -19,6 +20,7 @@ import { EuiLoadingElastic } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import type { MountPoint } from '../../types'; +import { CoreTheme } from '../../theme'; import { AppLeaveHandler, AppStatus, AppUnmount, Mounter } from '../types'; import { AppNotFound } from './app_not_found_screen'; import { ScopedHistory } from '../scoped_history'; @@ -29,6 +31,7 @@ interface Props { appPath: string; appId: string; mounter?: Mounter; + theme$: Observable; appStatus: AppStatus; setAppLeaveHandler: (appId: string, handler: AppLeaveHandler) => void; setAppActionMenu: (appId: string, mount: MountPoint | undefined) => void; @@ -45,6 +48,7 @@ export const AppContainer: FunctionComponent = ({ createScopedHistory, appStatus, setIsMounting, + theme$, }: Props) => { const [showSpinner, setShowSpinner] = useState(true); const [appNotFound, setAppNotFound] = useState(false); @@ -77,6 +81,7 @@ export const AppContainer: FunctionComponent = ({ appBasePath: mounter.appBasePath, history: createScopedHistory(appPath), element: elementRef.current!, + theme$, onAppLeave: (handler) => setAppLeaveHandler(appId, handler), setHeaderActionMenu: (menuMount) => setAppActionMenu(appId, menuMount), })) || null; @@ -104,6 +109,7 @@ export const AppContainer: FunctionComponent = ({ setAppActionMenu, appPath, setIsMounting, + theme$, ]); return ( diff --git a/src/core/public/application/ui/app_router.tsx b/src/core/public/application/ui/app_router.tsx index 8b74930b0746..0d398cfed12e 100644 --- a/src/core/public/application/ui/app_router.tsx +++ b/src/core/public/application/ui/app_router.tsx @@ -13,6 +13,7 @@ import { Observable } from 'rxjs'; import useObservable from 'react-use/lib/useObservable'; import type { MountPoint } from '../../types'; +import { CoreTheme } from '../../theme'; import { AppLeaveHandler, AppStatus, Mounter } from '../types'; import { AppContainer } from './app_container'; import { ScopedHistory } from '../scoped_history'; @@ -20,6 +21,7 @@ import { ScopedHistory } from '../scoped_history'; interface Props { mounters: Map; history: History; + theme$: Observable; appStatuses$: Observable>; setAppLeaveHandler: (appId: string, handler: AppLeaveHandler) => void; setAppActionMenu: (appId: string, mount: MountPoint | undefined) => void; @@ -33,6 +35,7 @@ interface Params { export const AppRouter: FunctionComponent = ({ history, mounters, + theme$, setAppLeaveHandler, setAppActionMenu, appStatuses$, @@ -57,7 +60,7 @@ export const AppRouter: FunctionComponent = ({ appPath={path} appStatus={appStatuses.get(appId) ?? AppStatus.inaccessible} createScopedHistory={createScopedHistory} - {...{ appId, mounter, setAppLeaveHandler, setAppActionMenu, setIsMounting }} + {...{ appId, mounter, setAppLeaveHandler, setAppActionMenu, setIsMounting, theme$ }} /> )} /> @@ -79,7 +82,7 @@ export const AppRouter: FunctionComponent = ({ appId={id ?? appId} appStatus={appStatuses.get(appId) ?? AppStatus.inaccessible} createScopedHistory={createScopedHistory} - {...{ mounter, setAppLeaveHandler, setAppActionMenu, setIsMounting }} + {...{ mounter, setAppLeaveHandler, setAppActionMenu, setIsMounting, theme$ }} /> ); }} diff --git a/src/core/public/chrome/ui/header/collapsible_nav.tsx b/src/core/public/chrome/ui/header/collapsible_nav.tsx index ef380ee47e23..498efcfd9076 100644 --- a/src/core/public/chrome/ui/header/collapsible_nav.tsx +++ b/src/core/public/chrome/ui/header/collapsible_nav.tsx @@ -113,8 +113,6 @@ export function CollapsibleNav({ (link) => // Filterting out hidden links, !link.hidden && - // integrations link in favor of a specific Add Data button at the bottom, - link.id !== 'integrations' && // and non-data overview pages !overviewIDsToHide.includes(link.id) ), diff --git a/src/core/public/core_app/errors/error_application.test.ts b/src/core/public/core_app/errors/error_application.test.ts index 769790cabe2e..1e12c2db6f8d 100644 --- a/src/core/public/core_app/errors/error_application.test.ts +++ b/src/core/public/core_app/errors/error_application.test.ts @@ -10,6 +10,8 @@ import { act } from 'react-dom/test-utils'; import { History, createMemoryHistory } from 'history'; import { IBasePath } from '../../http'; import { BasePath } from '../../http/base_path'; +import { ScopedHistory } from '../../application/scoped_history'; +import { applicationServiceMock } from '../../application/application_service.mock'; import { renderApp } from './error_application'; @@ -17,13 +19,21 @@ describe('renderApp', () => { let basePath: IBasePath; let element: HTMLDivElement; let history: History; - let unmount: any; + let unmount: () => void; beforeEach(() => { basePath = new BasePath(); element = document.createElement('div'); history = createMemoryHistory(); - unmount = renderApp({ element, history } as any, { basePath }); + unmount = renderApp( + applicationServiceMock.createAppMountParameters({ + element, + history: new ScopedHistory(history, '/'), + }), + { + basePath, + } + ); }); afterEach(() => unmount()); diff --git a/src/core/public/core_app/errors/error_application.tsx b/src/core/public/core_app/errors/error_application.tsx index 8b8f3b999dc1..c04f6fd5b540 100644 --- a/src/core/public/core_app/errors/error_application.tsx +++ b/src/core/public/core_app/errors/error_application.tsx @@ -16,6 +16,7 @@ import { EuiEmptyPrompt, EuiPage, EuiPageBody, EuiPageContent } from '@elastic/e import { UrlOverflowUi } from './url_overflow_ui'; import { IBasePath } from '../../http'; import { AppMountParameters } from '../../application'; +import { CoreThemeProvider } from '../../theme'; interface Props { title?: string; @@ -77,10 +78,12 @@ interface Deps { * Renders UI for displaying error messages. * @internal */ -export const renderApp = ({ element, history }: AppMountParameters, { basePath }: Deps) => { +export const renderApp = ({ element, history, theme$ }: AppMountParameters, { basePath }: Deps) => { ReactDOM.render( - + + + , element ); diff --git a/src/core/public/core_app/status/render_app.tsx b/src/core/public/core_app/status/render_app.tsx index 5e688238eca4..97398af6c9cf 100644 --- a/src/core/public/core_app/status/render_app.tsx +++ b/src/core/public/core_app/status/render_app.tsx @@ -12,6 +12,7 @@ import { I18nProvider } from '@kbn/i18n/react'; import type { AppMountParameters } from '../../application'; import type { HttpSetup } from '../../http'; import type { NotificationsSetup } from '../../notifications'; +import { CoreThemeProvider } from '../../theme'; import { StatusApp } from './status_app'; interface Deps { @@ -19,10 +20,15 @@ interface Deps { notifications: NotificationsSetup; } -export const renderApp = ({ element }: AppMountParameters, { http, notifications }: Deps) => { +export const renderApp = ( + { element, theme$ }: AppMountParameters, + { http, notifications }: Deps +) => { ReactDOM.render( - + + + , element ); diff --git a/src/core/public/core_system.test.mocks.ts b/src/core/public/core_system.test.mocks.ts index afb8aec31ccc..6eddf08cd2ae 100644 --- a/src/core/public/core_system.test.mocks.ts +++ b/src/core/public/core_system.test.mocks.ts @@ -20,6 +20,7 @@ import { docLinksServiceMock } from './doc_links/doc_links_service.mock'; import { renderingServiceMock } from './rendering/rendering_service.mock'; import { integrationsServiceMock } from './integrations/integrations_service.mock'; import { coreAppMock } from './core_app/core_app.mock'; +import { themeServiceMock } from './theme/theme_service.mock'; export const MockInjectedMetadataService = injectedMetadataServiceMock.create(); export const InjectedMetadataServiceConstructor = jest @@ -116,3 +117,9 @@ export const CoreAppConstructor = jest.fn().mockImplementation(() => MockCoreApp jest.doMock('./core_app', () => ({ CoreApp: CoreAppConstructor, })); + +export const MockThemeService = themeServiceMock.create(); +export const ThemeServiceConstructor = jest.fn().mockImplementation(() => MockThemeService); +jest.doMock('./theme', () => ({ + ThemeService: ThemeServiceConstructor, +})); diff --git a/src/core/public/core_system.test.ts b/src/core/public/core_system.test.ts index 8ead0f50785b..74e8782d3373 100644 --- a/src/core/public/core_system.test.ts +++ b/src/core/public/core_system.test.ts @@ -32,6 +32,8 @@ import { MockIntegrationsService, CoreAppConstructor, MockCoreApp, + MockThemeService, + ThemeServiceConstructor, } from './core_system.test.mocks'; import { CoreSystem } from './core_system'; @@ -77,6 +79,7 @@ describe('constructor', () => { expect(RenderingServiceConstructor).toHaveBeenCalledTimes(1); expect(IntegrationsServiceConstructor).toHaveBeenCalledTimes(1); expect(CoreAppConstructor).toHaveBeenCalledTimes(1); + expect(ThemeServiceConstructor).toHaveBeenCalledTimes(1); }); it('passes injectedMetadata param to InjectedMetadataService', () => { @@ -182,6 +185,11 @@ describe('#setup()', () => { await setupCore(); expect(MockCoreApp.setup).toHaveBeenCalledTimes(1); }); + + it('calls theme#setup()', async () => { + await setupCore(); + expect(MockThemeService.setup).toHaveBeenCalledTimes(1); + }); }); describe('#start()', () => { @@ -235,6 +243,7 @@ describe('#start()', () => { expect(MockNotificationsService.start).toHaveBeenCalledWith({ i18n: expect.any(Object), overlays: expect.any(Object), + theme: expect.any(Object), targetDomElement: expect.any(HTMLElement), }); }); @@ -256,6 +265,8 @@ describe('#start()', () => { application: expect.any(Object), chrome: expect.any(Object), overlays: expect.any(Object), + i18n: expect.any(Object), + theme: expect.any(Object), targetDomElement: expect.any(HTMLElement), }); }); @@ -269,6 +280,11 @@ describe('#start()', () => { await startCore(); expect(MockCoreApp.start).toHaveBeenCalledTimes(1); }); + + it('calls theme#start()', async () => { + await startCore(); + expect(MockThemeService.start).toHaveBeenCalledTimes(1); + }); }); describe('#stop()', () => { @@ -327,6 +343,14 @@ describe('#stop()', () => { expect(MockCoreApp.stop).toHaveBeenCalled(); }); + it('calls theme.stop()', () => { + const coreSystem = createCoreSystem(); + + expect(MockThemeService.stop).not.toHaveBeenCalled(); + coreSystem.stop(); + expect(MockThemeService.stop).toHaveBeenCalled(); + }); + it('clears the rootDomElement', async () => { const rootDomElement = document.createElement('div'); const coreSystem = createCoreSystem({ diff --git a/src/core/public/core_system.ts b/src/core/public/core_system.ts index e5dcd8f817a0..3d3331d54792 100644 --- a/src/core/public/core_system.ts +++ b/src/core/public/core_system.ts @@ -28,6 +28,7 @@ import { RenderingService } from './rendering'; import { SavedObjectsService } from './saved_objects'; import { IntegrationsService } from './integrations'; import { DeprecationsService } from './deprecations'; +import { ThemeService } from './theme'; import { CoreApp } from './core_app'; import type { InternalApplicationSetup, InternalApplicationStart } from './application/types'; @@ -83,6 +84,7 @@ export class CoreSystem { private readonly integrations: IntegrationsService; private readonly coreApp: CoreApp; private readonly deprecations: DeprecationsService; + private readonly theme: ThemeService; private readonly rootDomElement: HTMLElement; private readonly coreContext: CoreContext; private fatalErrorsSetup: FatalErrorsSetup | null = null; @@ -104,6 +106,7 @@ export class CoreSystem { this.stop(); }); + this.theme = new ThemeService(); this.notifications = new NotificationsService(); this.http = new HttpService(); this.savedObjects = new SavedObjectsService(); @@ -137,6 +140,7 @@ export class CoreSystem { const http = this.http.setup({ injectedMetadata, fatalErrors: this.fatalErrorsSetup }); const uiSettings = this.uiSettings.setup({ http, injectedMetadata }); const notifications = this.notifications.setup({ uiSettings }); + const theme = this.theme.setup({ injectedMetadata }); const application = this.application.setup({ http }); this.coreApp.setup({ application, http, injectedMetadata, notifications }); @@ -147,6 +151,7 @@ export class CoreSystem { http, injectedMetadata, notifications, + theme, uiSettings, }; @@ -174,6 +179,7 @@ export class CoreSystem { const savedObjects = await this.savedObjects.start({ http }); const i18n = await this.i18n.start(); const fatalErrors = await this.fatalErrors.start(); + const theme = this.theme.start(); await this.integrations.start({ uiSettings }); const coreUiTargetDomElement = document.createElement('div'); @@ -184,15 +190,17 @@ export class CoreSystem { const overlays = this.overlay.start({ i18n, - targetDomElement: overlayTargetDomElement, + theme, uiSettings, + targetDomElement: overlayTargetDomElement, }); const notifications = await this.notifications.start({ i18n, overlays, + theme, targetDomElement: notificationsTargetDomElement, }); - const application = await this.application.start({ http, overlays }); + const application = await this.application.start({ http, theme, overlays }); const chrome = await this.chrome.start({ application, docLinks, @@ -209,6 +217,7 @@ export class CoreSystem { chrome, docLinks, http, + theme, savedObjects, i18n, injectedMetadata, @@ -231,7 +240,9 @@ export class CoreSystem { this.rendering.start({ application, chrome, + i18n, overlays, + theme, targetDomElement: coreUiTargetDomElement, }); @@ -260,6 +271,7 @@ export class CoreSystem { this.i18n.stop(); this.application.stop(); this.deprecations.stop(); + this.theme.stop(); this.rootDomElement.textContent = ''; } } diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts index e9b82de9eaaf..a9330ce499ca 100644 --- a/src/core/public/doc_links/doc_links_service.ts +++ b/src/core/public/doc_links/doc_links_service.ts @@ -347,6 +347,7 @@ export class DocLinksService { maps: { guide: `${KIBANA_DOCS}maps.html`, importGeospatialPrivileges: `${KIBANA_DOCS}import-geospatial-data.html#import-geospatial-privileges`, + gdalTutorial: `${ELASTIC_WEBSITE_URL}blog/how-to-ingest-geospatial-data-into-elasticsearch-with-gdal`, }, monitoring: { alertsKibana: `${KIBANA_DOCS}kibana-alerts.html`, @@ -428,7 +429,7 @@ export class DocLinksService { snapshotRestoreRepos: `${PLUGIN_DOCS}repository.html`, }, snapshotRestore: { - guide: `${KIBANA_DOCS}snapshot-repositories.html`, + guide: `${ELASTICSEARCH_DOCS}snapshot-restore.html`, changeIndexSettings: `${ELASTICSEARCH_DOCS}index-modules.html`, createSnapshot: `${ELASTICSEARCH_DOCS}snapshots-take-snapshot.html`, getSnapshot: `${ELASTICSEARCH_DOCS}get-snapshot-api.html`, @@ -735,7 +736,11 @@ export interface DocLinksStart { uptimeDurationAnomaly: string; }>; readonly alerting: Record; - readonly maps: Record; + readonly maps: Readonly<{ + guide: string; + importGeospatialPrivileges: string; + gdalTutorial: string; + }>; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; diff --git a/src/core/public/index.ts b/src/core/public/index.ts index 40326d9c6760..ded7db9c6f89 100644 --- a/src/core/public/index.ts +++ b/src/core/public/index.ts @@ -64,6 +64,7 @@ import { ApplicationSetup, Capabilities, ApplicationStart } from './application' import { DocLinksStart } from './doc_links'; import { SavedObjectsStart } from './saved_objects'; import { DeprecationsServiceStart } from './deprecations'; +import type { ThemeServiceSetup, ThemeServiceStart } from './theme'; export type { PackageInfo, @@ -185,6 +186,8 @@ export type { ErrorToastOptions, } from './notifications'; +export type { ThemeServiceSetup, ThemeServiceStart, CoreTheme } from './theme'; + export type { DeprecationsServiceStart, ResolveDeprecationResponse } from './deprecations'; export type { MountPoint, UnmountCallback, PublicUiSettingsParams } from './types'; @@ -227,6 +230,8 @@ export interface CoreSetup unknown; }; + /** {@link ThemeServiceSetup} */ + theme: ThemeServiceSetup; /** {@link StartServicesAccessor} */ getStartServices: StartServicesAccessor; } @@ -275,6 +280,8 @@ export interface CoreStart { fatalErrors: FatalErrorsStart; /** {@link DeprecationsServiceStart} */ deprecations: DeprecationsServiceStart; + /** {@link ThemeServiceStart} */ + theme: ThemeServiceStart; /** * exposed temporarily until https://github.com/elastic/kibana/issues/41990 done * use *only* to retrieve config values. There is no way to set injected values diff --git a/src/core/public/injected_metadata/injected_metadata_service.mock.ts b/src/core/public/injected_metadata/injected_metadata_service.mock.ts index d6dfec4b96d8..dc8fe6372441 100644 --- a/src/core/public/injected_metadata/injected_metadata_service.mock.ts +++ b/src/core/public/injected_metadata/injected_metadata_service.mock.ts @@ -20,6 +20,7 @@ const createSetupContractMock = () => { getExternalUrlConfig: jest.fn(), getAnonymousStatusPage: jest.fn(), getLegacyMetadata: jest.fn(), + getTheme: jest.fn(), getPlugins: jest.fn(), getInjectedVar: jest.fn(), getInjectedVars: jest.fn(), @@ -41,6 +42,7 @@ const createSetupContractMock = () => { }, } as any); setupContract.getPlugins.mockReturnValue([]); + setupContract.getTheme.mockReturnValue({ darkMode: false, version: 'v8' }); return setupContract; }; diff --git a/src/core/public/injected_metadata/injected_metadata_service.ts b/src/core/public/injected_metadata/injected_metadata_service.ts index 341fc6105bed..bfda6d3f334e 100644 --- a/src/core/public/injected_metadata/injected_metadata_service.ts +++ b/src/core/public/injected_metadata/injected_metadata_service.ts @@ -8,6 +8,7 @@ import { get } from 'lodash'; import { deepFreeze } from '@kbn/std'; +import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import { DiscoveredPlugin, PluginName } from '../../server'; import { EnvironmentMode, @@ -45,6 +46,10 @@ export interface InjectedMetadataParams { vars: { [key: string]: unknown; }; + theme: { + darkMode: boolean; + version: ThemeVersion; + }; env: { mode: Readonly; packageInfo: Readonly; @@ -132,6 +137,10 @@ export class InjectedMetadataService { getKibanaBranch: () => { return this.state.branch; }, + + getTheme: () => { + return this.state.theme; + }, }; } } @@ -154,6 +163,10 @@ export interface InjectedMetadataSetup { getExternalUrlConfig: () => { policy: IExternalUrlPolicy[]; }; + getTheme: () => { + darkMode: boolean; + version: ThemeVersion; + }; /** * An array of frontend plugins in topological order. */ diff --git a/src/core/public/mocks.ts b/src/core/public/mocks.ts index 39d2dc3d5c49..f11839129be6 100644 --- a/src/core/public/mocks.ts +++ b/src/core/public/mocks.ts @@ -25,6 +25,7 @@ import { uiSettingsServiceMock } from './ui_settings/ui_settings_service.mock'; import { savedObjectsServiceMock } from './saved_objects/saved_objects_service.mock'; import { injectedMetadataServiceMock } from './injected_metadata/injected_metadata_service.mock'; import { deprecationsServiceMock } from './deprecations/deprecations_service.mock'; +import { themeServiceMock } from './theme/theme_service.mock'; export { chromeServiceMock } from './chrome/chrome_service.mock'; export { docLinksServiceMock } from './doc_links/doc_links_service.mock'; @@ -39,6 +40,7 @@ export { savedObjectsServiceMock } from './saved_objects/saved_objects_service.m export { scopedHistoryMock } from './application/scoped_history.mock'; export { applicationServiceMock } from './application/application_service.mock'; export { deprecationsServiceMock } from './deprecations/deprecations_service.mock'; +export { themeServiceMock } from './theme/theme_service.mock'; function createCoreSetupMock({ basePath = '', @@ -63,6 +65,7 @@ function createCoreSetupMock({ injectedMetadata: { getInjectedVar: injectedMetadataServiceMock.createSetupContract().getInjectedVar, }, + theme: themeServiceMock.createSetupContract(), }; return mock; @@ -80,6 +83,7 @@ function createCoreStartMock({ basePath = '' } = {}) { uiSettings: uiSettingsServiceMock.createStartContract(), savedObjects: savedObjectsServiceMock.createStartContract(), deprecations: deprecationsServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), injectedMetadata: { getInjectedVar: injectedMetadataServiceMock.createStartContract().getInjectedVar, }, @@ -156,6 +160,7 @@ function createAppMountParametersMock(appBasePath = '') { appBasePath, element: document.createElement('div'), history, + theme$: themeServiceMock.createTheme$(), onAppLeave: jest.fn(), setHeaderActionMenu: jest.fn(), }; diff --git a/src/core/public/notifications/notifications_service.ts b/src/core/public/notifications/notifications_service.ts index a6eec50582e1..383fa2d1914c 100644 --- a/src/core/public/notifications/notifications_service.ts +++ b/src/core/public/notifications/notifications_service.ts @@ -10,6 +10,7 @@ import { i18n } from '@kbn/i18n'; import { Subscription } from 'rxjs'; import { I18nStart } from '../i18n'; +import { ThemeServiceStart } from '../theme'; import { ToastsService, ToastsSetup, ToastsStart } from './toasts'; import { IUiSettingsClient } from '../ui_settings'; import { OverlayStart } from '../overlays'; @@ -21,6 +22,7 @@ interface SetupDeps { interface StartDeps { i18n: I18nStart; overlays: OverlayStart; + theme: ThemeServiceStart; targetDomElement: HTMLElement; } @@ -49,13 +51,23 @@ export class NotificationsService { return notificationSetup; } - public start({ i18n: i18nDep, overlays, targetDomElement }: StartDeps): NotificationsStart { + public start({ + i18n: i18nDep, + overlays, + theme, + targetDomElement, + }: StartDeps): NotificationsStart { this.targetDomElement = targetDomElement; const toastsContainer = document.createElement('div'); targetDomElement.appendChild(toastsContainer); return { - toasts: this.toasts.start({ i18n: i18nDep, overlays, targetDomElement: toastsContainer }), + toasts: this.toasts.start({ + i18n: i18nDep, + overlays, + theme, + targetDomElement: toastsContainer, + }), }; } diff --git a/src/core/public/notifications/toasts/__snapshots__/toasts_service.test.tsx.snap b/src/core/public/notifications/toasts/__snapshots__/toasts_service.test.tsx.snap index 75d456dd87f7..6e453ed8e48f 100644 --- a/src/core/public/notifications/toasts/__snapshots__/toasts_service.test.tsx.snap +++ b/src/core/public/notifications/toasts/__snapshots__/toasts_service.test.tsx.snap @@ -3,7 +3,21 @@ exports[`#start() renders the GlobalToastList into the targetDomElement param 1`] = ` Array [ Array [ - + - , + ,
, diff --git a/src/core/public/notifications/toasts/toasts_service.test.tsx b/src/core/public/notifications/toasts/toasts_service.test.tsx index 8099d4bfabae..6c7394433b9e 100644 --- a/src/core/public/notifications/toasts/toasts_service.test.tsx +++ b/src/core/public/notifications/toasts/toasts_service.test.tsx @@ -11,6 +11,7 @@ import { mockReactDomRender, mockReactDomUnmount } from './toasts_service.test.m import { ToastsService } from './toasts_service'; import { ToastsApi } from './toasts_api'; import { overlayServiceMock } from '../../overlays/overlay_service.mock'; +import { themeServiceMock } from '../../theme/theme_service.mock'; import { uiSettingsServiceMock } from '../../ui_settings/ui_settings_service.mock'; const mockI18n: any = { @@ -20,6 +21,7 @@ const mockI18n: any = { }; const mockOverlays = overlayServiceMock.createStartContract(); +const mockTheme = themeServiceMock.createStartContract(); describe('#setup()', () => { it('returns a ToastsApi', () => { @@ -39,7 +41,7 @@ describe('#start()', () => { expect(mockReactDomRender).not.toHaveBeenCalled(); toasts.setup({ uiSettings: uiSettingsServiceMock.createSetupContract() }); - toasts.start({ i18n: mockI18n, targetDomElement, overlays: mockOverlays }); + toasts.start({ i18n: mockI18n, theme: mockTheme, targetDomElement, overlays: mockOverlays }); expect(mockReactDomRender.mock.calls).toMatchSnapshot(); }); @@ -51,7 +53,7 @@ describe('#start()', () => { toasts.setup({ uiSettings: uiSettingsServiceMock.createSetupContract() }) ).toBeInstanceOf(ToastsApi); expect( - toasts.start({ i18n: mockI18n, targetDomElement, overlays: mockOverlays }) + toasts.start({ i18n: mockI18n, theme: mockTheme, targetDomElement, overlays: mockOverlays }) ).toBeInstanceOf(ToastsApi); }); }); @@ -63,7 +65,7 @@ describe('#stop()', () => { const toasts = new ToastsService(); toasts.setup({ uiSettings: uiSettingsServiceMock.createSetupContract() }); - toasts.start({ i18n: mockI18n, targetDomElement, overlays: mockOverlays }); + toasts.start({ i18n: mockI18n, theme: mockTheme, targetDomElement, overlays: mockOverlays }); expect(mockReactDomUnmount).not.toHaveBeenCalled(); toasts.stop(); @@ -82,7 +84,7 @@ describe('#stop()', () => { const toasts = new ToastsService(); toasts.setup({ uiSettings: uiSettingsServiceMock.createSetupContract() }); - toasts.start({ i18n: mockI18n, targetDomElement, overlays: mockOverlays }); + toasts.start({ i18n: mockI18n, theme: mockTheme, targetDomElement, overlays: mockOverlays }); toasts.stop(); expect(targetDomElement.childNodes).toHaveLength(0); }); diff --git a/src/core/public/notifications/toasts/toasts_service.tsx b/src/core/public/notifications/toasts/toasts_service.tsx index d50850841555..1592c9abcc56 100644 --- a/src/core/public/notifications/toasts/toasts_service.tsx +++ b/src/core/public/notifications/toasts/toasts_service.tsx @@ -14,6 +14,8 @@ import { IUiSettingsClient } from '../../ui_settings'; import { GlobalToastList } from './global_toast_list'; import { ToastsApi, IToasts } from './toasts_api'; import { OverlayStart } from '../../overlays'; +import { ThemeServiceStart } from '../../theme'; +import { CoreContextProvider } from '../../utils'; interface SetupDeps { uiSettings: IUiSettingsClient; @@ -22,6 +24,7 @@ interface SetupDeps { interface StartDeps { i18n: I18nStart; overlays: OverlayStart; + theme: ThemeServiceStart; targetDomElement: HTMLElement; } @@ -46,17 +49,17 @@ export class ToastsService { return this.api!; } - public start({ i18n, overlays, targetDomElement }: StartDeps) { + public start({ i18n, overlays, theme, targetDomElement }: StartDeps) { this.api!.start({ overlays, i18n }); this.targetDomElement = targetDomElement; render( - + this.api!.remove(toastId)} toasts$={this.api!.get$()} /> - , + , targetDomElement ); diff --git a/src/core/public/overlays/flyout/__snapshots__/flyout_service.test.tsx.snap b/src/core/public/overlays/flyout/__snapshots__/flyout_service.test.tsx.snap index fbd09f309685..145847c39a0b 100644 --- a/src/core/public/overlays/flyout/__snapshots__/flyout_service.test.tsx.snap +++ b/src/core/public/overlays/flyout/__snapshots__/flyout_service.test.tsx.snap @@ -11,7 +11,21 @@ Array [ exports[`FlyoutService openFlyout() renders a flyout to the DOM 1`] = ` Array [ Array [ - + @@ -20,7 +34,7 @@ Array [ mount={[Function]} /> - , + ,
, ], ] @@ -31,7 +45,68 @@ exports[`FlyoutService openFlyout() renders a flyout to the DOM 2`] = `"
+ + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > @@ -40,11 +115,72 @@ Array [ mount={[Function]} /> - , + ,
, ], Array [ - + + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > @@ -53,7 +189,7 @@ Array [ mount={[Function]} /> - , + ,
, ], ] diff --git a/src/core/public/overlays/flyout/flyout_service.test.tsx b/src/core/public/overlays/flyout/flyout_service.test.tsx index 0da7e14949e6..563e1e02f2f2 100644 --- a/src/core/public/overlays/flyout/flyout_service.test.tsx +++ b/src/core/public/overlays/flyout/flyout_service.test.tsx @@ -10,10 +10,12 @@ import { mockReactDomRender, mockReactDomUnmount } from '../overlay.test.mocks'; import { mount } from 'enzyme'; import { i18nServiceMock } from '../../i18n/i18n_service.mock'; +import { themeServiceMock } from '../../theme/theme_service.mock'; import { FlyoutService, OverlayFlyoutStart } from './flyout_service'; import { OverlayRef } from '../types'; const i18nMock = i18nServiceMock.createStartContract(); +const themeMock = themeServiceMock.createStartContract(); beforeEach(() => { mockReactDomRender.mockClear(); @@ -29,7 +31,11 @@ const mountText = (text: string) => (container: HTMLElement) => { const getServiceStart = () => { const service = new FlyoutService(); - return service.start({ i18n: i18nMock, targetDomElement: document.createElement('div') }); + return service.start({ + i18n: i18nMock, + theme: themeMock, + targetDomElement: document.createElement('div'), + }); }; describe('FlyoutService', () => { diff --git a/src/core/public/overlays/flyout/flyout_service.tsx b/src/core/public/overlays/flyout/flyout_service.tsx index 79047738da4d..600e1e0e97b2 100644 --- a/src/core/public/overlays/flyout/flyout_service.tsx +++ b/src/core/public/overlays/flyout/flyout_service.tsx @@ -13,9 +13,10 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; import { Subject } from 'rxjs'; import { I18nStart } from '../../i18n'; +import { ThemeServiceStart } from '../../theme'; import { MountPoint } from '../../types'; import { OverlayRef } from '../types'; -import { MountWrapper } from '../../utils'; +import { MountWrapper, CoreContextProvider } from '../../utils'; /** * A FlyoutRef is a reference to an opened flyout panel. It offers methods to @@ -96,6 +97,7 @@ export interface OverlayFlyoutOpenOptions { interface StartDeps { i18n: I18nStart; + theme: ThemeServiceStart; targetDomElement: Element; } @@ -104,7 +106,7 @@ export class FlyoutService { private activeFlyout: FlyoutRef | null = null; private targetDomElement: Element | null = null; - public start({ i18n, targetDomElement }: StartDeps): OverlayFlyoutStart { + public start({ i18n, theme, targetDomElement }: StartDeps): OverlayFlyoutStart { this.targetDomElement = targetDomElement; return { @@ -135,11 +137,11 @@ export class FlyoutService { }; render( - + - , + , this.targetDomElement ); diff --git a/src/core/public/overlays/modal/__snapshots__/modal_service.test.tsx.snap b/src/core/public/overlays/modal/__snapshots__/modal_service.test.tsx.snap index 9c39776fcea5..31309a0cd362 100644 --- a/src/core/public/overlays/modal/__snapshots__/modal_service.test.tsx.snap +++ b/src/core/public/overlays/modal/__snapshots__/modal_service.test.tsx.snap @@ -11,7 +11,68 @@ Array [ exports[`ModalService openConfirm() renders a mountpoint confirm message 1`] = ` Array [ Array [ - + + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > - , + ,
, ], ] @@ -34,7 +95,116 @@ exports[`ModalService openConfirm() renders a mountpoint confirm message 2`] = ` exports[`ModalService openConfirm() renders a string confirm message 1`] = ` Array [ Array [ - + + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > Some message - , + ,
, ], ] @@ -54,7 +224,158 @@ exports[`ModalService openConfirm() renders a string confirm message 2`] = `" + + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + Some message + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + Some message + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > confirm 1 - , + ,
, ], Array [ - + + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + Some message + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + Some message + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > some confirm - , + ,
, ], ] @@ -85,7 +557,158 @@ Array [ exports[`ModalService openConfirm() with a currently active modal replaces the current modal with the new confirm 1`] = ` Array [ Array [ - + + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + Some message + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + Some message + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > @@ -94,11 +717,162 @@ Array [ mount={[Function]} /> - , + ,
, ], Array [ - + + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + + + , + }, + Object {}, + ], + Array [ + Object { + "children": + + Some message + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + + + , + }, + Object { + "type": "return", + "value": + + Some message + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > some confirm - , + ,
, ], ] @@ -116,7 +890,21 @@ Array [ exports[`ModalService openModal() renders a modal to the DOM 1`] = ` Array [ Array [ - + @@ -125,7 +913,7 @@ Array [ mount={[Function]} /> - , + ,
, ], ] @@ -136,7 +924,68 @@ exports[`ModalService openModal() renders a modal to the DOM 2`] = `"
+ + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > confirm 1 - , + ,
, ], Array [ - + + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > some confirm - , + ,
, ], ] @@ -167,7 +1077,68 @@ Array [ exports[`ModalService openModal() with a currently active modal replaces the current modal with a new one 1`] = ` Array [ Array [ - + + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > @@ -176,11 +1147,72 @@ Array [ mount={[Function]} /> - , + ,
, ], Array [ - + + + + + , + }, + Object {}, + ], + ], + "results": Array [ + Object { + "type": "return", + "value": + + + + , + }, + ], + }, + } + } + theme={ + Object { + "theme$": Observable { + "_isScalar": false, + "_subscribe": [Function], + }, + } + } + > @@ -189,7 +1221,7 @@ Array [ mount={[Function]} /> - , + ,
, ], ] diff --git a/src/core/public/overlays/modal/modal_service.test.tsx b/src/core/public/overlays/modal/modal_service.test.tsx index e0a78082570c..cd3c0d052565 100644 --- a/src/core/public/overlays/modal/modal_service.test.tsx +++ b/src/core/public/overlays/modal/modal_service.test.tsx @@ -11,11 +11,13 @@ import { mockReactDomRender, mockReactDomUnmount } from '../overlay.test.mocks'; import React from 'react'; import { mount } from 'enzyme'; import { i18nServiceMock } from '../../i18n/i18n_service.mock'; +import { themeServiceMock } from '../../theme/theme_service.mock'; import { ModalService, OverlayModalStart } from './modal_service'; import { mountReactNode } from '../../utils'; import { OverlayRef } from '../types'; const i18nMock = i18nServiceMock.createStartContract(); +const themeMock = themeServiceMock.createStartContract(); beforeEach(() => { mockReactDomRender.mockClear(); @@ -24,7 +26,11 @@ beforeEach(() => { const getServiceStart = () => { const service = new ModalService(); - return service.start({ i18n: i18nMock, targetDomElement: document.createElement('div') }); + return service.start({ + i18n: i18nMock, + theme: themeMock, + targetDomElement: document.createElement('div'), + }); }; describe('ModalService', () => { diff --git a/src/core/public/overlays/modal/modal_service.tsx b/src/core/public/overlays/modal/modal_service.tsx index 7e4aee94c958..f50914645293 100644 --- a/src/core/public/overlays/modal/modal_service.tsx +++ b/src/core/public/overlays/modal/modal_service.tsx @@ -14,9 +14,10 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; import { Subject } from 'rxjs'; import { I18nStart } from '../../i18n'; +import { ThemeServiceStart } from '../../theme'; import { MountPoint } from '../../types'; import { OverlayRef } from '../types'; -import { MountWrapper } from '../../utils'; +import { MountWrapper, CoreContextProvider } from '../../utils'; /** * A ModalRef is a reference to an opened modal. It offers methods to @@ -84,6 +85,7 @@ export interface OverlayModalStart { * @return {@link OverlayRef} A reference to the opened modal. */ open(mount: MountPoint, options?: OverlayModalOpenOptions): OverlayRef; + /** * Opens a confirmation modal with the given text or mountpoint as a message. * Returns a Promise resolving to `true` if user confirmed or `false` otherwise. @@ -106,6 +108,7 @@ export interface OverlayModalOpenOptions { interface StartDeps { i18n: I18nStart; + theme: ThemeServiceStart; targetDomElement: Element; } @@ -114,7 +117,7 @@ export class ModalService { private activeModal: ModalRef | null = null; private targetDomElement: Element | null = null; - public start({ i18n, targetDomElement }: StartDeps): OverlayModalStart { + public start({ i18n, theme, targetDomElement }: StartDeps): OverlayModalStart { this.targetDomElement = targetDomElement; return { @@ -137,11 +140,11 @@ export class ModalService { this.activeModal = modal; render( - + modal.close()}> - , + , targetDomElement ); @@ -197,9 +200,9 @@ export class ModalService { }; render( - + - , + , targetDomElement ); }); diff --git a/src/core/public/overlays/overlay_service.ts b/src/core/public/overlays/overlay_service.ts index f62b49fa5efa..8d4a5f5f58b5 100644 --- a/src/core/public/overlays/overlay_service.ts +++ b/src/core/public/overlays/overlay_service.ts @@ -8,12 +8,14 @@ import { I18nStart } from '../i18n'; import { IUiSettingsClient } from '../ui_settings'; +import { ThemeServiceStart } from '../theme'; import { OverlayBannersStart, OverlayBannersService } from './banners'; import { FlyoutService, OverlayFlyoutStart } from './flyout'; import { ModalService, OverlayModalStart } from './modal'; interface StartDeps { i18n: I18nStart; + theme: ThemeServiceStart; targetDomElement: HTMLElement; uiSettings: IUiSettingsClient; } @@ -24,16 +26,16 @@ export class OverlayService { private modalService = new ModalService(); private flyoutService = new FlyoutService(); - public start({ i18n, targetDomElement, uiSettings }: StartDeps): OverlayStart { + public start({ i18n, targetDomElement, uiSettings, theme }: StartDeps): OverlayStart { const flyoutElement = document.createElement('div'); targetDomElement.appendChild(flyoutElement); - const flyouts = this.flyoutService.start({ i18n, targetDomElement: flyoutElement }); + const flyouts = this.flyoutService.start({ i18n, theme, targetDomElement: flyoutElement }); const banners = this.bannersService.start({ i18n, uiSettings }); const modalElement = document.createElement('div'); targetDomElement.appendChild(modalElement); - const modals = this.modalService.start({ i18n, targetDomElement: modalElement }); + const modals = this.modalService.start({ i18n, theme, targetDomElement: modalElement }); return { banners, diff --git a/src/core/public/plugins/plugin_context.ts b/src/core/public/plugins/plugin_context.ts index f87f07d553e0..345aea4b6cac 100644 --- a/src/core/public/plugins/plugin_context.ts +++ b/src/core/public/plugins/plugin_context.ts @@ -94,6 +94,7 @@ export function createPluginSetupContext< injectedMetadata: { getInjectedVar: deps.injectedMetadata.getInjectedVar, }, + theme: deps.theme, getStartServices: () => plugin.startDependencies, }; } @@ -140,5 +141,6 @@ export function createPluginStartContext< }, fatalErrors: deps.fatalErrors, deprecations: deps.deprecations, + theme: deps.theme, }; } diff --git a/src/core/public/plugins/plugins_service.test.ts b/src/core/public/plugins/plugins_service.test.ts index 6bed95800941..c4e3b7990ba3 100644 --- a/src/core/public/plugins/plugins_service.test.ts +++ b/src/core/public/plugins/plugins_service.test.ts @@ -35,6 +35,7 @@ import { CoreSetup, CoreStart, PluginInitializerContext } from '..'; import { docLinksServiceMock } from '../doc_links/doc_links_service.mock'; import { savedObjectsServiceMock } from '../saved_objects/saved_objects_service.mock'; import { deprecationsServiceMock } from '../deprecations/deprecations_service.mock'; +import { themeServiceMock } from '../theme/theme_service.mock'; export let mockPluginInitializers: Map; @@ -88,6 +89,7 @@ describe('PluginsService', () => { injectedMetadata: injectedMetadataServiceMock.createStartContract(), notifications: notificationServiceMock.createSetupContract(), uiSettings: uiSettingsServiceMock.createSetupContract(), + theme: themeServiceMock.createSetupContract(), }; mockSetupContext = { ...mockSetupDeps, @@ -108,6 +110,7 @@ describe('PluginsService', () => { savedObjects: savedObjectsServiceMock.createStartContract(), fatalErrors: fatalErrorsServiceMock.createStartContract(), deprecations: deprecationsServiceMock.createStartContract(), + theme: themeServiceMock.createStartContract(), }; mockStartContext = { ...mockStartDeps, diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md index 2e75d3f1ba03..d1a164a2ab13 100644 --- a/src/core/public/public.api.md +++ b/src/core/public/public.api.md @@ -41,6 +41,7 @@ import { RecursiveReadonly } from '@kbn/utility-types'; import { Request as Request_2 } from '@hapi/hapi'; import * as Rx from 'rxjs'; import { SchemaTypeError } from '@kbn/config-schema'; +import type { ThemeVersion } from '@kbn/ui-shared-deps-npm'; import type { TransportRequestOptions } from '@elastic/elasticsearch'; import type { TransportRequestParams } from '@elastic/elasticsearch'; import type { TransportResult } from '@elastic/elasticsearch'; @@ -170,6 +171,7 @@ export interface AppMountParameters { // @deprecated onAppLeave: (handler: AppLeaveHandler) => void; setHeaderActionMenu: (menuMount: MountPoint | undefined) => void; + theme$: Observable; } // @public @@ -407,6 +409,8 @@ export interface CoreSetup; @@ -682,7 +693,11 @@ export interface DocLinksStart { uptimeDurationAnomaly: string; }>; readonly alerting: Record; - readonly maps: Record; + readonly maps: Readonly<{ + guide: string; + importGeospatialPrivileges: string; + gdalTutorial: string; + }>; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; @@ -1664,6 +1679,18 @@ export class SimpleSavedObject { // @public export type StartServicesAccessor = () => Promise<[CoreStart, TPluginsStart, TStart]>; +// @public (undocumented) +export interface ThemeServiceSetup { + // (undocumented) + theme$: Observable; +} + +// @public (undocumented) +export interface ThemeServiceStart { + // (undocumented) + theme$: Observable; +} + // Warning: (ae-missing-release-tag) "Toast" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1760,6 +1787,6 @@ export interface UserProvidedValues { // Warnings were encountered during analysis: // -// src/core/public/core_system.ts:168:21 - (ae-forgotten-export) The symbol "InternalApplicationStart" needs to be exported by the entry point index.d.ts +// src/core/public/core_system.ts:173:21 - (ae-forgotten-export) The symbol "InternalApplicationStart" needs to be exported by the entry point index.d.ts ``` diff --git a/src/core/public/rendering/rendering_service.test.tsx b/src/core/public/rendering/rendering_service.test.tsx index bdca628b295c..7736b146543b 100644 --- a/src/core/public/rendering/rendering_service.test.tsx +++ b/src/core/public/rendering/rendering_service.test.tsx @@ -13,12 +13,16 @@ import { RenderingService } from './rendering_service'; import { applicationServiceMock } from '../application/application_service.mock'; import { chromeServiceMock } from '../chrome/chrome_service.mock'; import { overlayServiceMock } from '../overlays/overlay_service.mock'; +import { themeServiceMock } from '../theme/theme_service.mock'; +import { i18nServiceMock } from '../i18n/i18n_service.mock'; import { BehaviorSubject } from 'rxjs'; describe('RenderingService#start', () => { let application: ReturnType; let chrome: ReturnType; let overlays: ReturnType; + let i18n: ReturnType; + let theme: ReturnType; let targetDomElement: HTMLDivElement; let rendering: RenderingService; @@ -32,6 +36,10 @@ describe('RenderingService#start', () => { overlays = overlayServiceMock.createStartContract(); overlays.banners.getComponent.mockReturnValue(
I'm a banner!
); + theme = themeServiceMock.createStartContract(); + + i18n = i18nServiceMock.createStartContract(); + targetDomElement = document.createElement('div'); rendering = new RenderingService(); @@ -42,6 +50,8 @@ describe('RenderingService#start', () => { application, chrome, overlays, + i18n, + theme, targetDomElement, }); }; diff --git a/src/core/public/rendering/rendering_service.tsx b/src/core/public/rendering/rendering_service.tsx index d3f91851370d..7c84146d1aa8 100644 --- a/src/core/public/rendering/rendering_service.tsx +++ b/src/core/public/rendering/rendering_service.tsx @@ -8,12 +8,14 @@ import React from 'react'; import ReactDOM from 'react-dom'; -import { I18nProvider } from '@kbn/i18n/react'; import { pairwise, startWith } from 'rxjs/operators'; -import { InternalChromeStart } from '../chrome'; -import { InternalApplicationStart } from '../application'; -import { OverlayStart } from '../overlays'; +import type { InternalChromeStart } from '../chrome'; +import type { InternalApplicationStart } from '../application'; +import type { OverlayStart } from '../overlays'; +import type { ThemeServiceStart } from '../theme'; +import type { I18nStart } from '../i18n'; +import { CoreContextProvider } from '../utils'; import { AppWrapper } from './app_containers'; interface StartDeps { @@ -21,6 +23,8 @@ interface StartDeps { chrome: InternalChromeStart; overlays: OverlayStart; targetDomElement: HTMLDivElement; + theme: ThemeServiceStart; + i18n: I18nStart; } /** @@ -32,7 +36,7 @@ interface StartDeps { * @internal */ export class RenderingService { - start({ application, chrome, overlays, targetDomElement }: StartDeps) { + start({ application, chrome, overlays, theme, i18n, targetDomElement }: StartDeps) { const chromeHeader = chrome.getHeaderComponent(); const appComponent = application.getComponent(); const bannerComponent = overlays.banners.getComponent(); @@ -47,7 +51,7 @@ export class RenderingService { }); ReactDOM.render( - + <> {/* Fixed headers */} {chromeHeader} @@ -64,7 +68,7 @@ export class RenderingService { {appComponent} - , + , targetDomElement ); } diff --git a/src/core/public/theme/convert_core_theme.test.ts b/src/core/public/theme/convert_core_theme.test.ts new file mode 100644 index 000000000000..4e8473c0c45d --- /dev/null +++ b/src/core/public/theme/convert_core_theme.test.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { convertCoreTheme } from './convert_core_theme'; + +describe('convertCoreTheme', () => { + it('returns the correct `colorMode` when `darkMode` is enabled', () => { + expect(convertCoreTheme({ darkMode: true }).colorMode).toEqual('DARK'); + }); + + it('returns the correct `colorMode` when `darkMode` is disabled', () => { + expect(convertCoreTheme({ darkMode: false }).colorMode).toEqual('LIGHT'); + }); +}); diff --git a/src/core/public/theme/convert_core_theme.ts b/src/core/public/theme/convert_core_theme.ts new file mode 100644 index 000000000000..78acef40764b --- /dev/null +++ b/src/core/public/theme/convert_core_theme.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { EuiThemeSystem, EuiThemeColorMode } from '@elastic/eui'; +import type { CoreTheme } from './types'; + +/** @internal */ +export interface EuiTheme { + colorMode: EuiThemeColorMode; + euiThemeSystem?: EuiThemeSystem; +} + +/** @internal */ +export const convertCoreTheme = (coreTheme: CoreTheme): EuiTheme => { + const { darkMode } = coreTheme; + return { + colorMode: darkMode ? 'DARK' : 'LIGHT', + }; +}; diff --git a/src/core/public/theme/core_theme_provider.test.tsx b/src/core/public/theme/core_theme_provider.test.tsx new file mode 100644 index 000000000000..baa354f10f42 --- /dev/null +++ b/src/core/public/theme/core_theme_provider.test.tsx @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useEffect } from 'react'; +import { act } from 'react-dom/test-utils'; +import type { ReactWrapper } from 'enzyme'; +import { of, BehaviorSubject } from 'rxjs'; +import { useEuiTheme } from '@elastic/eui'; +import { mountWithIntl } from '@kbn/test/jest'; +import { CoreThemeProvider } from './core_theme_provider'; +import type { CoreTheme } from './types'; + +describe('CoreThemeProvider', () => { + let euiTheme: ReturnType | undefined; + + beforeEach(() => { + euiTheme = undefined; + }); + + const flushPromises = async () => { + await new Promise(async (resolve, reject) => { + try { + setImmediate(() => resolve()); + } catch (error) { + reject(error); + } + }); + }; + + const InnerComponent: FC = () => { + const theme = useEuiTheme(); + useEffect(() => { + euiTheme = theme; + }, [theme]); + return
foo
; + }; + + const refresh = async (wrapper: ReactWrapper) => { + await act(async () => { + await flushPromises(); + wrapper.update(); + }); + }; + + it('exposes the EUI theme provider', async () => { + const coreTheme: CoreTheme = { darkMode: true }; + + const wrapper = mountWithIntl( + + + + ); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('DARK'); + }); + + it('propagates changes of the coreTheme observable', async () => { + const coreTheme$ = new BehaviorSubject({ darkMode: true }); + + const wrapper = mountWithIntl( + + + + ); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('DARK'); + + await act(async () => { + coreTheme$.next({ darkMode: false }); + }); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('LIGHT'); + }); +}); diff --git a/src/core/public/theme/core_theme_provider.tsx b/src/core/public/theme/core_theme_provider.tsx new file mode 100644 index 000000000000..9f40cbd5393b --- /dev/null +++ b/src/core/public/theme/core_theme_provider.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useMemo } from 'react'; +import { Observable } from 'rxjs'; +import useObservable from 'react-use/lib/useObservable'; +import { EuiThemeProvider } from '@elastic/eui'; +import { CoreTheme } from './types'; +import { convertCoreTheme } from './convert_core_theme'; + +const defaultTheme: CoreTheme = { + darkMode: false, +}; + +interface CoreThemeProviderProps { + theme$: Observable; +} + +/** + * Wrapper around `EuiThemeProvider` converting (and exposing) core's theme to EUI theme. + * @internal Only meant to be used within core for internal usages of EUI/React + */ +export const CoreThemeProvider: FC = ({ theme$, children }) => { + const coreTheme = useObservable(theme$, defaultTheme); + const euiTheme = useMemo(() => convertCoreTheme(coreTheme), [coreTheme]); + return ( + + {children} + + ); +}; diff --git a/src/core/public/theme/index.ts b/src/core/public/theme/index.ts new file mode 100644 index 000000000000..1e2d07c8152c --- /dev/null +++ b/src/core/public/theme/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { ThemeService } from './theme_service'; +export type { CoreTheme, ThemeServiceSetup, ThemeServiceStart } from './types'; +export { CoreThemeProvider } from './core_theme_provider'; diff --git a/src/core/public/theme/theme_service.mock.ts b/src/core/public/theme/theme_service.mock.ts new file mode 100644 index 000000000000..86abcabf126b --- /dev/null +++ b/src/core/public/theme/theme_service.mock.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { of } from 'rxjs'; +import type { PublicMethodsOf } from '@kbn/utility-types'; +import type { ThemeServiceSetup, ThemeServiceStart, CoreTheme } from './types'; +import type { ThemeService } from './theme_service'; + +const mockTheme: CoreTheme = { + darkMode: false, +}; + +const createThemeMock = (): CoreTheme => { + return { ...mockTheme }; +}; + +const createTheme$Mock = () => { + return of(createThemeMock()); +}; + +const createThemeSetupMock = () => { + const setupMock: jest.Mocked = { + theme$: createTheme$Mock(), + }; + return setupMock; +}; + +const createThemeStartMock = () => { + const startMock: jest.Mocked = { + theme$: createTheme$Mock(), + }; + return startMock; +}; + +type ThemeServiceContract = PublicMethodsOf; + +const createServiceMock = () => { + const mocked: jest.Mocked = { + setup: jest.fn(), + start: jest.fn(), + stop: jest.fn(), + }; + + mocked.setup.mockReturnValue(createThemeSetupMock()); + mocked.start.mockReturnValue(createThemeStartMock()); + + return mocked; +}; + +export const themeServiceMock = { + create: createServiceMock, + createSetupContract: createThemeSetupMock, + createStartContract: createThemeStartMock, + createTheme: createThemeMock, + createTheme$: createTheme$Mock, +}; diff --git a/src/core/public/theme/theme_service.test.ts b/src/core/public/theme/theme_service.test.ts new file mode 100644 index 000000000000..d38ef98735a3 --- /dev/null +++ b/src/core/public/theme/theme_service.test.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { take } from 'rxjs/operators'; +import { injectedMetadataServiceMock } from '../injected_metadata/injected_metadata_service.mock'; +import { ThemeService } from './theme_service'; + +describe('ThemeService', () => { + let themeService: ThemeService; + let injectedMetadata: ReturnType; + + beforeEach(() => { + themeService = new ThemeService(); + injectedMetadata = injectedMetadataServiceMock.createSetupContract(); + }); + + describe('#setup', () => { + it('exposes a `theme$` observable with the values provided by the injected metadata', async () => { + injectedMetadata.getTheme.mockReturnValue({ version: 'v8', darkMode: true }); + const { theme$ } = themeService.setup({ injectedMetadata }); + const theme = await theme$.pipe(take(1)).toPromise(); + expect(theme).toEqual({ + darkMode: true, + }); + }); + }); + + describe('#start', () => { + it('throws if called before `#setup`', () => { + expect(() => { + themeService.start(); + }).toThrowErrorMatchingInlineSnapshot(`"setup must be called before start"`); + }); + + it('exposes a `theme$` observable with the values provided by the injected metadata', async () => { + injectedMetadata.getTheme.mockReturnValue({ version: 'v8', darkMode: true }); + themeService.setup({ injectedMetadata }); + const { theme$ } = themeService.start(); + const theme = await theme$.pipe(take(1)).toPromise(); + expect(theme).toEqual({ + darkMode: true, + }); + }); + }); +}); diff --git a/src/core/public/theme/theme_service.ts b/src/core/public/theme/theme_service.ts new file mode 100644 index 000000000000..fc67ac4a595e --- /dev/null +++ b/src/core/public/theme/theme_service.ts @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Subject, Observable, of } from 'rxjs'; +import { shareReplay, takeUntil } from 'rxjs/operators'; +import { InjectedMetadataSetup } from '../injected_metadata'; +import type { CoreTheme, ThemeServiceSetup, ThemeServiceStart } from './types'; + +interface SetupDeps { + injectedMetadata: InjectedMetadataSetup; +} + +export class ThemeService { + private theme$?: Observable; + private stop$ = new Subject(); + + public setup({ injectedMetadata }: SetupDeps): ThemeServiceSetup { + const theme = injectedMetadata.getTheme(); + this.theme$ = of({ darkMode: theme.darkMode }); + + return { + theme$: this.theme$.pipe(takeUntil(this.stop$), shareReplay(1)), + }; + } + + public start(): ThemeServiceStart { + if (!this.theme$) { + throw new Error('setup must be called before start'); + } + + return { + theme$: this.theme$.pipe(takeUntil(this.stop$), shareReplay(1)), + }; + } + + public stop() { + this.stop$.next(); + } +} diff --git a/src/core/public/theme/types.ts b/src/core/public/theme/types.ts new file mode 100644 index 000000000000..5f8672f3c902 --- /dev/null +++ b/src/core/public/theme/types.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { Observable } from 'rxjs'; + +/** + * Contains all the required information to apply Kibana's theme at the various levels it can be used. + * + * @public + */ +export interface CoreTheme { + /** is dark mode enabled or not */ + readonly darkMode: boolean; +} + +/** + * @public + */ +export interface ThemeServiceSetup { + theme$: Observable; +} + +/** + * @public + */ +export interface ThemeServiceStart { + theme$: Observable; +} diff --git a/src/core/public/utils/core_context_provider.tsx b/src/core/public/utils/core_context_provider.tsx new file mode 100644 index 000000000000..df070d26747d --- /dev/null +++ b/src/core/public/utils/core_context_provider.tsx @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC } from 'react'; +import { CoreThemeProvider } from '../theme/core_theme_provider'; +import type { ThemeServiceStart } from '../theme'; +import type { I18nStart } from '../i18n'; + +interface CoreContextProviderProps { + theme: ThemeServiceStart; + i18n: I18nStart; +} + +/** + * utility component exposing all the context providers required by core when integrating with react + **/ +export const CoreContextProvider: FC = ({ i18n, theme, children }) => { + return ( + + {children} + + ); +}; diff --git a/src/core/public/utils/index.ts b/src/core/public/utils/index.ts index dfb76b3ff05c..d28a8dcc3750 100644 --- a/src/core/public/utils/index.ts +++ b/src/core/public/utils/index.ts @@ -8,3 +8,4 @@ export { Sha256 } from './crypto'; export { MountWrapper, mountReactNode } from './mount'; +export { CoreContextProvider } from './core_context_provider'; diff --git a/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap b/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap index 5ea65cd8d0c7..4abf24911808 100644 --- a/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap +++ b/src/core/server/rendering/__snapshots__/rendering_service.test.ts.snap @@ -45,6 +45,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -100,6 +104,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -151,6 +159,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -202,6 +214,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -253,6 +269,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -308,6 +328,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -359,6 +383,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, @@ -410,6 +438,10 @@ Object { }, "publicBaseUrl": "http://myhost.com/mock-server-basepath", "serverBasePath": "/mock-server-basepath", + "theme": Object { + "darkMode": "theme:darkMode", + "version": "v8", + }, "uiPlugins": Array [], "vars": Object {}, "version": Any, diff --git a/src/core/server/rendering/index.ts b/src/core/server/rendering/index.ts index b89ffd6519ab..ce38cfab16de 100644 --- a/src/core/server/rendering/index.ts +++ b/src/core/server/rendering/index.ts @@ -7,4 +7,12 @@ */ export { RenderingService } from './rendering_service'; -export * from './types'; +export type { + InjectedMetadata, + InternalRenderingServicePreboot, + InternalRenderingServiceSetup, + IRenderOptions, + RenderingMetadata, + RenderingPrebootDeps, + RenderingSetupDeps, +} from './types'; diff --git a/src/core/server/rendering/rendering_service.tsx b/src/core/server/rendering/rendering_service.tsx index b1c6971d3c42..bcce7fb25875 100644 --- a/src/core/server/rendering/rendering_service.tsx +++ b/src/core/server/rendering/rendering_service.tsx @@ -124,6 +124,10 @@ export class RenderingService { i18n: { translationsUrl: `${basePath}/translations/${i18n.getLocale()}.json`, }, + theme: { + darkMode, + version: themeVersion, + }, csp: { warnLegacyBrowsers: http.csp.warnLegacyBrowsers }, externalUrl: http.externalUrl, vars: vars ?? {}, diff --git a/src/core/server/rendering/types.ts b/src/core/server/rendering/types.ts index ca6bab0dff1f..0cd4fe354730 100644 --- a/src/core/server/rendering/types.ts +++ b/src/core/server/rendering/types.ts @@ -27,34 +27,41 @@ export interface RenderingMetadata { darkMode: boolean; themeVersion: ThemeVersion; stylesheetPaths: string[]; - injectedMetadata: { - version: string; - buildNumber: number; - branch: string; - basePath: string; - serverBasePath: string; - publicBaseUrl?: string; - env: { - mode: EnvironmentMode; - packageInfo: PackageInfo; - }; - anonymousStatusPage: boolean; - i18n: { - translationsUrl: string; - }; - csp: Pick; - externalUrl: { policy: IExternalUrlPolicy[] }; - vars: Record; - uiPlugins: Array<{ - id: string; - plugin: DiscoveredPlugin; - config?: Record; - }>; - legacyMetadata: { - uiSettings: { - defaults: Record; - user: Record>; - }; + injectedMetadata: InjectedMetadata; +} + +/** @internal */ +export interface InjectedMetadata { + version: string; + buildNumber: number; + branch: string; + basePath: string; + serverBasePath: string; + publicBaseUrl?: string; + env: { + mode: EnvironmentMode; + packageInfo: PackageInfo; + }; + anonymousStatusPage: boolean; + i18n: { + translationsUrl: string; + }; + theme: { + darkMode: boolean; + version: ThemeVersion; + }; + csp: Pick; + externalUrl: { policy: IExternalUrlPolicy[] }; + vars: Record; + uiPlugins: Array<{ + id: string; + plugin: DiscoveredPlugin; + config?: Record; + }>; + legacyMetadata: { + uiSettings: { + defaults: Record; + user: Record>; }; }; } diff --git a/src/core/server/saved_objects/migrations/actions/integration_tests/actions.test.ts b/src/core/server/saved_objects/migrations/actions/integration_tests/actions.test.ts index 1b6a668fe57f..a32ff72375e8 100644 --- a/src/core/server/saved_objects/migrations/actions/integration_tests/actions.test.ts +++ b/src/core/server/saved_objects/migrations/actions/integration_tests/actions.test.ts @@ -292,8 +292,7 @@ describe('migration actions', () => { }); }); - // FAILED ES PROMOTION: https://github.com/elastic/kibana/issues/117856 - describe.skip('cloneIndex', () => { + describe('cloneIndex', () => { afterAll(async () => { try { await client.indices.delete({ index: 'clone_*' }); @@ -375,14 +374,14 @@ describe('migration actions', () => { expect.assertions(1); const task = cloneIndex({ client, source: 'no_such_index', target: 'clone_target_3' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "index": "no_such_index", - "type": "index_not_found_exception", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "index": "no_such_index", + "type": "index_not_found_exception", + }, + } + `); }); it('resolves left with a retryable_es_client_error if clone target already exists but takes longer than the specified timeout before turning yellow', async () => { // Create a red index @@ -407,7 +406,7 @@ describe('migration actions', () => { client, source: 'existing_index_with_write_block', target: 'clone_red_index', - timeout: '0s', + timeout: '1s', })(); await expect(cloneIndexPromise).resolves.toMatchInlineSnapshot(` @@ -419,6 +418,34 @@ describe('migration actions', () => { }, } `); + + // Now that we know timeouts work, make the index yellow again and call cloneIndex a second time to verify that it completes + + await client.indices.putSettings({ + index: 'clone_red_index', + body: { + // Enable all shard allocation so that the index status goes yellow + routing: { allocation: { enable: 'all' } }, + }, + }); + + // Call clone even though the index already exists with yellow state + const cloneIndexPromise2 = cloneIndex({ + client, + source: 'existing_index_with_write_block', + target: 'clone_red_index', + timeout: '30s', + })(); + + await expect(cloneIndexPromise2).resolves.toMatchInlineSnapshot(` + Object { + "_tag": "Right", + "right": Object { + "acknowledged": true, + "shardsAcknowledged": true, + }, + } + `); }); }); @@ -436,11 +463,11 @@ describe('migration actions', () => { })()) as Either.Right; const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); const results = ( (await searchForOutdatedDocuments(client, { @@ -476,11 +503,11 @@ describe('migration actions', () => { })()) as Either.Right; const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); const results = ( (await searchForOutdatedDocuments(client, { @@ -509,11 +536,11 @@ describe('migration actions', () => { })()) as Either.Right; const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); const results = ( (await searchForOutdatedDocuments(client, { batchSize: 1000, @@ -544,11 +571,11 @@ describe('migration actions', () => { })()) as Either.Right; let task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); // reindex without a script res = (await reindex({ @@ -561,11 +588,11 @@ describe('migration actions', () => { })()) as Either.Right; task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); // Assert that documents weren't overridden by the second, unscripted reindex const results = ( @@ -620,11 +647,11 @@ describe('migration actions', () => { })()) as Either.Right; const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "reindex_succeeded", + } + `); // Assert that existing documents weren't overridden, but that missing // documents were added by the reindex const results = ( @@ -677,13 +704,13 @@ describe('migration actions', () => { const task = waitForReindexTask({ client, taskId: reindexTaskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "type": "incompatible_mapping_exception", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "type": "incompatible_mapping_exception", + }, + } + `); }); it('resolves left incompatible_mapping_exception if all reindex failures are due to a mapper_parsing_exception', async () => { expect.assertions(1); @@ -716,13 +743,13 @@ describe('migration actions', () => { const task = waitForReindexTask({ client, taskId: reindexTaskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "type": "incompatible_mapping_exception", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "type": "incompatible_mapping_exception", + }, + } + `); }); it('resolves left index_not_found_exception if source index does not exist', async () => { expect.assertions(1); @@ -738,14 +765,14 @@ describe('migration actions', () => { })()) as Either.Right; const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "index": "no_such_index", - "type": "index_not_found_exception", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "index": "no_such_index", + "type": "index_not_found_exception", + }, + } + `); }); it('resolves left target_index_had_write_block if all failures are due to a write block', async () => { expect.assertions(1); @@ -761,13 +788,13 @@ describe('migration actions', () => { const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "type": "target_index_had_write_block", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "type": "target_index_had_write_block", + }, + } + `); }); it('resolves left if requireAlias=true and the target is not an alias', async () => { expect.assertions(1); @@ -783,14 +810,14 @@ describe('migration actions', () => { const task = waitForReindexTask({ client, taskId: res.right.taskId, timeout: '10s' }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "index": "existing_index_with_write_block", - "type": "index_not_found_exception", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "index": "existing_index_with_write_block", + "type": "index_not_found_exception", + }, + } + `); }); it('resolves left wait_for_task_completion_timeout when the task does not finish within the timeout', async () => { await waitForIndexStatusYellow({ @@ -841,11 +868,11 @@ describe('migration actions', () => { targetIndex: 'reindex_target_7', }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Right", - "right": "verify_reindex_succeeded", - } - `); + Object { + "_tag": "Right", + "right": "verify_reindex_succeeded", + } + `); }); it('resolves left if source and target indices have different amount of documents', async () => { expect.assertions(1); @@ -855,13 +882,13 @@ describe('migration actions', () => { targetIndex: 'existing_index_2', }); await expect(task()).resolves.toMatchInlineSnapshot(` - Object { - "_tag": "Left", - "left": Object { - "type": "verify_reindex_failed", - }, - } - `); + Object { + "_tag": "Left", + "left": Object { + "type": "verify_reindex_failed", + }, + } + `); }); it('rejects if source or target index does not exist', async () => { expect.assertions(2); diff --git a/src/plugins/console/server/lib/spec_definitions/js/filter.ts b/src/plugins/console/server/lib/spec_definitions/js/filter.ts index ce7686439943..79ce387ea142 100644 --- a/src/plugins/console/server/lib/spec_definitions/js/filter.ts +++ b/src/plugins/console/server/lib/spec_definitions/js/filter.ts @@ -79,16 +79,12 @@ filters.geo_bounding_box = { filters.geo_distance = { __template: { distance: 100, - distance_unit: 'km', FIELD: { lat: 40.73, lon: -74.1, }, }, distance: 100, - distance_unit: { - __one_of: ['km', 'miles'], - }, distance_type: { __one_of: ['arc', 'plane'], }, diff --git a/src/plugins/console/server/lib/spec_definitions/js/query/dsl.ts b/src/plugins/console/server/lib/spec_definitions/js/query/dsl.ts index 1a9998d2d704..50da221c7e6b 100644 --- a/src/plugins/console/server/lib/spec_definitions/js/query/dsl.ts +++ b/src/plugins/console/server/lib/spec_definitions/js/query/dsl.ts @@ -652,11 +652,61 @@ export const query = (specService: SpecDefinitionsService) => { }, geo_shape: { __template: { - location: {}, - relation: 'within', + FIELD: { + shape: { + type: 'envelope', + coordinates: [ + [-45, 45], + [45, -45], + ], + }, + relation: 'within', + }, }, __scope_link: '.filter.geo_shape', }, + geo_bounding_box: { + __template: { + FIELD: { + top_left: { + lat: 40.73, + lon: -74.1, + }, + bottom_right: { + lat: 40.717, + lon: -73.99, + }, + }, + }, + __scope_link: '.filter.geo_bounding_box', + }, + geo_distance: { + __template: { + distance: 100, + FIELD: { + lat: 40.73, + lon: -74.1, + }, + }, + __scope_link: '.filter.geo_distance', + }, + geo_polygon: { + __template: { + FIELD: { + points: [ + { + lat: 40.73, + lon: -74.1, + }, + { + lat: 40.83, + lon: -75.1, + }, + ], + }, + }, + __scope_link: '.filter.geo_polygon', + }, // js hint gets confused here /* jshint -W015 */ function_score: _.defaults( diff --git a/src/plugins/custom_integrations/common/index.ts b/src/plugins/custom_integrations/common/index.ts index f00b4c39405d..7881a4a0ca88 100755 --- a/src/plugins/custom_integrations/common/index.ts +++ b/src/plugins/custom_integrations/common/index.ts @@ -45,6 +45,7 @@ export const INTEGRATION_CATEGORY_DISPLAY = { language_client: 'Language client', upload_file: 'Upload a file', website_search: 'Website search', + geo: 'Geo', }; /** diff --git a/src/plugins/dev_tools/public/application.tsx b/src/plugins/dev_tools/public/application.tsx index 510dabf3b32d..1eb4a5f4e99e 100644 --- a/src/plugins/dev_tools/public/application.tsx +++ b/src/plugins/dev_tools/public/application.tsx @@ -7,6 +7,7 @@ */ import React, { useEffect, useRef } from 'react'; +import { Observable } from 'rxjs'; import ReactDOM from 'react-dom'; import { HashRouter as Router, Switch, Route, Redirect } from 'react-router-dom'; import { EuiTab, EuiTabs, EuiToolTip } from '@elastic/eui'; @@ -14,7 +15,7 @@ import { I18nProvider } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { euiThemeVars } from '@kbn/ui-shared-deps-src/theme'; -import { ApplicationStart, ChromeStart, ScopedHistory } from 'src/core/public'; +import { ApplicationStart, ChromeStart, ScopedHistory, CoreTheme } from 'src/core/public'; import { DevToolApp } from './dev_tool'; @@ -22,6 +23,7 @@ interface DevToolsWrapperProps { devTools: readonly DevToolApp[]; activeDevTool: DevToolApp; updateRoute: (newRoute: string) => void; + theme$: Observable; } interface MountedDevToolDescriptor { @@ -30,7 +32,7 @@ interface MountedDevToolDescriptor { unmountHandler: () => void; } -function DevToolsWrapper({ devTools, activeDevTool, updateRoute }: DevToolsWrapperProps) { +function DevToolsWrapper({ devTools, activeDevTool, updateRoute, theme$ }: DevToolsWrapperProps) { const mountedTool = useRef(null); useEffect( @@ -84,6 +86,7 @@ function DevToolsWrapper({ devTools, activeDevTool, updateRoute }: DevToolsWrapp setHeaderActionMenu: () => undefined, // TODO: adapt to use Core's ScopedHistory history: {} as any, + theme$, }; const unmountHandler = await activeDevTool.mount(params); @@ -148,6 +151,7 @@ export function renderApp( application: ApplicationStart, chrome: ChromeStart, history: ScopedHistory, + theme$: Observable, devTools: readonly DevToolApp[] ) { if (redirectOnMissingCapabilities(application)) { @@ -175,6 +179,7 @@ export function renderApp( updateRoute={props.history.push} activeDevTool={devTool} devTools={devTools} + theme$={theme$} /> )} /> diff --git a/src/plugins/dev_tools/public/plugin.ts b/src/plugins/dev_tools/public/plugin.ts index 5ccf61453316..e45e73c4b1b4 100644 --- a/src/plugins/dev_tools/public/plugin.ts +++ b/src/plugins/dev_tools/public/plugin.ts @@ -53,14 +53,14 @@ export class DevToolsPlugin implements Plugin { order: 9010, category: DEFAULT_APP_CATEGORIES.management, mount: async (params: AppMountParameters) => { - const { element, history } = params; + const { element, history, theme$ } = params; element.classList.add('devAppWrapper'); const [core] = await getStartServices(); const { application, chrome } = core; const { renderApp } = await import('./application'); - return renderApp(element, application, chrome, history, this.getSortedDevTools()); + return renderApp(element, application, chrome, history, theme$, this.getSortedDevTools()); }, }); diff --git a/src/plugins/discover/public/components/doc_table/components/pager/tool_bar_pagination.tsx b/src/plugins/discover/public/components/doc_table/components/pager/tool_bar_pagination.tsx index ccdb620e0ab8..ae5d2fa32ea6 100644 --- a/src/plugins/discover/public/components/doc_table/components/pager/tool_bar_pagination.tsx +++ b/src/plugins/discover/public/components/doc_table/components/pager/tool_bar_pagination.tsx @@ -18,6 +18,7 @@ import { } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; +import { euiLightVars } from '@kbn/ui-shared-deps-src/theme'; interface ToolBarPaginationProps { pageSize: number; @@ -27,6 +28,11 @@ interface ToolBarPaginationProps { onPageSizeChange: (size: number) => void; } +const TOOL_BAR_PAGINATION_STYLES = { + marginLeft: 'auto', + marginRight: euiLightVars.euiSizeL, +}; + export const ToolBarPagination = ({ pageSize, pageCount, @@ -61,12 +67,7 @@ export const ToolBarPagination = ({ )); return ( - + - + , | are not allowed.', + 'Enter an index pattern that matches one or more data sources. Use an asterisk (*) to match multiple characters. Spaces and the characters , /, ?, ", <, >, | are not allowed.', }), validations: [ { diff --git a/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx b/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx index e8ce4b468f22..7c3a2c6eb0e3 100644 --- a/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx +++ b/src/plugins/index_pattern_management/public/components/index_pattern_table/index_pattern_table.tsx @@ -47,7 +47,7 @@ const search = { }; const title = i18n.translate('indexPatternManagement.dataViewTable.title', { - defaultMessage: 'Data views', + defaultMessage: 'Data Views', }); const securityDataView = i18n.translate( diff --git a/src/plugins/kibana_react/public/index.ts b/src/plugins/kibana_react/public/index.ts index 46f8599b996a..2b39a6aa0e1f 100644 --- a/src/plugins/kibana_react/public/index.ts +++ b/src/plugins/kibana_react/public/index.ts @@ -27,7 +27,9 @@ export * from './notifications'; export { Markdown, MarkdownSimple } from './markdown'; export { reactToUiComponent, uiToReactComponent } from './adapters'; export { toMountPoint, MountPointPortal } from './util'; +export type { ToMountPointOptions } from './util'; export { RedirectAppLinks } from './app_links'; +export { wrapWithTheme, KibanaThemeProvider } from './theme'; /** dummy plugin, we just want kibanaReact to have its own bundle */ export function plugin() { diff --git a/src/plugins/kibana_react/public/theme/index.ts b/src/plugins/kibana_react/public/theme/index.ts new file mode 100644 index 000000000000..56e374946034 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/index.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { wrapWithTheme } from './wrap_with_theme'; +export { KibanaThemeProvider } from './kibana_theme_provider'; +export type { EuiTheme } from './types'; diff --git a/src/plugins/kibana_react/public/theme/kibana_theme_provider.test.tsx b/src/plugins/kibana_react/public/theme/kibana_theme_provider.test.tsx new file mode 100644 index 000000000000..f2d1484e4bb5 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/kibana_theme_provider.test.tsx @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useEffect } from 'react'; +import { act } from 'react-dom/test-utils'; +import type { ReactWrapper } from 'enzyme'; +import { of, BehaviorSubject } from 'rxjs'; +import { useEuiTheme } from '@elastic/eui'; +import { mountWithIntl } from '@kbn/test/jest'; +import type { CoreTheme } from 'src/core/public'; +import { KibanaThemeProvider } from './kibana_theme_provider'; + +describe('KibanaThemeProvider', () => { + let euiTheme: ReturnType | undefined; + + beforeEach(() => { + euiTheme = undefined; + }); + + const flushPromises = async () => { + await new Promise(async (resolve, reject) => { + try { + setImmediate(() => resolve()); + } catch (error) { + reject(error); + } + }); + }; + + const InnerComponent: FC = () => { + const theme = useEuiTheme(); + useEffect(() => { + euiTheme = theme; + }, [theme]); + return
foo
; + }; + + const refresh = async (wrapper: ReactWrapper) => { + await act(async () => { + await flushPromises(); + wrapper.update(); + }); + }; + + it('exposes the EUI theme provider', async () => { + const coreTheme: CoreTheme = { darkMode: true }; + + const wrapper = mountWithIntl( + + + + ); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('DARK'); + }); + + it('propagates changes of the coreTheme observable', async () => { + const coreTheme$ = new BehaviorSubject({ darkMode: true }); + + const wrapper = mountWithIntl( + + + + ); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('DARK'); + + await act(async () => { + coreTheme$.next({ darkMode: false }); + }); + + await refresh(wrapper); + + expect(euiTheme!.colorMode).toEqual('LIGHT'); + }); +}); diff --git a/src/plugins/kibana_react/public/theme/kibana_theme_provider.tsx b/src/plugins/kibana_react/public/theme/kibana_theme_provider.tsx new file mode 100644 index 000000000000..bd5d8c2ea845 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/kibana_theme_provider.tsx @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useMemo } from 'react'; +import useObservable from 'react-use/lib/useObservable'; +import { Observable } from 'rxjs'; +import { EuiThemeProvider } from '@elastic/eui'; +import type { CoreTheme } from '../../../../core/public'; +import { getColorMode } from './utils'; + +interface KibanaThemeProviderProps { + theme$: Observable; +} + +const defaultTheme: CoreTheme = { + darkMode: false, +}; + +export const KibanaThemeProvider: FC = ({ theme$, children }) => { + const theme = useObservable(theme$, defaultTheme); + const colorMode = useMemo(() => getColorMode(theme), [theme]); + return {children}; +}; diff --git a/src/plugins/kibana_react/public/theme/types.ts b/src/plugins/kibana_react/public/theme/types.ts new file mode 100644 index 000000000000..4da25b7f4890 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/types.ts @@ -0,0 +1,11 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { useEuiTheme } from '@elastic/eui'; + +export type EuiTheme = ReturnType; diff --git a/src/plugins/kibana_react/public/theme/utils.test.ts b/src/plugins/kibana_react/public/theme/utils.test.ts new file mode 100644 index 000000000000..57b37f4fb2f6 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/utils.test.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { getColorMode } from './utils'; + +describe('getColorMode', () => { + it('returns the correct `colorMode` when `darkMode` is enabled', () => { + expect(getColorMode({ darkMode: true })).toEqual('DARK'); + }); + + it('returns the correct `colorMode` when `darkMode` is disabled', () => { + expect(getColorMode({ darkMode: false })).toEqual('LIGHT'); + }); +}); diff --git a/src/plugins/kibana_react/public/theme/utils.ts b/src/plugins/kibana_react/public/theme/utils.ts new file mode 100644 index 000000000000..e85bc7833325 --- /dev/null +++ b/src/plugins/kibana_react/public/theme/utils.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { EuiThemeColorMode } from '@elastic/eui/src/services/theme/types'; +import type { CoreTheme } from '../../../../core/public'; + +export const getColorMode = (theme: CoreTheme): EuiThemeColorMode => { + // COLOR_MODES_STANDARD is not exported from eui + return theme.darkMode ? 'DARK' : 'LIGHT'; +}; diff --git a/src/plugins/kibana_react/public/theme/wrap_with_theme.tsx b/src/plugins/kibana_react/public/theme/wrap_with_theme.tsx new file mode 100644 index 000000000000..b07b93653c3e --- /dev/null +++ b/src/plugins/kibana_react/public/theme/wrap_with_theme.tsx @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { Observable } from 'rxjs'; +import type { CoreTheme } from '../../../../core/public'; +import { KibanaThemeProvider } from './kibana_theme_provider'; + +export const wrapWithTheme = ( + node: React.ReactNode, + theme$: Observable +): React.ReactElement => { + return {node}; +}; diff --git a/src/plugins/kibana_react/public/util/index.ts b/src/plugins/kibana_react/public/util/index.ts index e4d6ffc83f7b..0deada2d02c7 100644 --- a/src/plugins/kibana_react/public/util/index.ts +++ b/src/plugins/kibana_react/public/util/index.ts @@ -7,5 +7,6 @@ */ export { toMountPoint } from './to_mount_point'; +export type { ToMountPointOptions } from './to_mount_point'; export { MountPointPortal } from './mount_point_portal'; export { useIfMounted } from './utils'; diff --git a/src/plugins/kibana_react/public/util/to_mount_point.test.tsx b/src/plugins/kibana_react/public/util/to_mount_point.test.tsx new file mode 100644 index 000000000000..7f5bd0789cb1 --- /dev/null +++ b/src/plugins/kibana_react/public/util/to_mount_point.test.tsx @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { FC, useEffect } from 'react'; +import { act } from 'react-dom/test-utils'; +import { of, BehaviorSubject } from 'rxjs'; +import { useEuiTheme } from '@elastic/eui'; +import type { CoreTheme } from 'src/core/public'; +import { toMountPoint } from './to_mount_point'; + +describe('toMountPoint', () => { + let euiTheme: ReturnType | undefined; + + beforeEach(() => { + euiTheme = undefined; + }); + + const InnerComponent: FC = () => { + const theme = useEuiTheme(); + useEffect(() => { + euiTheme = theme; + }, [theme]); + return
foo
; + }; + + const flushPromises = async () => { + await new Promise(async (resolve, reject) => { + try { + setTimeout(() => resolve(), 20); + } catch (error) { + reject(error); + } + }); + }; + + it('exposes the euiTheme when `theme$` is provided', async () => { + const theme$ = of({ darkMode: true }); + const mount = toMountPoint(, { theme$ }); + + const targetEl = document.createElement('div'); + mount(targetEl); + + await flushPromises(); + + expect(euiTheme!.colorMode).toEqual('DARK'); + }); + + it('propagates changes of the theme$ observable', async () => { + const theme$ = new BehaviorSubject({ darkMode: true }); + + const mount = toMountPoint(, { theme$ }); + + const targetEl = document.createElement('div'); + mount(targetEl); + + await flushPromises(); + + expect(euiTheme!.colorMode).toEqual('DARK'); + + await act(async () => { + theme$.next({ darkMode: false }); + }); + await flushPromises(); + + expect(euiTheme!.colorMode).toEqual('LIGHT'); + }); +}); diff --git a/src/plugins/kibana_react/public/util/to_mount_point.tsx b/src/plugins/kibana_react/public/util/to_mount_point.tsx index 8ebc73d04feb..b43894be31c8 100644 --- a/src/plugins/kibana_react/public/util/to_mount_point.tsx +++ b/src/plugins/kibana_react/public/util/to_mount_point.tsx @@ -8,17 +8,27 @@ import React from 'react'; import ReactDOM from 'react-dom'; +import { Observable } from 'rxjs'; import { I18nProvider } from '@kbn/i18n/react'; -import { MountPoint } from 'kibana/public'; +import type { MountPoint, CoreTheme } from 'kibana/public'; +import { KibanaThemeProvider } from '../theme'; + +export interface ToMountPointOptions { + theme$?: Observable; +} /** * MountPoint converter for react nodes. * * @param node to get a mount point for */ -export const toMountPoint = (node: React.ReactNode): MountPoint => { +export const toMountPoint = ( + node: React.ReactNode, + { theme$ }: ToMountPointOptions = {} +): MountPoint => { + const content = theme$ ? {node} : node; const mount = (element: HTMLElement) => { - ReactDOM.render({node}, element); + ReactDOM.render({content}, element); return () => ReactDOM.unmountComponentAtNode(element); }; // only used for tests and snapshots serialization diff --git a/src/plugins/saved_objects_management/public/management_section/mount_section.tsx b/src/plugins/saved_objects_management/public/management_section/mount_section.tsx index cbebc72b20c5..948c75cd1ef9 100644 --- a/src/plugins/saved_objects_management/public/management_section/mount_section.tsx +++ b/src/plugins/saved_objects_management/public/management_section/mount_section.tsx @@ -13,6 +13,7 @@ import { I18nProvider } from '@kbn/i18n/react'; import { i18n } from '@kbn/i18n'; import { EuiLoadingSpinner } from '@elastic/eui'; import { CoreSetup } from 'src/core/public'; +import { wrapWithTheme } from '../../../kibana_react/public'; import { ManagementAppMountParams } from '../../../management/public'; import type { SavedObjectManagementTypeInfo } from '../../common/types'; import { StartDependencies, SavedObjectsManagementPluginStart } from '../plugin'; @@ -36,6 +37,7 @@ export const mountManagementSection = async ({ core, mountParams }: MountParams) await core.getStartServices(); const { capabilities } = coreStart.application; const { element, history, setBreadcrumbs } = mountParams; + const { theme$ } = core.theme; if (!allowedObjectTypes) { allowedObjectTypes = await getAllowedTypes(coreStart.http); @@ -54,39 +56,42 @@ export const mountManagementSection = async ({ core, mountParams }: MountParams) }; ReactDOM.render( - - - - - - }> - - - - - - - }> - - - - - - - , + wrapWithTheme( + + + + + + }> + + + + + + + }> + + + + + + + , + theme$ + ), element ); diff --git a/test/api_integration/apis/custom_integration/integrations.ts b/test/api_integration/apis/custom_integration/integrations.ts index 036eb2ef33c7..4d3915f5f229 100644 --- a/test/api_integration/apis/custom_integration/integrations.ts +++ b/test/api_integration/apis/custom_integration/integrations.ts @@ -22,7 +22,7 @@ export default function ({ getService }: FtrProviderContext) { expect(resp.body).to.be.an('array'); - expect(resp.body.length).to.be(34); + expect(resp.body.length).to.be(35); // Test for sample data card expect(resp.body.findIndex((c: { id: string }) => c.id === 'sample_data_all')).to.be.above( diff --git a/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/datacolumn/index.js b/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/datacolumn/index.js index bc77f347530b..5008aa42e802 100644 --- a/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/datacolumn/index.js +++ b/x-pack/plugins/canvas/canvas_plugin_src/uis/arguments/datacolumn/index.js @@ -28,7 +28,9 @@ const getMathValue = (argValue, columns) => { const matchedCol = columns.find(({ name }) => argValue === name); const val = matchedCol ? maybeQuoteValue(matchedCol.name) : argValue; const mathValue = getFormObject(val); - return { ...mathValue, column: mathValue.column || '' }; + + const validColumn = columns.some(({ name }) => mathValue.column === name); + return { ...mathValue, column: validColumn ? mathValue.column : '' }; } catch (e) { return { error: e.message }; } diff --git a/x-pack/plugins/canvas/public/components/workpad_page/integration_utils.js b/x-pack/plugins/canvas/public/components/workpad_page/integration_utils.js index 9e0627b2c089..8228593cd4f3 100644 --- a/x-pack/plugins/canvas/public/components/workpad_page/integration_utils.js +++ b/x-pack/plugins/canvas/public/components/workpad_page/integration_utils.js @@ -75,8 +75,40 @@ const missingParentCheck = (groups) => { }; export const shapesForNodes = (nodes) => { + // For a group, it's z-layer should be the same as the highest of it's children + // So we cache every nodes layer in this array so when we get to a group + // we can refer back to all of the elements and figure out the appropriate layer + // for the group + const nodeLayers = nodes.map(() => null); + + const getNodeLayer = (nodeIndex) => { + if (nodeLayers[nodeIndex]) { + return nodeLayers[nodeIndex]; + } + + const node = nodes[nodeIndex]; + const thisId = node.id; + + const childrenIndexesOfThisNode = nodes + .map((n, i) => [n, i]) + .filter(([node]) => node.position.parent === thisId) + .map(([, index]) => index); + + if (childrenIndexesOfThisNode.length === 0) { + nodeLayers[nodeIndex] = nodeIndex; + } else { + const layer = Math.max(...childrenIndexesOfThisNode.map(getNodeLayer)); + nodeLayers[nodeIndex] = layer; + } + + return nodeLayers[nodeIndex]; + }; + const rawShapes = nodes - .map(elementToShape) + .map((node, index) => { + const layer = getNodeLayer(index); + return elementToShape(node, layer); + }) // filtering to eliminate residual element of a possible group that had been deleted in Redux .filter((d, i, a) => !isGroupId(d.id) || a.find((s) => s.parent === d.id)) .filter(dedupe); diff --git a/x-pack/plugins/canvas/public/lib/aeroelastic/geometry.js b/x-pack/plugins/canvas/public/lib/aeroelastic/geometry.js index 9fff28142a05..883fc20e853a 100644 --- a/x-pack/plugins/canvas/public/lib/aeroelastic/geometry.js +++ b/x-pack/plugins/canvas/public/lib/aeroelastic/geometry.js @@ -73,7 +73,13 @@ const planeTuple = (transformMatrix, x, y) => { const x0 = rightPoint[0] - centerPoint[0]; const y0 = rightPoint[1] - centerPoint[1]; const x1 = upPoint[0] - centerPoint[0]; - const y1 = upPoint[1] - centerPoint[1]; + // If the shape is rotated so it's straight up or down (90 deg or -90 deg) then + // y1 is going to be zero here and cause divide by zero issues further down. + // The resulting planeVector accounts for this, but it's returning something incorrect that causes z + // to be calculated incorrectly. + // So instead we're going to set y1 to almost zero so we don't have to worry abou the divide by zeros + // and we still end up with an almost correct planeVector + const y1 = upPoint[1] - centerPoint[1] || 0.00000000001; const rightSlope = y1 ? rightPoint[2] - centerPoint[2] : 0; // handle degenerate case: y1 === 0 (infinite slope) const upSlope = y1 ? upPoint[2] - centerPoint[2] : 0; // handle degenerate case: y1 === 0 (infinite slope) const inverseProjection = invert(transformMatrix); diff --git a/x-pack/plugins/enterprise_search/server/integrations.ts b/x-pack/plugins/enterprise_search/server/integrations.ts index 633f5638cc05..fe8e584b65be 100644 --- a/x-pack/plugins/enterprise_search/server/integrations.ts +++ b/x-pack/plugins/enterprise_search/server/integrations.ts @@ -305,12 +305,12 @@ export const registerEnterpriseSearchIntegrations = ( customIntegrations.registerCustomIntegration({ id: 'app_search_web_crawler', title: i18n.translate('xpack.enterpriseSearch.appSearch.integrations.webCrawlerName', { - defaultMessage: 'Web Crawler', + defaultMessage: 'Web site crawler', }), description: i18n.translate( 'xpack.enterpriseSearch.appSearch.integrations.webCrawlerDescription', { - defaultMessage: "Add search to your website with App Search's web crawler.", + defaultMessage: 'Add search to your website with the App Search web crawler.', } ), categories: ['website_search'], @@ -318,7 +318,7 @@ export const registerEnterpriseSearchIntegrations = ( icons: [ { type: 'eui', - src: 'globe', + src: 'logoAppSearch', }, ], shipper: 'enterprise_search', @@ -338,7 +338,7 @@ export const registerEnterpriseSearchIntegrations = ( icons: [ { type: 'eui', - src: 'exportAction', + src: 'logoAppSearch', }, ], shipper: 'enterprise_search', @@ -358,7 +358,7 @@ export const registerEnterpriseSearchIntegrations = ( icons: [ { type: 'eui', - src: 'editorCodeBlock', + src: 'logoAppSearch', }, ], shipper: 'enterprise_search', diff --git a/x-pack/plugins/fleet/server/services/epm/archive/validation.ts b/x-pack/plugins/fleet/server/services/epm/archive/validation.ts index a46a26738bda..8d20d88c7a9a 100644 --- a/x-pack/plugins/fleet/server/services/epm/archive/validation.ts +++ b/x-pack/plugins/fleet/server/services/epm/archive/validation.ts @@ -61,7 +61,6 @@ const optionalArchivePackageProps: readonly OptionalPackageProp[] = [ 'readme', 'assets', 'data_streams', - 'internal', 'license', 'type', 'categories', diff --git a/x-pack/plugins/fleet/server/services/epm/packages/get.ts b/x-pack/plugins/fleet/server/services/epm/packages/get.ts index b6a1850fed5b..83bb8125e077 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/get.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/get.ts @@ -54,15 +54,11 @@ export async function getPackages( }); // get the installed packages const packageSavedObjects = await getPackageSavedObjects(savedObjectsClient); - // filter out any internal packages - const savedObjectsVisible = packageSavedObjects.saved_objects.filter( - (o) => !o.attributes.internal - ); const packageList = registryItems .map((item) => createInstallableFrom( item, - savedObjectsVisible.find(({ id }) => id === item.name) + packageSavedObjects.saved_objects.find(({ id }) => id === item.name) ) ) .sort(sortByName); diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index 42f4663dc21e..5b86c944feb3 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -530,7 +530,7 @@ export async function createInstallation(options: { installSource: InstallSource; }) { const { savedObjectsClient, packageInfo, installSource } = options; - const { internal = false, name: pkgName, version: pkgVersion } = packageInfo; + const { name: pkgName, version: pkgVersion } = packageInfo; const removable = !isUnremovablePackage(pkgName); const toSaveESIndexPatterns = generateESIndexPatterns(packageInfo.data_streams); @@ -549,7 +549,6 @@ export async function createInstallation(options: { es_index_patterns: toSaveESIndexPatterns, name: pkgName, version: pkgVersion, - internal, removable, install_version: pkgVersion, install_status: 'installing', diff --git a/x-pack/plugins/fleet/server/services/epm/registry/index.ts b/x-pack/plugins/fleet/server/services/epm/registry/index.ts index 85a52763b7fb..ff829eca5ec1 100644 --- a/x-pack/plugins/fleet/server/services/epm/registry/index.ts +++ b/x-pack/plugins/fleet/server/services/epm/registry/index.ts @@ -96,9 +96,7 @@ export async function fetchList(params?: SearchParams): Promise { const registryUrl = getRegistryUrl(); - const url = new URL( - `${registryUrl}/search?package=${packageName}&internal=true&experimental=true` - ); + const url = new URL(`${registryUrl}/search?package=${packageName}&experimental=true`); setKibanaVersion(url); diff --git a/x-pack/plugins/fleet/storybook/context/index.tsx b/x-pack/plugins/fleet/storybook/context/index.tsx index 76425540c2fb..ae18f393970f 100644 --- a/x-pack/plugins/fleet/storybook/context/index.tsx +++ b/x-pack/plugins/fleet/storybook/context/index.tsx @@ -7,6 +7,7 @@ import React, { useEffect, useMemo, useCallback } from 'react'; +import { EMPTY } from 'rxjs'; import type { StoryContext } from '@storybook/react'; import { createBrowserHistory } from 'history'; @@ -69,6 +70,9 @@ export const StorybookContext: React.FC<{ storyContext?: StoryContext }> = ({ notifications: getNotifications(), share: getShare(), uiSettings: getUiSettings(), + theme: { + theme$: EMPTY, + }, }), [isCloudEnabled] ); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.test.tsx index 1c2e64735ca1..a204c1ec590a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.test.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { MouseEventHandler } from 'react'; +import React from 'react'; import { shallow, mount } from 'enzyme'; import { act } from 'react-dom/test-utils'; import { EuiPopover, EuiLink } from '@elastic/eui'; @@ -20,19 +20,6 @@ jest.mock('.', () => ({ defaultLabel: 'label', })); -const defaultProps = { - filter: { - input: { query: 'bytes >= 1', language: 'kuery' }, - label: 'More than one', - id: '1', - }, - setFilter: jest.fn(), - indexPattern: createMockedIndexPattern(), - Button: ({ onClick }: { onClick: MouseEventHandler }) => ( - trigger - ), - initiallyOpen: true, -}; jest.mock('../../../../../../../../src/plugins/data/public', () => ({ QueryStringInput: () => { return 'QueryStringInput'; @@ -40,6 +27,67 @@ jest.mock('../../../../../../../../src/plugins/data/public', () => ({ })); describe('filter popover', () => { + let defaultProps: Parameters[0]; + let mockOnClick: jest.Mock; + + beforeEach(() => { + mockOnClick = jest.fn(); + + defaultProps = { + filter: { + input: { query: 'bytes >= 1', language: 'kuery' }, + label: 'More than one', + id: '1', + }, + setFilter: jest.fn(), + indexPattern: createMockedIndexPattern(), + Button: () => trigger, + isOpen: true, + triggerClose: () => {}, + }; + }); + + describe('interactions', () => { + it('should open/close according to isOpen', () => { + const instance = mount(); + + expect(instance.find(EuiPopover).prop('isOpen')).toEqual(true); + + instance.setProps({ ...defaultProps, isOpen: false }); + instance.update(); + + expect(instance.find(EuiPopover).prop('isOpen')).toEqual(false); + }); + + it('should report click event', () => { + const instance = mount(); + + expect(mockOnClick).not.toHaveBeenCalled(); + + instance.find(EuiPopover).find('button').simulate('click', {}); + + expect(mockOnClick).toHaveBeenCalledTimes(1); + }); + + it('should trigger close', () => { + const props = { ...defaultProps, triggerClose: jest.fn() }; + const instance = mount(); + expect(instance.find(EuiPopover).prop('isOpen')).toEqual(true); + + // Trigger from EuiPopover + act(() => { + instance.find(EuiPopover).prop('closePopover')!(); + }); + expect(props.triggerClose).toHaveBeenCalledTimes(1); + + // Trigger from submit + act(() => { + instance.find(LabelInput).prop('onSubmit')!(); + }); + expect(props.triggerClose).toHaveBeenCalledTimes(2); + }); + }); + it('passes correct props to QueryStringInput', () => { const instance = mount(); instance.update(); @@ -52,16 +100,7 @@ describe('filter popover', () => { }) ); }); - it('should be open if is open by creation', () => { - const instance = mount(); - instance.update(); - expect(instance.find(EuiPopover).prop('isOpen')).toEqual(true); - act(() => { - instance.find(EuiPopover).prop('closePopover')!(); - }); - instance.update(); - expect(instance.find(EuiPopover).prop('isOpen')).toEqual(false); - }); + it('should call setFilter when modifying QueryInput', () => { const setFilter = jest.fn(); const instance = shallow(); @@ -78,6 +117,7 @@ describe('filter popover', () => { id: '1', }); }); + it('should call setFilter when modifying LabelInput', () => { const setFilter = jest.fn(); const instance = shallow(); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.tsx index bfb0cffece57..cf95ae2dfd0e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filter_popover.tsx @@ -7,7 +7,7 @@ import './filter_popover.scss'; -import React, { MouseEventHandler, useEffect, useState } from 'react'; +import React from 'react'; import { EuiPopover, EuiSpacer } from '@elastic/eui'; import { FilterValue, defaultLabel, isQueryValid } from '.'; import { IndexPattern } from '../../../types'; @@ -20,28 +20,40 @@ export const FilterPopover = ({ setFilter, indexPattern, Button, - initiallyOpen, + isOpen, + triggerClose, }: { filter: FilterValue; setFilter: Function; indexPattern: IndexPattern; - Button: React.FunctionComponent<{ onClick: MouseEventHandler }>; - initiallyOpen: boolean; + Button: React.FunctionComponent; + isOpen: boolean; + triggerClose: () => void; }) => { - const [isPopoverOpen, setIsPopoverOpen] = useState(false); const inputRef = React.useRef(); - // set popover open on start to work around EUI bug - useEffect(() => { - setIsPopoverOpen(initiallyOpen); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + // The following code is to prevent an keypress + // from propagating. + // + // TODO - It looks like EUI should be handling this + // (see https://github.com/elastic/eui/commit/ad97583b0d644690379f72c7a20879cfadb16e7a) + const popoverRef = React.useRef(null); + let panelElement: HTMLDivElement; + const panelRefCallback = (element: HTMLDivElement) => { + const listener = (event: KeyboardEvent) => { + if (event.key === 'Escape') { + event.stopPropagation(); + panelElement.removeEventListener('keydown', listener); + popoverRef.current?.closePopover(); + } + }; - const closePopover = () => { - if (isPopoverOpen) { - setIsPopoverOpen(false); + if (element) { + panelElement = element; + panelElement.addEventListener('keydown', listener); } }; + // End handling code const setFilterLabel = (label: string) => setFilter({ ...filter, label }); const setFilterQuery = (input: Query) => setFilter({ ...filter, input }); @@ -58,19 +70,15 @@ export const FilterPopover = ({ return ( closePopover()} - button={ -