Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2020-07-16 09:09:28 +00:00
parent 000087abd5
commit 9c7b3812a2
23 changed files with 319 additions and 63 deletions

View File

@ -203,8 +203,7 @@ export default {
}
return { ...el, disabled: false };
});
const [selected] = this.options;
this.selectedEndpoint = selected.value;
this.selectedEndpoint = this.options.find(({ value }) => value === 'opsgenie').value;
if (this.targetUrl === null) {
this.targetUrl = this.selectedService.targetUrl;
}
@ -497,7 +496,7 @@ export default {
>
<template #append>
<clipboard-button
:text="selectedService.authKey"
:text="selectedService.authKey || ''"
:title="$options.i18n.copyToClipboard"
class="gl-m-0!"
/>

View File

@ -11,6 +11,9 @@ const Api = {
groupMembersPath: '/api/:version/groups/:id/members',
subgroupsPath: '/api/:version/groups/:id/subgroups',
namespacesPath: '/api/:version/namespaces.json',
groupPackagesPath: '/api/:version/groups/:id/packages',
projectPackagesPath: '/api/:version/projects/:id/packages',
projectPackagePath: '/api/:version/projects/:id/packages/:package_id',
groupProjectsPath: '/api/:version/groups/:id/projects.json',
projectsPath: '/api/:version/projects.json',
projectPath: '/api/:version/projects/:id',
@ -66,6 +69,32 @@ const Api = {
});
},
groupPackages(id, options = {}) {
const url = Api.buildUrl(this.groupPackagesPath).replace(':id', id);
return axios.get(url, options);
},
projectPackages(id, options = {}) {
const url = Api.buildUrl(this.projectPackagesPath).replace(':id', id);
return axios.get(url, options);
},
buildProjectPackageUrl(projectId, packageId) {
return Api.buildUrl(this.projectPackagePath)
.replace(':id', projectId)
.replace(':package_id', packageId);
},
projectPackage(projectId, packageId) {
const url = this.buildProjectPackageUrl(projectId, packageId);
return axios.get(url);
},
deleteProjectPackage(projectId, packageId) {
const url = this.buildProjectPackageUrl(projectId, packageId);
return axios.delete(url);
},
groupMembers(id, options) {
const url = Api.buildUrl(this.groupMembersPath).replace(':id', encodeURIComponent(id));

View File

@ -103,11 +103,11 @@ export default {
/>
</template>
<template #footer>
<div class="d-flex justify-content-end">
<div class="gl-display-flex gl-justify-content-end">
<gl-deprecated-button
ref="cancel-button"
type="reset"
class="mr-2 d-block"
class="gl-mr-3 gl-display-block"
:disabled="isCancelButtonDisabled"
>
{{ __('Cancel') }}
@ -117,10 +117,10 @@ export default {
type="submit"
:disabled="isSubmitButtonDisabled"
variant="success"
class="d-flex justify-content-center align-items-center js-no-auto-disable"
class="gl-display-flex gl-justify-content-center gl-align-items-center js-no-auto-disable"
>
{{ $options.i18n.SET_CLEANUP_POLICY_BUTTON }}
<gl-loading-icon v-if="isLoading" class="ml-2" />
<gl-loading-icon v-if="isLoading" class="gl-ml-3" />
</gl-deprecated-button>
</div>
</template>

View File

@ -177,7 +177,7 @@ export default {
</script>
<template>
<div ref="form-elements" class="lh-2">
<div ref="form-elements" class="gl-line-height-20">
<gl-form-group
:id="idGenerator('expiration-policy-toggle-group')"
:label-cols="labelCols"
@ -185,13 +185,13 @@ export default {
:label-for="idGenerator('expiration-policy-toggle')"
:label="$options.i18n.ENABLE_TOGGLE_LABEL"
>
<div class="d-flex align-items-start">
<div class="gl-display-flex">
<gl-toggle
:id="idGenerator('expiration-policy-toggle')"
v-model="enabled"
:disabled="isLoading"
/>
<span class="mb-2 ml-2 lh-2">
<span class="gl-mb-3 gl-ml-3 gl-line-height-20">
<gl-sprintf :message="$options.i18n.ENABLE_TOGGLE_DESCRIPTION">
<template #toggleStatus>
<strong>{{ policyEnabledText }}</strong>

View File

@ -0,0 +1,5 @@
---
title: Mark existing Project Bot Users as confirmed
merge_request: 36692
author:
type: fixed

View File

@ -0,0 +1,30 @@
# frozen_string_literal: true
class ConfirmProjectBotUsers < ActiveRecord::Migration[6.0]
DOWNTIME = false
disable_ddl_transaction!
class User < ApplicationRecord
self.table_name = 'users'
include ::EachBatch
USER_TYPE_PROJECT_BOT = 6
scope :project_bots, -> { where(user_type: USER_TYPE_PROJECT_BOT) }
scope :unconfirmed, -> { where(confirmed_at: nil) }
end
def up
User.reset_column_information
User.project_bots.unconfirmed.each_batch do |relation|
relation.update_all('confirmed_at = created_at')
end
end
def down
# no-op
end
end

View File

@ -23772,5 +23772,6 @@ COPY "schema_migrations" (version) FROM STDIN;
20200710102846
20200710105332
20200710130234
20200713071042
\.

View File

@ -126,7 +126,8 @@ Its feature set is listed on the table below according to DevOps stages.
| [ChatOps](chatops/README.md) | Trigger CI jobs from chat, with results sent back to the channel. |
|---+---|
| **Verify** ||
| [Browser Performance Testing](../user/project/merge_requests/browser_performance_testing.md) | Quickly determine the performance impact of pending code changes. |
| [Browser Performance Testing](../user/project/merge_requests/browser_performance_testing.md) | Quickly determine the browser performance impact of pending code changes. |
| [Load Performance Testing](../user/project/merge_requests/load_performance_testing.md) | Quickly determine the server performance impact of pending code changes. |
| [CI services](services/README.md) | Link Docker containers with your base image.|
| [Code Quality](../user/project/merge_requests/code_quality.md) **(STARTER)** | Analyze your source code quality. |
| [GitLab CI/CD for external repositories](ci_cd_for_external_repos/index.md) **(PREMIUM)** | Get the benefits of GitLab CI/CD combined with repositories in GitHub and Bitbucket Cloud. |

View File

@ -25,6 +25,7 @@ The following table lists examples with step-by-step tutorials that are containe
| Use case | Resource |
|:------------------------------|:---------------------------------------------------------------------------------------------------------------------------|
| Browser performance testing | [Browser Performance Testing with the Sitespeed.io container](../../user/project/merge_requests/browser_performance_testing.md). |
| Load performance testing | [Load Performance Testing with the k6 container](../../user/project/merge_requests/load_performance_testing.md). |
| Clojure | [Test a Clojure application with GitLab CI/CD](test-clojure-application.md). |
| Deployment with Dpl | [Using `dpl` as deployment tool](deployment/README.md). |
| Elixir | [Testing a Phoenix application with GitLab CI/CD](test_phoenix_app_with_gitlab_ci_cd/index.md). |

View File

@ -189,7 +189,8 @@ according to each stage (Verify, Package, Release).
1. **Verify**:
- Automatically build and test your application with Continuous Integration.
- Analyze your source code quality with [GitLab Code Quality](../../user/project/merge_requests/code_quality.md). **(STARTER)**
- Determine the performance impact of code changes with [Browser Performance Testing](../../user/project/merge_requests/browser_performance_testing.md). **(PREMIUM)**
- Determine the browser performance impact of code changes with [Browser Performance Testing](../../user/project/merge_requests/browser_performance_testing.md). **(PREMIUM)**
- Determine the server performance impact of code changes with [Load Performance Testing](../../user/project/merge_requests/load_performance_testing.md). **(PREMIUM)**
- Perform a series of tests, such as [Container Scanning](../../user/application_security/container_scanning/index.md) **(ULTIMATE)**, [Dependency Scanning](../../user/application_security/dependency_scanning/index.md) **(ULTIMATE)**, and [JUnit tests](../junit_test_reports.md).
- Deploy your changes with [Review Apps](../review_apps/index.md) to preview the app changes on every branch.
1. **Package**:

View File

@ -264,7 +264,7 @@ following command:
```ruby
Feature.enable(:junit_pipeline_view)
# Enable the feature for a specific project
# Enable the feature for a specific project, GitLab 13.0 and above only.
Feature.enable(:junit_pipeline_view, Project.find(<your-project-id-here>))
```

View File

@ -295,7 +295,8 @@ You can disable DAST:
> Introduced in [GitLab Premium](https://about.gitlab.com/pricing/) 10.4.
Auto Browser Performance Testing measures the performance of a web page with the
Auto [Browser Performance Testing](../../user/project/merge_requests/browser_performance_testing.md)
measures the browser performance of a web page with the
[Sitespeed.io container](https://hub.docker.com/r/sitespeedio/sitespeed.io/),
creates a JSON report including the overall performance score for each page, and
uploads the report as an artifact. By default, it tests the root page of your Review and
@ -308,9 +309,26 @@ file named `.gitlab-urls.txt` in the root directory, one file per line. For exam
/direction
```
Any performance differences between the source and target branches are also
Any browser performance differences between the source and target branches are also
[shown in the merge request widget](../../user/project/merge_requests/browser_performance_testing.md).
## Auto Load Performance Testing **(PREMIUM)**
> Introduced in [GitLab Premium](https://about.gitlab.com/pricing/) 13.2.
Auto [Load Performance Testing](../../user/project/merge_requests/load_performance_testing.md)
measures the server performance of an application with the
[k6 container](https://hub.docker.com/r/loadimpact/k6/),
creates a JSON report including several key result metrics, and
uploads the report as an artifact.
Some initial setup is required. A [k6](https://k6.io/) test needs to be
written that's tailored to your specific application. The test also needs to be
configured so it can pick up the environment's dynamic URL via an environment variable.
Any load performance test result differences between the source and target branches are also
[shown in the merge request widget](../../user/project/merge_requests/load_performance_testing.md).
## Auto Deploy
This is an optional step, since many projects don't have a Kubernetes cluster

View File

@ -43,6 +43,7 @@ Access the default page for admin area settings by navigating to
| Option | Description |
| ------ | ----------- |
| [Repository's custom initial branch name](../../project/repository/branches/index.md#custom-initial-branch-name-core-only) | Set a custom branch name rather than master for all the new repositories created within your instance. |
| [Repository mirror](visibility_and_access_controls.md#allow-mirrors-to-be-set-up-for-projects) | Configure repository mirroring. |
| [Repository storage](../../../administration/repository_storage_types.md) | Configure storage path settings. |
| Repository maintenance | ([Repository checks](../../../administration/repository_checks.md) and [Housekeeping](../../../administration/housekeeping.md)). Configure automatic Git checks and housekeeping on repositories. |

View File

@ -26,7 +26,7 @@ Code Quality:
- Can be extended through [Analysis Plugins](https://docs.codeclimate.com/docs/list-of-engines) or a [custom tool](#implementing-a-custom-tool).
Going a step further, GitLab can show the Code Quality report right
in the merge request widget area:
in the merge request widget area if a report from the target branch is available to compare to:
![Code Quality Widget](img/code_quality.png)
@ -333,6 +333,7 @@ This can be due to multiple reasons:
- You just added the Code Quality job in your `.gitlab-ci.yml`. The report does not
have anything to compare to yet, so no information can be displayed. Future merge
requests will have something to compare to.
- Your pipeline is not set to run the code quality job on your default branch. If there is no report generated from the default branch, your MR branch reports will not have anything to compare to.
- If no [degradation or error is detected](https://docs.codeclimate.com/docs/maintainability#section-checks),
nothing will be displayed.
- The [`artifacts:expire_in`](../../../ci/yaml/README.md#artifactsexpire_in) CI/CD

View File

@ -14,7 +14,8 @@ or link to useful information directly from merge requests:
| Feature | Description |
|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Accessibility Testing](accessibility_testing.md) | Automatically report A11y violations for changed pages in merge requests. |
| [Browser Performance Testing](browser_performance_testing.md) **(PREMIUM)** | Quickly determine the performance impact of pending code changes. |
| [Browser Performance Testing](browser_performance_testing.md) **(PREMIUM)** | Quickly determine the browser performance impact of pending code changes. |
| [Load Performance Testing](load_performance_testing.md) **(PREMIUM)** | Quickly determine the server performance impact of pending code changes. |
| [Code Quality](code_quality.md) **(STARTER)** | Analyze your source code quality using the [Code Climate](https://codeclimate.com/) analyzer and show the Code Climate report right in the merge request widget area. |
| [Display arbitrary job artifacts](../../../ci/yaml/README.md#artifactsexpose_as) | Configure CI pipelines with the `artifacts:expose_as` parameter to directly link to selected [artifacts](../../../ci/pipelines/job_artifacts.md) in merge requests. |
| [GitLab CI/CD](../../../ci/README.md) | Build, test, and deploy your code in a per-branch basis with built-in CI/CD. |

View File

@ -41,17 +41,51 @@ See also:
## Default branch
When you create a new [project](../../index.md), GitLab sets `master` as the default
branch for your project. You can choose another branch to be your project's
branch of the repository. You can choose another branch to be your project's
default under your project's **Settings > Repository**.
The default branch is the branch affected by the
[issue closing pattern](../../issues/managing_issues.md#closing-issues-automatically),
which means that _an issue will be closed when a merge request is merged to
the **default branch**_.
When closing issues directly from merge requests through the [issue closing pattern](../../issues/managing_issues.md#closing-issues-automatically),
the target is the project's **default branch**.
The default branch is also protected against accidental deletion. Read through
the documentation on [protected branches](../../protected_branches.md#protected-branches)
to learn more.
The default branch is also initially [protected](../../protected_branches.md#protected-branches)
against accidental deletion and forced pushes.
### Custom initial branch name **(CORE ONLY)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221013) in GitLab 13.2.
> - It's deployed behind a feature flag, enabled by default.
> - It's enabled on GitLab.com.
> - It cannot be enabled or disabled per-project.
> - It's recommended for production use.
> - For GitLab self-managed instances, GitLab administrators can opt to [disable it](#enable-or-disable-custom-initial-branch-name-core-only). **(CORE ONLY)**
By default, when you create a new project in GitLab, the initial branch is called `master`.
For self-managed instances, a GitLab administrator can customize the initial branch name to something
else. This way, every new project created from then on will start from the custom branch name rather than `master`. To do so:
1. Go to the **{admin}** **Admin Area > Settings > Repository** and expand **Default initial
branch name**.
1. Change the default initial branch to a custom name of your choice.
1. **Save Changes**.
#### Enable or disable custom initial branch name **(CORE ONLY)**
Setting the default initial branch name is under development but ready for production use.
It is deployed behind a feature flag that is **enabled by default**.
[GitLab administrators with access to the GitLab Rails console](../../../../administration/feature_flags.md)
can opt to disable it for your instance.
To disable it:
```ruby
Feature.disable(:global_default_branch_name)
```
To enable it:
```ruby
Feature.enable(:global_default_branch_name)
```
## Compare

View File

@ -43,7 +43,7 @@
"@babel/preset-env": "^7.10.1",
"@gitlab/at.js": "1.5.5",
"@gitlab/svgs": "1.152.0",
"@gitlab/ui": "17.26.0",
"@gitlab/ui": "17.29.0",
"@gitlab/visual-review-tools": "1.6.1",
"@rails/actioncable": "^6.0.3-1",
"@sentry/browser": "^5.10.2",

View File

@ -177,6 +177,7 @@ describe('AlertsSettingsForm', () => {
it('shows a input for the opsgenie target URL', () => {
expect(findApiUrl().exists()).toBe(true);
expect(findSelect().attributes('value')).toBe('opsgenie');
});
});

View File

@ -46,6 +46,77 @@ describe('Api', () => {
});
});
describe('packages', () => {
const projectId = 'project_a';
const packageId = 'package_b';
const apiResponse = [{ id: 1, name: 'foo' }];
describe('groupPackages', () => {
const groupId = 'group_a';
it('fetch all group packages', () => {
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/groups/${groupId}/packages`;
jest.spyOn(axios, 'get');
mock.onGet(expectedUrl).replyOnce(200, apiResponse);
return Api.groupPackages(groupId).then(({ data }) => {
expect(data).toEqual(apiResponse);
expect(axios.get).toHaveBeenCalledWith(expectedUrl, {});
});
});
});
describe('projectPackages', () => {
it('fetch all project packages', () => {
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${projectId}/packages`;
jest.spyOn(axios, 'get');
mock.onGet(expectedUrl).replyOnce(200, apiResponse);
return Api.projectPackages(projectId).then(({ data }) => {
expect(data).toEqual(apiResponse);
expect(axios.get).toHaveBeenCalledWith(expectedUrl, {});
});
});
});
describe('buildProjectPackageUrl', () => {
it('returns the right url', () => {
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${projectId}/packages/${packageId}`;
const url = Api.buildProjectPackageUrl(projectId, packageId);
expect(url).toEqual(expectedUrl);
});
});
describe('projectPackage', () => {
it('fetch package details', () => {
const expectedUrl = `foo`;
jest.spyOn(Api, 'buildProjectPackageUrl').mockReturnValue(expectedUrl);
jest.spyOn(axios, 'get');
mock.onGet(expectedUrl).replyOnce(200, apiResponse);
return Api.projectPackage(projectId, packageId).then(({ data }) => {
expect(data).toEqual(apiResponse);
expect(axios.get).toHaveBeenCalledWith(expectedUrl);
});
});
});
describe('deleteProjectPackage', () => {
it('delete a package', () => {
const expectedUrl = `foo`;
jest.spyOn(Api, 'buildProjectPackageUrl').mockReturnValue(expectedUrl);
jest.spyOn(axios, 'delete');
mock.onDelete(expectedUrl).replyOnce(200, true);
return Api.deleteProjectPackage(projectId, packageId).then(({ data }) => {
expect(data).toEqual(true);
expect(axios.delete).toHaveBeenCalledWith(expectedUrl);
});
});
});
});
describe('group', () => {
it('fetches a group', done => {
const groupId = '123456';

View File

@ -66,6 +66,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
<svg
aria-label="Will be mapped to"
class="gl-icon s16"
data-testid="arrow-right-icon"
>
<use
href="#arrow-right"
@ -98,6 +99,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
<svg
class="dropdown-chevron gl-icon s16"
data-testid="chevron-down-icon"
>
<use
href="#chevron-down"
@ -116,6 +118,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
>
<svg
class="gl-search-box-by-type-search-icon gl-icon s16"
data-testid="search-icon"
>
<use
href="#search"
@ -134,21 +137,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
>
<!---->
<button
aria-hidden="true"
class="gl-clear-icon-button gl-search-box-by-type-clear gl-clear-icon-button"
name="clear"
style="display: none;"
title="Clear"
>
<svg
class="gl-icon s16"
>
<use
href="#clear"
/>
</svg>
</button>
<!---->
</div>
</div>
@ -188,6 +177,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
<svg
aria-label="Will be mapped to"
class="gl-icon s16"
data-testid="arrow-right-icon"
>
<use
href="#arrow-right"
@ -220,6 +210,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
<svg
class="dropdown-chevron gl-icon s16"
data-testid="chevron-down-icon"
>
<use
href="#chevron-down"
@ -238,6 +229,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
>
<svg
class="gl-search-box-by-type-search-icon gl-icon s16"
data-testid="search-icon"
>
<use
href="#search"
@ -256,21 +248,7 @@ exports[`JiraImportForm table body shows correct information in each cell 1`] =
>
<!---->
<button
aria-hidden="true"
class="gl-clear-icon-button gl-search-box-by-type-clear gl-clear-icon-button"
name="clear"
style="display: none;"
title="Clear"
>
<svg
class="gl-icon s16"
>
<use
href="#clear"
/>
</svg>
</button>
<!---->
</div>
</div>

View File

@ -2,7 +2,7 @@
exports[`Expiration Policy Form renders 1`] = `
<div
class="lh-2"
class="gl-line-height-20"
>
<gl-form-group-stub
id="expiration-policy-toggle-group"
@ -12,7 +12,7 @@ exports[`Expiration Policy Form renders 1`] = `
label-for="expiration-policy-toggle"
>
<div
class="d-flex align-items-start"
class="gl-display-flex"
>
<gl-toggle-stub
id="expiration-policy-toggle"
@ -20,7 +20,7 @@ exports[`Expiration Policy Form renders 1`] = `
/>
<span
class="mb-2 ml-2 lh-2"
class="gl-mb-3 gl-ml-3 gl-line-height-20"
>
<strong>
Disabled

View File

@ -0,0 +1,84 @@
# frozen_string_literal: true
require 'spec_helper'
require Rails.root.join('db', 'post_migrate', '20200713071042_confirm_project_bot_users.rb')
RSpec.describe ConfirmProjectBotUsers, :migration do
let(:users) { table(:users) }
context 'project bot users that are currently unconfirmed' do
let!(:project_bot_1) do
create_user!(
name: 'bot_1',
email: 'bot_1@example.com',
created_at: 2.days.ago,
user_type: described_class::User::USER_TYPE_PROJECT_BOT
)
end
let!(:project_bot_2) do
create_user!(
name: 'bot_2',
email: 'bot_2@example.com',
created_at: 4.days.ago,
user_type: described_class::User::USER_TYPE_PROJECT_BOT
)
end
it 'updates their `confirmed_at` attribute' do
expect { migrate! }
.to change { project_bot_1.reload.confirmed_at }
.and change { project_bot_2.reload.confirmed_at }
end
it 'sets `confirmed_at` to be the same as their `created_at` attribute' do
migrate!
[project_bot_1, project_bot_2].each do |bot|
expect(bot.reload.confirmed_at).to eq(bot.created_at)
end
end
end
context 'project bot users that are currently confirmed' do
let!(:confirmed_project_bot) do
create_user!(
name: 'bot_1',
email: 'bot_1@example.com',
user_type: described_class::User::USER_TYPE_PROJECT_BOT,
confirmed_at: 1.day.ago
)
end
it 'does not update their `confirmed_at` attribute' do
expect { migrate! }.not_to change { confirmed_project_bot.reload.confirmed_at }
end
end
context 'human users that are currently unconfirmed' do
let!(:unconfirmed_human) do
create_user!(
name: 'human',
email: 'human@example.com',
user_type: nil
)
end
it 'does not update their `confirmed_at` attribute' do
expect { migrate! }.not_to change { unconfirmed_human.reload.confirmed_at }
end
end
private
def create_user!(name:, email:, user_type:, created_at: Time.now, confirmed_at: nil)
users.create!(
name: name,
email: email,
username: name,
projects_limit: 0,
user_type: user_type,
confirmed_at: confirmed_at
)
end
end

View File

@ -848,10 +848,10 @@
resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.152.0.tgz#663c9a5f073f59b66f4241ef2d3fea2205846905"
integrity sha512-daZHOBVAwjsU6n60IycanoO/JymfQ36vrr46OUdWjHdp0ATYrgh+01LcxiSNLdlyndIRqHWGtwmuilokM9q6Vg==
"@gitlab/ui@17.26.0":
version "17.26.0"
resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-17.26.0.tgz#d8efad47c3f4dc32e0586f3f5e4e2e3e0c2babf6"
integrity sha512-0QgzMK8MFGaqBB8yYntjYjUnzKFQ9a8d4mjufIyeKq6WomuMYHTFJgUj0+cEQ6uuTRtNk3MMuy3ZHBJg1wGzTw==
"@gitlab/ui@17.29.0":
version "17.29.0"
resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-17.29.0.tgz#74fbe7e7675455297d9928bd84a0810be19a4bb6"
integrity sha512-526AcBt2kOmx+c9WgVbOxqi1xc08zIa6AkyAf+4VIG3IM3hjBNjPV932goBlWY9iQJq7FN8YFocePJmt4e+lUA==
dependencies:
"@babel/standalone" "^7.0.0"
"@gitlab/vue-toasted" "^1.3.0"