Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2022-09-30 06:09:35 +00:00
parent c74f7b6ff5
commit bfb305ef51
32 changed files with 467 additions and 110 deletions

View file

@ -1,5 +1,5 @@
import Vue from 'vue';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { __ } from '~/locale';
import DivergenceGraph from './components/divergence_graph.vue';
@ -51,7 +51,7 @@ export default (endpoint, defaultBranch) => {
});
})
.catch(() =>
createFlash({
createAlert({
message: __('Error fetching diverging counts for branches. Please try again.'),
}),
);

View file

@ -1,5 +1,5 @@
<script>
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { __ } from '~/locale';
import { reportMessageToSentry } from '../utils';
import getAdminVariables from '../graphql/queries/variables.query.graphql';
@ -51,14 +51,14 @@ export default {
this.fetchMoreVariables();
this.loadingCounter += 1;
} else {
createFlash({ message: this.$options.tooManyCallsError });
createAlert({ message: this.$options.tooManyCallsError });
reportMessageToSentry(this.$options.componentName, this.$options.tooManyCallsError, {});
}
},
error() {
this.isLoadingMoreItems = false;
this.hasNextPage = false;
createFlash({ message: variableFetchErrorText });
createAlert({ message: variableFetchErrorText });
},
watchLoading(flag) {
if (!flag) {
@ -107,7 +107,7 @@ export default {
if (data[currentMutation.name]?.errors?.length) {
const { errors } = data[currentMutation.name];
createFlash({ message: errors[0] });
createAlert({ message: errors[0] });
} else {
// The writing to cache for admin variable is not working
// because there is no ID in the cache at the top level.
@ -115,7 +115,7 @@ export default {
this.$apollo.queries.adminVariables.refetch();
}
} catch {
createFlash({ message: genericMutationErrorText });
createAlert({ message: genericMutationErrorText });
}
},
},

View file

@ -1,5 +1,5 @@
<script>
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { __ } from '~/locale';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
@ -58,14 +58,14 @@ export default {
this.fetchMoreVariables();
this.loadingCounter += 1;
} else {
createFlash({ message: this.$options.tooManyCallsError });
createAlert({ message: this.$options.tooManyCallsError });
reportMessageToSentry(this.$options.componentName, this.$options.tooManyCallsError, {});
}
},
error() {
this.isLoadingMoreItems = false;
this.hasNextPage = false;
createFlash({ message: variableFetchErrorText });
createAlert({ message: variableFetchErrorText });
},
},
},
@ -112,10 +112,10 @@ export default {
if (data[currentMutation.name]?.errors?.length) {
const { errors } = data[currentMutation.name];
createFlash({ message: errors[0] });
createAlert({ message: errors[0] });
}
} catch {
createFlash({ message: genericMutationErrorText });
createAlert({ message: genericMutationErrorText });
}
},
},

View file

@ -1,5 +1,5 @@
<script>
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { __ } from '~/locale';
import { convertToGraphQLId } from '~/graphql_shared/utils';
import getProjectEnvironments from '../graphql/queries/project_environments.query.graphql';
@ -46,7 +46,7 @@ export default {
return mapEnvironmentNames(data?.project?.environments?.nodes);
},
error() {
createFlash({ message: environmentFetchErrorText });
createAlert({ message: environmentFetchErrorText });
},
},
projectVariables: {
@ -74,14 +74,14 @@ export default {
this.fetchMoreVariables();
this.loadingCounter += 1;
} else {
createFlash({ message: this.$options.tooManyCallsError });
createAlert({ message: this.$options.tooManyCallsError });
reportMessageToSentry(this.$options.componentName, this.$options.tooManyCallsError, {});
}
},
error() {
this.isLoadingMoreItems = false;
this.hasNextPage = false;
createFlash({ message: variableFetchErrorText });
createAlert({ message: variableFetchErrorText });
},
},
},
@ -128,10 +128,10 @@ export default {
});
if (data[currentMutation.name]?.errors?.length) {
const { errors } = data[currentMutation.name];
createFlash({ message: errors[0] });
createAlert({ message: errors[0] });
}
} catch {
createFlash({ message: genericMutationErrorText });
createAlert({ message: genericMutationErrorText });
}
},
},

View file

