@rancher/shell 0.3.26 → 0.3.28
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/assets/translations/en-us.yaml +8 -23
- package/assets/translations/zh-hans.yaml +2 -26
- package/chart/gatekeeper.vue +2 -11
- package/chart/istio.vue +1 -10
- package/chart/logging/index.vue +2 -11
- package/chart/monitoring/index.vue +1 -9
- package/chart/rancher-backup/index.vue +1 -9
- package/components/AlertTable.vue +8 -6
- package/components/Carousel.vue +2 -1
- package/components/EmberPage.vue +2 -2
- package/components/EtcdInfoBanner.vue +12 -2
- package/components/GlobalRoleBindings.vue +10 -0
- package/components/GrafanaDashboard.vue +8 -3
- package/components/Wizard.vue +17 -1
- package/components/auth/RoleDetailEdit.vue +17 -1
- package/components/form/ArrayList.vue +20 -11
- package/components/form/__tests__/ArrayList.test.ts +44 -0
- package/components/formatter/ClusterProvider.vue +1 -18
- package/components/nav/Header.vue +5 -4
- package/components/nav/TopLevelMenu.vue +38 -15
- package/components/nav/WindowManager/ContainerLogs.vue +22 -19
- package/components/nav/__tests__/TopLevelMenu.test.ts +120 -0
- package/components/nav/__tests__/Type.test.ts +139 -0
- package/config/private-label.js +1 -1
- package/config/product/manager.js +0 -13
- package/config/settings.ts +0 -2
- package/config/types.js +0 -4
- package/core/types.ts +11 -4
- package/edit/management.cattle.io.project.vue +1 -52
- package/edit/management.cattle.io.setting.vue +31 -2
- package/edit/provisioning.cattle.io.cluster/Basics.vue +19 -107
- package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +0 -3
- package/edit/provisioning.cattle.io.cluster/rke2.vue +3 -128
- package/edit/workload/mixins/workload.js +14 -4
- package/middleware/authenticated.js +4 -2
- package/models/__tests__/management.cattle.io.cluster.test.ts +19 -0
- package/models/__tests__/provisioning.cattle.io.cluster.test.ts +90 -0
- package/models/cluster.x-k8s.io.machine.js +1 -1
- package/models/fleet.cattle.io.cluster.js +11 -1
- package/models/management.cattle.io.cluster.js +4 -0
- package/models/management.cattle.io.project.js +0 -36
- package/models/management.cattle.io.setting.js +11 -7
- package/models/provisioning.cattle.io.cluster.js +16 -4
- package/package.json +1 -1
- package/pages/auth/setup.vue +38 -1
- package/pages/c/_cluster/apps/charts/__tests__/install.helper.test.ts +2 -17
- package/pages/c/_cluster/apps/charts/index.vue +0 -15
- package/pages/c/_cluster/apps/charts/install.helpers.js +2 -13
- package/pages/c/_cluster/apps/charts/install.vue +1 -1
- package/pages/c/_cluster/auth/roles/index.vue +11 -1
- package/pages/c/_cluster/explorer/index.vue +7 -49
- package/pages/c/_cluster/manager/pages/_page.vue +4 -5
- package/pages/c/_cluster/monitoring/index.vue +26 -39
- package/pages/support/index.vue +1 -8
- package/promptRemove/management.cattle.io.project.vue +6 -9
- package/rancher-components/BadgeState/BadgeState.vue +1 -5
- package/rancher-components/Banner/Banner.test.ts +1 -51
- package/rancher-components/Banner/Banner.vue +53 -134
- package/rancher-components/Card/Card.vue +7 -24
- package/rancher-components/Form/Checkbox/Checkbox.test.ts +29 -20
- package/rancher-components/Form/Checkbox/Checkbox.vue +20 -45
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +8 -2
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +10 -22
- package/rancher-components/Form/Radio/RadioButton.vue +13 -30
- package/rancher-components/Form/Radio/RadioGroup.vue +7 -26
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +6 -7
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.test.ts +38 -25
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +11 -23
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +5 -19
- package/rancher-components/StringList/StringList.test.ts +49 -453
- package/rancher-components/StringList/StringList.vue +58 -92
- package/rancher-components/components/Form/Radio/RadioGroup.test.ts +30 -0
- package/rancher-components/components/Form/Radio/RadioGroup.vue +4 -0
- package/rancher-components/components/StringList/StringList.test.ts +270 -0
- package/rancher-components/components/StringList/StringList.vue +57 -18
- package/store/features.js +1 -0
- package/store/prefs.js +0 -3
- package/types/shell/index.d.ts +26 -17
- package/utils/__tests__/object.test.ts +67 -1
- package/utils/__tests__/version.test.ts +13 -23
- package/utils/cluster.js +1 -1
- package/utils/custom-validators.js +0 -2
- package/utils/error.js +16 -1
- package/utils/grafana.js +1 -2
- package/utils/monitoring.js +25 -1
- package/utils/object.js +4 -3
- package/utils/sort.js +1 -1
- package/utils/validators/formRules/__tests__/index.test.ts +49 -4
- package/utils/validators/formRules/index.ts +13 -10
- package/utils/validators/role-template.js +1 -1
- package/utils/validators/setting.js +6 -10
- package/utils/version.js +0 -13
- package/components/ChartPsp.vue +0 -76
- package/components/__tests__/ChartPsp.test.ts +0 -75
- package/components/formatter/__tests__/ClusterProvider.test.ts +0 -28
- package/rancher-components/Card/Card.test.ts +0 -37
- package/rancher-components/Form/Radio/RadioButton.test.ts +0 -31
- package/yarn-error.log +0 -200
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
'server-url'
|
|
3
|
-
];
|
|
1
|
+
import isUrl from 'is-url';
|
|
4
2
|
|
|
5
|
-
export
|
|
6
|
-
const key = validatorArgs[0];
|
|
3
|
+
export const isServerUrl = (value) => value === 'server-url';
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
errors.push(getters['i18n/t']('validation.setting.serverUrl.https'));
|
|
10
|
-
}
|
|
5
|
+
export const isHttps = (value) => value.toLowerCase().startsWith('https://');
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
export const isLocalhost = (value) => (/^(?:https?:\/\/)?(?:localhost|127\.0\.0\.1)/i).test(value);
|
|
8
|
+
|
|
9
|
+
export const hasTrailingForwardSlash = (value) => isUrl(value) && value?.toLowerCase().endsWith('/');
|
package/utils/version.js
CHANGED
|
@@ -125,16 +125,3 @@ export async function markReadReleaseNotes(store) {
|
|
|
125
125
|
await store.dispatch('prefs/set', { key: READ_WHATS_NEW, value: getVersionInfo(store).fullVersion });
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
|
|
129
|
-
export function generateSupportLink(version) {
|
|
130
|
-
const defaultSupportURL = 'https://rancher.com/support-maintenance-terms';
|
|
131
|
-
|
|
132
|
-
if (!version || isDevBuild(version)) {
|
|
133
|
-
return defaultSupportURL;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
const baseUrl = 'https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-';
|
|
137
|
-
const formattedVersion = version.split('.').join('-');
|
|
138
|
-
|
|
139
|
-
return baseUrl + formattedVersion;
|
|
140
|
-
}
|
package/components/ChartPsp.vue
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { Checkbox } from '@components/Form/Checkbox';
|
|
3
|
-
import { mapGetters } from 'vuex';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
components: { Checkbox },
|
|
7
|
-
props: {
|
|
8
|
-
value: {
|
|
9
|
-
type: Object,
|
|
10
|
-
default: () => {
|
|
11
|
-
return {};
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
mode: {
|
|
15
|
-
type: String,
|
|
16
|
-
default: 'edit'
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Optional title section prior checkbox
|
|
21
|
-
*/
|
|
22
|
-
title: {
|
|
23
|
-
type: String,
|
|
24
|
-
default: null
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Cluster information
|
|
29
|
-
*/
|
|
30
|
-
cluster: {
|
|
31
|
-
type: Object,
|
|
32
|
-
default: null
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
|
-
created() {
|
|
36
|
-
if (!this.value.global.cattle) {
|
|
37
|
-
this.$set(this.value.global, 'cattle', { psp: { enabled: false } });
|
|
38
|
-
}
|
|
39
|
-
if (!this.value.global.cattle.psp) {
|
|
40
|
-
this.$set(this.value.global.cattle, 'psp', { enabled: false });
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
computed: {
|
|
44
|
-
...mapGetters({ t: 'i18n/t' }),
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Display checkbox only if contains PSP or K8S version is less than 1.25
|
|
48
|
-
*/
|
|
49
|
-
hasCheckbox() {
|
|
50
|
-
const clusterVersion = this.cluster?.kubernetesVersion || '';
|
|
51
|
-
const version = clusterVersion.match(/\d+/g);
|
|
52
|
-
const isRequiredVersion = version?.length ? +version[0] === 1 && +version[1] < 25 : false;
|
|
53
|
-
|
|
54
|
-
return isRequiredVersion;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
</script>
|
|
59
|
-
|
|
60
|
-
<template>
|
|
61
|
-
<div
|
|
62
|
-
v-if="hasCheckbox"
|
|
63
|
-
class="mt-10 mb-10"
|
|
64
|
-
>
|
|
65
|
-
<h3 v-if="title">
|
|
66
|
-
{{ title }}
|
|
67
|
-
</h3>
|
|
68
|
-
|
|
69
|
-
<Checkbox
|
|
70
|
-
v-model="value.global.cattle.psp.enabled"
|
|
71
|
-
data-testid="psp-checkbox"
|
|
72
|
-
:mode="mode"
|
|
73
|
-
:label="t('catalog.chart.enablePSP')"
|
|
74
|
-
/>
|
|
75
|
-
</div>
|
|
76
|
-
</template>
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { shallowMount, mount } from '@vue/test-utils';
|
|
2
|
-
import ChartPsp from '@shell/components/ChartPsp.vue';
|
|
3
|
-
|
|
4
|
-
describe('component: ChartPsp', () => {
|
|
5
|
-
it.each([
|
|
6
|
-
true, false
|
|
7
|
-
])('should render checkbox referencing value.global.cattle.psp.enabled as %p', (value) => {
|
|
8
|
-
const version = 'v1.24.11+rke2r1';
|
|
9
|
-
const wrapper = shallowMount(ChartPsp, {
|
|
10
|
-
propsData: {
|
|
11
|
-
value: { global: { cattle: { psp: { enabled: value } } } },
|
|
12
|
-
cluster: { kubernetesVersion: version }
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
expect(wrapper.findComponent({ name: 'Checkbox' }).props().value).toBe(value);
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
it.each([
|
|
20
|
-
['v1.24.11+rke2r1'],
|
|
21
|
-
])('should display the checkbox for cluster with k8s version %p', (version) => {
|
|
22
|
-
const wrapper = shallowMount(ChartPsp, {
|
|
23
|
-
propsData: {
|
|
24
|
-
value: { global: { cattle: { psp: { enabled: false } } } },
|
|
25
|
-
cluster: { kubernetesVersion: version }
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
const input = wrapper.find(`[data-testid="psp-checkbox"]`).element as HTMLInputElement;
|
|
30
|
-
|
|
31
|
-
expect(input).toBeDefined();
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
it.each([
|
|
35
|
-
['v1.25.11+rke2r1'],
|
|
36
|
-
])('should not display the checkbox for cluster with k8s version %p', (version) => {
|
|
37
|
-
const wrapper = shallowMount(ChartPsp, {
|
|
38
|
-
propsData: {
|
|
39
|
-
value: { global: { cattle: { psp: { enabled: false } } } },
|
|
40
|
-
cluster: { kubernetesVersion: version }
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
const input = wrapper.find(`[data-testid="psp-checkbox"]`).element as HTMLInputElement;
|
|
45
|
-
|
|
46
|
-
expect(input).toBeUndefined();
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
it('should update value.global.cattle.psp.enabled when checkbox is toggled', async() => {
|
|
50
|
-
const chartValues = { global: {} } as any;
|
|
51
|
-
const version = 'v1.24.11+rke2r1';
|
|
52
|
-
const wrapper = mount(ChartPsp, {
|
|
53
|
-
propsData: {
|
|
54
|
-
value: chartValues,
|
|
55
|
-
cluster: { kubernetesVersion: version }
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
await wrapper.find('.checkbox-container').trigger('click');
|
|
60
|
-
|
|
61
|
-
expect(chartValues.global.cattle.psp.enabled).toBe(true);
|
|
62
|
-
|
|
63
|
-
await wrapper.find('.checkbox-container').trigger('click');
|
|
64
|
-
expect(chartValues.global.cattle.psp.enabled).toBe(false);
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
it.each([
|
|
68
|
-
{ global: {} } as any,
|
|
69
|
-
{ global: { cattle: {} } } as any,
|
|
70
|
-
])('should define cattle.psp.enabled and set to false', (chartValues) => {
|
|
71
|
-
shallowMount(ChartPsp, { propsData: { value: chartValues } });
|
|
72
|
-
|
|
73
|
-
expect(chartValues.global.cattle.psp.enabled).toBe(false);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils';
|
|
2
|
-
import ClusterProvider from '@shell/components/formatter/ClusterProvider.vue';
|
|
3
|
-
|
|
4
|
-
describe('component: ClusterProvider', () => {
|
|
5
|
-
const importedGkeClusterInfo = { mgmt: { spec: { gkeConfig: { imported: true } } } };
|
|
6
|
-
const importedAksClusterInfo = { mgmt: { spec: { aksConfig: { imported: true } } } };
|
|
7
|
-
const importedEksClusterInfo = { mgmt: { spec: { eksConfig: { imported: true } } } };
|
|
8
|
-
const notImportedGkeClusterInfo = { mgmt: { spec: { gkeConfig: { imported: false } } } };
|
|
9
|
-
const importedClusterInfoWithProviderForEmberParam = { mgmt: { providerForEmberParam: 'import' } };
|
|
10
|
-
|
|
11
|
-
describe('isImported', () => {
|
|
12
|
-
const testCases = [
|
|
13
|
-
[importedGkeClusterInfo, true],
|
|
14
|
-
[importedAksClusterInfo, true],
|
|
15
|
-
[importedEksClusterInfo, true],
|
|
16
|
-
[notImportedGkeClusterInfo, false],
|
|
17
|
-
[importedClusterInfoWithProviderForEmberParam, true],
|
|
18
|
-
[{}, false],
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
it.each(testCases)('should return the isImported value properly based on the props data', (row, expected) => {
|
|
22
|
-
const wrapper = mount(ClusterProvider, { propsData: { row } });
|
|
23
|
-
|
|
24
|
-
expect(wrapper.vm.$data.isImported).toBe(expected);
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils';
|
|
2
|
-
import { Card } from './index';
|
|
3
|
-
|
|
4
|
-
describe('component: Card', () => {
|
|
5
|
-
const title = 'Card title';
|
|
6
|
-
const body = 'Card body';
|
|
7
|
-
|
|
8
|
-
it('should have a card title', () => {
|
|
9
|
-
const wrapper = mount(Card, {
|
|
10
|
-
propsData: { title },
|
|
11
|
-
slots: { title: '<div>Card title</div>' }
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
const element = wrapper.find('[data-testid="card-title-slot"]');
|
|
15
|
-
|
|
16
|
-
expect(element.exists()).toBe(true);
|
|
17
|
-
expect(element.text()).toBe(title);
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('should have a card body', () => {
|
|
21
|
-
const wrapper = mount(Card, {
|
|
22
|
-
propsData: { body },
|
|
23
|
-
slots: { body: '<div>Card body</div>' }
|
|
24
|
-
});
|
|
25
|
-
const element = wrapper.find('[data-testid="card-body-slot"]');
|
|
26
|
-
|
|
27
|
-
expect(element.exists()).toBe(true);
|
|
28
|
-
expect(element.text()).toBe(body);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
it('should display the default card actions', () => {
|
|
32
|
-
const wrapper = mount(Card);
|
|
33
|
-
const element = wrapper.find('[data-testid="card-actions-slot"]');
|
|
34
|
-
|
|
35
|
-
expect(element.exists()).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { shallowMount } from '@vue/test-utils';
|
|
2
|
-
import { RadioButton } from './index';
|
|
3
|
-
import { cleanHtmlDirective } from '@shell/plugins/clean-html-directive';
|
|
4
|
-
|
|
5
|
-
describe('radioButton.vue', () => {
|
|
6
|
-
it('renders label slot contents', () => {
|
|
7
|
-
const wrapper = shallowMount(RadioButton, { slots: { label: 'Test Label' } });
|
|
8
|
-
|
|
9
|
-
expect(wrapper.find('.radio-label').text()).toBe('Test Label');
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it('renders label prop contents', () => {
|
|
13
|
-
const wrapper = shallowMount(
|
|
14
|
-
RadioButton,
|
|
15
|
-
{
|
|
16
|
-
directives: { cleanHtmlDirective },
|
|
17
|
-
propsData: { label: 'Test Label' }
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
expect(wrapper.find('.radio-label').text()).toBe('Test Label');
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('renders slot contents when both slot and label prop are provided', () => {
|
|
24
|
-
const wrapper = shallowMount(RadioButton, {
|
|
25
|
-
slots: { label: 'Test Label - Slot' },
|
|
26
|
-
propsData: { label: 'Test Label - Props' },
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
expect(wrapper.find('.radio-label').text()).toBe('Test Label - Slot');
|
|
30
|
-
});
|
|
31
|
-
});
|
package/yarn-error.log
DELETED
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
Arguments:
|
|
2
|
-
/Users/aalves/.nvm/versions/node/v16.19.1/bin/node /Users/aalves/.nvm/versions/node/v16.19.1/bin/yarn publish . --new-version 0.3.22 --no-git-tag-version --access public
|
|
3
|
-
|
|
4
|
-
PATH:
|
|
5
|
-
/Users/aalves/.rd/bin:/Users/aalves/.nvm/versions/node/v16.19.1/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/aalves/.rd/bin:/Users/aalves/.nvm/versions/node/v16.19.1/bin:/opt/homebrew/bin:/opt/homebrew/sbin
|
|
6
|
-
|
|
7
|
-
Yarn version:
|
|
8
|
-
1.22.19
|
|
9
|
-
|
|
10
|
-
Node version:
|
|
11
|
-
16.19.1
|
|
12
|
-
|
|
13
|
-
Platform:
|
|
14
|
-
darwin arm64
|
|
15
|
-
|
|
16
|
-
Trace:
|
|
17
|
-
Error: https://registry.yarnpkg.com/-/user/org.couchdb.user:aalves08: failed to authenticate: Could not authenticate aalves08: bad password
|
|
18
|
-
at Request.params.callback [as _callback] (/Users/aalves/.nvm/versions/node/v16.19.1/lib/node_modules/yarn/lib/cli.js:66145:18)
|
|
19
|
-
at Request.self.callback (/Users/aalves/.nvm/versions/node/v16.19.1/lib/node_modules/yarn/lib/cli.js:140890:22)
|
|
20
|
-
at Request.emit (node:events:513:28)
|
|
21
|
-
at Request.<anonymous> (/Users/aalves/.nvm/versions/node/v16.19.1/lib/node_modules/yarn/lib/cli.js:141862:10)
|
|
22
|
-
at Request.emit (node:events:513:28)
|
|
23
|
-
at IncomingMessage.<anonymous> (/Users/aalves/.nvm/versions/node/v16.19.1/lib/node_modules/yarn/lib/cli.js:141784:12)
|
|
24
|
-
at Object.onceWrapper (node:events:627:28)
|
|
25
|
-
at IncomingMessage.emit (node:events:525:35)
|
|
26
|
-
at endReadableNT (node:internal/streams/readable:1358:12)
|
|
27
|
-
at processTicksAndRejections (node:internal/process/task_queues:83:21)
|
|
28
|
-
|
|
29
|
-
npm manifest:
|
|
30
|
-
{
|
|
31
|
-
"name": "@rancher/shell",
|
|
32
|
-
"version": "0.3.22",
|
|
33
|
-
"description": "Rancher Dashboard Shell",
|
|
34
|
-
"repository": "https://github.com/rancherlabs/dashboard",
|
|
35
|
-
"license": "Apache-2.0",
|
|
36
|
-
"author": "SUSE",
|
|
37
|
-
"private": false,
|
|
38
|
-
"engines": {
|
|
39
|
-
"node": ">=12"
|
|
40
|
-
},
|
|
41
|
-
"files": [
|
|
42
|
-
"**/*"
|
|
43
|
-
],
|
|
44
|
-
"scripts": {
|
|
45
|
-
"clean": "./scripts/clean",
|
|
46
|
-
"lint": "./node_modules/.bin/eslint --max-warnings 0 --ext .ts,.js,.vue .",
|
|
47
|
-
"test": "./node_modules/.bin/nyc ava --serial --verbose",
|
|
48
|
-
"dev": "./node_modules/.bin/vue-cli-service dev",
|
|
49
|
-
"docker-dev": "docker run --rm --name dashboard-dev -p 8005:8005 -e API=$API -v $(pwd):/src -v dashboard_node:/src/node_modules rancher/dashboard:dev",
|
|
50
|
-
"build": "./node_modules/.bin/vue-cli-service build",
|
|
51
|
-
"analyze": "./node_modules/.bin/vue-cli-service build --report",
|
|
52
|
-
"start": "./node_modules/.bin/vue-cli-service start",
|
|
53
|
-
"cy:run": "cypress run",
|
|
54
|
-
"cy:open": "cypress open",
|
|
55
|
-
"e2e:pre": "NODE_ENV=dev yarn build",
|
|
56
|
-
"e2e:run": "NODE_ENV=dev START_SERVER_AND_TEST_INSECURE=1 start-server-and-test start https://localhost:8005/ cy:run",
|
|
57
|
-
"e2e:dev": "start-server-and-test dev https://localhost:8005 cy:open"
|
|
58
|
-
},
|
|
59
|
-
"dependencies": {
|
|
60
|
-
"@aws-sdk/client-ec2": "3.1.0",
|
|
61
|
-
"@aws-sdk/client-eks": "3.1.0",
|
|
62
|
-
"@aws-sdk/client-kms": "3.8.1",
|
|
63
|
-
"@babel/plugin-proposal-optional-chaining": "7.14.5",
|
|
64
|
-
"@babel/plugin-proposal-private-property-in-object": "7.14.5",
|
|
65
|
-
"@babel/preset-typescript": "7.16.7",
|
|
66
|
-
"@innologica/vue-dropdown-menu": "0.1.3",
|
|
67
|
-
"@novnc/novnc": "1.2.0",
|
|
68
|
-
"@nuxt/types": "2.14.6",
|
|
69
|
-
"@nuxt/typescript-build": "2.1.0",
|
|
70
|
-
"@nuxtjs/axios": "5.12.0",
|
|
71
|
-
"@nuxtjs/eslint-config-typescript": "6.0.1",
|
|
72
|
-
"@nuxtjs/webpack-profile": "0.1.0",
|
|
73
|
-
"@popperjs/core": "2.4.4",
|
|
74
|
-
"@types/node": "16.4.3",
|
|
75
|
-
"@typescript-eslint/eslint-plugin": "4.33.0",
|
|
76
|
-
"@typescript-eslint/parser": "4.33.0",
|
|
77
|
-
"@vue/cli-plugin-babel": "4.5.18",
|
|
78
|
-
"@vue/cli-plugin-typescript": "4.5.18",
|
|
79
|
-
"@vue/cli-service": "4.5.18",
|
|
80
|
-
"@vue/test-utils": "1.2.1",
|
|
81
|
-
"@vue/vue2-jest": "27.0.0",
|
|
82
|
-
"add": "2.0.6",
|
|
83
|
-
"ansi_up": "5.0.0",
|
|
84
|
-
"babel-eslint": "10.1.0",
|
|
85
|
-
"babel-plugin-module-resolver": "4.0.0",
|
|
86
|
-
"babel-preset-vue": "2.0.2",
|
|
87
|
-
"browser-env": "3.3.0",
|
|
88
|
-
"cookie": "0.5.0",
|
|
89
|
-
"cookie-universal-nuxt": "2.1.4",
|
|
90
|
-
"core-js": "3.21.1",
|
|
91
|
-
"cron-validator": "1.2.0",
|
|
92
|
-
"cronstrue": "1.95.0",
|
|
93
|
-
"cross-env": "6.0.3",
|
|
94
|
-
"css-loader": "6.7.3",
|
|
95
|
-
"csv-loader": "3.0.3",
|
|
96
|
-
"cypress": "10.3.1",
|
|
97
|
-
"d3": "7.3.0",
|
|
98
|
-
"d3-selection": "1.4.1",
|
|
99
|
-
"dagre-d3": "0.6.4",
|
|
100
|
-
"dayjs": "1.8.29",
|
|
101
|
-
"diff2html": "3.4.24",
|
|
102
|
-
"dompurify": "2.4.5",
|
|
103
|
-
"eslint": "7.32.0",
|
|
104
|
-
"eslint-config-standard": "16.0.3",
|
|
105
|
-
"eslint-import-resolver-node": "0.3.4",
|
|
106
|
-
"eslint-module-utils": "2.6.1",
|
|
107
|
-
"eslint-plugin-cypress": "2.12.1",
|
|
108
|
-
"eslint-plugin-import": "2.23.4",
|
|
109
|
-
"eslint-plugin-jest": "24.4.0",
|
|
110
|
-
"eslint-plugin-n": "15.2.0",
|
|
111
|
-
"eslint-plugin-vue": "9.10.0",
|
|
112
|
-
"event-target-shim": "5.0.1",
|
|
113
|
-
"express": "4.17.1",
|
|
114
|
-
"file-saver": "2.0.2",
|
|
115
|
-
"frontmatter-markdown-loader": "3.7.0",
|
|
116
|
-
"identicon.js": "2.3.3",
|
|
117
|
-
"intl-messageformat": "7.8.4",
|
|
118
|
-
"is-url": "1.2.4",
|
|
119
|
-
"jest": "27.5.1",
|
|
120
|
-
"jest-serializer-vue": "2.0.2",
|
|
121
|
-
"jexl": "2.2.2",
|
|
122
|
-
"jquery": "3.5.1",
|
|
123
|
-
"js-cookie": "2.2.1",
|
|
124
|
-
"js-yaml": "4.1.0",
|
|
125
|
-
"js-yaml-loader": "1.2.2",
|
|
126
|
-
"jsdiff": "1.1.1",
|
|
127
|
-
"jsdom-global": "3.0.2",
|
|
128
|
-
"jsonpath-plus": "6.0.1",
|
|
129
|
-
"jsrsasign": "10.5.25",
|
|
130
|
-
"jszip": "3.8.0",
|
|
131
|
-
"lodash": "4.17.21",
|
|
132
|
-
"marked": "4.0.17",
|
|
133
|
-
"nodemon": "2.0.22",
|
|
134
|
-
"nuxt": "2.15.8",
|
|
135
|
-
"nyc": "15.1.0",
|
|
136
|
-
"papaparse": "5.3.0",
|
|
137
|
-
"portal-vue": "2.1.7",
|
|
138
|
-
"rancher-icons": "rancher/icons#v2.0.16",
|
|
139
|
-
"require-extension-hooks": "0.3.3",
|
|
140
|
-
"require-extension-hooks-babel": "1.0.0",
|
|
141
|
-
"require-extension-hooks-vue": "3.0.0",
|
|
142
|
-
"sass": "1.51.0",
|
|
143
|
-
"sass-loader": "10.2.1",
|
|
144
|
-
"serve-static": "1.14.1",
|
|
145
|
-
"set-cookie-parser": "2.4.6",
|
|
146
|
-
"shell-quote": "1.7.3",
|
|
147
|
-
"sinon": "8.1.1",
|
|
148
|
-
"start-server-and-test": "1.13.1",
|
|
149
|
-
"style-loader": "1.2.1",
|
|
150
|
-
"ts-node": "8.10.2",
|
|
151
|
-
"typescript": "4.1.6",
|
|
152
|
-
"url-parse": "1.5.10",
|
|
153
|
-
"v-tooltip": "2.0.3",
|
|
154
|
-
"vue": "2.7.14",
|
|
155
|
-
"vue-clipboard2": "0.3.1",
|
|
156
|
-
"vue-codemirror": "4.0.6",
|
|
157
|
-
"vue-js-modal": "1.3.35",
|
|
158
|
-
"vue-resize": "0.4.5",
|
|
159
|
-
"vue-select": "3.18.3",
|
|
160
|
-
"vue-server-renderer": "2.7.14",
|
|
161
|
-
"vue-shortkey": "3.1.7",
|
|
162
|
-
"vue-template-compiler": "2.7.14",
|
|
163
|
-
"vue-virtual-scroll-list": "^2.3.4",
|
|
164
|
-
"vue2-transitions": "0.3.0",
|
|
165
|
-
"vuedraggable": "2.24.3",
|
|
166
|
-
"vuex": "3.6.2",
|
|
167
|
-
"webpack-bundle-analyzer": "4.5.0",
|
|
168
|
-
"webpack-virtual-modules": "0.4.3",
|
|
169
|
-
"xterm": "5.0.0",
|
|
170
|
-
"xterm-addon-fit": "0.6.0",
|
|
171
|
-
"xterm-addon-search": "0.10.0",
|
|
172
|
-
"xterm-addon-web-links": "0.7.0",
|
|
173
|
-
"xterm-addon-webgl": "0.13.0",
|
|
174
|
-
"worker-loader": "3.0.8",
|
|
175
|
-
"yarn": "1.22.18"
|
|
176
|
-
},
|
|
177
|
-
"resolutions": {
|
|
178
|
-
"ejs": "^3.1.7",
|
|
179
|
-
"json5": ">=2.2.2",
|
|
180
|
-
"d3-color": ">=3.1.0",
|
|
181
|
-
"glob-parent": ">=5.1.2",
|
|
182
|
-
"node-forge": ">=1.3.0",
|
|
183
|
-
"qs": ">=6.7.3",
|
|
184
|
-
"nth-check": ">=2.0.1",
|
|
185
|
-
"follow-redirects": ">=1.14.7",
|
|
186
|
-
"merge": ">=2.1.1"
|
|
187
|
-
},
|
|
188
|
-
"nyc": {
|
|
189
|
-
"extension": [
|
|
190
|
-
".js",
|
|
191
|
-
".vue"
|
|
192
|
-
]
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
yarn manifest:
|
|
197
|
-
No manifest
|
|
198
|
-
|
|
199
|
-
Lockfile:
|
|
200
|
-
No lockfile
|