Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
6a0a4a80f7
commit
d3fafe0995
|
@ -1,13 +1,50 @@
|
||||||
<script>
|
<script>
|
||||||
|
import { GlAlert } from '@gitlab/ui';
|
||||||
import { s__ } from '~/locale';
|
import { s__ } from '~/locale';
|
||||||
|
import getProjectStorageCount from '../queries/project_storage.query.graphql';
|
||||||
|
import { parseGetProjectStorageResults } from '../utils';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StorageCounterApp',
|
name: 'StorageCounterApp',
|
||||||
|
components: {
|
||||||
|
GlAlert,
|
||||||
|
},
|
||||||
|
inject: ['projectPath'],
|
||||||
|
apollo: {
|
||||||
|
project: {
|
||||||
|
query: getProjectStorageCount,
|
||||||
|
variables() {
|
||||||
|
return {
|
||||||
|
fullPath: this.projectPath,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
update: parseGetProjectStorageResults,
|
||||||
|
error() {
|
||||||
|
this.error = s__(
|
||||||
|
'UsageQuota|Something went wrong while fetching project storage statistics',
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
project: {},
|
||||||
|
error: '',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
clearError() {
|
||||||
|
this.error = '';
|
||||||
|
},
|
||||||
|
},
|
||||||
i18n: {
|
i18n: {
|
||||||
placeholder: s__('UsageQuota|Usage'),
|
placeholder: s__('UsageQuota|Usage'),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div>{{ $options.i18n.placeholder }}</div>
|
<gl-alert v-if="error" variant="danger" @dismiss="clearError">
|
||||||
|
{{ error }}
|
||||||
|
</gl-alert>
|
||||||
|
<div v-else>{{ $options.i18n.placeholder }}</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
import VueApollo from 'vue-apollo';
|
||||||
|
import createDefaultClient from '~/lib/graphql';
|
||||||
import StorageCounterApp from './components/app.vue';
|
import StorageCounterApp from './components/app.vue';
|
||||||
|
|
||||||
|
Vue.use(VueApollo);
|
||||||
|
|
||||||
export default (containerId = 'js-project-storage-count-app') => {
|
export default (containerId = 'js-project-storage-count-app') => {
|
||||||
const el = document.getElementById(containerId);
|
const el = document.getElementById(containerId);
|
||||||
|
|
||||||
|
@ -8,8 +12,18 @@ export default (containerId = 'js-project-storage-count-app') => {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { projectPath } = el.dataset;
|
||||||
|
|
||||||
|
const apolloProvider = new VueApollo({
|
||||||
|
defaultClient: createDefaultClient({}, { assumeImmutableResults: true }),
|
||||||
|
});
|
||||||
|
|
||||||
return new Vue({
|
return new Vue({
|
||||||
el,
|
el,
|
||||||
|
apolloProvider,
|
||||||
|
provide: {
|
||||||
|
projectPath,
|
||||||
|
},
|
||||||
render(createElement) {
|
render(createElement) {
|
||||||
return createElement(StorageCounterApp);
|
return createElement(StorageCounterApp);
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
query getProjectStorageCount($fullPath: ID!) {
|
||||||
|
project(fullPath: $fullPath) {
|
||||||
|
id
|
||||||
|
statistics {
|
||||||
|
buildArtifactsSize
|
||||||
|
lfsObjectsSize
|
||||||
|
packagesSize
|
||||||
|
repositorySize
|
||||||
|
snippetsSize
|
||||||
|
storageSize
|
||||||
|
uploadsSize
|
||||||
|
wikiSize
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
import { numberToHumanSize } from '~/lib/utils/number_utils';
|
||||||
|
import { s__ } from '~/locale';
|
||||||
|
|
||||||
|
const projectStorageTypes = [
|
||||||
|
{
|
||||||
|
id: 'buildArtifactsSize',
|
||||||
|
name: s__('UsageQuota|Artifacts'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'lfsObjectsSize',
|
||||||
|
name: s__('UsageQuota|LFS Storage'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'packagesSize',
|
||||||
|
name: s__('UsageQuota|Packages'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'repositorySize',
|
||||||
|
name: s__('UsageQuota|Repository'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'snippetsSize',
|
||||||
|
name: s__('UsageQuota|Snippets'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'uploadsSize',
|
||||||
|
name: s__('UsageQuota|Uploads'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'wikiSize',
|
||||||
|
name: s__('UsageQuota|Wiki'),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method parses the results from `getProjectStorageCount` call.
|
||||||
|
*
|
||||||
|
* @param {Object} data graphql result
|
||||||
|
* @returns {Object}
|
||||||
|
*/
|
||||||
|
export const parseGetProjectStorageResults = (data) => {
|
||||||
|
const projectStatistics = data?.project?.statistics;
|
||||||
|
if (!projectStatistics) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
const { storageSize, ...storageStatistics } = projectStatistics;
|
||||||
|
const storageTypes = projectStorageTypes.reduce((types, currentType) => {
|
||||||
|
if (!storageStatistics[currentType.id]) {
|
||||||
|
return types;
|
||||||
|
}
|
||||||
|
|
||||||
|
return types.concat({
|
||||||
|
...currentType,
|
||||||
|
value: numberToHumanSize(storageStatistics[currentType.id]),
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return {
|
||||||
|
storage: {
|
||||||
|
totalUsage: numberToHumanSize(storageSize),
|
||||||
|
storageTypes,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
|
@ -823,9 +823,15 @@ class Group < Namespace
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.groups_including_descendants_by(group_ids)
|
def self.groups_including_descendants_by(group_ids)
|
||||||
Gitlab::ObjectHierarchy
|
groups = Group.where(id: group_ids)
|
||||||
.new(Group.where(id: group_ids))
|
|
||||||
|
if Feature.enabled?(:linear_group_including_descendants_by, default_enabled: :yaml)
|
||||||
|
groups.self_and_descendants
|
||||||
|
else
|
||||||
|
Gitlab::ObjectHierarchy
|
||||||
|
.new(groups)
|
||||||
.base_and_descendants
|
.base_and_descendants
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def disable_shared_runners!
|
def disable_shared_runners!
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
%section.settings.as-default-branch-name.no-animate#js-default-branch-name{ class: ('expanded' if expanded_by_default?) }
|
%section.settings.as-default-branch-name.no-animate#js-default-branch-name{ class: ('expanded' if expanded_by_default?) }
|
||||||
.settings-header
|
.settings-header
|
||||||
%h4
|
%h4.settings-title.js-settings-toggle.js-settings-toggle-trigger-only
|
||||||
= _('Default initial branch name')
|
= _('Default initial branch name')
|
||||||
%button.gl-button.js-settings-toggle{ type: 'button' }
|
%button.gl-button.js-settings-toggle{ type: 'button' }
|
||||||
= expanded_by_default? ? _('Collapse') : _('Expand')
|
= expanded_by_default? ? _('Collapse') : _('Expand')
|
||||||
|
|
|
@ -14,4 +14,4 @@
|
||||||
= s_('UsageQuota|Storage')
|
= s_('UsageQuota|Storage')
|
||||||
.tab-content
|
.tab-content
|
||||||
.tab-pane#storage-quota-tab
|
.tab-pane#storage-quota-tab
|
||||||
#js-project-storage-count-app
|
#js-project-storage-count-app{ data: { project_path: @project.full_path } }
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
class ExpireJobCacheWorker # rubocop:disable Scalability/IdempotentWorker
|
class ExpireJobCacheWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :delayed, feature_flag: :load_balancing_for_expire_job_cache_worker
|
data_consistency :delayed
|
||||||
|
|
||||||
sidekiq_options retry: 3
|
sidekiq_options retry: 3
|
||||||
include PipelineQueue
|
include PipelineQueue
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
---
|
---
|
||||||
name: load_balancing_for_expire_job_cache_worker
|
name: linear_group_including_descendants_by
|
||||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68791
|
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68835
|
||||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/339137
|
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/339431
|
||||||
milestone: '14.3'
|
milestone: '14.3'
|
||||||
type: development
|
type: development
|
||||||
group: group::pipeline authoring
|
group: group::access
|
||||||
default_enabled: false
|
default_enabled: false
|
|
@ -9,33 +9,23 @@ type: index
|
||||||
|
|
||||||
# GitLab CI/CD **(FREE)**
|
# GitLab CI/CD **(FREE)**
|
||||||
|
|
||||||
GitLab CI/CD is a tool built into GitLab for software development
|
GitLab CI/CD is a tool for software development using the continuous methodologies:
|
||||||
through the [continuous methodologies](introduction/index.md):
|
|
||||||
|
|
||||||
- Continuous Integration (CI)
|
- [Continuous Integration (CI)](introduction/index.md#continuous-integration)
|
||||||
- Continuous Delivery (CD)
|
- [Continuous Delivery (CD)](introduction/index.md#continuous-delivery)
|
||||||
- Continuous Deployment (CD)
|
- [Continuous Deployment (CD)](introduction/index.md#continuous-deployment)
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
Out-of-the-box management systems can decrease hours spent on maintaining toolchains by 10% or more.
|
Out-of-the-box management systems can decrease hours spent on maintaining toolchains by 10% or more.
|
||||||
Watch our ["Mastering continuous software development"](https://about.gitlab.com/webcast/mastering-ci-cd/)
|
Watch our ["Mastering continuous software development"](https://about.gitlab.com/webcast/mastering-ci-cd/)
|
||||||
webcast to learn about continuous methods and how the GitLab built-in CI can help you simplify and scale software development.
|
webcast to learn about continuous methods and how GitLab CI/CD can help you simplify and scale software development.
|
||||||
|
|
||||||
Continuous Integration works by pushing small code chunks to your
|
Use GitLab CI/CD to catch bugs and errors early in
|
||||||
application's codebase hosted in a Git repository, and to every
|
the development cycle. Ensure that all the code deployed to
|
||||||
push, run a pipeline of scripts to build, test, and validate the
|
|
||||||
code changes before merging them into the main branch.
|
|
||||||
|
|
||||||
Continuous Delivery and Deployment consist of a step further CI,
|
|
||||||
deploying your application to production at every
|
|
||||||
push to the default branch of the repository.
|
|
||||||
|
|
||||||
These methodologies allow you to catch bugs and errors early in
|
|
||||||
the development cycle, ensuring that all the code deployed to
|
|
||||||
production complies with the code standards you established for
|
production complies with the code standards you established for
|
||||||
your app.
|
your app.
|
||||||
|
|
||||||
GitLab can also automatically detect, build, test, deploy, and
|
GitLab CI/CD can automatically build, test, deploy, and
|
||||||
monitor your applications by using [Auto DevOps](../topics/autodevops/index.md).
|
monitor your applications by using [Auto DevOps](../topics/autodevops/index.md).
|
||||||
|
|
||||||
For a complete overview of these methodologies and GitLab CI/CD,
|
For a complete overview of these methodologies and GitLab CI/CD,
|
||||||
|
@ -82,21 +72,20 @@ GitLab CI/CD supports numerous configuration options:
|
||||||
Certain operations can only be performed according to the
|
Certain operations can only be performed according to the
|
||||||
[user](../user/permissions.md#gitlab-cicd-permissions) and [job](../user/permissions.md#job-permissions) permissions.
|
[user](../user/permissions.md#gitlab-cicd-permissions) and [job](../user/permissions.md#job-permissions) permissions.
|
||||||
|
|
||||||
## Feature set
|
## Features
|
||||||
|
|
||||||
Use the vast GitLab CI/CD to easily configure it for specific purposes.
|
GitLab CI/CD features, grouped by DevOps stage, include:
|
||||||
Its feature set is listed on the table below according to DevOps stages.
|
|
||||||
|
|
||||||
| Feature | Description |
|
| Feature | Description |
|
||||||
|:------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|
|
|:------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| **Configure** | |
|
| **Configure** | |
|
||||||
| [Auto DevOps](../topics/autodevops/index.md) | Set up your app's entire lifecycle. |
|
| [Auto DevOps](../topics/autodevops/index.md) | Set up your app's entire lifecycle. |
|
||||||
| [ChatOps](chatops/index.md) | Trigger CI jobs from chat, with results sent back to the channel. |
|
| [ChatOps](chatops/index.md) | Trigger CI jobs from chat, with results sent back to the channel. |
|
||||||
|-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
|
|-------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| **Verify** | |
|
| **Verify** | |
|
||||||
| [Browser Performance Testing](../user/project/merge_requests/browser_performance_testing.md) | Quickly determine the browser 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. |
|
| [Load Performance Testing](../user/project/merge_requests/load_performance_testing.md) | Quickly determine the server performance impact of pending code changes. |
|
||||||
| [CI services](services/index.md) | Link Docker containers with your base image. |
|
| [CI services](services/index.md) | Link Docker containers with your base image. |
|
||||||
| [Code Quality](../user/project/merge_requests/code_quality.md) | Analyze your source code quality. |
|
| [Code Quality](../user/project/merge_requests/code_quality.md) | 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. |
|
| [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. |
|
||||||
| [Interactive Web Terminals](interactive_web_terminal/index.md) **(FREE SELF)** | Open an interactive web terminal to debug the running jobs. |
|
| [Interactive Web Terminals](interactive_web_terminal/index.md) **(FREE SELF)** | Open an interactive web terminal to debug the running jobs. |
|
||||||
|
@ -122,28 +111,27 @@ Its feature set is listed on the table below according to DevOps stages.
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
Find example project code and tutorials for using GitLab CI/CD with a variety of app frameworks, languages, and platforms
|
See the [CI/CD examples](examples/README.md) page for example project code and tutorials for
|
||||||
on the [CI Examples](examples/README.md) page.
|
using GitLab CI/CD with various:
|
||||||
|
|
||||||
## Administration **(FREE SELF)**
|
- App frameworks
|
||||||
|
- Languages
|
||||||
|
- Platforms
|
||||||
|
|
||||||
As a GitLab administrator, you can change the default behavior
|
## Administration
|
||||||
of GitLab CI/CD for:
|
|
||||||
|
|
||||||
- An [entire GitLab instance](../user/admin_area/settings/continuous_integration.md).
|
You can change the default behavior of GitLab CI/CD for:
|
||||||
- Specific projects, using [pipelines settings](pipelines/settings.md).
|
|
||||||
|
- An entire GitLab instance in the [CI/CD administration settings](../administration/index.md#cicd-settings).
|
||||||
|
- Specific projects in the [pipelines settings](pipelines/settings.md).
|
||||||
|
|
||||||
See also:
|
See also:
|
||||||
|
|
||||||
- [Enable or disable GitLab CI/CD in a project](enable_or_disable_ci.md).
|
- [Enable or disable GitLab CI/CD in a project](enable_or_disable_ci.md).
|
||||||
- [Disable GitLab CI/CD by default in new projects](../administration/cicd.md). **(FREE SELF)**
|
|
||||||
- Other [CI administration settings](../administration/index.md#cicd-settings).
|
|
||||||
|
|
||||||
## References
|
## References
|
||||||
|
|
||||||
### Why GitLab CI/CD?
|
Learn more about GitLab CI/CD:
|
||||||
|
|
||||||
Learn more about:
|
|
||||||
|
|
||||||
- [Why you might choose GitLab CI/CD](https://about.gitlab.com/blog/2016/10/17/gitlab-ci-oohlala/).
|
- [Why you might choose GitLab CI/CD](https://about.gitlab.com/blog/2016/10/17/gitlab-ci-oohlala/).
|
||||||
- [Reasons you might migrate from another platform](https://about.gitlab.com/blog/2016/07/22/building-our-web-app-on-gitlab-ci/).
|
- [Reasons you might migrate from another platform](https://about.gitlab.com/blog/2016/07/22/building-our-web-app-on-gitlab-ci/).
|
||||||
|
@ -151,10 +139,10 @@ Learn more about:
|
||||||
|
|
||||||
See also the [Why CI/CD?](https://docs.google.com/presentation/d/1OGgk2Tcxbpl7DJaIOzCX4Vqg3dlwfELC3u2jEeCBbDk) presentation.
|
See also the [Why CI/CD?](https://docs.google.com/presentation/d/1OGgk2Tcxbpl7DJaIOzCX4Vqg3dlwfELC3u2jEeCBbDk) presentation.
|
||||||
|
|
||||||
### Breaking changes
|
### Major version changes (breaking)
|
||||||
|
|
||||||
As GitLab CI/CD has evolved, certain breaking changes have
|
As GitLab CI/CD has evolved, certain breaking changes have
|
||||||
been necessary. These are:
|
been necessary.
|
||||||
|
|
||||||
#### 13.0
|
#### 13.0
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,7 @@ GitLab takes advantage of our connected ecosystem to automatically pull these ki
|
||||||
your Merge Requests, pipeline details pages, and other locations. You may find that you actually don't
|
your Merge Requests, pipeline details pages, and other locations. You may find that you actually don't
|
||||||
need to configure anything to have these appear.
|
need to configure anything to have these appear.
|
||||||
|
|
||||||
If they aren't working as expected, or if you'd like to see what's available, our [CI feature index](../index.md#feature-set) has the full list
|
If they aren't working as expected, or if you'd like to see what's available, our [CI feature index](../index.md#features) has the full list
|
||||||
of bundled features and links to the documentation for each.
|
of bundled features and links to the documentation for each.
|
||||||
|
|
||||||
### Templates
|
### Templates
|
||||||
|
|
|
@ -7,8 +7,7 @@ type: reference
|
||||||
|
|
||||||
# Get started with GitLab CI/CD **(FREE)**
|
# Get started with GitLab CI/CD **(FREE)**
|
||||||
|
|
||||||
Use this document to get started with
|
Use this document to get started with [GitLab CI/CD](../index.md).
|
||||||
GitLab [continuous integration](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/).
|
|
||||||
|
|
||||||
Before you start, make sure you have:
|
Before you start, make sure you have:
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,9 @@ module Gitlab
|
||||||
def self.start_service_discovery
|
def self.start_service_discovery
|
||||||
return unless service_discovery_enabled?
|
return unless service_discovery_enabled?
|
||||||
|
|
||||||
ServiceDiscovery.new(service_discovery_configuration).start
|
ServiceDiscovery
|
||||||
|
.new(proxy.load_balancer, **service_discovery_configuration)
|
||||||
|
.start
|
||||||
end
|
end
|
||||||
|
|
||||||
# Configures proxying of requests.
|
# Configures proxying of requests.
|
||||||
|
@ -111,7 +113,9 @@ module Gitlab
|
||||||
|
|
||||||
# Populate service discovery immediately if it is configured
|
# Populate service discovery immediately if it is configured
|
||||||
if service_discovery_enabled?
|
if service_discovery_enabled?
|
||||||
ServiceDiscovery.new(service_discovery_configuration).perform_service_discovery
|
ServiceDiscovery
|
||||||
|
.new(proxy.load_balancer, **service_discovery_configuration)
|
||||||
|
.perform_service_discovery
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -49,14 +49,14 @@ module Gitlab
|
||||||
# use_tcp - Use TCP instaed of UDP to look up resources
|
# use_tcp - Use TCP instaed of UDP to look up resources
|
||||||
# load_balancer - The load balancer instance to use
|
# load_balancer - The load balancer instance to use
|
||||||
def initialize(
|
def initialize(
|
||||||
|
load_balancer,
|
||||||
nameserver:,
|
nameserver:,
|
||||||
port:,
|
port:,
|
||||||
record:,
|
record:,
|
||||||
record_type: 'A',
|
record_type: 'A',
|
||||||
interval: 60,
|
interval: 60,
|
||||||
disconnect_timeout: 120,
|
disconnect_timeout: 120,
|
||||||
use_tcp: false,
|
use_tcp: false
|
||||||
load_balancer: LoadBalancing.proxy.load_balancer
|
|
||||||
)
|
)
|
||||||
@nameserver = nameserver
|
@nameserver = nameserver
|
||||||
@port = port
|
@port = port
|
||||||
|
|
|
@ -36085,6 +36085,9 @@ msgstr ""
|
||||||
msgid "UsageQuota|Snippets"
|
msgid "UsageQuota|Snippets"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "UsageQuota|Something went wrong while fetching project storage statistics"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "UsageQuota|Storage"
|
msgid "UsageQuota|Storage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
16
package.json
16
package.json
|
@ -65,16 +65,16 @@
|
||||||
"@rails/ujs": "6.1.3-2",
|
"@rails/ujs": "6.1.3-2",
|
||||||
"@sentry/browser": "5.26.0",
|
"@sentry/browser": "5.26.0",
|
||||||
"@sourcegraph/code-host-integration": "0.0.59",
|
"@sourcegraph/code-host-integration": "0.0.59",
|
||||||
"@tiptap/core": "^2.0.0-beta.86",
|
"@tiptap/core": "^2.0.0-beta.101",
|
||||||
"@tiptap/extension-blockquote": "^2.0.0-beta.15",
|
"@tiptap/extension-blockquote": "^2.0.0-beta.15",
|
||||||
"@tiptap/extension-bold": "^2.0.0-beta.15",
|
"@tiptap/extension-bold": "^2.0.0-beta.15",
|
||||||
"@tiptap/extension-bullet-list": "^2.0.0-beta.15",
|
"@tiptap/extension-bullet-list": "^2.0.0-beta.15",
|
||||||
"@tiptap/extension-code": "^2.0.0-beta.16",
|
"@tiptap/extension-code": "^2.0.0-beta.16",
|
||||||
"@tiptap/extension-code-block-lowlight": "2.0.0-beta.32",
|
"@tiptap/extension-code-block-lowlight": "2.0.0-beta.35",
|
||||||
"@tiptap/extension-document": "^2.0.0-beta.13",
|
"@tiptap/extension-document": "^2.0.0-beta.13",
|
||||||
"@tiptap/extension-dropcursor": "^2.0.0-beta.18",
|
"@tiptap/extension-dropcursor": "^2.0.0-beta.19",
|
||||||
"@tiptap/extension-gapcursor": "^2.0.0-beta.19",
|
"@tiptap/extension-gapcursor": "^2.0.0-beta.19",
|
||||||
"@tiptap/extension-hard-break": "^2.0.0-beta.14",
|
"@tiptap/extension-hard-break": "^2.0.0-beta.15",
|
||||||
"@tiptap/extension-heading": "^2.0.0-beta.15",
|
"@tiptap/extension-heading": "^2.0.0-beta.15",
|
||||||
"@tiptap/extension-history": "^2.0.0-beta.16",
|
"@tiptap/extension-history": "^2.0.0-beta.16",
|
||||||
"@tiptap/extension-horizontal-rule": "^2.0.0-beta.19",
|
"@tiptap/extension-horizontal-rule": "^2.0.0-beta.19",
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
"@tiptap/extension-task-item": "^2.0.0-beta.17",
|
"@tiptap/extension-task-item": "^2.0.0-beta.17",
|
||||||
"@tiptap/extension-task-list": "^2.0.0-beta.17",
|
"@tiptap/extension-task-list": "^2.0.0-beta.17",
|
||||||
"@tiptap/extension-text": "^2.0.0-beta.13",
|
"@tiptap/extension-text": "^2.0.0-beta.13",
|
||||||
"@tiptap/vue-2": "^2.0.0-beta.39",
|
"@tiptap/vue-2": "^2.0.0-beta.48",
|
||||||
"@toast-ui/editor": "^2.5.2",
|
"@toast-ui/editor": "^2.5.2",
|
||||||
"@toast-ui/vue-editor": "^2.5.2",
|
"@toast-ui/vue-editor": "^2.5.2",
|
||||||
"apollo-cache-inmemory": "^1.6.6",
|
"apollo-cache-inmemory": "^1.6.6",
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
"prismjs": "^1.21.0",
|
"prismjs": "^1.21.0",
|
||||||
"prosemirror-inputrules": "^1.1.3",
|
"prosemirror-inputrules": "^1.1.3",
|
||||||
"prosemirror-markdown": "^1.5.1",
|
"prosemirror-markdown": "^1.5.1",
|
||||||
"prosemirror-model": "^1.13.3",
|
"prosemirror-model": "^1.14.3",
|
||||||
"prosemirror-state": "^1.3.4",
|
"prosemirror-state": "^1.3.4",
|
||||||
"prosemirror-tables": "^1.1.1",
|
"prosemirror-tables": "^1.1.1",
|
||||||
"raphael": "^2.2.7",
|
"raphael": "^2.2.7",
|
||||||
|
@ -180,8 +180,8 @@
|
||||||
"three-orbit-controls": "^82.1.0",
|
"three-orbit-controls": "^82.1.0",
|
||||||
"three-stl-loader": "^1.0.4",
|
"three-stl-loader": "^1.0.4",
|
||||||
"timeago.js": "^4.0.2",
|
"timeago.js": "^4.0.2",
|
||||||
"tiptap": "^1.32.1",
|
"tiptap": "^1.32.2",
|
||||||
"tiptap-extensions": "^1.35.1",
|
"tiptap-extensions": "^1.35.2",
|
||||||
"url-loader": "^4.1.1",
|
"url-loader": "^4.1.1",
|
||||||
"uuid": "8.1.0",
|
"uuid": "8.1.0",
|
||||||
"visibilityjs": "^1.2.4",
|
"visibilityjs": "^1.2.4",
|
||||||
|
|
|
@ -80,8 +80,8 @@ RSpec.describe 'Cluster Health board', :js, :kubeclient, :use_clean_rails_memory
|
||||||
expect(page).to have_content('Avg')
|
expect(page).to have_content('Avg')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'focuses the single panel on toggle', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/338341' do
|
it 'focuses the single panel on toggle' do
|
||||||
click_button('More actions')
|
click_button('More actions', match: :first)
|
||||||
click_button('Expand panel')
|
click_button('Expand panel')
|
||||||
|
|
||||||
expect(page).to have_css('.prometheus-graph', count: 1)
|
expect(page).to have_css('.prometheus-graph', count: 1)
|
||||||
|
|
|
@ -1,13 +1,42 @@
|
||||||
import { shallowMount } from '@vue/test-utils';
|
import { GlAlert } from '@gitlab/ui';
|
||||||
|
import { shallowMount, createLocalVue } from '@vue/test-utils';
|
||||||
|
import VueApollo from 'vue-apollo';
|
||||||
|
import createMockApollo from 'helpers/mock_apollo_helper';
|
||||||
import StorageCounterApp from '~/projects/storage_counter/components/app.vue';
|
import StorageCounterApp from '~/projects/storage_counter/components/app.vue';
|
||||||
|
import getProjectStorageCount from '~/projects/storage_counter/queries/project_storage.query.graphql';
|
||||||
|
|
||||||
|
const localVue = createLocalVue();
|
||||||
|
|
||||||
describe('Storage counter app', () => {
|
describe('Storage counter app', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
|
|
||||||
const createComponent = (propsData = {}) => {
|
const createMockApolloProvider = () => {
|
||||||
wrapper = shallowMount(StorageCounterApp, { propsData });
|
localVue.use(VueApollo);
|
||||||
|
|
||||||
|
const requestHandlers = [
|
||||||
|
[getProjectStorageCount, jest.fn().mockRejectedValue(new Error('GraphQL error'))],
|
||||||
|
];
|
||||||
|
|
||||||
|
return createMockApollo(requestHandlers);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const createComponent = ({ provide = {}, mockApollo } = {}) => {
|
||||||
|
const defaultProvideValues = {
|
||||||
|
projectPath: 'test-project',
|
||||||
|
};
|
||||||
|
|
||||||
|
wrapper = shallowMount(StorageCounterApp, {
|
||||||
|
localVue,
|
||||||
|
apolloProvider: mockApollo,
|
||||||
|
provide: {
|
||||||
|
...defaultProvideValues,
|
||||||
|
...provide,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const findAlert = () => wrapper.findComponent(GlAlert);
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
createComponent();
|
createComponent();
|
||||||
});
|
});
|
||||||
|
@ -19,4 +48,17 @@ describe('Storage counter app', () => {
|
||||||
it('renders app successfully', () => {
|
it('renders app successfully', () => {
|
||||||
expect(wrapper.text()).toBe('Usage');
|
expect(wrapper.text()).toBe('Usage');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('handling apollo fetching error', () => {
|
||||||
|
let mockApollo;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
mockApollo = createMockApolloProvider();
|
||||||
|
createComponent({ mockApollo });
|
||||||
|
});
|
||||||
|
|
||||||
|
it('renders gl-alert if there is an error', () => {
|
||||||
|
expect(findAlert().exists()).toBe(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -6,10 +6,10 @@ RSpec.describe Gitlab::Database::LoadBalancing::ServiceDiscovery do
|
||||||
let(:load_balancer) { Gitlab::Database::LoadBalancing::LoadBalancer.new([]) }
|
let(:load_balancer) { Gitlab::Database::LoadBalancing::LoadBalancer.new([]) }
|
||||||
let(:service) do
|
let(:service) do
|
||||||
described_class.new(
|
described_class.new(
|
||||||
|
load_balancer,
|
||||||
nameserver: 'localhost',
|
nameserver: 'localhost',
|
||||||
port: 8600,
|
port: 8600,
|
||||||
record: 'foo',
|
record: 'foo'
|
||||||
load_balancer: load_balancer
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -26,11 +26,11 @@ RSpec.describe Gitlab::Database::LoadBalancing::ServiceDiscovery do
|
||||||
describe ':record_type' do
|
describe ':record_type' do
|
||||||
subject do
|
subject do
|
||||||
described_class.new(
|
described_class.new(
|
||||||
|
load_balancer,
|
||||||
nameserver: 'localhost',
|
nameserver: 'localhost',
|
||||||
port: 8600,
|
port: 8600,
|
||||||
record: 'foo',
|
record: 'foo',
|
||||||
record_type: record_type,
|
record_type: record_type
|
||||||
load_balancer: load_balancer
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -217,11 +217,11 @@ RSpec.describe Gitlab::Database::LoadBalancing::ServiceDiscovery do
|
||||||
describe '#addresses_from_dns' do
|
describe '#addresses_from_dns' do
|
||||||
let(:service) do
|
let(:service) do
|
||||||
described_class.new(
|
described_class.new(
|
||||||
|
load_balancer,
|
||||||
nameserver: 'localhost',
|
nameserver: 'localhost',
|
||||||
port: 8600,
|
port: 8600,
|
||||||
record: 'foo',
|
record: 'foo',
|
||||||
record_type: record_type,
|
record_type: record_type
|
||||||
load_balancer: load_balancer
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -204,9 +204,11 @@ RSpec.describe Gitlab::Database::LoadBalancing do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.configure_proxy' do
|
describe '.configure_proxy' do
|
||||||
it 'configures the connection proxy' do
|
before do
|
||||||
allow(ActiveRecord::Base).to receive(:load_balancing_proxy=)
|
allow(ActiveRecord::Base).to receive(:load_balancing_proxy=)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'configures the connection proxy' do
|
||||||
described_class.configure_proxy
|
described_class.configure_proxy
|
||||||
|
|
||||||
expect(ActiveRecord::Base).to have_received(:load_balancing_proxy=)
|
expect(ActiveRecord::Base).to have_received(:load_balancing_proxy=)
|
||||||
|
@ -214,15 +216,22 @@ RSpec.describe Gitlab::Database::LoadBalancing do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when service discovery is enabled' do
|
context 'when service discovery is enabled' do
|
||||||
let(:service_discovery) { double(Gitlab::Database::LoadBalancing::ServiceDiscovery) }
|
|
||||||
|
|
||||||
it 'runs initial service discovery when configuring the connection proxy' do
|
it 'runs initial service discovery when configuring the connection proxy' do
|
||||||
|
discover = instance_spy(Gitlab::Database::LoadBalancing::ServiceDiscovery)
|
||||||
|
|
||||||
allow(described_class)
|
allow(described_class)
|
||||||
.to receive(:configuration)
|
.to receive(:configuration)
|
||||||
.and_return('discover' => { 'record' => 'foo' })
|
.and_return('discover' => { 'record' => 'foo' })
|
||||||
|
|
||||||
expect(Gitlab::Database::LoadBalancing::ServiceDiscovery).to receive(:new).and_return(service_discovery)
|
expect(Gitlab::Database::LoadBalancing::ServiceDiscovery)
|
||||||
expect(service_discovery).to receive(:perform_service_discovery)
|
.to receive(:new)
|
||||||
|
.with(
|
||||||
|
an_instance_of(Gitlab::Database::LoadBalancing::LoadBalancer),
|
||||||
|
an_instance_of(Hash)
|
||||||
|
)
|
||||||
|
.and_return(discover)
|
||||||
|
|
||||||
|
expect(discover).to receive(:perform_service_discovery)
|
||||||
|
|
||||||
described_class.configure_proxy
|
described_class.configure_proxy
|
||||||
end
|
end
|
||||||
|
@ -297,10 +306,16 @@ RSpec.describe Gitlab::Database::LoadBalancing do
|
||||||
.and_return(true)
|
.and_return(true)
|
||||||
|
|
||||||
instance = double(:instance)
|
instance = double(:instance)
|
||||||
|
lb = instance_spy(Gitlab::Database::LoadBalancing::LoadBalancer)
|
||||||
|
proxy = double(:proxy, load_balancer: lb)
|
||||||
|
|
||||||
|
allow(Gitlab::Database::LoadBalancing)
|
||||||
|
.to receive(:proxy)
|
||||||
|
.and_return(proxy)
|
||||||
|
|
||||||
expect(Gitlab::Database::LoadBalancing::ServiceDiscovery)
|
expect(Gitlab::Database::LoadBalancing::ServiceDiscovery)
|
||||||
.to receive(:new)
|
.to receive(:new)
|
||||||
.with(an_instance_of(Hash))
|
.with(lb, an_instance_of(Hash))
|
||||||
.and_return(instance)
|
.and_return(instance)
|
||||||
|
|
||||||
expect(instance)
|
expect(instance)
|
||||||
|
|
|
@ -2274,19 +2274,27 @@ RSpec.describe Group do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.groups_including_descendants_by' do
|
describe '.groups_including_descendants_by' do
|
||||||
it 'returns the expected groups for a group and its descendants' do
|
let_it_be(:parent_group1) { create(:group) }
|
||||||
parent_group1 = create(:group)
|
let_it_be(:parent_group2) { create(:group) }
|
||||||
child_group1 = create(:group, parent: parent_group1)
|
let_it_be(:extra_group) { create(:group) }
|
||||||
child_group2 = create(:group, parent: parent_group1)
|
let_it_be(:child_group1) { create(:group, parent: parent_group1) }
|
||||||
|
let_it_be(:child_group2) { create(:group, parent: parent_group1) }
|
||||||
|
let_it_be(:child_group3) { create(:group, parent: parent_group2) }
|
||||||
|
|
||||||
parent_group2 = create(:group)
|
subject { described_class.groups_including_descendants_by([parent_group2.id, parent_group1.id]) }
|
||||||
child_group3 = create(:group, parent: parent_group2)
|
|
||||||
|
|
||||||
create(:group)
|
shared_examples 'returns the expected groups for a group and its descendants' do
|
||||||
|
specify { is_expected.to contain_exactly(parent_group1, parent_group2, child_group1, child_group2, child_group3) }
|
||||||
|
end
|
||||||
|
|
||||||
groups = described_class.groups_including_descendants_by([parent_group2.id, parent_group1.id])
|
it_behaves_like 'returns the expected groups for a group and its descendants'
|
||||||
|
|
||||||
expect(groups).to contain_exactly(parent_group1, parent_group2, child_group1, child_group2, child_group3)
|
context 'when :linear_group_including_descendants_by feature flag is disabled' do
|
||||||
|
before do
|
||||||
|
stub_feature_flags(linear_group_including_descendants_by: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it_behaves_like 'returns the expected groups for a group and its descendants'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,6 @@ RSpec.describe ExpireJobCacheWorker do
|
||||||
|
|
||||||
it_behaves_like 'worker with data consistency',
|
it_behaves_like 'worker with data consistency',
|
||||||
described_class,
|
described_class,
|
||||||
feature_flag: :load_balancing_for_expire_job_cache_worker,
|
|
||||||
data_consistency: :delayed
|
data_consistency: :delayed
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
88
yarn.lock
88
yarn.lock
|
@ -1467,15 +1467,15 @@
|
||||||
dom-accessibility-api "^0.5.1"
|
dom-accessibility-api "^0.5.1"
|
||||||
pretty-format "^26.4.2"
|
pretty-format "^26.4.2"
|
||||||
|
|
||||||
"@tiptap/core@^2.0.0-beta.86":
|
"@tiptap/core@^2.0.0-beta.101":
|
||||||
version "2.0.0-beta.86"
|
version "2.0.0-beta.101"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.86.tgz#11b575aee4ad2f30f73114c786da5cd13dde30e0"
|
resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.101.tgz#e882836fcbe2b65d851039ddaa0401275a4afe9c"
|
||||||
integrity sha512-EeR6euRTJV9LhUog1PuiN1oLYRsz0SCEU5cQnGElzRzbd8dMnmFVc9cs81fbfjR8R1bfiarOJExrU2+OPHKXDw==
|
integrity sha512-IhU+uZ+2F2jTKm2qoIxhzkef6OLYvuTuARhCRoZO7xhOMh314hps/QBC25X6OUqU57S/rn8jLMcyTo0V8Qv7og==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/prosemirror-commands" "^1.0.4"
|
"@types/prosemirror-commands" "^1.0.4"
|
||||||
"@types/prosemirror-inputrules" "^1.0.4"
|
"@types/prosemirror-inputrules" "^1.0.4"
|
||||||
"@types/prosemirror-keymap" "^1.0.4"
|
"@types/prosemirror-keymap" "^1.0.4"
|
||||||
"@types/prosemirror-model" "^1.13.1"
|
"@types/prosemirror-model" "^1.13.2"
|
||||||
"@types/prosemirror-schema-list" "^1.0.3"
|
"@types/prosemirror-schema-list" "^1.0.3"
|
||||||
"@types/prosemirror-state" "^1.2.7"
|
"@types/prosemirror-state" "^1.2.7"
|
||||||
"@types/prosemirror-transform" "^1.1.4"
|
"@types/prosemirror-transform" "^1.1.4"
|
||||||
|
@ -1483,11 +1483,11 @@
|
||||||
prosemirror-commands "^1.1.10"
|
prosemirror-commands "^1.1.10"
|
||||||
prosemirror-inputrules "^1.1.3"
|
prosemirror-inputrules "^1.1.3"
|
||||||
prosemirror-keymap "^1.1.3"
|
prosemirror-keymap "^1.1.3"
|
||||||
prosemirror-model "^1.14.2"
|
prosemirror-model "^1.14.3"
|
||||||
prosemirror-schema-list "^1.1.5"
|
prosemirror-schema-list "^1.1.5"
|
||||||
prosemirror-state "^1.3.4"
|
prosemirror-state "^1.3.4"
|
||||||
prosemirror-transform "^1.3.2"
|
prosemirror-transform "^1.3.2"
|
||||||
prosemirror-view "^1.18.8"
|
prosemirror-view "^1.19.3"
|
||||||
|
|
||||||
"@tiptap/extension-blockquote@^2.0.0-beta.15":
|
"@tiptap/extension-blockquote@^2.0.0-beta.15":
|
||||||
version "2.0.0-beta.15"
|
version "2.0.0-beta.15"
|
||||||
|
@ -1501,13 +1501,13 @@
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.15.tgz#cf9ddb3fc316be9707753ad4e497bfb8a3ebb0c2"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.15.tgz#cf9ddb3fc316be9707753ad4e497bfb8a3ebb0c2"
|
||||||
integrity sha512-jKyV6iiwhxwa0+7uuKD74jNDVNLNOS1GmU14MgaA95pY5e1fyaRBPPX8Gtt89niz2CLOY711AV17RPZTe/e60w==
|
integrity sha512-jKyV6iiwhxwa0+7uuKD74jNDVNLNOS1GmU14MgaA95pY5e1fyaRBPPX8Gtt89niz2CLOY711AV17RPZTe/e60w==
|
||||||
|
|
||||||
"@tiptap/extension-bubble-menu@^2.0.0-beta.24":
|
"@tiptap/extension-bubble-menu@^2.0.0-beta.31":
|
||||||
version "2.0.0-beta.24"
|
version "2.0.0-beta.31"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.24.tgz#e6db5bc0386ccdbd483e57296b22eb6dd55914ba"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.31.tgz#0bf1bf3bc9d1e89830abe0af2f6796bcda87d66a"
|
||||||
integrity sha512-u1btwasgaidUr9JLQwFQwf9oeXUYPv9TyBzUn/soj9F8qKrWxQxTi/EQUsudvjumzsQOX+tZQIj/YtO5EzR+hA==
|
integrity sha512-O0U12A+4tWZo97MRWOhGrZ+Z0DWYHPzLP3rbUMl1bClvOoggKgMZnSdvgjC7LmP5h/8Y+qB92swk5LVYvrOcDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-state "^1.3.4"
|
prosemirror-state "^1.3.4"
|
||||||
prosemirror-view "^1.18.8"
|
prosemirror-view "^1.19.3"
|
||||||
tippy.js "^6.3.1"
|
tippy.js "^6.3.1"
|
||||||
|
|
||||||
"@tiptap/extension-bullet-list@^2.0.0-beta.15":
|
"@tiptap/extension-bullet-list@^2.0.0-beta.15":
|
||||||
|
@ -1517,19 +1517,19 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-inputrules "^1.1.3"
|
prosemirror-inputrules "^1.1.3"
|
||||||
|
|
||||||
"@tiptap/extension-code-block-lowlight@2.0.0-beta.32":
|
"@tiptap/extension-code-block-lowlight@2.0.0-beta.35":
|
||||||
version "2.0.0-beta.32"
|
version "2.0.0-beta.35"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.0.0-beta.32.tgz#ef9ff6883f2d669e6be79c69f26749641462e1ea"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block-lowlight/-/extension-code-block-lowlight-2.0.0-beta.35.tgz#a08e98d7c2fcc4a80f927766842bfc9980e5b55e"
|
||||||
integrity sha512-RnKAlE981k7VYIUUZ2jYZVGzZJalzrRw6dCf0rfgPvSY3T+ih9gVjKr+APGTuX3tsSR+s3UHs6YUI9+83pje3A==
|
integrity sha512-lPjrZg9bJp83O7EJaDU2Ial15JU0SNX9zbXpdpatbzxFOKsXpgMuRPrYxMYelbIq2XuhEOdu/Q9cc6+vtqmfFQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tiptap/extension-code-block" "^2.0.0-beta.16"
|
"@tiptap/extension-code-block" "^2.0.0-beta.17"
|
||||||
"@types/lowlight" "^0.0.3"
|
"@types/lowlight" "^0.0.3"
|
||||||
lowlight "^1.20.0"
|
lowlight "^1.20.0"
|
||||||
prosemirror-model "^1.14.2"
|
prosemirror-model "^1.14.3"
|
||||||
prosemirror-state "^1.3.4"
|
prosemirror-state "^1.3.4"
|
||||||
prosemirror-view "^1.18.8"
|
prosemirror-view "^1.19.3"
|
||||||
|
|
||||||
"@tiptap/extension-code-block@^2.0.0-beta.16":
|
"@tiptap/extension-code-block@^2.0.0-beta.17":
|
||||||
version "2.0.0-beta.17"
|
version "2.0.0-beta.17"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.17.tgz#b12ab35561da08b359f4d8dced2b8c30eb62fcdb"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.17.tgz#b12ab35561da08b359f4d8dced2b8c30eb62fcdb"
|
||||||
integrity sha512-u3RY991mXtjuw+trVaDwbAhuPPlU8l6kS4rXIxWJ5W/sNElbmfHLVu7RP++YwM8KOQrCrQl8TJbZTEIekMw61w==
|
integrity sha512-u3RY991mXtjuw+trVaDwbAhuPPlU8l6kS4rXIxWJ5W/sNElbmfHLVu7RP++YwM8KOQrCrQl8TJbZTEIekMw61w==
|
||||||
|
@ -1546,21 +1546,21 @@
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.13.tgz#8cfb29d4de64bf4a790817f730c05b4f9b7167b2"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.13.tgz#8cfb29d4de64bf4a790817f730c05b4f9b7167b2"
|
||||||
integrity sha512-nrufdKziA/wovaY4DjGkc8OGuIZi8CH8CW3+yYfeWbruwFKkyZHlZy9nplFWSEqBHPAeqD+px9r91yGMW3ontA==
|
integrity sha512-nrufdKziA/wovaY4DjGkc8OGuIZi8CH8CW3+yYfeWbruwFKkyZHlZy9nplFWSEqBHPAeqD+px9r91yGMW3ontA==
|
||||||
|
|
||||||
"@tiptap/extension-dropcursor@^2.0.0-beta.18":
|
"@tiptap/extension-dropcursor@^2.0.0-beta.19":
|
||||||
version "2.0.0-beta.18"
|
version "2.0.0-beta.19"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.18.tgz#25f0676b0cae6900ac18e11a2e1ea2627904dfa3"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.19.tgz#8a37ffe27e484eb44dd18297830d1fd8ce0c50ce"
|
||||||
integrity sha512-P9cMKO7YXsqp62WA2sliWA6TZThO0yoQprv8Em5BPnW53ttZn9RR9sZaeLL/y02cl/aLVtqdLtl2CPSER43ieA==
|
integrity sha512-rslIcVvD42NNh5sEbkCkG03DWMFBrS5KoK+lDOdIcC1DjmTtpVgcLvvE01btzaB3ljx+UVqI2Zaxa6VOiTeEMw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/prosemirror-dropcursor" "^1.0.2"
|
"@types/prosemirror-dropcursor" "^1.0.3"
|
||||||
prosemirror-dropcursor "^1.3.5"
|
prosemirror-dropcursor "^1.3.5"
|
||||||
|
|
||||||
"@tiptap/extension-floating-menu@^2.0.0-beta.18":
|
"@tiptap/extension-floating-menu@^2.0.0-beta.25":
|
||||||
version "2.0.0-beta.18"
|
version "2.0.0-beta.25"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.18.tgz#4d9b7f58c73f6c718a74503c5ff514b06f615e27"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.25.tgz#9b8dcbdd6f844d077483d6c631800c29f57273e6"
|
||||||
integrity sha512-1fCRGdTxCiRm5DV91GwKYn9yu43oonq6iuRAlgcTZ2ON03MAAG55j+cDA2S3JSwbsA7Vr49ijmXBY/fEdU/fiQ==
|
integrity sha512-nXBi1eA3Kji8tk+gOIyxXKsaTpGBgXSX9hHTgIvbBMMvfP9onLKuZIAKG/cBUMBzt+CKns1XooE71UqyMESDhQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-state "^1.3.4"
|
prosemirror-state "^1.3.4"
|
||||||
prosemirror-view "^1.18.8"
|
prosemirror-view "^1.19.3"
|
||||||
tippy.js "^6.3.1"
|
tippy.js "^6.3.1"
|
||||||
|
|
||||||
"@tiptap/extension-gapcursor@^2.0.0-beta.19":
|
"@tiptap/extension-gapcursor@^2.0.0-beta.19":
|
||||||
|
@ -1571,7 +1571,7 @@
|
||||||
"@types/prosemirror-gapcursor" "^1.0.4"
|
"@types/prosemirror-gapcursor" "^1.0.4"
|
||||||
prosemirror-gapcursor "^1.1.5"
|
prosemirror-gapcursor "^1.1.5"
|
||||||
|
|
||||||
"@tiptap/extension-hard-break@^2.0.0-beta.14":
|
"@tiptap/extension-hard-break@^2.0.0-beta.15":
|
||||||
version "2.0.0-beta.15"
|
version "2.0.0-beta.15"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.15.tgz#ce00dd40f5abeaff8574f2288ade6815ab696c94"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.15.tgz#ce00dd40f5abeaff8574f2288ade6815ab696c94"
|
||||||
integrity sha512-MS7MjGOtKtC1bVNAShwCetFRuk8nPr/j18OOzKChNrJFrZXWNJrid3dUojwDLqCraYdzSTmiOmMgU+yoUe/gnw==
|
integrity sha512-MS7MjGOtKtC1bVNAShwCetFRuk8nPr/j18OOzKChNrJFrZXWNJrid3dUojwDLqCraYdzSTmiOmMgU+yoUe/gnw==
|
||||||
|
@ -1687,14 +1687,14 @@
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.13.tgz#da0af8d9a3f149d20076e15d88c6af21fb6d940f"
|
resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.13.tgz#da0af8d9a3f149d20076e15d88c6af21fb6d940f"
|
||||||
integrity sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw==
|
integrity sha512-0EtAwuRldCAoFaL/iXgkRepEeOd55rPg5N4FQUN1xTwZT7PDofukP0DG/2jff/Uj17x4uTaJAa9qlFWuNnDvjw==
|
||||||
|
|
||||||
"@tiptap/vue-2@^2.0.0-beta.39":
|
"@tiptap/vue-2@^2.0.0-beta.48":
|
||||||
version "2.0.0-beta.39"
|
version "2.0.0-beta.48"
|
||||||
resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.0.0-beta.39.tgz#f6d75af99b072848381f0c443b50ec09186eb43b"
|
resolved "https://registry.yarnpkg.com/@tiptap/vue-2/-/vue-2-2.0.0-beta.48.tgz#ee0bfec8819ab588c558dfa39f56269099a226bf"
|
||||||
integrity sha512-O8hCzrAZTbjebcD3XWsbUieudnD7rvDFGmHSRmb0igg//ARO43IWe2xdu2Hlx1MT9b+83YjgDhRyMjHcsKRtzw==
|
integrity sha512-Cx8n8a2UwuJKyAheZKmAQe4s3gCmmPsgzZeh3FYtomp0xmf12H+dZbejqbv/w8pnCc/ATMdl3szf7NKA4hNz1Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@tiptap/extension-bubble-menu" "^2.0.0-beta.24"
|
"@tiptap/extension-bubble-menu" "^2.0.0-beta.31"
|
||||||
"@tiptap/extension-floating-menu" "^2.0.0-beta.18"
|
"@tiptap/extension-floating-menu" "^2.0.0-beta.25"
|
||||||
prosemirror-view "^1.18.8"
|
prosemirror-view "^1.19.3"
|
||||||
|
|
||||||
"@toast-ui/editor@^2.5.2":
|
"@toast-ui/editor@^2.5.2":
|
||||||
version "2.5.2"
|
version "2.5.2"
|
||||||
|
@ -1877,7 +1877,7 @@
|
||||||
"@types/prosemirror-state" "*"
|
"@types/prosemirror-state" "*"
|
||||||
"@types/prosemirror-view" "*"
|
"@types/prosemirror-view" "*"
|
||||||
|
|
||||||
"@types/prosemirror-dropcursor@^1.0.2":
|
"@types/prosemirror-dropcursor@^1.0.3":
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz#49250849b8a0b86e8c29eb1ba70a463e53e46947"
|
resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz#49250849b8a0b86e8c29eb1ba70a463e53e46947"
|
||||||
integrity sha512-b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==
|
integrity sha512-b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==
|
||||||
|
@ -1918,7 +1918,7 @@
|
||||||
"@types/prosemirror-state" "*"
|
"@types/prosemirror-state" "*"
|
||||||
"@types/prosemirror-view" "*"
|
"@types/prosemirror-view" "*"
|
||||||
|
|
||||||
"@types/prosemirror-model@*", "@types/prosemirror-model@^1.13.1":
|
"@types/prosemirror-model@*", "@types/prosemirror-model@^1.13.2":
|
||||||
version "1.13.2"
|
version "1.13.2"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.13.2.tgz#2adad3ec478f83204f155d7fb94c9dfde2fc3296"
|
resolved "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.13.2.tgz#2adad3ec478f83204f155d7fb94c9dfde2fc3296"
|
||||||
integrity sha512-a2rDB0aZ+7aIP7uBqQq1wLb4Hg4qqEvpkCqvhsgT/gG8IWC0peCAZfQ24sgTco0qSJLeDgIbtPeU6mgr869/kg==
|
integrity sha512-a2rDB0aZ+7aIP7uBqQq1wLb4Hg4qqEvpkCqvhsgT/gG8IWC0peCAZfQ24sgTco0qSJLeDgIbtPeU6mgr869/kg==
|
||||||
|
@ -10078,7 +10078,7 @@ prosemirror-markdown@^1.5.1:
|
||||||
markdown-it "^10.0.0"
|
markdown-it "^10.0.0"
|
||||||
prosemirror-model "^1.0.0"
|
prosemirror-model "^1.0.0"
|
||||||
|
|
||||||
prosemirror-model@^1.0.0, prosemirror-model@^1.13.1, prosemirror-model@^1.13.3, prosemirror-model@^1.14.2, prosemirror-model@^1.14.3, prosemirror-model@^1.2.0, prosemirror-model@^1.8.1:
|
prosemirror-model@^1.0.0, prosemirror-model@^1.13.1, prosemirror-model@^1.14.3, prosemirror-model@^1.2.0, prosemirror-model@^1.8.1:
|
||||||
version "1.14.3"
|
version "1.14.3"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.3.tgz#a9c250d3c4023ddf10ecb41a0a7a130e9741d37e"
|
resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.3.tgz#a9c250d3c4023ddf10ecb41a0a7a130e9741d37e"
|
||||||
integrity sha512-yzZlBaSxfUPIIP6U5Edh5zKxJPZ5f7bwZRhiCuH3UYkWhj+P3d8swHsbuAMOu/iDatDc5J/Qs5Mb3++mZf+CvQ==
|
integrity sha512-yzZlBaSxfUPIIP6U5Edh5zKxJPZ5f7bwZRhiCuH3UYkWhj+P3d8swHsbuAMOu/iDatDc5J/Qs5Mb3++mZf+CvQ==
|
||||||
|
@ -10131,7 +10131,7 @@ prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transfor
|
||||||
dependencies:
|
dependencies:
|
||||||
prosemirror-model "^1.0.0"
|
prosemirror-model "^1.0.0"
|
||||||
|
|
||||||
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.16.5, prosemirror-view@^1.18.8, prosemirror-view@^1.19.3:
|
prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.16.5, prosemirror-view@^1.19.3:
|
||||||
version "1.19.3"
|
version "1.19.3"
|
||||||
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.19.3.tgz#8d9bc91705bcf9cb5ae3b4de2668f73c7b93fa14"
|
resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.19.3.tgz#8d9bc91705bcf9cb5ae3b4de2668f73c7b93fa14"
|
||||||
integrity sha512-YP/ZzVwqPPwbHbJi97U2/CeyZ8PIHmLJt0gIhZWP8XfnuBRGG3y+jwLzUoBVmiuoUCy3R6PSB+pOATliGzLfPg==
|
integrity sha512-YP/ZzVwqPPwbHbJi97U2/CeyZ8PIHmLJt0gIhZWP8XfnuBRGG3y+jwLzUoBVmiuoUCy3R6PSB+pOATliGzLfPg==
|
||||||
|
@ -11913,7 +11913,7 @@ tiptap-commands@^1.17.1:
|
||||||
prosemirror-tables "^1.1.1"
|
prosemirror-tables "^1.1.1"
|
||||||
tiptap-utils "^1.13.1"
|
tiptap-utils "^1.13.1"
|
||||||
|
|
||||||
tiptap-extensions@^1.35.1:
|
tiptap-extensions@^1.35.2:
|
||||||
version "1.35.2"
|
version "1.35.2"
|
||||||
resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.2.tgz#83dd6ee703ae8c83b58c7608f97253fcc4f1a94c"
|
resolved "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.2.tgz#83dd6ee703ae8c83b58c7608f97253fcc4f1a94c"
|
||||||
integrity sha512-TIMbHVJe0/3aVeTeCmqGbatDkfxduPYFOffNCmuKR+h6oQNzTu6rLVhRzoNqktfxIoi/b44SiDPorTjSN72dCw==
|
integrity sha512-TIMbHVJe0/3aVeTeCmqGbatDkfxduPYFOffNCmuKR+h6oQNzTu6rLVhRzoNqktfxIoi/b44SiDPorTjSN72dCw==
|
||||||
|
@ -11939,7 +11939,7 @@ tiptap-utils@^1.13.1:
|
||||||
prosemirror-state "^1.3.3"
|
prosemirror-state "^1.3.3"
|
||||||
prosemirror-tables "^1.1.1"
|
prosemirror-tables "^1.1.1"
|
||||||
|
|
||||||
tiptap@^1.32.1, tiptap@^1.32.2:
|
tiptap@^1.32.2:
|
||||||
version "1.32.2"
|
version "1.32.2"
|
||||||
resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.2.tgz#cd6259e853652bfc6860758ff44ebb695d5edd1c"
|
resolved "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.2.tgz#cd6259e853652bfc6860758ff44ebb695d5edd1c"
|
||||||
integrity sha512-5IwVj8nGo8y5V3jbdtoEd7xNUsi8Q0N6WV2Nfs70olqz3fldXkiImBrDhZJ4Anx8vhyP6PIBttrg0prFVmwIvw==
|
integrity sha512-5IwVj8nGo8y5V3jbdtoEd7xNUsi8Q0N6WV2Nfs70olqz3fldXkiImBrDhZJ4Anx8vhyP6PIBttrg0prFVmwIvw==
|
||||||
|
|
Loading…
Reference in New Issue