@ -1,5 +1,5 @@
import Api from '~/api';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { __ } from '~/locale';
import * as types from './mutation_types';
@ -48,7 +48,7 @@ export const addVariable = ({ state, dispatch }) => {
dispatch('fetchVariables');
})
.catch((error) => {
createFlash({
createAlert({
message: error.response.data[0],
});
dispatch('receiveAddVariableError', error);
@ -80,7 +80,7 @@ export const updateVariable = ({ state, dispatch }) => {
dispatch('fetchVariables');
})
.catch((error) => {
createFlash({
createAlert({
message: error.response.data[0],
});
dispatch('receiveUpdateVariableError', error);
@ -109,7 +109,7 @@ export const fetchVariables = ({ dispatch, state }) => {
dispatch('receiveVariablesSuccess', prepareDataForDisplay(data.variables));
})
.catch(() => {
createFlash({
createAlert({
message: __('There was an error fetching the variables.'),
});
});
@ -139,7 +139,7 @@ export const deleteVariable = ({ dispatch, state }) => {
dispatch('fetchVariables');
})
.catch((error) => {
createFlash({
createAlert({
message: error.response.data[0],
});
dispatch('receiveDeleteVariableError', error);
@ -162,7 +162,7 @@ export const fetchEnvironments = ({ dispatch, state }) => {
dispatch('receiveEnvironmentsSuccess', prepareEnvironments(res.data));
})
.catch(() => {
createFlash({
createAlert({
message: __('There was an error fetching the environments information.'),
});
});

View file

@ -1,7 +1,7 @@
import { GlToast } from '@gitlab/ui';
import Visibility from 'visibilityjs';
import Vue from 'vue';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import AccessorUtilities from '~/lib/utils/accessor';
import initProjectSelectDropdown from '~/project_select';
import Poll from '~/lib/utils/poll';
@ -196,7 +196,7 @@ export default class Clusters {
}
static handleError() {
createFlash({
createAlert({
message: s__('ClusterIntegration|Something went wrong on our end.'),
});
}

View file

@ -1,5 +1,5 @@
import * as Sentry from '@sentry/browser';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import { parseIntPagination, normalizeHeaders } from '~/lib/utils/common_utils';
import Poll from '~/lib/utils/poll';
@ -70,7 +70,7 @@ export const fetchClusters = ({ state, commit, dispatch }) => {
commit(types.SET_LOADING_CLUSTERS, false);
commit(types.SET_LOADING_NODES, false);
createFlash({
createAlert({
message: s__('Clusters|An error occurred while loading clusters'),
});

View file

@ -1,5 +1,5 @@
import $ from 'jquery';
import createFlash from './flash';
import { createAlert } from '~/flash';
import axios from './lib/utils/axios_utils';
import { n__, s__ } from './locale';
@ -71,7 +71,7 @@ export function fetchCommitMergeRequests() {
$container.html($content);
})
.catch(() =>
createFlash({
createAlert({
message: s__('Commits|An error occurred while fetching merge requests data.'),
}),
);

View file

@ -1,6 +1,6 @@
<script>
import { GlIcon, GlLink, GlSprintf } from '@gitlab/ui';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import Api from '~/api';
import { __ } from '~/locale';
import state from '../state';
@ -80,7 +80,7 @@ export default {
this.selectProject(this.projects[0]);
})
.catch((e) => {
createFlash({
createAlert({
message: __('Error fetching forked projects. Please try again.'),
});
throw e;

View file

@ -1,4 +1,4 @@
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { __ } from '~/locale';
import service from '../services/contributors_service';
import * as types from './mutation_types';
@ -14,7 +14,7 @@ export const fetchChartData = ({ commit }, endpoint) => {
commit(types.SET_LOADING_STATE, false);
})
.catch(() =>
createFlash({
createAlert({
message: __('An error occurred while loading chart data'),
}),
);

View file

@ -60,10 +60,6 @@ class NotifyPreview < ActionMailer::Preview
end
end
def user_cap_reached
Notify.user_cap_reached(user.id).message
end
def new_mention_in_merge_request_email
Notify.new_mention_in_merge_request_email(user.id, merge_request.id, user.id).message
end

View file

@ -4,8 +4,9 @@
- @projects.each do |project|
%li.project-row{ class: ('no-description' if project.description.blank?) }
.controls
= link_to _('Edit'), edit_project_path(project), id: "edit_#{dom_id(project)}", class: "btn gl-button btn-default"
%button.delete-project-button.gl-button.btn.btn-danger{ data: { delete_project_url: admin_project_path(project), project_name: project.name } }
= render Pajamas::ButtonComponent.new(href: edit_project_path(project), button_options: { id: "edit_#{dom_id(project)}" }) do
= s_('Edit')
= render Pajamas::ButtonComponent.new(variant: :danger, button_options: { class: 'delete-project-button', data: { delete_project_url: admin_project_path(project), project_name: project.name } } ) do
= s_('AdminProjects|Delete')
.stats

59
config/esbuild.config.js Normal file
View file

@ -0,0 +1,59 @@
const browserslist = require('browserslist');
const esbuild = require('esbuild');
const ESBUILD_SUPPORTED_TARGETS = new Set([
'chrome',
'edge',
'firefox',
'hermes',
'ie',
'ios',
'node',
'opera',
'rhino',
'safari',
]);
const parseBrowserslist = (browserslistResult) => {
return browserslistResult.map((browsers) => {
const [family, version] = browsers.split(' ');
let normalizedVersion = version;
// browserslist can return a range: safari15.2-15.4
if (version.indexOf('-') >= -1) {
// we take the lowest version
[normalizedVersion] = version.split('-');
}
return {
family,
version: normalizedVersion,
};
});
};
const mapBrowserslistToESBuildTarget = (browsersList) => {
return parseBrowserslist(browsersList)
.filter(({ family, version }) => {
if (!ESBUILD_SUPPORTED_TARGETS.has(family)) {
console.warning('Unknown ESBuild target %s, version %s', family, version);
return false;
}
return true;
})
.map(({ family, version }) => {
return `${family}${version}`;
});
};
module.exports = {
target: mapBrowserslistToESBuildTarget(browserslist()),
supported: {
'optional-chain': false,
'nullish-coalescing': false,
'class-static-field': false,
'class-field': false,
},
implementation: esbuild,
};

View file

@ -16,11 +16,14 @@ const VueLoaderPlugin = require('vue-loader/lib/plugin');
const VUE_LOADER_VERSION = require('vue-loader/package.json').version;
const VUE_VERSION = require('vue/package.json').version;
const { ESBuildMinifyPlugin } = require('esbuild-loader');
const webpack = require('webpack');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const { StatsWriterPlugin } = require('webpack-stats-plugin');
const WEBPACK_VERSION = require('webpack/package.json').version;
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
const esbuildConfiguration = require('./esbuild.config');
const createIncrementalWebpackCompiler = require('./helpers/incremental_webpack_compiler');
const IS_EE = require('./helpers/is_ee_env');
@ -40,6 +43,8 @@ const VENDOR_DLL = process.env.WEBPACK_VENDOR_DLL && process.env.WEBPACK_VENDOR_
const CACHE_PATH = process.env.WEBPACK_CACHE_PATH || path.join(ROOT_PATH, 'tmp/cache');
const IS_PRODUCTION = process.env.NODE_ENV === 'production';
const IS_DEV_SERVER = process.env.WEBPACK_SERVE === 'true';
const WEBPACK_USE_ESBUILD_LOADER =
process.env.WEBPACK_USE_ESBUILD_LOADER && process.env.WEBPACK_USE_ESBUILD_LOADER !== 'false';
const { DEV_SERVER_HOST, DEV_SERVER_PUBLIC_ADDR } = process.env;
const DEV_SERVER_PORT = parseInt(process.env.DEV_SERVER_PORT, 10);
@ -49,9 +54,11 @@ const DEV_SERVER_LIVERELOAD = IS_DEV_SERVER && process.env.DEV_SERVER_LIVERELOAD
const INCREMENTAL_COMPILER_ENABLED =
IS_DEV_SERVER &&
process.env.DEV_SERVER_INCREMENTAL &&
process.env.DEV_SERVER_INCREMENTAL !== 'false';
process.env.DEV_SERVER_INCREMENTAL !== 'false' &&
!WEBPACK_USE_ESBUILD_LOADER;
const INCREMENTAL_COMPILER_TTL = Number(process.env.DEV_SERVER_INCREMENTAL_TTL) || Infinity;
const INCREMENTAL_COMPILER_RECORD_HISTORY = IS_DEV_SERVER && !process.env.CI;
const INCREMENTAL_COMPILER_RECORD_HISTORY =
IS_DEV_SERVER && !process.env.CI && !WEBPACK_USE_ESBUILD_LOADER;
const WEBPACK_REPORT = process.env.WEBPACK_REPORT && process.env.WEBPACK_REPORT !== 'false';
const WEBPACK_MEMORY_TEST =
process.env.WEBPACK_MEMORY_TEST && process.env.WEBPACK_MEMORY_TEST !== 'false';
@ -264,6 +271,10 @@ const defaultJsOptions = {
cacheCompression: false,
};
if (WEBPACK_USE_ESBUILD_LOADER) {
console.log('esbuild-loader is active');
}
module.exports = {
mode: IS_PRODUCTION ? 'production' : 'development',
@ -294,14 +305,30 @@ module.exports = {
test: /\.mjs$/,
use: [],
},
{
WEBPACK_USE_ESBUILD_LOADER && {
test: /\.js$/,
exclude: (modulePath) =>
/node_modules|vendor[\\/]assets/.test(modulePath) && !/\.vue\.js/.test(modulePath),
loader: 'esbuild-loader',
options: esbuildConfiguration,
},
!WEBPACK_USE_ESBUILD_LOADER && {
test: /\.js$/,
exclude: (modulePath) =>
/node_modules|vendor[\\/]assets/.test(modulePath) && !/\.vue\.js/.test(modulePath),
loader: 'babel-loader',
options: defaultJsOptions,
},
{
WEBPACK_USE_ESBUILD_LOADER && {
test: /\.js$/,
include: (modulePath) =>
/node_modules\/(monaco-worker-manager|monaco-marker-data-provider)\/index\.js/.test(
modulePath,
) || /node_modules\/yaml/.test(modulePath),
loader: 'esbuild-loader',
options: esbuildConfiguration,
},
!WEBPACK_USE_ESBUILD_LOADER && {
test: /\.js$/,
include: (modulePath) =>
/node_modules\/(monaco-worker-manager|monaco-marker-data-provider)\/index\.js/.test(
@ -403,7 +430,7 @@ module.exports = {
test: /\.(yml|yaml)$/,
loader: 'raw-loader',
},
],
].filter(Boolean),
},
optimization: {
@ -474,6 +501,9 @@ module.exports = {
},
},
},
...(WEBPACK_USE_ESBUILD_LOADER
? { minimizer: [new ESBuildMinifyPlugin(esbuildConfiguration)] }
: {}),
},
plugins: [

View file

@ -79,6 +79,8 @@ module.exports = {
https://gitlab.com/gitlab-org/gitlab/-/issues/219353
*/
'chokidar',
// We are ignoring esbuild as we want to force a newer version than what esbuild-loader provides
'esbuild',
// We are ignoring ts-jest, because we force a newer version, compatible with our current jest version
'ts-jest',
].join('|'),

View file

@ -0,0 +1,17 @@
# frozen_string_literal: true
class TmpIdxNullMemberNamespaceId < Gitlab::Database::Migration[2.0]
TMP_INDEX_FOR_NULL_MEMBER_NAMESPACE_ID = 'tmp_index_for_null_member_namespace_id'
disable_ddl_transaction!
def up
add_concurrent_index :members, :member_namespace_id,
name: TMP_INDEX_FOR_NULL_MEMBER_NAMESPACE_ID,
where: 'member_namespace_id IS NULL'
end
def down
remove_concurrent_index_by_name :members, name: TMP_INDEX_FOR_NULL_MEMBER_NAMESPACE_ID
end
end

View file

@ -0,0 +1 @@
ac34f2215272e69efc486affa8ad06347221d63ddadafe995f6e98f355a49936

View file

@ -30888,6 +30888,8 @@ CREATE INDEX tmp_index_container_repos_on_non_migrated ON container_repositories
CREATE INDEX tmp_index_container_repositories_on_id_migration_state ON container_repositories USING btree (id, migration_state);
CREATE INDEX tmp_index_for_null_member_namespace_id ON members USING btree (member_namespace_id) WHERE (member_namespace_id IS NULL);
CREATE INDEX tmp_index_for_project_namespace_id_migration_on_routes ON routes USING btree (id) WHERE ((namespace_id IS NULL) AND ((source_type)::text = 'Project'::text));
CREATE INDEX tmp_index_issues_on_issue_type_and_id ON issues USING btree (issue_type, id);

View file

@ -71,7 +71,9 @@ and issue creation. Your instance becomes read-only and
an expiration message displays to all administrators. You have a 14-day grace period
before this occurs.
To resume functionality, activate a new subscription.
To resume functionality, [renew your subscription](../../subscriptions/self_managed/index.md#renew-a-subscription).
If the license has been expired for more than 30 days, you must purchase a [new subscription](../../subscriptions/self_managed/index.md) to resume functionality.
To go back to Free features, [delete all expired licenses](#remove-a-license).

View file

@ -1,5 +1,5 @@
variables:
AUTO_BUILD_IMAGE_VERSION: 'v1.14.0'
AUTO_BUILD_IMAGE_VERSION: 'v1.19.0'
build:
stage: build

View file

@ -1,5 +1,5 @@
variables:
AUTO_BUILD_IMAGE_VERSION: 'v1.14.0'
AUTO_BUILD_IMAGE_VERSION: 'v1.19.0'
build:
stage: build

View file

@ -67,11 +67,11 @@ module Gitlab
end
event :finish do
transition any => :finished
transition [:paused, :finished, :active, :finalizing] => :finished
end
event :failure do
transition any => :failed
transition [:failed, :finalizing, :active] => :failed
end
event :finalize do

View file

@ -17055,6 +17055,33 @@ msgid_plural "Free groups are limited to %{free_user_limit} members and the rema
msgstr[0] ""
msgstr[1] ""
msgid "FreeUserCap|Alternatively you can upgrade to GitLab Premium or GitLab Ultimate:"
msgstr ""
msgid "FreeUserCap|Explore paid plans"
msgstr ""
msgid "FreeUserCap|Explore paid plans:"
msgstr ""
msgid "FreeUserCap|Looks like you've reached your limit of %{free_user_limit} members for \"%{namespace_name}\". You can't add any more, but you can manage your existing members, for example, by removing inactive members and replacing them with new members."
msgstr ""
msgid "FreeUserCap|Manage members"
msgstr ""
msgid "FreeUserCap|Manage members:"
msgstr ""
msgid "FreeUserCap|To get more members %{trial_link_start}start a trial %{trial_link_end} or %{upgrade_link_start}upgrade%{upgrade_link_end} to GitLab Premium or GitLab Ultimate."
msgstr ""
msgid "FreeUserCap|To get more members start a trial:"
msgstr ""
msgid "FreeUserCap|You've reached your member limit!"
msgstr ""
msgid "Freeze end"
msgstr ""

View file

@ -98,6 +98,7 @@
"babel-loader": "^8.2.5",
"babel-plugin-lodash": "^3.3.4",
"bootstrap": "4.5.3",
"browserslist": "^4.21.3",
"cache-loader": "^4.1.0",
"canvas-confetti": "^1.4.0",
"clipboard": "^2.0.8",
@ -119,6 +120,8 @@
"dropzone": "^4.2.0",
"editorconfig": "^0.15.3",
"emoji-regex": "^10.0.0",
"esbuild": "0.15.9",
"esbuild-loader": "^2.20.0",
"fast-mersenne-twister": "1.0.2",
"file-loader": "^6.2.0",
"fuzzaldrin-plus": "^0.6.0",

View file

@ -4,7 +4,7 @@ import { GlLoadingIcon, GlTable } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { resolvers } from '~/ci_variable_list/graphql/settings';
import ciAdminVariables from '~/ci_variable_list/components/ci_admin_variables.vue';
@ -92,8 +92,8 @@ describe('Ci Admin Variable list', () => {
);
});
it('createFlash was not called', () => {
expect(createFlash).not.toHaveBeenCalled();
it('createAlert was not called', () => {
expect(createAlert).not.toHaveBeenCalled();
});
});
@ -104,8 +104,8 @@ describe('Ci Admin Variable list', () => {
await createComponentWithApollo();
});
it('calls createFlash with the expected error message', () => {
expect(createFlash).toHaveBeenCalledWith({ message: variableFetchErrorText });
it('calls createAlert with the expected error message', () => {
expect(createAlert).toHaveBeenCalledWith({ message: variableFetchErrorText });
});
});
});
@ -153,7 +153,7 @@ describe('Ci Admin Variable list', () => {
await nextTick();
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: graphQLErrorMessage });
expect(createAlert).toHaveBeenCalledWith({ message: graphQLErrorMessage });
},
);
@ -171,7 +171,7 @@ describe('Ci Admin Variable list', () => {
await findCiSettings().vm.$emit(event, newVariable);
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: genericMutationErrorText });
expect(createAlert).toHaveBeenCalledWith({ message: genericMutationErrorText });
},
);
});

View file

@ -4,7 +4,7 @@ import { GlLoadingIcon, GlTable } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { resolvers } from '~/ci_variable_list/graphql/settings';
import { convertToGraphQLId } from '~/graphql_shared/utils';
@ -95,8 +95,8 @@ describe('Ci Group Variable list', () => {
);
});
it('createFlash was not called', () => {
expect(createFlash).not.toHaveBeenCalled();
it('createAlert was not called', () => {
expect(createAlert).not.toHaveBeenCalled();
});
});
@ -107,8 +107,8 @@ describe('Ci Group Variable list', () => {
await createComponentWithApollo();
});
it('calls createFlash with the expected error message', () => {
expect(createFlash).toHaveBeenCalledWith({ message: variableFetchErrorText });
it('calls createAlert with the expected error message', () => {
expect(createAlert).toHaveBeenCalledWith({ message: variableFetchErrorText });
});
});
});
@ -158,7 +158,7 @@ describe('Ci Group Variable list', () => {
await nextTick();
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: graphQLErrorMessage });
expect(createAlert).toHaveBeenCalledWith({ message: graphQLErrorMessage });
},
);
@ -176,7 +176,7 @@ describe('Ci Group Variable list', () => {
await findCiSettings().vm.$emit(event, newVariable);
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: genericMutationErrorText });
expect(createAlert).toHaveBeenCalledWith({ message: genericMutationErrorText });
},
);
});

View file

@ -4,7 +4,7 @@ import { GlLoadingIcon, GlTable } from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import createMockApollo from 'helpers/mock_apollo_helper';
import waitForPromises from 'helpers/wait_for_promises';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import { resolvers } from '~/ci_variable_list/graphql/settings';
import { convertToGraphQLId } from '~/graphql_shared/utils';
@ -112,8 +112,8 @@ describe('Ci Project Variable list', () => {
);
});
it('createFlash was not called', () => {
expect(createFlash).not.toHaveBeenCalled();
it('createAlert was not called', () => {
expect(createAlert).not.toHaveBeenCalled();
});
});
@ -125,8 +125,8 @@ describe('Ci Project Variable list', () => {
await createComponentWithApollo();
});
it('calls createFlash with the expected error message', () => {
expect(createFlash).toHaveBeenCalledWith({ message: variableFetchErrorText });
it('calls createAlert with the expected error message', () => {
expect(createAlert).toHaveBeenCalledWith({ message: variableFetchErrorText });
});
});
@ -138,8 +138,8 @@ describe('Ci Project Variable list', () => {
await createComponentWithApollo();
});
it('calls createFlash with the expected error message', () => {
expect(createFlash).toHaveBeenCalledWith({ message: environmentFetchErrorText });
it('calls createAlert with the expected error message', () => {
expect(createAlert).toHaveBeenCalledWith({ message: environmentFetchErrorText });
});
});
});
@ -190,7 +190,7 @@ describe('Ci Project Variable list', () => {
await nextTick();
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: graphQLErrorMessage });
expect(createAlert).toHaveBeenCalledWith({ message: graphQLErrorMessage });
},
);
@ -208,7 +208,7 @@ describe('Ci Project Variable list', () => {
await findCiSettings().vm.$emit(event, newVariable);
expect(wrapper.vm.$apollo.mutate).toHaveBeenCalled();
expect(createFlash).toHaveBeenCalledWith({ message: genericMutationErrorText });
expect(createAlert).toHaveBeenCalledWith({ message: genericMutationErrorText });
},
);
});

