@rancher/shell 0.5.3 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.DS_Store +0 -0
- package/assets/images/providers/aks-black.svg +28 -0
- package/assets/images/providers/aks.svg +31 -0
- package/assets/styles/global/_labeled-input.scss +1 -0
- package/assets/styles/global/_layout.scss +0 -99
- package/assets/translations/en-us.yaml +76 -74
- package/assets/translations/zh-hans.yaml +25 -23
- package/babel.config.js +1 -7
- package/chart/gatekeeper.vue +11 -2
- package/chart/istio.vue +10 -1
- package/chart/logging/index.vue +11 -2
- package/chart/monitoring/alerting/index.vue +21 -7
- package/chart/monitoring/grafana/index.vue +2 -57
- package/chart/monitoring/index.vue +26 -52
- package/chart/monitoring/prometheus/index.vue +43 -37
- package/chart/rancher-backup/index.vue +10 -3
- package/cloud-credential/azure.vue +17 -4
- package/components/AsyncButton.vue +0 -9
- package/components/Carousel.vue +0 -1
- package/components/ChartPsp.vue +76 -0
- package/components/ClusterIconMenu.vue +9 -24
- package/components/CodeMirror.vue +16 -75
- package/components/CopyCode.vue +2 -6
- package/components/CopyToClipboard.vue +1 -2
- package/components/CopyToClipboardText.vue +9 -14
- package/components/CruResource.vue +0 -1
- package/components/EtcdInfoBanner.vue +5 -5
- package/components/ExplorerProjectsNamespaces.vue +1 -25
- package/components/FixedBanner.vue +0 -1
- package/components/IconOrSvg.vue +1 -1
- package/components/Markdown.vue +12 -16
- package/components/Questions/index.vue +1 -1
- package/components/ResourceDetail/Masthead.vue +9 -25
- package/components/ResourceDetail/index.vue +4 -1
- package/components/ResourceList/Masthead.vue +18 -1
- package/components/ResourceTable.vue +2 -14
- package/components/ResourceYaml.vue +5 -34
- package/components/SideNav.vue +65 -43
- package/components/SortableTable/THead.vue +9 -7
- package/components/SortableTable/index.vue +2 -1
- package/components/StatusTable.vue +1 -5
- package/components/TabTitle.vue +84 -0
- package/components/Tabbed/index.vue +0 -12
- package/components/YamlEditor.vue +0 -1
- package/components/__tests__/ChartPsp.test.ts +75 -0
- package/components/__tests__/CopyCode.test.ts +4 -5
- package/components/fleet/FleetBundles.vue +11 -5
- package/components/fleet/FleetRepos.vue +27 -62
- package/components/fleet/FleetResources.vue +1 -6
- package/components/fleet/FleetStatus.vue +3 -3
- package/components/fleet/FleetSummary.vue +30 -35
- package/components/form/ArrayList.vue +8 -1
- package/components/form/ArrayListSelect.vue +9 -9
- package/components/form/BannerSettings.vue +0 -3
- package/components/form/FileSelector.vue +0 -1
- package/components/form/KeyValue.vue +0 -2
- package/components/form/LabeledSelect.vue +0 -4
- package/components/form/Password.vue +1 -3
- package/components/form/Select.vue +1 -1
- package/components/form/SelectOrCreateAuthSecret.vue +4 -4
- package/components/form/__tests__/KeyValue.test.ts +1 -1
- package/components/formatter/Checked.vue +3 -11
- package/components/formatter/ClusterProvider.vue +18 -1
- package/components/formatter/FleetSummaryGraph.vue +11 -23
- package/components/formatter/LiveDate.vue +16 -0
- package/components/formatter/LiveDuration.vue +1 -1
- package/components/formatter/PercentageBar.vue +1 -1
- package/components/formatter/WorkloadDetailEndpoints.vue +22 -12
- package/components/formatter/__tests__/ClusterProvider.test.ts +28 -0
- package/components/nav/Group.vue +2 -2
- package/components/nav/Header.vue +2 -2
- package/components/nav/Jump.vue +9 -19
- package/components/nav/TopLevelMenu.vue +18 -66
- package/components/nav/Type.vue +7 -16
- package/components/nav/WindowManager/ContainerLogs.vue +19 -120
- package/components/nav/WindowManager/ContainerShell.vue +1 -6
- package/components/nav/WindowManager/index.vue +10 -11
- package/components/nav/__tests__/TopLevelMenu.test.ts +1 -34
- package/components/nav/__tests__/Type.test.ts +1 -31
- package/components/nuxt/nuxt-child.js +78 -14
- package/components/nuxt/nuxt.js +1 -1
- package/components/user.retention/user-retention-header.vue +34 -0
- package/composables/useI18n.ts +26 -0
- package/composables/useStore.ts +16 -0
- package/config/harvester-manager-types.js +0 -2
- package/config/home-links.js +32 -2
- package/config/private-label.js +0 -22
- package/config/product/explorer.js +4 -4
- package/config/product/fleet.js +1 -6
- package/config/product/legacy.js +1 -84
- package/config/product/manager.js +15 -8
- package/config/query-params.js +0 -1
- package/config/router.js +368 -385
- package/config/settings.ts +9 -2
- package/config/store.js +1 -1
- package/config/system-namespaces.js +0 -3
- package/config/table-headers.js +27 -47
- package/config/types.js +5 -0
- package/config/uiplugins.js +1 -1
- package/core/plugin-helpers.js +5 -3
- package/core/plugin-routes.ts +114 -56
- package/core/plugin.ts +10 -16
- package/core/plugins-loader.js +9 -7
- package/core/plugins.js +3 -0
- package/core/types-provisioning.ts +0 -7
- package/creators/app/init +0 -19
- package/detail/fleet.cattle.io.bundle.vue +1 -1
- package/detail/fleet.cattle.io.cluster.vue +1 -11
- package/detail/node.vue +0 -42
- package/detail/pod.vue +1 -68
- package/detail/provisioning.cattle.io.cluster.vue +8 -25
- package/detail/workload/index.vue +1 -15
- package/dialog/ScaleMachineDownDialog.vue +17 -34
- package/edit/auth/googleoauth.vue +5 -1
- package/edit/catalog.cattle.io.clusterrepo.vue +7 -20
- package/edit/cloudcredential.vue +0 -2
- package/edit/fleet.cattle.io.gitrepo.vue +4 -3
- package/edit/management.cattle.io.project.vue +52 -1
- package/edit/management.cattle.io.setting.vue +2 -32
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +2 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +1 -1
- package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +3 -12
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +1 -2
- package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/{tabs/Basics.vue → Basics.vue} +125 -106
- package/edit/provisioning.cattle.io.cluster/{tabs/MachinePool.vue → MachinePool.vue} +7 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +7 -15
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +237 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/{CustomCommand.test.ts → CustomCommand.tests.ts} +0 -6
- package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +1 -7
- package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/index.vue +40 -109
- package/edit/provisioning.cattle.io.cluster/rke2.vue +689 -152
- package/edit/service.vue +0 -12
- package/edit/token.vue +0 -1
- package/edit/workload/Upgrading.vue +2 -3
- package/edit/workload/index.vue +1 -2
- package/edit/workload/mixins/workload.js +1 -1
- package/initialize/App.js +71 -25
- package/initialize/client.js +162 -21
- package/initialize/index.js +124 -47
- package/initialize/layouts.ts +26 -0
- package/{components/templates → layouts}/blank.vue +1 -1
- package/{components/templates → layouts}/default.vue +98 -8
- package/{components/templates → layouts}/error.vue +19 -10
- package/{components/templates → layouts}/home.vue +1 -4
- package/{components/templates → layouts}/plain.vue +1 -4
- package/{components/templates → layouts}/standalone.vue +1 -1
- package/{components/templates → layouts}/unauthenticated.vue +1 -1
- package/list/catalog.cattle.io.app.vue +0 -1
- package/list/management.cattle.io.feature.vue +7 -1
- package/list/management.cattle.io.setting.vue +0 -1
- package/list/management.cattle.io.user.vue +25 -1
- package/list/node.vue +0 -1
- package/machine-config/__tests__/vmwarevsphere.test.ts +161 -56
- package/machine-config/azure.vue +37 -21
- package/machine-config/vmwarevsphere.vue +47 -42
- package/middleware/authenticated.js +19 -14
- package/mixins/auth-config.js +7 -2
- package/mixins/brand.js +41 -29
- package/mixins/fetch.server.js +73 -0
- package/mixins/labeled-form-element.ts +1 -6
- package/models/__tests__/management.cattle.io.node.ts +0 -85
- package/models/__tests__/namespace.test.ts +9 -49
- package/models/cluster/node.js +4 -4
- package/models/cluster.x-k8s.io.machine.js +1 -1
- package/models/cluster.x-k8s.io.machinedeployment.js +0 -14
- package/models/fleet.cattle.io.cluster.js +0 -4
- package/models/fleet.cattle.io.gitrepo.js +13 -56
- package/models/management.cattle.io.cluster.js +3 -11
- package/models/management.cattle.io.kontainerdriver.js +0 -1
- package/models/management.cattle.io.node.js +14 -18
- package/models/management.cattle.io.nodepool.js +0 -17
- package/models/management.cattle.io.project.js +36 -0
- package/models/management.cattle.io.setting.js +7 -11
- package/models/management.cattle.io.user.js +65 -0
- package/models/namespace.js +1 -1
- package/models/pod.js +0 -20
- package/models/provisioning.cattle.io.cluster.js +9 -91
- package/models/secret.js +18 -126
- package/models/storage.k8s.io.storageclass.js +1 -1
- package/models/workload.js +0 -16
- package/models/workload.service.js +0 -18
- package/package.json +10 -12
- package/pages/about.vue +1 -0
- package/pages/account/create-key.vue +1 -0
- package/pages/account/index.vue +1 -0
- package/pages/auth/login.vue +1 -0
- package/pages/auth/logout.vue +2 -0
- package/pages/auth/setup.vue +4 -37
- package/pages/auth/verify.vue +8 -14
- package/pages/c/_cluster/apps/charts/__tests__/install.helper.test.ts +17 -2
- package/pages/c/_cluster/apps/charts/index.vue +58 -64
- package/pages/c/_cluster/apps/charts/install.helpers.js +13 -2
- package/pages/c/_cluster/apps/charts/install.vue +5 -5
- package/pages/c/_cluster/apps/index.vue +2 -0
- package/pages/c/_cluster/auth/index.vue +2 -0
- package/pages/c/_cluster/auth/user.retention/index.vue +384 -0
- package/pages/c/_cluster/ecm/index.vue +2 -0
- package/pages/c/_cluster/explorer/index.vue +53 -56
- package/pages/c/_cluster/explorer/tools/index.vue +3 -171
- package/pages/c/_cluster/fleet/index.vue +1 -1
- package/pages/c/_cluster/index.vue +2 -0
- package/pages/c/_cluster/manager/pages/_page.vue +5 -4
- package/pages/c/_cluster/monitoring/index.vue +1 -17
- package/pages/c/_cluster/settings/DefaultLinksEditor.vue +1 -1
- package/pages/c/_cluster/settings/banners.vue +2 -0
- package/pages/c/_cluster/settings/brand.vue +2 -3
- package/pages/c/_cluster/settings/index.vue +2 -0
- package/pages/c/_cluster/settings/links.vue +3 -2
- package/pages/c/_cluster/settings/performance.vue +1 -0
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +1 -2
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +46 -10
- package/pages/c/_cluster/uiplugins/index.vue +2 -0
- package/pages/c/index.vue +9 -0
- package/pages/diagnostic.vue +2 -1
- package/pages/fail-whale.vue +1 -0
- package/pages/prefs.vue +1 -0
- package/pages/rio/mesh.vue +508 -0
- package/pages/support/index.vue +8 -2
- package/pkg/auto-import.js +1 -1
- package/plugins/axios.js +36 -0
- package/plugins/back-button.js +5 -3
- package/plugins/clean-html-directive.js +19 -1
- package/plugins/clean-tooltip-directive.js +1 -1
- package/plugins/codemirror-loader.js +1 -1
- package/plugins/codemirror.js +0 -41
- package/plugins/dashboard-store/__tests__/{mutations.test.ts → mutations.spec.ts} +1 -1
- package/plugins/dashboard-store/actions.js +17 -16
- package/plugins/dashboard-store/classify.js +18 -1
- package/plugins/dashboard-store/getters.js +7 -70
- package/plugins/dashboard-store/index.js +12 -0
- package/plugins/dashboard-store/mutations.js +4 -0
- package/plugins/dashboard-store/resource-class.js +20 -65
- package/plugins/i18n.js +1 -1
- package/plugins/steve/__tests__/getters.spec.ts +48 -26
- package/plugins/steve/__tests__/subscribe.spec.ts +106 -0
- package/plugins/steve/actions.js +37 -3
- package/plugins/steve/getters.js +24 -7
- package/plugins/steve/mutations.js +5 -2
- package/plugins/steve/norman-class.js +0 -19
- package/plugins/steve/steve-class.js +0 -22
- package/plugins/steve/subscribe.js +34 -13
- package/plugins/transitions.js +4 -0
- package/plugins/vue-clipboard2.js +4 -0
- package/rancher-components/Accordion/Accordion.vue +3 -2
- package/rancher-components/BadgeState/BadgeState.vue +3 -3
- package/rancher-components/Banner/Banner.test.ts +1 -5
- package/rancher-components/Banner/Banner.vue +2 -2
- package/rancher-components/Card/Card.vue +4 -4
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -3
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +1 -1
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +55 -24
- package/rancher-components/Form/Radio/RadioButton.test.ts +1 -3
- package/rancher-components/Form/Radio/RadioButton.vue +13 -7
- package/rancher-components/Form/Radio/RadioGroup.vue +4 -3
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +7 -5
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/StringList/StringList.vue +8 -8
- package/rancher-components/components/Accordion/Accordion.vue +3 -2
- package/rancher-components/components/BadgeState/BadgeState.test.ts +12 -0
- package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +2 -19
- package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +14 -11
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -1
- package/rancher-components/components/StringList/StringList.test.ts +0 -270
- package/rancher-components/components/StringList/StringList.vue +18 -57
- package/scripts/extension/bundle +7 -19
- package/scripts/extension/helm/scripts/package +3 -11
- package/scripts/extension/parse-tag-name +4 -4
- package/scripts/extension/publish +9 -20
- package/scripts/publish-shell.sh +1 -11
- package/scripts/test-plugins-build.sh +9 -85
- package/store/catalog.js +1 -1
- package/store/features.js +0 -1
- package/store/i18n.js +0 -11
- package/store/index.js +13 -11
- package/store/prefs.js +38 -33
- package/store/type-map.js +82 -157
- package/tsconfig.default.json +46 -0
- package/tsconfig.json +9 -35
- package/types/shell/index.d.ts +407 -468
- package/utils/axios.js +19 -0
- package/utils/create-yaml.js +1 -5
- package/utils/custom-validators.js +2 -0
- package/utils/error.js +1 -16
- package/utils/monitoring.js +2 -37
- package/utils/nuxt.js +39 -18
- package/utils/object.js +0 -24
- package/utils/router.scrollBehavior.js +14 -12
- package/utils/socket.js +1 -0
- package/utils/time.js +1 -1
- package/utils/title.ts +3 -0
- package/utils/url.ts +1 -1
- package/utils/validators/formRules/__tests__/index.test.ts +4 -49
- package/utils/validators/formRules/index.ts +9 -12
- package/utils/validators/setting.js +10 -6
- package/vue.config.js +3 -24
- package/chart/monitoring/steps/uninstall-v1.vue +0 -135
- package/components/Certificates.vue +0 -164
- package/components/__tests__/CodeMirror.spec.ts +0 -99
- package/components/fleet/__tests__/FleetSummary.test.ts +0 -316
- package/components/formatter/FleetClusterSummaryGraph.vue +0 -27
- package/components/formatter/__tests__/Checked.test.ts +0 -19
- package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +0 -81
- package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +0 -186
- package/composables/useCompactInput.ts +0 -20
- package/composables/useLabeledFormElement.ts +0 -138
- package/creators/app/files/.gitlab-ci.yml +0 -14
- package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +0 -77
- package/edit/__tests__/service.test.ts +0 -89
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +0 -112
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +0 -473
- package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +0 -73
- package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +0 -386
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +0 -137
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +0 -157
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +0 -135
- package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +0 -189
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +0 -147
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +0 -76
- package/mixins/v1-workload-metrics.js +0 -43
- package/models/__tests__/management.cattle.io.cluster.test.ts +0 -23
- package/models/__tests__/management.cattle.io.nodepool.ts +0 -83
- package/models/__tests__/provisioning.cattle.io.cluster.test.ts +0 -241
- package/models/__tests__/secret.test.ts +0 -37
- package/models/__tests__/storage.k8s.io.storageclass.test.ts +0 -22
- package/models/__tests__/workload.test.ts +0 -91
- package/plugins/clean-html.js +0 -53
- package/plugins/dashboard-store/__tests__/resource-class.test.ts +0 -49
- package/plugins/dashboard-store/__tests__/utils/store-mocks.ts +0 -7
- package/plugins/index.js +0 -11
- package/plugins/steve/__tests__/resource-utils.test.ts +0 -159
- package/plugins/steve/__tests__/steve-class.spec.ts +0 -59
- package/plugins/steve/__tests__/utils/steve-mocks.ts +0 -31
- package/plugins/steve/resource-utils.ts +0 -38
- package/scripts/.gitlab/workflows/build-extension-catalog.gitlab-ci.yml +0 -50
- package/server/har-file.js +0 -183
- package/store/__tests__/type-map.test.ts +0 -1122
- package/tsconfig.paths.json +0 -18
- package/utils/azure.js +0 -24
- package/utils/clipboard.js +0 -5
- /package/components/form/__tests__/{NameNsDescription.test.ts → NameNsDescription.ts} +0 -0
- /package/edit/networking.k8s.io.networkpolicy/__tests__/utils/{selectors.test.ts → selectors.ts} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/networking/ACE.vue → ACE.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/AgentConfiguration.vue → AgentConfiguration.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/upgrade/DrainOptions.vue → DrainOptions.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/MemberRoles.vue → MemberRoles.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryConfigs.vue → RegistryConfigs.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryMirrors.vue → RegistryMirrors.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/etcd/S3Config.vue → S3Config.vue} +0 -0
- /package/plugins/dashboard-store/__tests__/{actions.test.ts → actions.spec.ts} +0 -0
- /package/plugins/dashboard-store/__tests__/{getters.test.ts → getters.spec.ts} +0 -0
- /package/rancher-components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
package/store/prefs.js
CHANGED
|
@@ -112,6 +112,9 @@ export const _RKE1 = 'rke1';
|
|
|
112
112
|
export const _RKE2 = 'rke2';
|
|
113
113
|
export const PROVISIONER = create('provisioner', _RKE2, { options: [_RKE1, _RKE2] });
|
|
114
114
|
|
|
115
|
+
// Promo for Pod Security Policies (PSPs) being deprecated on kube version 1.25 on Cluster Dashboard page
|
|
116
|
+
export const PSP_DEPRECATION_BANNER = create('hide-psp-deprecation-banner', false, { parseJSON });
|
|
117
|
+
|
|
115
118
|
// Maximum number of clusters to show in the slide-in menu
|
|
116
119
|
export const MENU_MAX_CLUSTERS = 10;
|
|
117
120
|
// Prompt for confirm when scaling down node pool in GUI and save the pref
|
|
@@ -345,44 +348,46 @@ export const actions = {
|
|
|
345
348
|
commit('cookiesLoaded');
|
|
346
349
|
},
|
|
347
350
|
|
|
348
|
-
loadTheme({ dispatch }) {
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
const interval = 30 * 60 * 1000;
|
|
354
|
-
const nextHalfHour = interval - Math.round(new Date().getTime()) % interval;
|
|
355
|
-
|
|
356
|
-
setTimeout(() => {
|
|
357
|
-
dispatch('loadTheme');
|
|
358
|
-
}, nextHalfHour);
|
|
359
|
-
// console.log('Update theme in', nextHalfHour, 'ms');
|
|
360
|
-
|
|
361
|
-
if ( watchDark.matches ) {
|
|
362
|
-
changed('dark');
|
|
363
|
-
} else if ( watchLight.matches ) {
|
|
364
|
-
changed('light');
|
|
365
|
-
} else {
|
|
366
|
-
changed(fromClock());
|
|
367
|
-
}
|
|
351
|
+
loadTheme({ state, dispatch }) {
|
|
352
|
+
if ( process.client ) {
|
|
353
|
+
const watchDark = window.matchMedia('(prefers-color-scheme: dark)');
|
|
354
|
+
const watchLight = window.matchMedia('(prefers-color-scheme: light)');
|
|
355
|
+
const watchNone = window.matchMedia('(prefers-color-scheme: no-preference)');
|
|
368
356
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
changed('dark');
|
|
372
|
-
}
|
|
373
|
-
});
|
|
357
|
+
const interval = 30 * 60 * 1000;
|
|
358
|
+
const nextHalfHour = interval - Math.round(new Date().getTime()) % interval;
|
|
374
359
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
});
|
|
360
|
+
setTimeout(() => {
|
|
361
|
+
dispatch('loadTheme');
|
|
362
|
+
}, nextHalfHour);
|
|
363
|
+
// console.log('Update theme in', nextHalfHour, 'ms');
|
|
380
364
|
|
|
381
|
-
|
|
382
|
-
|
|
365
|
+
if ( watchDark.matches ) {
|
|
366
|
+
changed('dark');
|
|
367
|
+
} else if ( watchLight.matches ) {
|
|
368
|
+
changed('light');
|
|
369
|
+
} else {
|
|
383
370
|
changed(fromClock());
|
|
384
371
|
}
|
|
385
|
-
|
|
372
|
+
|
|
373
|
+
watchDark.addListener((e) => {
|
|
374
|
+
if ( e.matches ) {
|
|
375
|
+
changed('dark');
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
watchLight.addListener((e) => {
|
|
380
|
+
if ( e.matches ) {
|
|
381
|
+
changed('light');
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
watchNone.addListener((e) => {
|
|
386
|
+
if ( e.matches ) {
|
|
387
|
+
changed(fromClock());
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
}
|
|
386
391
|
|
|
387
392
|
function changed(value) {
|
|
388
393
|
// console.log('Prefers Theme:', value);
|
package/store/type-map.js
CHANGED
|
@@ -148,55 +148,17 @@ import isObject from 'lodash/isObject';
|
|
|
148
148
|
import { normalizeType } from '@shell/plugins/dashboard-store/normalize';
|
|
149
149
|
import { sortBy } from '@shell/utils/sort';
|
|
150
150
|
|
|
151
|
-
import {
|
|
151
|
+
import { haveV2Monitoring } from '@shell/utils/monitoring';
|
|
152
152
|
import { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';
|
|
153
153
|
|
|
154
154
|
export const NAMESPACED = 'namespaced';
|
|
155
155
|
export const CLUSTER_LEVEL = 'cluster';
|
|
156
156
|
export const BOTH = 'both';
|
|
157
157
|
|
|
158
|
-
export const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
* getTree usage: Remove ignored schemas, resources not applicable to ns, etc
|
|
163
|
-
*/
|
|
164
|
-
ALL: 'all',
|
|
165
|
-
/**
|
|
166
|
-
* Represents resource types that should be shown at the top of the side nav.
|
|
167
|
-
*
|
|
168
|
-
* For example all fixed resource types above `More Resources` in the cluster explorer
|
|
169
|
-
*
|
|
170
|
-
* These will always be shown in the side nav
|
|
171
|
-
*
|
|
172
|
-
* allTypes usage: Resources that are in a group
|
|
173
|
-
*
|
|
174
|
-
* getTree usage: Remove ignored schemas, resources not applicable to ns, etc
|
|
175
|
-
*/
|
|
176
|
-
BASIC: 'basic',
|
|
177
|
-
/**
|
|
178
|
-
* Represents any type of resource type that has been favourited
|
|
179
|
-
*
|
|
180
|
-
* These will always be shown in the side nav.
|
|
181
|
-
*
|
|
182
|
-
* allTypes usage: Resource types that have been favorited
|
|
183
|
-
*
|
|
184
|
-
* getTree usage: Remove ignored schemas, resources not applicable to ns, etc
|
|
185
|
-
*/
|
|
186
|
-
FAVORITE: 'favorite',
|
|
187
|
-
/**
|
|
188
|
-
* Represents no virtual or spoofed types that have a count.
|
|
189
|
-
*
|
|
190
|
-
* For example the `More Resource` in the cluster explorer
|
|
191
|
-
*
|
|
192
|
-
* These will be shown in the side nav if there are resources in the ns filter OR the resource is not namespaces
|
|
193
|
-
*
|
|
194
|
-
* allTypes usage: All resource types that are not virtual or spoofed
|
|
195
|
-
*
|
|
196
|
-
* getTree usage: Remove types with no counts. Remove ignored schemas, resources not applicable to ns, etc
|
|
197
|
-
*/
|
|
198
|
-
USED: 'used',
|
|
199
|
-
};
|
|
158
|
+
export const ALL = 'all';
|
|
159
|
+
export const BASIC = 'basic';
|
|
160
|
+
export const FAVORITE = 'favorite';
|
|
161
|
+
export const USED = 'used';
|
|
200
162
|
|
|
201
163
|
export const ROOT = 'root';
|
|
202
164
|
|
|
@@ -209,7 +171,6 @@ const graphConfigMap = {};
|
|
|
209
171
|
const FIELD_REGEX = /^\$\.metadata\.fields\[([0-9]*)\]/;
|
|
210
172
|
|
|
211
173
|
export const IF_HAVE = {
|
|
212
|
-
V1_MONITORING: 'v1-monitoring',
|
|
213
174
|
V2_MONITORING: 'v2-monitoring',
|
|
214
175
|
PROJECT: 'project',
|
|
215
176
|
NO_PROJECT: 'no-project',
|
|
@@ -573,16 +534,17 @@ export const getters = {
|
|
|
573
534
|
},
|
|
574
535
|
|
|
575
536
|
getTree(state, getters, rootState, rootGetters) {
|
|
576
|
-
|
|
577
|
-
return function getTree(productId, mode, allTypes, clusterId, namespaceMode, currentType, search) {
|
|
537
|
+
return (productId, mode, allTypes, clusterId, namespaceMode, namespaces, currentType, search) => {
|
|
578
538
|
// getTree has four modes:
|
|
579
|
-
// - `basic` matches data types that should always be shown
|
|
580
|
-
//
|
|
539
|
+
// - `basic` matches data types that should always be shown even if there
|
|
540
|
+
// are 0 of them.
|
|
541
|
+
// - `used` matches the data types where there are more than 0 of them
|
|
542
|
+
// in the current set of namespaces.
|
|
581
543
|
// - `all` matches all types.
|
|
582
544
|
// - `favorite` matches starred types.
|
|
583
545
|
// namespaceMode: 'namespaced', 'cluster', or 'both'
|
|
584
546
|
// namespaces: null means all, otherwise it will be an array of specific namespaces to include
|
|
585
|
-
const isBasic = mode ===
|
|
547
|
+
const isBasic = mode === BASIC;
|
|
586
548
|
|
|
587
549
|
let searchRegex;
|
|
588
550
|
|
|
@@ -615,8 +577,7 @@ export const getters = {
|
|
|
615
577
|
continue;
|
|
616
578
|
}
|
|
617
579
|
|
|
618
|
-
const
|
|
619
|
-
const count = rootGetters[`${ inStore }/count`](typeObj);
|
|
580
|
+
const count = _matchingCounts(typeObj, namespaces);
|
|
620
581
|
const groupForBasicType = getters.groupForBasicType(productId, typeObj.name);
|
|
621
582
|
|
|
622
583
|
if ( typeObj.id === currentType ) {
|
|
@@ -624,7 +585,7 @@ export const getters = {
|
|
|
624
585
|
} else if ( isBasic && !groupForBasicType ) {
|
|
625
586
|
// If we want the basic tree only return basic types;
|
|
626
587
|
continue;
|
|
627
|
-
} else if ( mode ===
|
|
588
|
+
} else if ( mode === USED && count <= 0 ) {
|
|
628
589
|
// If there's none of this type, ignore this entry when viewing only in-use types
|
|
629
590
|
// Note: count is sometimes null, which is <= 0.
|
|
630
591
|
continue;
|
|
@@ -632,7 +593,7 @@ export const getters = {
|
|
|
632
593
|
|
|
633
594
|
const label = typeObj.labelKey ? rootGetters['i18n/t'](typeObj.labelKey) || typeObj.label : typeObj.label;
|
|
634
595
|
|
|
635
|
-
const labelDisplay = highlightLabel(label, count, typeObj.schema);
|
|
596
|
+
const labelDisplay = highlightLabel(label, typeObj.count, typeObj.schema);
|
|
636
597
|
|
|
637
598
|
if ( !labelDisplay ) {
|
|
638
599
|
// Search happens in highlight and returns null if not found
|
|
@@ -643,10 +604,10 @@ export const getters = {
|
|
|
643
604
|
|
|
644
605
|
if ( isBasic ) {
|
|
645
606
|
group = _ensureGroup(root, groupForBasicType, true);
|
|
646
|
-
} else if ( mode ===
|
|
607
|
+
} else if ( mode === FAVORITE ) {
|
|
647
608
|
group = _ensureGroup(root, 'starred');
|
|
648
609
|
group.weight = 1000;
|
|
649
|
-
} else if ( mode ===
|
|
610
|
+
} else if ( mode === USED ) {
|
|
650
611
|
group = _ensureGroup(root, `inUse::${ getters.groupLabelFor(typeObj.schema) }`);
|
|
651
612
|
} else {
|
|
652
613
|
group = _ensureGroup(root, typeObj.schema || typeObj.group || ROOT);
|
|
@@ -679,6 +640,7 @@ export const getters = {
|
|
|
679
640
|
label,
|
|
680
641
|
labelDisplay,
|
|
681
642
|
mode: typeObj.mode,
|
|
643
|
+
count,
|
|
682
644
|
exact: typeObj.exact || false,
|
|
683
645
|
namespaced,
|
|
684
646
|
route,
|
|
@@ -848,109 +810,69 @@ export const getters = {
|
|
|
848
810
|
});
|
|
849
811
|
},
|
|
850
812
|
|
|
851
|
-
/**
|
|
852
|
-
* Given many things, create a list of menu items per schema given the mode
|
|
853
|
-
*/
|
|
854
813
|
allTypes(state, getters, rootState, rootGetters) {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
const module = state.products.find((p) => p.name === product)?.inStore;
|
|
814
|
+
return (product, mode = ALL) => {
|
|
815
|
+
const module = findBy(state.products, 'name', product)?.inStore;
|
|
858
816
|
const schemas = rootGetters[`${ module }/all`](SCHEMA);
|
|
859
|
-
const isLocal = !rootGetters.currentCluster?.isLocal;
|
|
860
|
-
const isRancher = rootGetters.isRancher;
|
|
861
817
|
const counts = rootGetters[`${ module }/all`](COUNT)?.[0]?.counts || {};
|
|
818
|
+
const isDev = rootGetters['prefs/get'](VIEW_IN_API);
|
|
819
|
+
const isBasic = mode === BASIC;
|
|
862
820
|
|
|
863
821
|
const out = {};
|
|
864
822
|
|
|
865
|
-
// For performance reasons this must be super quick to iterate over.
|
|
866
|
-
// For each schema...
|
|
867
|
-
// 1) Determine if it's applicable given the mode
|
|
868
|
-
// 2) For each applicable mode create a `Type` entry
|
|
869
823
|
for ( const schema of schemas ) {
|
|
870
|
-
let schemaModes = { };
|
|
871
|
-
|
|
872
|
-
modes.forEach((m) => {
|
|
873
|
-
schemaModes[m] = true;
|
|
874
|
-
});
|
|
875
|
-
|
|
876
824
|
const attrs = schema.attributes || {};
|
|
825
|
+
const count = counts[schema.id];
|
|
826
|
+
const label = getters.labelFor(schema, count);
|
|
827
|
+
const weight = getters.typeWeightFor(schema?.id || label, isBasic);
|
|
877
828
|
const typeOptions = getters['optionsFor'](schema);
|
|
878
829
|
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
830
|
+
if ( isBasic ) {
|
|
831
|
+
// These are separate ifs so that things with no kind can still be basic
|
|
832
|
+
if ( !getters.groupForBasicType(product, schema.id) ) {
|
|
833
|
+
continue;
|
|
834
|
+
}
|
|
835
|
+
} else if ( mode === FAVORITE && !getters.isFavorite(schema.id) ) {
|
|
882
836
|
continue;
|
|
883
|
-
}
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
837
|
+
} else if ( !attrs.kind ) {
|
|
838
|
+
// Skip the schemas that aren't top-level types
|
|
839
|
+
continue;
|
|
840
|
+
} else if ( typeof typeOptions.ifRancherCluster !== 'undefined' && typeOptions.ifRancherCluster !== rootGetters.isRancher ) {
|
|
841
|
+
continue;
|
|
842
|
+
} else if (typeOptions.localOnly && !rootGetters.currentCluster?.isLocal) {
|
|
888
843
|
continue;
|
|
889
844
|
}
|
|
890
845
|
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
// This is an expensive request to make, so only do it if we really need to
|
|
906
|
-
let label;
|
|
907
|
-
|
|
908
|
-
Object.entries(schemaModes).forEach(([mode, enabled]) => {
|
|
909
|
-
if (!enabled) {
|
|
910
|
-
return;
|
|
911
|
-
}
|
|
912
|
-
|
|
913
|
-
if (!out[mode]) {
|
|
914
|
-
out[mode] = {};
|
|
915
|
-
}
|
|
916
|
-
|
|
917
|
-
if (!label) {
|
|
918
|
-
label = getters.labelFor(schema, counts[schema.id]);
|
|
919
|
-
}
|
|
920
|
-
|
|
921
|
-
out[mode][schema.id] = {
|
|
922
|
-
label,
|
|
923
|
-
mode,
|
|
924
|
-
weight: getters.typeWeightFor(schema?.id || label, mode === TYPE_MODES.BASIC),
|
|
925
|
-
schema,
|
|
926
|
-
name: schema.id,
|
|
927
|
-
namespaced: typeOptions.namespaced === null ? attrs.namespaced : typeOptions.namespaced,
|
|
928
|
-
route: typeOptions.customRoute
|
|
929
|
-
};
|
|
930
|
-
});
|
|
846
|
+
out[schema.id] = {
|
|
847
|
+
label,
|
|
848
|
+
mode,
|
|
849
|
+
weight,
|
|
850
|
+
schema,
|
|
851
|
+
name: schema.id,
|
|
852
|
+
namespaced: typeOptions.namespaced === null ? attrs.namespaced : typeOptions.namespaced,
|
|
853
|
+
count: count ? count.summary.count || 0 : null,
|
|
854
|
+
byNamespace: count ? count.namespaces : {},
|
|
855
|
+
revision: count ? count.revision : null,
|
|
856
|
+
route: typeOptions.customRoute
|
|
857
|
+
};
|
|
931
858
|
}
|
|
932
859
|
|
|
933
|
-
const nonUsedModes = modes.filter((m) => m !== TYPE_MODES.USED);
|
|
934
|
-
const isDev = rootGetters['prefs/get'](VIEW_IN_API);
|
|
935
|
-
|
|
936
860
|
// Add virtual and spoofed types
|
|
937
|
-
if (
|
|
861
|
+
if ( mode !== USED ) {
|
|
938
862
|
const virtualTypes = state.virtualTypes[product] || [];
|
|
939
863
|
const spoofedTypes = state.spoofedTypes[product] || [];
|
|
940
864
|
const allTypes = [...virtualTypes, ...spoofedTypes];
|
|
941
|
-
const virtSpoofedModes = [...nonUsedModes];
|
|
942
865
|
|
|
943
866
|
for ( const type of allTypes ) {
|
|
944
867
|
const item = clone(type);
|
|
945
868
|
const id = item.name;
|
|
869
|
+
const weight = type.weight || getters.typeWeightFor(item.label, isBasic);
|
|
946
870
|
|
|
947
871
|
// Is there a virtual/spoofed type override for schema type?
|
|
948
872
|
// Currently used by harvester, this should be investigated and removed if possible
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
}
|
|
953
|
-
});
|
|
873
|
+
if (out[id]) {
|
|
874
|
+
delete out[id];
|
|
875
|
+
}
|
|
954
876
|
|
|
955
877
|
if ( item['public'] === false && !isDev ) {
|
|
956
878
|
continue;
|
|
@@ -989,17 +911,14 @@ export const getters = {
|
|
|
989
911
|
continue;
|
|
990
912
|
}
|
|
991
913
|
|
|
992
|
-
if (
|
|
914
|
+
if ( isBasic && !getters.groupForBasicType(product, id) ) {
|
|
915
|
+
continue;
|
|
916
|
+
} else if ( mode === FAVORITE && !getters.isFavorite(id) ) {
|
|
993
917
|
continue;
|
|
994
918
|
}
|
|
995
919
|
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
}
|
|
999
|
-
|
|
1000
|
-
if (virtSpoofedModes.includes(TYPE_MODES.FAVORITE) && !getters.isFavorite(id) ) { // mode === TYPE_MODES.FAVORITE &&
|
|
1001
|
-
virtSpoofedModes.splice(virtSpoofedModes.indexOf(TYPE_MODES.FAVORITE), 1);
|
|
1002
|
-
}
|
|
920
|
+
item.mode = mode;
|
|
921
|
+
item.weight = weight;
|
|
1003
922
|
|
|
1004
923
|
// Ensure labelKey is taken into account... with a mock count
|
|
1005
924
|
// This is harmless if the translation doesn't require count
|
|
@@ -1010,17 +929,7 @@ export const getters = {
|
|
|
1010
929
|
item.label = item.label || item.name;
|
|
1011
930
|
}
|
|
1012
931
|
|
|
1013
|
-
|
|
1014
|
-
const isBasic = mode === TYPE_MODES.BASIC;
|
|
1015
|
-
const weight = type.weight || getters.typeWeightFor(item.label, isBasic);
|
|
1016
|
-
|
|
1017
|
-
item.mode = mode;
|
|
1018
|
-
item.weight = weight;
|
|
1019
|
-
if (!out[mode]) {
|
|
1020
|
-
out[mode] = {};
|
|
1021
|
-
}
|
|
1022
|
-
out[mode][id] = item;
|
|
1023
|
-
});
|
|
932
|
+
out[id] = item;
|
|
1024
933
|
}
|
|
1025
934
|
}
|
|
1026
935
|
|
|
@@ -1770,6 +1679,22 @@ function _sortGroup(tree, mode) {
|
|
|
1770
1679
|
}
|
|
1771
1680
|
}
|
|
1772
1681
|
|
|
1682
|
+
function _matchingCounts(typeObj, namespaces) {
|
|
1683
|
+
// That was easy
|
|
1684
|
+
if ( !typeObj.namespaced || !typeObj.byNamespace || namespaces === null || typeObj.count === null) {
|
|
1685
|
+
return typeObj.count;
|
|
1686
|
+
}
|
|
1687
|
+
|
|
1688
|
+
let out = 0;
|
|
1689
|
+
|
|
1690
|
+
// Otherwise start with 0 and count up
|
|
1691
|
+
for ( const namespace of namespaces ) {
|
|
1692
|
+
out += typeObj.byNamespace[namespace]?.count || 0;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
return out;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1773
1698
|
function _applyMapping(objOrValue, mappings, keyField, cache, defaultFn) {
|
|
1774
1699
|
let key = objOrValue;
|
|
1775
1700
|
let found = false;
|
|
@@ -1863,9 +1788,6 @@ function ifHave(getters, option) {
|
|
|
1863
1788
|
case IF_HAVE.V2_MONITORING: {
|
|
1864
1789
|
return haveV2Monitoring(getters);
|
|
1865
1790
|
}
|
|
1866
|
-
case IF_HAVE.V1_MONITORING: {
|
|
1867
|
-
return haveV1Monitoring(getters);
|
|
1868
|
-
}
|
|
1869
1791
|
case IF_HAVE.PROJECT: {
|
|
1870
1792
|
return !!project(getters);
|
|
1871
1793
|
}
|
|
@@ -1918,12 +1840,15 @@ function _rowValueGetter(col) {
|
|
|
1918
1840
|
// We will use JsonPath to look up this value, which is costly - so if we can detect this format
|
|
1919
1841
|
// Use a more efficient function to get the value
|
|
1920
1842
|
const value = col.field.startsWith('.') ? `$${ col.field }` : col.field;
|
|
1921
|
-
const found = value.match(FIELD_REGEX);
|
|
1922
1843
|
|
|
1923
|
-
if (
|
|
1924
|
-
const
|
|
1844
|
+
if (process.client) {
|
|
1845
|
+
const found = value.match(FIELD_REGEX);
|
|
1846
|
+
|
|
1847
|
+
if (found && found.length === 2) {
|
|
1848
|
+
const fieldIndex = parseInt(found[1], 10);
|
|
1925
1849
|
|
|
1926
|
-
|
|
1850
|
+
return (row) => row.metadata?.fields?.[fieldIndex];
|
|
1851
|
+
}
|
|
1927
1852
|
}
|
|
1928
1853
|
|
|
1929
1854
|
return value;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2018",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "Node",
|
|
6
|
+
"lib": [
|
|
7
|
+
"ESNext",
|
|
8
|
+
"ESNext.AsyncIterable",
|
|
9
|
+
"DOM"
|
|
10
|
+
],
|
|
11
|
+
"esModuleInterop": true,
|
|
12
|
+
"allowJs": true,
|
|
13
|
+
"sourceMap": true,
|
|
14
|
+
"strict": true,
|
|
15
|
+
"noEmit": false,
|
|
16
|
+
"baseUrl": ".",
|
|
17
|
+
"rootDir": ".",
|
|
18
|
+
"paths": {
|
|
19
|
+
"~/*": [
|
|
20
|
+
"../*"
|
|
21
|
+
],
|
|
22
|
+
"@/*": [
|
|
23
|
+
"../*"
|
|
24
|
+
],
|
|
25
|
+
"@shell/*": [
|
|
26
|
+
"../shell/*"
|
|
27
|
+
],
|
|
28
|
+
"@pkg/*": [
|
|
29
|
+
"../shell/pkg/*"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"typeRoots": [
|
|
33
|
+
"./node_modules/@types"
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
"exclude": [
|
|
37
|
+
"node_modules",
|
|
38
|
+
".nuxt",
|
|
39
|
+
"dist",
|
|
40
|
+
"dist-pkg",
|
|
41
|
+
"shell/creators",
|
|
42
|
+
"shell/scripts",
|
|
43
|
+
"script/standalone",
|
|
44
|
+
"docusaurus"
|
|
45
|
+
]
|
|
46
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -1,42 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": "./tsconfig.
|
|
2
|
+
"extends": "./tsconfig.default.json",
|
|
3
3
|
"compilerOptions": {
|
|
4
|
-
"target": "ES2018",
|
|
5
|
-
"module": "ESNext",
|
|
6
|
-
"moduleResolution": "Node",
|
|
7
|
-
"lib": [
|
|
8
|
-
"ESNext",
|
|
9
|
-
"ESNext.AsyncIterable",
|
|
10
|
-
"DOM"
|
|
11
|
-
],
|
|
12
|
-
"allowJs": true,
|
|
13
|
-
"sourceMap": true,
|
|
14
|
-
"strict": true,
|
|
15
|
-
"noEmit": false,
|
|
16
|
-
"esModuleInterop": true,
|
|
17
|
-
"baseUrl": ".",
|
|
18
|
-
"rootDir": ".",
|
|
19
4
|
"types": [
|
|
20
|
-
"node",
|
|
21
|
-
"jest",
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"./node_modules/@types",
|
|
25
|
-
"../node_modules/@types"
|
|
26
|
-
],
|
|
5
|
+
"@types/node",
|
|
6
|
+
"@types/jest",
|
|
7
|
+
"@nuxt/types",
|
|
8
|
+
]
|
|
27
9
|
},
|
|
28
10
|
"exclude": [
|
|
29
|
-
"
|
|
30
|
-
".
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"../dist",
|
|
34
|
-
"../dist-pkg",
|
|
35
|
-
"../creators",
|
|
36
|
-
"../scripts",
|
|
37
|
-
"../cypress",
|
|
38
|
-
"../cypress.config.ts",
|
|
39
|
-
"../docusaurus",
|
|
40
|
-
"../**/*.spec.ts"
|
|
11
|
+
"cypress",
|
|
12
|
+
"./cypress.config.ts",
|
|
13
|
+
"**/*.test.ts",
|
|
14
|
+
"**/*.spec.ts"
|
|
41
15
|
]
|
|
42
16
|
}
|