View file

@ -5,7 +5,7 @@ import * as actions from '~/ci_variable_list/store/actions';
import * as types from '~/ci_variable_list/store/mutation_types';
import getInitialState from '~/ci_variable_list/store/state';
import { prepareDataForDisplay, prepareEnvironments } from '~/ci_variable_list/store/utils';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import mockData from '../services/mock_data';
@ -118,7 +118,7 @@ describe('CI variable list store actions', () => {
},
],
);
expect(createFlash).toHaveBeenCalled();
expect(createAlert).toHaveBeenCalled();
});
});
@ -155,7 +155,7 @@ describe('CI variable list store actions', () => {
},
],
);
expect(createFlash).toHaveBeenCalled();
expect(createAlert).toHaveBeenCalled();
});
});
@ -192,7 +192,7 @@ describe('CI variable list store actions', () => {
},
],
);
expect(createFlash).toHaveBeenCalled();
expect(createAlert).toHaveBeenCalled();
});
});
@ -219,7 +219,7 @@ describe('CI variable list store actions', () => {
mock.onGet(state.endpoint).reply(500);
await testAction(actions.fetchVariables, {}, state, [], [{ type: 'requestVariables' }]);
expect(createFlash).toHaveBeenCalledWith({
expect(createAlert).toHaveBeenCalledWith({
message: 'There was an error fetching the variables.',
});
});
@ -249,7 +249,7 @@ describe('CI variable list store actions', () => {
await testAction(actions.fetchEnvironments, {}, state, [], [{ type: 'requestEnvironments' }]);
expect(createFlash).toHaveBeenCalledWith({
expect(createAlert).toHaveBeenCalledWith({
message: 'There was an error fetching the environments information.',
});
});

View file

@ -5,7 +5,7 @@ import waitForPromises from 'helpers/wait_for_promises';
import { MAX_REQUESTS } from '~/clusters_list/constants';
import * as actions from '~/clusters_list/store/actions';
import * as types from '~/clusters_list/store/mutation_types';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
import Poll from '~/lib/utils/poll';
import { apiData } from '../mock_data';
@ -98,7 +98,7 @@ describe('Clusters store actions', () => {
},
],
);
expect(createFlash).toHaveBeenCalledWith({
expect(createAlert).toHaveBeenCalledWith({
message: expect.stringMatching('error'),
});
});

View file

@ -2,7 +2,7 @@ import MockAdapter from 'axios-mock-adapter';
import testAction from 'helpers/vuex_action_helper';
import * as actions from '~/contributors/stores/actions';
import * as types from '~/contributors/stores/mutation_types';
import createFlash from '~/flash';
import { createAlert } from '~/flash';
import axios from '~/lib/utils/axios_utils';
jest.mock('~/flash.js');
@ -47,7 +47,7 @@ describe('Contributors store actions', () => {
[{ type: types.SET_LOADING_STATE, payload: true }],
[],
);
expect(createFlash).toHaveBeenCalledWith({
expect(createAlert).toHaveBeenCalledWith({
message: expect.stringMatching('error'),
});
});

View file

@ -83,7 +83,7 @@ RSpec.describe Gitlab::Database::BackgroundMigration::BatchedMigration, type: :m
describe '#execute!' do
context 'when an invalid transition is applied' do
%i[finished finalizing].each do |state|
%i[finalizing finished].each do |state|
it 'raises an exception' do
batched_migration = create(:batched_background_migration, state)
@ -103,6 +103,48 @@ RSpec.describe Gitlab::Database::BackgroundMigration::BatchedMigration, type: :m
end
end
describe '#finish!' do
context 'when an invalid transition is applied' do
it 'raises an exception' do
batched_migration = create(:batched_background_migration, :failed)
expect { batched_migration.finish! }.to raise_error(StateMachines::InvalidTransition, /Cannot transition status/)
end
end
context 'when a valid transition is applied' do
%i[active paused finished finalizing].each do |state|
it 'moves to active' do
batched_migration = create(:batched_background_migration, state)
expect(batched_migration.finish!).to be_truthy
end
end
end
end
describe '#failure!' do
context 'when an invalid transition is applied' do
%i[paused finished].each do |state|
it 'raises an exception' do
batched_migration = create(:batched_background_migration, state)
expect { batched_migration.failure! }.to raise_error(StateMachines::InvalidTransition, /Cannot transition status/)
end
end
end
context 'when a valid transition is applied' do
%i[failed finalizing active].each do |state|
it 'moves to active' do
batched_migration = create(:batched_background_migration, state)
expect(batched_migration.failure!).to be_truthy
end
end
end
end
describe '.valid_status' do
valid_status = [:paused, :active, :finished, :failed, :finalizing]

227
yarn.lock
View file

@ -1007,6 +1007,16 @@
ts-node "^9"
tslib "^2"
"@esbuild/android-arm@0.15.9":
version "0.15.9"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.9.tgz#7e1221604ab88ed5021ead74fa8cca4405e1e431"
integrity sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==
"@esbuild/linux-loong64@0.15.9":
version "0.15.9"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz#b658a97babf1f40783354af7039b84c3fdfc3fc3"
integrity sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==
"@eslint/eslintrc@^1.3.2":
version "1.3.2"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.2.tgz#58b69582f3b7271d8fa67fe5251767a5b38ea356"
@ -3143,16 +3153,15 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
browserslist@^4.20.2, browserslist@^4.20.3:
version "4.20.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3:
version "4.21.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
dependencies:
caniuse-lite "^1.0.30001332"
electron-to-chromium "^1.4.118"
escalade "^3.1.1"
node-releases "^2.0.3"
picocolors "^1.0.0"
caniuse-lite "^1.0.30001370"
electron-to-chromium "^1.4.202"
node-releases "^2.0.6"
update-browserslist-db "^1.0.5"
bser@2.1.1:
version "2.1.1"
@ -3316,10 +3325,10 @@ camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
caniuse-lite@^1.0.30001332:
version "1.0.30001340"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001340.tgz#029a2f8bfc025d4820fafbfaa6259fd7778340c7"
integrity sha512-jUNz+a9blQTQVu4uFcn17uAD8IDizPzQkIKh3LCJfg9BkyIqExYYdyc/ZSlWUSKb8iYiXxKsxbv4zYSvkqjrxw==
caniuse-lite@^1.0.30001370:
version "1.0.30001388"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz#88e01f4591cbd81f9f665f3f078c66b509fbe55d"
integrity sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==
canvas-confetti@^1.4.0:
version "1.4.0"
@ -4936,10 +4945,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
electron-to-chromium@^1.4.118:
version "1.4.137"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f"
integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==
electron-to-chromium@^1.4.202:
version "1.4.230"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.230.tgz#666909fdf5765acb1348b69752ee9955dc1664b7"
integrity sha512-3pwjAK0qHSDN9+YAF4fJknsSruP7mpjdWzUSruIJD/JCH77pEh0SorEyb3xVaKkfwk2tzjOt2D8scJ0KAdfXLA==
elliptic@^6.0.0:
version "6.5.4"
@ -5083,6 +5092,146 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
esbuild-android-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz#4a7eb320ca8d3a305f14792061fd9614ccebb7c0"
integrity sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==
esbuild-android-arm64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz#c948e5686df20857ad361ec67e070d40d7cab985"
integrity sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==
esbuild-darwin-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz#25f564fa4b39c1cec84dc46bce5634fdbce1d5e4"
integrity sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==
esbuild-darwin-arm64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz#60faea3ed95d15239536aa88d06bb82b29278a86"
integrity sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==
esbuild-freebsd-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz#0339ef1c90a919175e7816788224517896657a0e"
integrity sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==
esbuild-freebsd-arm64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz#32abfc0be3ae3dd38e5a86a9beadbbcf592f1b57"
integrity sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==
esbuild-linux-32@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz#93581348a4da7ed2b29bc5539f2605ad7fcee77b"
integrity sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==
esbuild-linux-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz#0d171e7946c95d0d3ed4826026af2c5632d7dcc4"
integrity sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==
esbuild-linux-arm64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz#9838795a3720cbe736d3bc20621bd366eac22f24"
integrity sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==
esbuild-linux-arm@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz#dce96cd817bc7376f6af3967649c4ab1f2f79506"
integrity sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==
esbuild-linux-mips64le@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz#0335a0739e61aa97cb9b4a018e3facfcca9cdcfd"
integrity sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==
esbuild-linux-ppc64le@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz#18482afb95b8a705e2da0a59d7131bff221281f9"
integrity sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==
esbuild-linux-riscv64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz#03b6f9708272c117006b9ce1c9ae8aab91b5a5b6"
integrity sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==
esbuild-linux-s390x@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz#65fb645623d575780f155f0ee52935e62f9cca4f"
integrity sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==
esbuild-loader@^2.20.0:
version "2.20.0"
resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.20.0.tgz#28fcff0142fa7bd227512d69f31e9a6e202bb88f"
integrity sha512-dr+j8O4w5RvqZ7I4PPB4EIyVTd679EBQnMm+JBB7av+vu05Zpje2IpK5N3ld1VWa+WxrInIbNFAg093+E1aRsA==
dependencies:
esbuild "^0.15.6"
joycon "^3.0.1"
json5 "^2.2.0"
loader-utils "^2.0.0"
tapable "^2.2.0"
webpack-sources "^2.2.0"
esbuild-netbsd-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz#7894297bb9e11f3d2f6f31efecd1be4e181f0d54"
integrity sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==
esbuild-openbsd-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz#0f9d4c6b6772ae50d491d68ad4cc028300dda7c0"
integrity sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==
esbuild-sunos-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz#c32b7ce574b08f814de810ce7c1e34b843768126"
integrity sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==
esbuild-windows-32@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz#37a8f7cfccdb2177cd46613a1a1e1fcb419d36df"
integrity sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==
esbuild-windows-64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz#5fe1e76fc13dd7f520febecaea110b6f1649c7b2"
integrity sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==
esbuild-windows-arm64@0.15.9:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz#98504428f7ba7d2cfc11940be68ee1139173fdce"
integrity sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==
esbuild@0.15.9, esbuild@^0.15.6:
version "0.15.9"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.9.tgz#33fb18b67b85004b6f7616bec955ca4b3e58935d"
integrity sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==
optionalDependencies:
"@esbuild/android-arm" "0.15.9"
"@esbuild/linux-loong64" "0.15.9"
esbuild-android-64 "0.15.9"
esbuild-android-arm64 "0.15.9"
esbuild-darwin-64 "0.15.9"
esbuild-darwin-arm64 "0.15.9"
esbuild-freebsd-64 "0.15.9"
esbuild-freebsd-arm64 "0.15.9"
esbuild-linux-32 "0.15.9"
esbuild-linux-64 "0.15.9"
esbuild-linux-arm "0.15.9"
esbuild-linux-arm64 "0.15.9"
esbuild-linux-mips64le "0.15.9"
esbuild-linux-ppc64le "0.15.9"
esbuild-linux-riscv64 "0.15.9"
esbuild-linux-s390x "0.15.9"
esbuild-netbsd-64 "0.15.9"
esbuild-openbsd-64 "0.15.9"
esbuild-sunos-64 "0.15.9"
esbuild-windows-32 "0.15.9"
esbuild-windows-64 "0.15.9"
esbuild-windows-arm64 "0.15.9"
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@ -7489,6 +7638,11 @@ jest@^27.5.1:
import-local "^3.0.2"
jest-cli "^27.5.1"
joycon@^3.0.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
jquery.caret@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/jquery.caret/-/jquery.caret-0.3.1.tgz#9c093318faf327eff322e826ca9f3241368bc7b8"
@ -7615,7 +7769,7 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
json5@^2.1.2, json5@^2.2.1:
json5@^2.1.2, json5@^2.2.0, json5@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
@ -9055,10 +9209,10 @@ node-libs-browser@^2.2.1:
util "^0.11.0"
vm-browserify "^1.0.1"
node-releases@^2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476"
integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==
node-releases@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
nodemon@^2.0.19:
version "2.0.19"
@ -10816,10 +10970,10 @@ sortablejs@^1.10.2, sortablejs@^1.9.0:
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290"
integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==
source-list-map@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085"
integrity sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==
source-list-map@^2.0.0, source-list-map@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2"
@ -11284,6 +11438,11 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
tapable@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
tar@^6.0.2:
version "6.1.11"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
@ -11811,6 +11970,14 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
update-browserslist-db@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@ -12266,6 +12433,14 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
source-list-map "^2.0.0"
source-map "~0.6.1"
webpack-sources@^2.2.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.1.tgz#570de0af163949fe272233c2cefe1b56f74511fd"
integrity sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==
dependencies:
source-list-map "^2.0.1"
source-map "^0.6.1"
webpack-stats-plugin@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz#1103c39a305a4e6ba15d5078db84bc0b35447417"