Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
c34d58a898
commit
a3df40b2c3
|
|
@ -106,3 +106,10 @@ tags.lock
|
|||
tags.temp
|
||||
.stylelintcache
|
||||
.solargraph.yml
|
||||
|
||||
# Vite Ruby
|
||||
/public/vite*
|
||||
# Vite uses dotenv and suggests to ignore local-only env files. See
|
||||
# https://vitejs.dev/guide/env-and-mode.html#env-files
|
||||
*.local
|
||||
|
||||
|
|
|
|||
|
|
@ -1170,21 +1170,6 @@ Layout/ArgumentAlignment:
|
|||
- 'ee/spec/requests/groups/two_factor_auths_controller_spec.rb'
|
||||
- 'ee/spec/requests/smartcard_controller_spec.rb'
|
||||
- 'ee/spec/requests/users/identity_verification_controller_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/update_assignees_service_spec.rb'
|
||||
- 'ee/spec/services/ee/merge_requests/update_reviewers_service_spec.rb'
|
||||
- 'ee/spec/services/ee/notification_service_spec.rb'
|
||||
- 'ee/spec/services/ee/users/migrate_records_to_ghost_user_service_spec.rb'
|
||||
- 'ee/spec/services/ee/vulnerability_feedback_module/update_service_spec.rb'
|
||||
- 'ee/spec/services/elastic/process_bookkeeping_service_spec.rb'
|
||||
- 'ee/spec/services/epics/issue_promote_service_spec.rb'
|
||||
- 'ee/spec/services/geo/blob_upload_service_spec.rb'
|
||||
- 'ee/spec/services/geo/framework_repository_sync_service_spec.rb'
|
||||
- 'ee/spec/services/geo/hashed_storage_attachments_migration_service_spec.rb'
|
||||
- 'ee/spec/services/geo/registry_consistency_service_spec.rb'
|
||||
- 'ee/spec/services/geo/replication_toggle_request_service_spec.rb'
|
||||
- 'ee/spec/services/geo/repository_sync_service_spec.rb'
|
||||
- 'ee/spec/services/geo/wiki_sync_service_spec.rb'
|
||||
- 'ee/spec/services/gitlab_subscriptions/reconciliations/check_seat_usage_alerts_eligibility_service_spec.rb'
|
||||
- 'ee/spec/services/groups/compliance_report_csv_service_spec.rb'
|
||||
- 'ee/spec/services/groups/mark_for_deletion_service_spec.rb'
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
db234c87ebaff374e91734527bcf9ce2bff357d5
|
||||
69b25765133ae3c6b8fdd9eec85de30de607e389
|
||||
|
|
|
|||
2
Gemfile
2
Gemfile
|
|
@ -19,6 +19,8 @@ gem 'rails', '~> 7.0.6'
|
|||
|
||||
gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab'
|
||||
|
||||
gem 'vite_rails'
|
||||
|
||||
gem 'bootsnap', '~> 1.16.0', require: false
|
||||
|
||||
gem 'openssl', '~> 3.0'
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@
|
|||
{"name":"doorkeeper","version":"5.6.6","platform":"ruby","checksum":"2344e86c77770526efcda893b5217aa13d1c7eb1b40de840b58b19eb1ff757e0"},
|
||||
{"name":"doorkeeper-openid_connect","version":"1.8.7","platform":"ruby","checksum":"71edaf33118deefe25674ba3f8280c32835f057351f70e9beb222c0fd6b8e786"},
|
||||
{"name":"dotenv","version":"2.7.6","platform":"ruby","checksum":"2451ed5e8e43776d7a787e51d6f8903b98e446146c7ad143d5678cc2c409d547"},
|
||||
{"name":"dry-cli","version":"1.0.0","platform":"ruby","checksum":"28ead169f872954dd08910eb8ead59cf86cd18b4aab321e8eeefe945749569f0"},
|
||||
{"name":"dry-core","version":"1.0.0","platform":"ruby","checksum":"7a92099870967f0d2c9997950608cb8bb622dafeea20b2fe1dd49e9ba1d0f305"},
|
||||
{"name":"dry-inflector","version":"1.0.0","platform":"ruby","checksum":"6ad22361ca2d6f3f001ae3037ffcfea01163f644280d13a9195d3c3a94dd1626"},
|
||||
{"name":"dry-logic","version":"1.5.0","platform":"ruby","checksum":"99ed2180f1970c3d8247004f277a01dffbe8e82cf6680de9c7209312d86cd416"},
|
||||
|
|
@ -675,6 +676,8 @@
|
|||
{"name":"version_sorter","version":"2.3.0","platform":"ruby","checksum":"2147f2a1a3804fbb8f60d268b7d7c1ec717e6dd727ffe2c165b4e05e82efe1da"},
|
||||
{"name":"view_component","version":"3.2.0","platform":"ruby","checksum":"1dfaa85e13b5393f30b60bd3a03348b5298240a13137985d71eb2b8cc94c4c22"},
|
||||
{"name":"virtus","version":"2.0.0","platform":"ruby","checksum":"8841dae4eb7fcc097320ba5ea516bf1839e5d056c61ee27138aa4bddd6e3d1c2"},
|
||||
{"name":"vite_rails","version":"3.0.15","platform":"ruby","checksum":"b8ec528aedf7e24b54f222b449cd9250810ea2456d5f8dd4ef87f06b475cf860"},
|
||||
{"name":"vite_ruby","version":"3.3.4","platform":"ruby","checksum":"025e438385a6dc2320c8c148dff453f5bb1d4f056ce69c3386f47d4c388ad80c"},
|
||||
{"name":"vmstat","version":"2.3.0","platform":"ruby","checksum":"ab5446a3e3bd0a9cdb9d9ac69a0bbd119c4f161d945a0846a519dd7018af656d"},
|
||||
{"name":"warden","version":"1.2.9","platform":"ruby","checksum":"46684f885d35a69dbb883deabf85a222c8e427a957804719e143005df7a1efd0"},
|
||||
{"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"},
|
||||
|
|
|
|||
|
|
@ -459,6 +459,7 @@ GEM
|
|||
doorkeeper (>= 5.5, < 5.7)
|
||||
jwt (>= 2.5)
|
||||
dotenv (2.7.6)
|
||||
dry-cli (1.0.0)
|
||||
dry-core (1.0.0)
|
||||
concurrent-ruby (~> 1.0)
|
||||
zeitwerk (~> 2.6)
|
||||
|
|
@ -1672,6 +1673,13 @@ GEM
|
|||
axiom-types (~> 0.1)
|
||||
coercible (~> 1.0)
|
||||
descendants_tracker (~> 0.0, >= 0.0.3)
|
||||
vite_rails (3.0.15)
|
||||
railties (>= 5.1, < 8)
|
||||
vite_ruby (~> 3.0, >= 3.2.2)
|
||||
vite_ruby (3.3.4)
|
||||
dry-cli (>= 0.7, < 2)
|
||||
rack-proxy (~> 0.6, >= 0.6.1)
|
||||
zeitwerk (~> 2.2)
|
||||
vmstat (2.3.0)
|
||||
warden (1.2.9)
|
||||
rack (>= 2.0.9)
|
||||
|
|
@ -2029,6 +2037,7 @@ DEPENDENCIES
|
|||
validates_hostname (~> 1.0.11)
|
||||
version_sorter (~> 2.3)
|
||||
view_component (~> 3.2.0)
|
||||
vite_rails
|
||||
vmstat (~> 2.3.0)
|
||||
warning (~> 1.3.0)
|
||||
webauthn (~> 3.0)
|
||||
|
|
|
|||
4
Rakefile
4
Rakefile
|
|
@ -11,6 +11,10 @@ require File.expand_path('config/application', __dir__)
|
|||
relative_url_conf = File.expand_path('config/initializers/relative_url', __dir__)
|
||||
require relative_url_conf if File.exist?("#{relative_url_conf}.rb")
|
||||
|
||||
# This is the only way to change how vite_ruby works for rake tasks
|
||||
# See https://github.com/ElMassimo/vite_ruby/blob/vite_ruby%403.3.4/vite_ruby/lib/tasks/vite.rake#L58
|
||||
ENV['VITE_RUBY_SKIP_ASSETS_PRECOMPILE_EXTENSION'] = 'true'
|
||||
|
||||
Gitlab::Application.load_tasks
|
||||
|
||||
Knapsack.load_tasks if defined?(Knapsack)
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
import '../jira_connect/subscriptions';
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import '../main';
|
||||
import { runModules } from '~/run_modules';
|
||||
|
||||
const modules = import.meta.glob('../pages/**/index.js');
|
||||
|
||||
runModules(modules, '../pages/');
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import { runModules } from '~/run_modules';
|
||||
|
||||
const modules = import.meta.glob('../../../../ee/app/assets/javascripts/pages/**/index.js');
|
||||
|
||||
runModules(modules, '../../../../ee/app/assets/javascripts/pages/');
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
import { runModules } from '~/run_modules';
|
||||
|
||||
const modules = import.meta.glob('../../../../jh/app/assets/javascripts/pages/**/index.js');
|
||||
|
||||
runModules(modules, '../../../../jh/app/assets/javascripts/pages/');
|
||||
|
|
@ -0,0 +1 @@
|
|||
import '../performance_bar';
|
||||
|
|
@ -0,0 +1 @@
|
|||
import './behaviors/redirect_listbox';
|
||||
|
|
@ -0,0 +1 @@
|
|||
import '../lib/mermaid';
|
||||
|
|
@ -0,0 +1 @@
|
|||
import '../sentry/index';
|
||||
|
|
@ -22,13 +22,9 @@ export default {
|
|||
</script>
|
||||
<template>
|
||||
<div>
|
||||
<span class="gl-font-weight-bold">{{ __('Commit:') }}</span>
|
||||
<span class="gl-font-weight-bold">{{ __('Commit') }}</span>
|
||||
|
||||
<gl-link
|
||||
:href="commit.commit_path"
|
||||
class="gl-text-blue-600! gl-font-monospace"
|
||||
data-testid="commit-sha"
|
||||
>
|
||||
<gl-link :href="commit.commit_path" class="gl-text-blue-600!" data-testid="commit-sha">
|
||||
{{ commit.short_id }}
|
||||
</gl-link>
|
||||
|
||||
|
|
@ -46,6 +42,6 @@ export default {
|
|||
>
|
||||
</span>
|
||||
|
||||
<p class="gl-mb-0 gl-font-sm">{{ commit.title }}</p>
|
||||
<p class="gl-mb-0">{{ commit.title }}</p>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ export default {
|
|||
icon="retry"
|
||||
category="primary"
|
||||
placement="right"
|
||||
positioning-strategy="fixed"
|
||||
variant="confirm"
|
||||
:items="dropdownItems"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ export default {
|
|||
i18n: {
|
||||
...JOB_SIDEBAR_COPY,
|
||||
},
|
||||
borderTopClass: ['gl-border-t-solid', 'gl-border-t-1', 'gl-border-t-gray-100'],
|
||||
forwardDeploymentFailureModalId,
|
||||
components: {
|
||||
ArtifactsBlock,
|
||||
|
|
@ -80,22 +81,34 @@ export default {
|
|||
@updateVariables="$emit('updateVariables')"
|
||||
/>
|
||||
|
||||
<job-sidebar-details-container class="gl-py-4 gl-border-t" />
|
||||
<job-sidebar-details-container class="gl-py-4" :class="$options.borderTopClass" />
|
||||
|
||||
<artifacts-block
|
||||
v-if="hasArtifact"
|
||||
class="gl-py-4"
|
||||
:class="$options.borderTopClass"
|
||||
:artifact="job.artifact"
|
||||
:help-url="artifactHelpUrl"
|
||||
/>
|
||||
|
||||
<trigger-block v-if="hasTriggers" class="gl-py-4" :trigger="job.trigger" />
|
||||
<trigger-block
|
||||
v-if="hasTriggers"
|
||||
class="gl-py-4"
|
||||
:class="$options.borderTopClass"
|
||||
:trigger="job.trigger"
|
||||
/>
|
||||
|
||||
<commit-block :commit="commit" class="gl-py-4" :merge-request="job.merge_request" />
|
||||
<commit-block
|
||||
:commit="commit"
|
||||
class="gl-py-4"
|
||||
:class="$options.borderTopClass"
|
||||
:merge-request="job.merge_request"
|
||||
/>
|
||||
|
||||
<stages-dropdown
|
||||
v-if="job.pipeline"
|
||||
class="gl-py-4"
|
||||
:class="$options.borderTopClass"
|
||||
:pipeline="job.pipeline"
|
||||
:selected-stage="selectedStage"
|
||||
:stages="stages"
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ export default {
|
|||
|
||||
<p v-if="hasTags" class="build-detail-row" data-testid="job-tags">
|
||||
<span class="font-weight-bold">{{ $options.i18n.TAGS }}</span>
|
||||
<gl-badge v-for="(tag, i) in job.tags" :key="i" variant="info" size="sm">{{ tag }}</gl-badge>
|
||||
<gl-badge v-for="(tag, i) in job.tags" :key="i" variant="info">{{ tag }}</gl-badge>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
<script>
|
||||
import { GlLink, GlDisclosureDropdown, GlSprintf } from '@gitlab/ui';
|
||||
import { isEmpty } from 'lodash';
|
||||
import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue';
|
||||
import { Mousetrap } from '~/lib/mousetrap';
|
||||
import { s__ } from '~/locale';
|
||||
import CiIcon from '~/vue_shared/components/ci_icon.vue';
|
||||
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
|
||||
import { clickCopyToClipboardButton } from '~/behaviors/copy_to_clipboard';
|
||||
import { keysFor, MR_COPY_SOURCE_BRANCH_NAME } from '~/behaviors/shortcuts/keybindings';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
CiIcon,
|
||||
ClipboardButton,
|
||||
GlDisclosureDropdown,
|
||||
GlLink,
|
||||
GlSprintf,
|
||||
CiBadgeLink,
|
||||
},
|
||||
props: {
|
||||
pipeline: {
|
||||
|
|
@ -51,17 +51,15 @@ export default {
|
|||
},
|
||||
pipelineInfo() {
|
||||
if (!this.hasRef) {
|
||||
return s__('Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status}');
|
||||
return s__('Job|%{boldStart}Pipeline%{boldEnd} %{id}');
|
||||
} else if (!this.isTriggeredByMergeRequest) {
|
||||
return s__('Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status} for %{ref}');
|
||||
return s__('Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{ref}');
|
||||
} else if (!this.isMergeRequestPipeline) {
|
||||
return s__(
|
||||
'Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status} for %{mrId} with %{source}',
|
||||
);
|
||||
return s__('Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{mrId} with %{source}');
|
||||
}
|
||||
|
||||
return s__(
|
||||
'Job|%{boldStart}Pipeline:%{boldEnd} %{id} for %{mrId} with %{source} into %{target}',
|
||||
'Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{mrId} with %{source} into %{target}',
|
||||
);
|
||||
},
|
||||
},
|
||||
|
|
@ -94,6 +92,7 @@ export default {
|
|||
<template>
|
||||
<div class="dropdown">
|
||||
<div class="js-pipeline-info" data-testid="pipeline-info">
|
||||
<ci-icon :status="pipeline.details.status" />
|
||||
<gl-sprintf :message="pipelineInfo">
|
||||
<template #bold="{ content }">
|
||||
<span class="font-weight-bold">{{ content }}</span>
|
||||
|
|
@ -101,19 +100,16 @@ export default {
|
|||
<template #id>
|
||||
<gl-link
|
||||
:href="pipeline.path"
|
||||
class="js-pipeline-path link-commit gl-text-blue-500!"
|
||||
class="js-pipeline-path link-commit"
|
||||
data-testid="pipeline-path"
|
||||
data-qa-selector="pipeline_path"
|
||||
>#{{ pipeline.id }}</gl-link
|
||||
>
|
||||
</template>
|
||||
<template #status>
|
||||
<ci-badge-link :status="pipeline.details.status" badge-size="sm" />
|
||||
</template>
|
||||
<template #mrId>
|
||||
<gl-link
|
||||
:href="pipeline.merge_request.path"
|
||||
class="link-commit ref-name gl-text-blue-500!"
|
||||
class="link-commit ref-name"
|
||||
data-testid="mr-link"
|
||||
>!{{ pipeline.merge_request.iid }}</gl-link
|
||||
>
|
||||
|
|
|
|||
|
|
@ -5,10 +5,11 @@ import { joinPaths } from '~/lib/utils/url_utility';
|
|||
* See https://gitlab.com/gitlab-org/gitlab/-/issues/321656 for a fix
|
||||
*/
|
||||
export function resetServiceWorkersPublicPath() {
|
||||
// No-op if we're running Vite instead of Webpack
|
||||
if (typeof __webpack_public_path__ === 'undefined') return; // eslint-disable-line camelcase
|
||||
// __webpack_public_path__ is a global variable that can be used to adjust
|
||||
// the webpack publicPath setting at runtime.
|
||||
// see: https://webpack.js.org/guides/public-path/
|
||||
const relativeRootPath = (gon && gon.relative_url_root) || '';
|
||||
const webpackAssetPath = joinPaths(relativeRootPath, '/assets/webpack/');
|
||||
__webpack_public_path__ = webpackAssetPath; // eslint-disable-line camelcase
|
||||
__webpack_public_path__ = joinPaths(relativeRootPath, '/assets/webpack/'); // eslint-disable-line camelcase
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
export const runModules = (modules, prefix) => {
|
||||
document
|
||||
.querySelector('meta[name="controller-path"]')
|
||||
.content.split('/')
|
||||
.forEach((part, index, arr) => {
|
||||
const path = `${prefix}${[...arr.slice(0, index), part].join('/')}/index.js`;
|
||||
modules[path]?.();
|
||||
});
|
||||
};
|
||||
|
|
@ -7,6 +7,7 @@
|
|||
* e.g. the `window` scope, because it needs to be executed in the scope of webpack.
|
||||
*/
|
||||
|
||||
if (gon && gon.webpack_public_path) {
|
||||
// eslint-disable-next-line camelcase
|
||||
if (gon && gon.webpack_public_path && typeof __webpack_public_path__ !== 'undefined') {
|
||||
__webpack_public_path__ = gon.webpack_public_path; // eslint-disable-line camelcase
|
||||
}
|
||||
|
|
|
|||
|
|
@ -369,22 +369,6 @@
|
|||
.board-labels-toggle-wrapper {
|
||||
margin-bottom: $gl-input-padding;
|
||||
}
|
||||
|
||||
.board-swimlanes-toggle-wrapper {
|
||||
@include gl-h-auto;
|
||||
margin-bottom: $gl-input-padding;
|
||||
|
||||
> span,
|
||||
> .dropdown,
|
||||
.gl-dropdown-toggle {
|
||||
@include gl-w-full;
|
||||
@include gl-m-0;
|
||||
}
|
||||
|
||||
> .dropdown {
|
||||
@include gl-mt-2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -114,6 +114,24 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
content_security_policy do |p|
|
||||
next if p.directives.blank?
|
||||
|
||||
if Rails.env.development? && Feature.enabled?(:vite)
|
||||
vite_host = ViteRuby.instance.config.host
|
||||
vite_port = ViteRuby.instance.config.port
|
||||
vite_origin = "#{vite_host}:#{vite_port}"
|
||||
http_origin = "http://#{vite_origin}"
|
||||
ws_origin = "ws://#{vite_origin}"
|
||||
wss_origin = "wss://#{vite_origin}"
|
||||
gitlab_ws_origin = Gitlab::Utils.append_path(Gitlab.config.gitlab.url, 'vite-dev/')
|
||||
http_path = Gitlab::Utils.append_path(http_origin, 'vite-dev/')
|
||||
|
||||
connect_sources = p.directives['connect-src']
|
||||
p.connect_src(*(Array.wrap(connect_sources) | [ws_origin, wss_origin, http_path]))
|
||||
|
||||
worker_sources = p.directives['worker-src']
|
||||
p.worker_src(*(Array.wrap(worker_sources) | [gitlab_ws_origin, http_path]))
|
||||
end
|
||||
|
||||
next unless Gitlab::CurrentSettings.snowplow_enabled? && !Gitlab::CurrentSettings.snowplow_collector_hostname.blank?
|
||||
|
||||
default_connect_src = p.directives['connect-src'] || p.directives['default-src']
|
||||
|
|
|
|||
|
|
@ -485,6 +485,15 @@ module ApplicationHelper
|
|||
end
|
||||
end
|
||||
|
||||
def controller_full_path
|
||||
action = case controller.action_name
|
||||
when 'create' then 'new'
|
||||
when 'update' then 'edit'
|
||||
else controller.action_name
|
||||
end
|
||||
"#{controller.controller_path}/#{action}"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def browser_id
|
||||
|
|
|
|||
|
|
@ -0,0 +1,29 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module ViteHelper
|
||||
def universal_javascript_include_tag(*args)
|
||||
if vite_enabled
|
||||
vite_javascript_tag(*args)
|
||||
else
|
||||
javascript_include_tag(*args)
|
||||
end
|
||||
end
|
||||
|
||||
def universal_asset_path(*args)
|
||||
if vite_enabled
|
||||
vite_asset_path(*args)
|
||||
else
|
||||
asset_path(*args)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def vite_enabled
|
||||
Feature.enabled?(:vite) && !Rails.env.test? && vite_running
|
||||
end
|
||||
|
||||
def vite_running
|
||||
ViteRuby.instance.dev_server_running?
|
||||
end
|
||||
end
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module WebpackHelper
|
||||
include ViteHelper
|
||||
|
||||
def prefetch_link_tag(source)
|
||||
href = asset_path(source)
|
||||
|
||||
|
|
@ -14,7 +16,11 @@ module WebpackHelper
|
|||
end
|
||||
|
||||
def webpack_bundle_tag(bundle)
|
||||
javascript_include_tag(*webpack_entrypoint_paths(bundle))
|
||||
if vite_running
|
||||
vite_javascript_tag bundle
|
||||
else
|
||||
javascript_include_tag(*webpack_entrypoint_paths(bundle))
|
||||
end
|
||||
end
|
||||
|
||||
def webpack_preload_asset_tag(asset, options = {})
|
||||
|
|
@ -32,6 +38,8 @@ module WebpackHelper
|
|||
end
|
||||
|
||||
def webpack_controller_bundle_tags
|
||||
return if Feature.enabled?(:vite) && !Rails.env.test?
|
||||
|
||||
chunks = []
|
||||
|
||||
action = case controller.action_name
|
||||
|
|
|
|||
|
|
@ -48,6 +48,16 @@
|
|||
= webpack_bundle_tag 'legacy_sentry'
|
||||
= webpack_bundle_tag 'performance_bar' if performance_bar_enabled?
|
||||
|
||||
- if vite_enabled
|
||||
%meta{ name: 'controller-path', content: controller_full_path }
|
||||
- if Rails.env.development?
|
||||
= vite_client_tag
|
||||
= vite_javascript_tag "main"
|
||||
- if Gitlab.ee?
|
||||
= vite_javascript_tag "main_ee"
|
||||
- if Gitlab.jh?
|
||||
= vite_javascript_tag "main_jh"
|
||||
|
||||
= yield :page_specific_javascripts
|
||||
|
||||
= webpack_bundle_tag 'super_sidebar' if show_super_sidebar?
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
#
|
||||
# This file was generated by Bundler.
|
||||
#
|
||||
# The application 'vite' is installed as part of a gem, and
|
||||
# this file is here to facilitate running it.
|
||||
#
|
||||
|
||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||
|
||||
bundle_binstub = File.expand_path("bundle", __dir__)
|
||||
|
||||
if File.file?(bundle_binstub)
|
||||
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
|
||||
load(bundle_binstub)
|
||||
else
|
||||
abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
|
||||
Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
|
||||
end
|
||||
end
|
||||
|
||||
require "rubygems"
|
||||
require "bundler/setup"
|
||||
|
||||
load Gem.bin_path("vite_ruby", "vite")
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
name: vite
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129392
|
||||
rollout_issue_url:
|
||||
milestone: '16.4'
|
||||
type: development
|
||||
group: group::code review
|
||||
default_enabled: false
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"all": {
|
||||
"sourceCodeDir": "app/assets",
|
||||
"entrypointsDir": "javascripts/entrypoints",
|
||||
"devServerConnectTimeout": 3
|
||||
},
|
||||
"development": {
|
||||
"autoBuild": true,
|
||||
"publicOutputDir": "vite-dev",
|
||||
"host": "localhost",
|
||||
"port": 3038
|
||||
},
|
||||
"test": {
|
||||
"autoBuild": true,
|
||||
"publicOutputDir": "vite-test",
|
||||
"port": 3037
|
||||
}
|
||||
}
|
||||
|
|
@ -18,8 +18,6 @@ const fs = require('fs');
|
|||
const path = require('path');
|
||||
|
||||
const BABEL_VERSION = require('@babel/core/package.json').version;
|
||||
const SOURCEGRAPH_VERSION = require('@sourcegraph/code-host-integration/package.json').version;
|
||||
const GITLAB_WEB_IDE_VERSION = require('@gitlab/web-ide/package.json').version;
|
||||
|
||||
const BABEL_LOADER_VERSION = require('babel-loader/package.json').version;
|
||||
const CompressionPlugin = require('compression-webpack-plugin');
|
||||
|
|
@ -37,14 +35,23 @@ const { StatsWriterPlugin } = require('webpack-stats-plugin');
|
|||
const WEBPACK_VERSION = require('webpack/package.json').version;
|
||||
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
|
||||
|
||||
const {
|
||||
IS_EE,
|
||||
IS_JH,
|
||||
ROOT_PATH,
|
||||
WEBPACK_OUTPUT_PATH,
|
||||
WEBPACK_PUBLIC_PATH,
|
||||
SOURCEGRAPH_PUBLIC_PATH,
|
||||
SOURCEGRAPH_OUTPUT_PATH,
|
||||
GITLAB_WEB_IDE_OUTPUT_PATH,
|
||||
GITLAB_WEB_IDE_PUBLIC_PATH,
|
||||
} = require('./webpack.constants');
|
||||
|
||||
const createIncrementalWebpackCompiler = require('./helpers/incremental_webpack_compiler');
|
||||
const IS_EE = require('./helpers/is_ee_env');
|
||||
const IS_JH = require('./helpers/is_jh_env');
|
||||
const vendorDllHash = require('./helpers/vendor_dll_hash');
|
||||
|
||||
const GraphqlKnownOperationsPlugin = require('./plugins/graphql_known_operations_plugin');
|
||||
|
||||
const ROOT_PATH = path.resolve(__dirname, '..');
|
||||
const SUPPORTED_BROWSERS = fs.readFileSync(path.join(ROOT_PATH, '.browserslistrc'), 'utf-8');
|
||||
const SUPPORTED_BROWSERS_HASH = crypto
|
||||
.createHash('sha256')
|
||||
|
|
@ -82,19 +89,9 @@ if (WEBPACK_REPORT) {
|
|||
NO_HASHED_CHUNKS = true;
|
||||
}
|
||||
|
||||
const WEBPACK_OUTPUT_PATH = path.join(ROOT_PATH, 'public/assets/webpack');
|
||||
const WEBPACK_PUBLIC_PATH = '/assets/webpack/';
|
||||
const SOURCEGRAPH_PACKAGE = '@sourcegraph/code-host-integration';
|
||||
const GITLAB_WEB_IDE_PACKAGE = '@gitlab/web-ide';
|
||||
|
||||
const SOURCEGRAPH_PATH = path.join('sourcegraph', SOURCEGRAPH_VERSION, '/');
|
||||
const SOURCEGRAPH_OUTPUT_PATH = path.join(WEBPACK_OUTPUT_PATH, SOURCEGRAPH_PATH);
|
||||
const SOURCEGRAPH_PUBLIC_PATH = path.join(WEBPACK_PUBLIC_PATH, SOURCEGRAPH_PATH);
|
||||
|
||||
const GITLAB_WEB_IDE_PATH = path.join('gitlab-vscode', GITLAB_WEB_IDE_VERSION, '/');
|
||||
const GITLAB_WEB_IDE_OUTPUT_PATH = path.join(WEBPACK_OUTPUT_PATH, GITLAB_WEB_IDE_PATH);
|
||||
const GITLAB_WEB_IDE_PUBLIC_PATH = path.join(WEBPACK_PUBLIC_PATH, GITLAB_WEB_IDE_PATH);
|
||||
|
||||
const devtool = IS_PRODUCTION ? 'source-map' : 'cheap-module-eval-source-map';
|
||||
|
||||
let autoEntriesCount = 0;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
const path = require('path');
|
||||
|
||||
const ROOT_PATH = path.resolve(__dirname, '..');
|
||||
const WEBPACK_OUTPUT_PATH = path.join(ROOT_PATH, 'public/assets/webpack');
|
||||
const WEBPACK_PUBLIC_PATH = '/assets/webpack/';
|
||||
const SOURCEGRAPH_VERSION = require('@sourcegraph/code-host-integration/package.json').version;
|
||||
|
||||
const SOURCEGRAPH_PATH = path.join('sourcegraph', SOURCEGRAPH_VERSION, '/');
|
||||
const SOURCEGRAPH_OUTPUT_PATH = path.join(WEBPACK_OUTPUT_PATH, SOURCEGRAPH_PATH);
|
||||
const SOURCEGRAPH_PUBLIC_PATH = path.join(WEBPACK_PUBLIC_PATH, SOURCEGRAPH_PATH);
|
||||
|
||||
const GITLAB_WEB_IDE_VERSION = require('@gitlab/web-ide/package.json').version;
|
||||
|
||||
const GITLAB_WEB_IDE_PATH = path.join('gitlab-vscode', GITLAB_WEB_IDE_VERSION, '/');
|
||||
const GITLAB_WEB_IDE_OUTPUT_PATH = path.join(WEBPACK_OUTPUT_PATH, GITLAB_WEB_IDE_PATH);
|
||||
const GITLAB_WEB_IDE_PUBLIC_PATH = path.join(WEBPACK_PUBLIC_PATH, GITLAB_WEB_IDE_PATH);
|
||||
|
||||
const IS_EE = require('./helpers/is_ee_env');
|
||||
const IS_JH = require('./helpers/is_jh_env');
|
||||
|
||||
module.exports = {
|
||||
IS_EE,
|
||||
IS_JH,
|
||||
ROOT_PATH,
|
||||
WEBPACK_OUTPUT_PATH,
|
||||
WEBPACK_PUBLIC_PATH,
|
||||
SOURCEGRAPH_OUTPUT_PATH,
|
||||
SOURCEGRAPH_PUBLIC_PATH,
|
||||
GITLAB_WEB_IDE_OUTPUT_PATH,
|
||||
GITLAB_WEB_IDE_PUBLIC_PATH,
|
||||
};
|
||||
|
|
@ -365,7 +365,7 @@ In this case, see [job retries for rollback deployments](deployment_safety.md#jo
|
|||
|
||||
### Environment URL
|
||||
|
||||
> - [Fixed](https://gitlab.com/gitlab-org/gitlab/-/issues/337417) to persist arbitrary URLs in GitLab 15.2 [with a flag](../../administration/feature_flags.md) named `soft_validation_on_external_url`. Disabled by default.
|
||||
> - [Changed](https://gitlab.com/gitlab-org/gitlab/-/issues/337417) to persist arbitrary URLs in GitLab 15.2 [with a flag](../../administration/feature_flags.md) named `soft_validation_on_external_url`. Disabled by default.
|
||||
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/337417) in GitLab 15.3. [Feature flag `soft_validation_on_external_url`](https://gitlab.com/gitlab-org/gitlab/-/issues/367206) removed.
|
||||
|
||||
The [environment URL](../yaml/index.md#environmenturl) is displayed in a few
|
||||
|
|
|
|||
|
|
@ -181,10 +181,12 @@ it 'succeeds', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/12345'
|
|||
end
|
||||
```
|
||||
|
||||
This means it is skipped unless run with `--tag quarantine`:
|
||||
This means it is skipped in CI. By default, the quarantined tests will run locally.
|
||||
|
||||
We can skip them in local development as well by running with `--tag ~quarantine`:
|
||||
|
||||
```shell
|
||||
bin/rspec --tag quarantine
|
||||
bin/rspec --tag ~quarantine
|
||||
```
|
||||
|
||||
After the long-term quarantining MR has reached production, you should revert the fast-quarantine MR you created earlier.
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ This enables teams and managers to understand all aspects of productivity, quali
|
|||
|
||||
## Deployment frequency
|
||||
|
||||
> [Fixed](https://gitlab.com/gitlab-org/gitlab/-/issues/394712) the frequency calculation formula for the `all` and `monthly` intervals in GitLab 16.0.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/394712) fix for the frequency calculation formula for `all` and `monthly` intervals in GitLab 16.0.
|
||||
|
||||
Deployment frequency is the frequency of successful deployments to production over the given date range (hourly, daily, weekly, monthly, or yearly).
|
||||
|
||||
|
|
|
|||
|
|
@ -11792,9 +11792,6 @@ msgstr ""
|
|||
msgid "Commit statistics for %{ref} %{start_time} - %{end_time}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Commit:"
|
||||
msgstr ""
|
||||
|
||||
msgid "CommitBoxTitle|Commit"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -14500,9 +14497,6 @@ msgstr ""
|
|||
msgid "CycleAnalytics|Total time"
|
||||
msgstr ""
|
||||
|
||||
msgid "CycleAnalytics|group dropdown filter"
|
||||
msgstr ""
|
||||
|
||||
msgid "CycleAnalytics|not allowed for the given start event"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -27132,16 +27126,16 @@ msgstr ""
|
|||
msgid "Jobs|You're about to retry a job that failed because it attempted to deploy code that is older than the latest deployment. Retrying this job could result in overwriting the environment with the older source code."
|
||||
msgstr ""
|
||||
|
||||
msgid "Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status}"
|
||||
msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status} for %{mrId} with %{source}"
|
||||
msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{mrId} with %{source}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Job|%{boldStart}Pipeline:%{boldEnd} %{id} %{status} for %{ref}"
|
||||
msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{mrId} with %{source} into %{target}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Job|%{boldStart}Pipeline:%{boldEnd} %{id} for %{mrId} with %{source} into %{target}"
|
||||
msgid "Job|%{boldStart}Pipeline%{boldEnd} %{id} for %{ref}"
|
||||
msgstr ""
|
||||
|
||||
msgid "Job|%{searchLength} results found for %{searchTerm}"
|
||||
|
|
@ -50682,6 +50676,9 @@ msgstr ""
|
|||
msgid "UsageQuota|Buy storage"
|
||||
msgstr ""
|
||||
|
||||
msgid "UsageQuota|Code Suggestions"
|
||||
msgstr ""
|
||||
|
||||
msgid "UsageQuota|Code packages and container images."
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -234,9 +234,12 @@
|
|||
"@gitlab/eslint-plugin": "19.0.1",
|
||||
"@gitlab/stylelint-config": "5.0.0",
|
||||
"@graphql-eslint/eslint-plugin": "3.20.1",
|
||||
"@originjs/vite-plugin-commonjs": "^1.0.3",
|
||||
"@rollup/plugin-graphql": "^2.0.3",
|
||||
"@testing-library/dom": "^7.16.2",
|
||||
"@types/jest": "^28.1.3",
|
||||
"@types/lodash": "^4.14.197",
|
||||
"@vitejs/plugin-vue2": "^1.1.2",
|
||||
"@vue/compat": "^3.2.47",
|
||||
"@vue/compiler-sfc": "^3.2.47",
|
||||
"@vue/test-utils": "1.3.6",
|
||||
|
|
@ -245,6 +248,7 @@
|
|||
"@vue/vue3-jest": "^29.2.3",
|
||||
"ajv": "^8.10.0",
|
||||
"ajv-formats": "^2.1.1",
|
||||
"autoprefixer": "^10.4.8",
|
||||
"axios-mock-adapter": "^1.15.0",
|
||||
"babel-jest": "^28.1.3",
|
||||
"chalk": "^2.4.1",
|
||||
|
|
@ -284,6 +288,9 @@
|
|||
"stylelint": "^15.10.2",
|
||||
"swagger-cli": "^4.0.4",
|
||||
"timezone-mock": "^1.0.8",
|
||||
"vite": "^4.4.9",
|
||||
"vite-plugin-ruby": "^3.2.2",
|
||||
"vite-svg-loader": "^3.4.0",
|
||||
"vue-loader-vue3": "npm:vue-loader@17",
|
||||
"vue-test-utils-compat": "0.0.14",
|
||||
"vuex-mock-store": "^0.1.0",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
module.exports = {
|
||||
plugins: {
|
||||
autoprefixer: {},
|
||||
},
|
||||
};
|
||||
|
|
@ -91,13 +91,13 @@ module QA
|
|||
issues
|
||||
.reject { |issue| issue[:iid] == report_iid }
|
||||
.each do |issue|
|
||||
issue_iid = issue[:iid]
|
||||
issue_endpoint = "projects/#{PROJECT_ID}/issues/#{issue_iid}"
|
||||
issue_iid = issue[:iid]
|
||||
issue_endpoint = "projects/#{PROJECT_ID}/issues/#{issue_iid}"
|
||||
|
||||
puts "Closing previous report '#{issue[:web_url]}'"
|
||||
api_update(:put, issue_endpoint, state_event: "close")
|
||||
api_update(:post, "#{issue_endpoint}/notes", body: "Closed issue in favor of ##{report_iid}")
|
||||
end
|
||||
puts "Closing previous report '#{issue[:web_url]}'"
|
||||
api_update(:put, issue_endpoint, state_event: "close")
|
||||
api_update(:post, "#{issue_endpoint}/notes", body: "Closed issue in favor of ##{report_iid}")
|
||||
end
|
||||
end
|
||||
|
||||
# Notify failure
|
||||
|
|
@ -244,7 +244,10 @@ module QA
|
|||
headings: headings.map(&:upcase),
|
||||
markdown: markdown,
|
||||
rows: specs.map do |k, v|
|
||||
[name_column(name: k, file: v[:file], markdown: markdown), *table_params(v.values)]
|
||||
[
|
||||
name_column(name: k, file: v[:file], exceptions_and_job_urls: v[:exceptions_and_job_urls],
|
||||
markdown: markdown), *table_params(v.values)
|
||||
]
|
||||
end
|
||||
)]
|
||||
end
|
||||
|
|
@ -312,13 +315,26 @@ module QA
|
|||
# @param [String] file
|
||||
# @param [Boolean] markdown
|
||||
# @return [String]
|
||||
def name_column(name:, file:, markdown: false)
|
||||
return "**name**: #{name}<br>**file**: #{file}" if markdown
|
||||
def name_column(name:, file:, exceptions_and_job_urls:, markdown: false)
|
||||
return "**name**: #{name}<br>**file**: #{file}#{exceptions_markdown(exceptions_and_job_urls)}" if markdown
|
||||
|
||||
wrapped_name = name.length > 150 ? "#{name} ".scan(/.{1,150} /).map(&:strip).join("\n") : name
|
||||
"name: '#{wrapped_name}'\nfile: #{file.ljust(160)}"
|
||||
end
|
||||
|
||||
# Formatted expection with link to job url
|
||||
#
|
||||
# @param [Hash] exceptions_and_job_urls
|
||||
# @return [String]
|
||||
def exceptions_markdown(exceptions_and_job_urls)
|
||||
return '' if exceptions_and_job_urls.empty?
|
||||
|
||||
"<br>**Exceptions**:#{exceptions_and_job_urls.keys.map do |e|
|
||||
"<br>- [`#{e.truncate(250).tr('`', "'")}`](#{exceptions_and_job_urls[e]})"
|
||||
end.join('')}"
|
||||
end
|
||||
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
# Test executions grouped by name
|
||||
#
|
||||
# @param [Boolean] reliable
|
||||
|
|
@ -329,6 +345,7 @@ module QA
|
|||
all_runs = query_api.query(query: query(reliable))
|
||||
all_runs.each_with_object(Hash.new { |hsh, key| hsh[key] = {} }) do |table, result|
|
||||
records = table.records.sort_by { |record| record.values["_time"] }
|
||||
|
||||
# skip specs that executed less time than defined by range or stopped executing before report date
|
||||
# offset 1 day due to how schedulers are configured and first run can be 1 day later
|
||||
next if (Date.today - Date.parse(records.first.values["_time"])).to_i < (range - 1)
|
||||
|
|
@ -341,16 +358,26 @@ module QA
|
|||
|
||||
runs = records.count
|
||||
failed = records.count { |r| r.values["status"] == "failed" }
|
||||
|
||||
failure_rate = (failed.to_f / runs) * 100
|
||||
|
||||
records_with_exception = records.reject { |r| !r.values["failure_exception"] }
|
||||
|
||||
# Since exception is the key in the below hash, only one instance of an occurrence is kept
|
||||
exceptions_and_job_urls = Hash[*records_with_exception.flat_map do |r|
|
||||
[r.values["failure_exception"], r.values["job_url"]]
|
||||
end]
|
||||
|
||||
result[stage][name] = {
|
||||
file: file,
|
||||
runs: runs,
|
||||
failed: failed,
|
||||
exceptions_and_job_urls: exceptions_and_job_urls,
|
||||
failure_rate: failure_rate == 0 ? failure_rate.round(0) : failure_rate.round(2)
|
||||
}
|
||||
end
|
||||
end
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
|
||||
# Flux query
|
||||
#
|
||||
|
|
@ -363,19 +390,29 @@ module QA
|
|||
|> filter(fn: (r) => r._measurement == "test-stats")
|
||||
|> filter(fn: (r) => r.run_type == "staging-full" or
|
||||
r.run_type == "staging-sanity" or
|
||||
r.run_type == "staging-sanity-no-admin" or
|
||||
r.run_type == "production-full" or
|
||||
r.run_type == "production-sanity" or
|
||||
r.run_type == "package-and-qa" or
|
||||
r.run_type == "nightly"
|
||||
)
|
||||
|> filter(fn: (r) => r.job_name != "ce:airgapped" and
|
||||
r.job_name != "ee:airgapped" and
|
||||
r.job_name != "ce:instance-image-slow-network" and
|
||||
r.job_name != "ee:instance-image-slow-network" and
|
||||
r.job_name != "ce:nplus1-instance-image" and
|
||||
r.job_name != "ee:nplus1-instance-image"
|
||||
)
|
||||
|> filter(fn: (r) => r.status != "pending" and
|
||||
r.merge_request == "false" and
|
||||
r.quarantined == "false" and
|
||||
r.smoke == "false" and
|
||||
r.reliable == "#{reliable}" and
|
||||
r._field == "id"
|
||||
r.reliable == "#{reliable}"
|
||||
)
|
||||
|> filter(fn: (r) => r["_field"] == "job_url" or
|
||||
r["_field"] == "failure_exception" or
|
||||
r["_field"] == "id"
|
||||
)
|
||||
|> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
|
||||
|> group(columns: ["name"])
|
||||
QUERY
|
||||
end
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ describe QA::Tools::ReliableReport do
|
|||
"status" => "failed",
|
||||
"file_path" => "some/spec.rb",
|
||||
"stage" => "create",
|
||||
"failure_exception" => "failure message",
|
||||
"job_url" => "https://job/url",
|
||||
"_time" => time
|
||||
}
|
||||
[
|
||||
|
|
@ -61,19 +63,29 @@ describe QA::Tools::ReliableReport do
|
|||
|> filter(fn: (r) => r._measurement == "test-stats")
|
||||
|> filter(fn: (r) => r.run_type == "staging-full" or
|
||||
r.run_type == "staging-sanity" or
|
||||
r.run_type == "staging-sanity-no-admin" or
|
||||
r.run_type == "production-full" or
|
||||
r.run_type == "production-sanity" or
|
||||
r.run_type == "package-and-qa" or
|
||||
r.run_type == "nightly"
|
||||
)
|
||||
|> filter(fn: (r) => r.job_name != "ce:airgapped" and
|
||||
r.job_name != "ee:airgapped" and
|
||||
r.job_name != "ce:instance-image-slow-network" and
|
||||
r.job_name != "ee:instance-image-slow-network" and
|
||||
r.job_name != "ce:nplus1-instance-image" and
|
||||
r.job_name != "ee:nplus1-instance-image"
|
||||
)
|
||||
|> filter(fn: (r) => r.status != "pending" and
|
||||
r.merge_request == "false" and
|
||||
r.quarantined == "false" and
|
||||
r.smoke == "false" and
|
||||
r.reliable == "#{reliable}" and
|
||||
r._field == "id"
|
||||
r.reliable == "#{reliable}"
|
||||
)
|
||||
|> filter(fn: (r) => r["_field"] == "job_url" or
|
||||
r["_field"] == "failure_exception" or
|
||||
r["_field"] == "id"
|
||||
)
|
||||
|> pivot(rowKey: ["_time"], columnKey: ["_field"], valueColumn: "_value")
|
||||
|> group(columns: ["name"])
|
||||
QUERY
|
||||
end
|
||||
|
|
@ -106,8 +118,12 @@ describe QA::Tools::ReliableReport do
|
|||
)
|
||||
end
|
||||
|
||||
def name_column(spec_name)
|
||||
"**name**: #{spec_name}<br>**file**: spec.rb"
|
||||
def name_column(spec_name, exceptions_and_job_urls = {})
|
||||
"**name**: #{spec_name}<br>**file**: spec.rb#{exceptions_markdown(exceptions_and_job_urls)}"
|
||||
end
|
||||
|
||||
def exceptions_markdown(exceptions_and_job_urls)
|
||||
exceptions_and_job_urls.empty? ? '' : "<br>**Exceptions**:<br>- [`failure message`](https://job/url)"
|
||||
end
|
||||
|
||||
before do
|
||||
|
|
@ -184,7 +200,7 @@ describe QA::Tools::ReliableReport do
|
|||
|
||||
Total amount: **1**
|
||||
|
||||
#{markdown_section([['create', 1]], [[name_column('unstable spec'), 3, 2, '66.67%']], 'create', 'unstable')}
|
||||
#{markdown_section([['create', 1]], [[name_column('unstable spec', { 'failure message' => 'https://job/url' }), 3, 2, '66.67%']], 'create', 'unstable')}
|
||||
TXT
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ RSpec.describe 'Jobs', :clean_gitlab_redis_shared_state, feature_category: :grou
|
|||
visit project_job_path(project, job)
|
||||
|
||||
within '.js-pipeline-info' do
|
||||
expect(page).to have_content("Pipeline: ##{pipeline.id} #{pipeline.status} for #{pipeline.ref}")
|
||||
expect(page).to have_content("Pipeline ##{pipeline.id} for #{pipeline.ref}")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { shallowMount } from '@vue/test-utils';
|
|||
import { Mousetrap } from '~/lib/mousetrap';
|
||||
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
|
||||
import StagesDropdown from '~/jobs/components/job/sidebar/stages_dropdown.vue';
|
||||
import CiBadgeLink from '~/vue_shared/components/ci_badge_link.vue';
|
||||
import CiIcon from '~/vue_shared/components/ci_icon.vue';
|
||||
import * as copyToClipboard from '~/behaviors/copy_to_clipboard';
|
||||
import {
|
||||
mockPipelineWithoutRef,
|
||||
|
|
@ -15,8 +15,7 @@ import {
|
|||
describe('Stages Dropdown', () => {
|
||||
let wrapper;
|
||||
|
||||
const findStatusBadge = () => wrapper.findComponent(CiBadgeLink);
|
||||
const findStatusText = () => findStatusBadge().props('status').label;
|
||||
const findStatus = () => wrapper.findComponent(CiIcon);
|
||||
const findDropdown = () => wrapper.findComponent(GlDisclosureDropdown);
|
||||
const findSelectedStageText = () => findDropdown().props('toggleText');
|
||||
|
||||
|
|
@ -47,8 +46,7 @@ describe('Stages Dropdown', () => {
|
|||
});
|
||||
|
||||
it('renders pipeline status', () => {
|
||||
expect(findStatusBadge().exists()).toBe(true);
|
||||
expect(findStatusText()).toBe('passed');
|
||||
expect(findStatus().exists()).toBe(true);
|
||||
});
|
||||
|
||||
it('renders dropdown with stages', () => {
|
||||
|
|
@ -79,7 +77,7 @@ describe('Stages Dropdown', () => {
|
|||
'does not have a ref',
|
||||
{
|
||||
pipeline: mockPipelineWithoutRef,
|
||||
text: `Pipeline: #${mockPipelineWithoutRef.id}`,
|
||||
text: `Pipeline #${mockPipelineWithoutRef.id}`,
|
||||
foundElements: [
|
||||
{ testId: 'pipeline-path', props: [{ href: mockPipelineWithoutRef.path }] },
|
||||
],
|
||||
|
|
@ -89,7 +87,7 @@ describe('Stages Dropdown', () => {
|
|||
'hasRef but not triggered by MR',
|
||||
{
|
||||
pipeline: mockPipelineWithoutMR,
|
||||
text: `Pipeline: #${mockPipelineWithoutMR.id} for ${mockPipelineWithoutMR.ref.name}`,
|
||||
text: `Pipeline #${mockPipelineWithoutMR.id} for ${mockPipelineWithoutMR.ref.name}`,
|
||||
foundElements: [
|
||||
{ testId: 'pipeline-path', props: [{ href: mockPipelineWithoutMR.path }] },
|
||||
{ testId: 'source-ref-link', props: [{ href: mockPipelineWithoutMR.ref.path }] },
|
||||
|
|
@ -101,7 +99,7 @@ describe('Stages Dropdown', () => {
|
|||
'hasRef and MR but not MR pipeline',
|
||||
{
|
||||
pipeline: mockPipelineDetached,
|
||||
text: `Pipeline: #${mockPipelineDetached.id} for !${mockPipelineDetached.merge_request.iid} with ${mockPipelineDetached.merge_request.source_branch}`,
|
||||
text: `Pipeline #${mockPipelineDetached.id} for !${mockPipelineDetached.merge_request.iid} with ${mockPipelineDetached.merge_request.source_branch}`,
|
||||
foundElements: [
|
||||
{ testId: 'pipeline-path', props: [{ href: mockPipelineDetached.path }] },
|
||||
{ testId: 'mr-link', props: [{ href: mockPipelineDetached.merge_request.path }] },
|
||||
|
|
@ -120,7 +118,7 @@ describe('Stages Dropdown', () => {
|
|||
'hasRef and MR and MR pipeline',
|
||||
{
|
||||
pipeline: mockPipelineWithAttachedMR,
|
||||
text: `Pipeline: #${mockPipelineWithAttachedMR.id} for !${mockPipelineWithAttachedMR.merge_request.iid} with ${mockPipelineWithAttachedMR.merge_request.source_branch} into ${mockPipelineWithAttachedMR.merge_request.target_branch}`,
|
||||
text: `Pipeline #${mockPipelineWithAttachedMR.id} for !${mockPipelineWithAttachedMR.merge_request.iid} with ${mockPipelineWithAttachedMR.merge_request.source_branch} into ${mockPipelineWithAttachedMR.merge_request.target_branch}`,
|
||||
foundElements: [
|
||||
{ testId: 'pipeline-path', props: [{ href: mockPipelineWithAttachedMR.path }] },
|
||||
{ testId: 'mr-link', props: [{ href: mockPipelineWithAttachedMR.merge_request.path }] },
|
||||
|
|
|
|||
|
|
@ -919,4 +919,38 @@ RSpec.describe ApplicationHelper do
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#controller_full_path' do
|
||||
let(:path) { 'some_path' }
|
||||
let(:action) { 'show' }
|
||||
|
||||
before do
|
||||
allow(helper.controller).to receive(:controller_path).and_return(path)
|
||||
allow(helper.controller).to receive(:action_name).and_return(action)
|
||||
end
|
||||
|
||||
context 'when is create action' do
|
||||
let(:action) { 'create' }
|
||||
|
||||
it 'transforms to "new" path' do
|
||||
expect(helper.controller_full_path).to eq("#{path}/new")
|
||||
end
|
||||
end
|
||||
|
||||
context 'when is update action' do
|
||||
let(:action) { 'update' }
|
||||
|
||||
it 'transforms to "edit" path' do
|
||||
expect(helper.controller_full_path).to eq("#{path}/edit")
|
||||
end
|
||||
end
|
||||
|
||||
context 'when is show action' do
|
||||
let(:action) { 'show' }
|
||||
|
||||
it 'passes through' do
|
||||
expect(helper.controller_full_path).to eq("#{path}/#{action}")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -0,0 +1,59 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe ViteHelper, feature_category: :tooling do
|
||||
let(:source) { 'foo.js' }
|
||||
let(:vite_source) { 'vite/foo.js' }
|
||||
let(:vite_tag) { '<tag src="vite/foo"></tag>' }
|
||||
let(:webpack_source) { 'webpack/foo.js' }
|
||||
let(:webpack_tag) { '<tag src="webpack/foo"></tag>' }
|
||||
|
||||
context 'when vite enabled' do
|
||||
before do
|
||||
stub_rails_env('development')
|
||||
stub_feature_flags(vite: true)
|
||||
|
||||
allow(helper).to receive(:vite_javascript_tag).and_return(vite_tag)
|
||||
allow(helper).to receive(:vite_asset_path).and_return(vite_source)
|
||||
allow(helper).to receive(:vite_stylesheet_tag).and_return(vite_tag)
|
||||
allow(helper).to receive(:vite_asset_url).and_return(vite_source)
|
||||
allow(helper).to receive(:vite_running).and_return(true)
|
||||
end
|
||||
|
||||
describe '#universal_javascript_include_tag' do
|
||||
it 'returns vite javascript tag' do
|
||||
expect(helper.universal_javascript_include_tag(source)).to eq(vite_tag)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#universal_asset_path' do
|
||||
it 'returns vite asset path' do
|
||||
expect(helper.universal_asset_path(source)).to eq(vite_source)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when vite disabled' do
|
||||
before do
|
||||
stub_feature_flags(vite: false)
|
||||
|
||||
allow(helper).to receive(:javascript_include_tag).and_return(webpack_tag)
|
||||
allow(helper).to receive(:asset_path).and_return(webpack_source)
|
||||
allow(helper).to receive(:stylesheet_link_tag).and_return(webpack_tag)
|
||||
allow(helper).to receive(:path_to_stylesheet).and_return(webpack_source)
|
||||
end
|
||||
|
||||
describe '#universal_javascript_include_tag' do
|
||||
it 'returns webpack javascript tag' do
|
||||
expect(helper.universal_javascript_include_tag(source)).to eq(webpack_tag)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#universal_asset_path' do
|
||||
it 'returns ActionView asset path' do
|
||||
expect(helper.universal_asset_path(source)).to eq(webpack_source)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -34,4 +34,22 @@ RSpec.describe WebpackHelper do
|
|||
expect(output).to eq("<link rel=\"prefetch\" href=\"#{asset_path}\">")
|
||||
end
|
||||
end
|
||||
|
||||
context 'when vite enabled' do
|
||||
let(:bundle) { 'bundle.js' }
|
||||
|
||||
before do
|
||||
stub_rails_env('development')
|
||||
stub_feature_flags(vite: true)
|
||||
|
||||
allow(helper).to receive(:vite_javascript_tag).and_return('vite')
|
||||
allow(helper).to receive(:vite_running).and_return(true)
|
||||
end
|
||||
|
||||
describe '#webpack_bundle_tag' do
|
||||
it 'return vite javascript tag' do
|
||||
expect(helper.webpack_bundle_tag(bundle)).to eq('vite')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ require 'spec_helper'
|
|||
# of testing in application_controller_spec.
|
||||
RSpec.describe 'Content Security Policy', feature_category: :application_instrumentation do
|
||||
let(:snowplow_host) { 'snowplow.example.com' }
|
||||
let(:vite_origin) { "#{ViteRuby.instance.config.host}:#{ViteRuby.instance.config.port}" }
|
||||
|
||||
shared_examples 'snowplow is not in the CSP' do
|
||||
it 'does not add the snowplow collector hostname to the CSP' do
|
||||
|
|
@ -46,5 +47,32 @@ RSpec.describe 'Content Security Policy', feature_category: :application_instrum
|
|||
|
||||
it_behaves_like 'snowplow is not in the CSP'
|
||||
end
|
||||
|
||||
context 'when vite enabled during development' do
|
||||
before do
|
||||
stub_rails_env('development')
|
||||
stub_feature_flags(vite: true)
|
||||
|
||||
get explore_root_url
|
||||
end
|
||||
|
||||
it 'adds vite csp' do
|
||||
expect(response).to have_gitlab_http_status(:ok)
|
||||
expect(response.headers['Content-Security-Policy']).to include(vite_origin)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when vite disabled' do
|
||||
before do
|
||||
stub_feature_flags(vite: false)
|
||||
|
||||
get explore_root_url
|
||||
end
|
||||
|
||||
it "doesn't add vite csp" do
|
||||
expect(response).to have_gitlab_http_status(:ok)
|
||||
expect(response.headers['Content-Security-Policy']).not_to include(vite_origin)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -345,6 +345,8 @@ RSpec.configure do |config|
|
|||
# Postgres is the primary data source, and ClickHouse only when enabled in certain cases.
|
||||
stub_feature_flags(clickhouse_data_collection: false)
|
||||
|
||||
stub_feature_flags(vite: false)
|
||||
|
||||
allow(Gitlab::GitalyClient).to receive(:can_use_disk?).and_return(enable_rugged)
|
||||
else
|
||||
unstub_all_feature_flags
|
||||
|
|
@ -394,8 +396,8 @@ RSpec.configure do |config|
|
|||
end
|
||||
|
||||
config.around(:example, :quarantine) do |example|
|
||||
# Skip tests in quarantine unless we explicitly focus on them.
|
||||
example.run if config.inclusion_filter[:quarantine]
|
||||
# Skip tests in quarantine unless we explicitly focus on them or not in CI
|
||||
example.run if config.inclusion_filter[:quarantine] || !ENV['CI']
|
||||
end
|
||||
|
||||
config.around(:example, :request_store) do |example|
|
||||
|
|
|
|||
|
|
@ -0,0 +1,100 @@
|
|||
import path from 'path';
|
||||
import { defineConfig } from 'vite';
|
||||
import svgLoader from 'vite-svg-loader';
|
||||
import vue from '@vitejs/plugin-vue2';
|
||||
import graphql from '@rollup/plugin-graphql';
|
||||
import RubyPlugin from 'vite-plugin-ruby';
|
||||
import { viteCommonjs } from '@originjs/vite-plugin-commonjs';
|
||||
import webpackConfig from './config/webpack.config';
|
||||
import {
|
||||
IS_EE,
|
||||
IS_JH,
|
||||
SOURCEGRAPH_PUBLIC_PATH,
|
||||
GITLAB_WEB_IDE_PUBLIC_PATH,
|
||||
} from './config/webpack.constants';
|
||||
import viteSharedConfig from './config/vite.json';
|
||||
|
||||
const aliasArr = Object.entries(webpackConfig.resolve.alias).map(([find, replacement]) => ({
|
||||
find: find.includes('$') ? new RegExp(find) : find,
|
||||
replacement,
|
||||
}));
|
||||
|
||||
const assetsPath = path.resolve(__dirname, 'app/assets');
|
||||
const javascriptsPath = path.resolve(assetsPath, 'javascripts');
|
||||
|
||||
const emptyComponent = path.resolve(javascriptsPath, 'vue_shared/components/empty_component.js');
|
||||
|
||||
const [rubyPlugin, ...rest] = RubyPlugin();
|
||||
|
||||
// We can't use regular 'resolve' which points to sourceCodeDir in vite.json
|
||||
// Because we need for '~' alias to resolve to app/assets/javascripts
|
||||
// We can't use javascripts folder in sourceCodeDir because we also need to resolve other assets
|
||||
// With undefined 'resolve' an '~' alias from Webpack config is used instead
|
||||
// See the issue for details: https://github.com/ElMassimo/vite_ruby/issues/237
|
||||
const fixedRubyPlugin = [
|
||||
{
|
||||
...rubyPlugin,
|
||||
config: (...args) => {
|
||||
const originalConfig = rubyPlugin.config(...args);
|
||||
return {
|
||||
...originalConfig,
|
||||
resolve: undefined,
|
||||
};
|
||||
},
|
||||
},
|
||||
...rest,
|
||||
];
|
||||
|
||||
const EE_ALIAS_FALLBACK = [
|
||||
{
|
||||
find: /^ee_component\/(.*)\.vue/,
|
||||
replacement: emptyComponent,
|
||||
},
|
||||
];
|
||||
|
||||
const JH_ALIAS_FALLBACK = [
|
||||
{
|
||||
find: /^jh_component\/(.*)\.vue/,
|
||||
replacement: emptyComponent,
|
||||
},
|
||||
];
|
||||
|
||||
export default defineConfig({
|
||||
resolve: {
|
||||
alias: [
|
||||
...aliasArr,
|
||||
...(IS_EE ? [] : EE_ALIAS_FALLBACK),
|
||||
...(IS_JH ? [] : JH_ALIAS_FALLBACK),
|
||||
{
|
||||
find: '~/',
|
||||
replacement: javascriptsPath,
|
||||
},
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
fixedRubyPlugin,
|
||||
vue(),
|
||||
graphql(),
|
||||
svgLoader({
|
||||
defaultImport: 'raw',
|
||||
}),
|
||||
viteCommonjs({
|
||||
include: [path.resolve(javascriptsPath, 'locale/ensure_single_line.cjs')],
|
||||
}),
|
||||
],
|
||||
define: {
|
||||
IS_EE: IS_EE ? 'window.gon && window.gon.ee' : JSON.stringify(false),
|
||||
IS_JH: IS_JH ? 'window.gon && window.gon.jh' : JSON.stringify(false),
|
||||
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
|
||||
'process.env.SOURCEGRAPH_PUBLIC_PATH': JSON.stringify(SOURCEGRAPH_PUBLIC_PATH),
|
||||
'process.env.GITLAB_WEB_IDE_PUBLIC_PATH': JSON.stringify(GITLAB_WEB_IDE_PUBLIC_PATH),
|
||||
},
|
||||
server: {
|
||||
hmr: {
|
||||
host: viteSharedConfig?.development?.host || 'localhost',
|
||||
// ensure we stay compatible with HTTPS enabled for GDK
|
||||
protocol: 'ws',
|
||||
},
|
||||
https: false,
|
||||
},
|
||||
});
|
||||
511
yarn.lock
511
yarn.lock
|
|
@ -328,9 +328,9 @@
|
|||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.18.4", "@babel/parser@^7.19.0":
|
||||
version "7.21.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
|
||||
integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
|
||||
version "7.21.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3"
|
||||
integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12":
|
||||
version "7.17.12"
|
||||
|
|
@ -1052,6 +1052,121 @@
|
|||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
||||
|
||||
"@esbuild/android-arm64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.15.tgz#abbe87b815d2f95ec749ffb4eba65d7d5343411f"
|
||||
integrity sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==
|
||||
|
||||
"@esbuild/android-arm@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.15.tgz#6afedd79c68d5d4d1e434e20a9ab620bb5849372"
|
||||
integrity sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==
|
||||
|
||||
"@esbuild/android-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.15.tgz#cdd886a58748b1584ad72d960c446fa958c11ab3"
|
||||
integrity sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==
|
||||
|
||||
"@esbuild/darwin-arm64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.15.tgz#648b124a6a63022adb5b0cf441e264e8f5ba4af2"
|
||||
integrity sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==
|
||||
|
||||
"@esbuild/darwin-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.15.tgz#91cd2601c1604d123454d325e6b24fb6438350cf"
|
||||
integrity sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.15.tgz#575940b0fc2f52833de4f6360445586742a8ff8b"
|
||||
integrity sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==
|
||||
|
||||
"@esbuild/freebsd-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.15.tgz#09694fc601dd8d3263a1075977ee7d3488514ef8"
|
||||
integrity sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.15.tgz#2f5d226b024964f2b5b6bce7c874a8ad31785fa2"
|
||||
integrity sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==
|
||||
|
||||
"@esbuild/linux-arm@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.15.tgz#172331fc66bbe89ba96e5e2ad583b2faa132d85c"
|
||||
integrity sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==
|
||||
|
||||
"@esbuild/linux-ia32@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.15.tgz#fa797051131ee5f46d70c65a7edd14b6230cfc2f"
|
||||
integrity sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==
|
||||
|
||||
"@esbuild/linux-loong64@0.14.54":
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028"
|
||||
integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==
|
||||
|
||||
"@esbuild/linux-loong64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.15.tgz#aeae1fa3d92b1486a91c0cb1cfd9c0ebe9168de4"
|
||||
integrity sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==
|
||||
|
||||
"@esbuild/linux-mips64el@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.15.tgz#b63cfe356c33807c4d8ee5a75452922e98502073"
|
||||
integrity sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==
|
||||
|
||||
"@esbuild/linux-ppc64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.15.tgz#7dcb394e69cb47e4dc8a5960dd58b1a273d07f5d"
|
||||
integrity sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==
|
||||
|
||||
"@esbuild/linux-riscv64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.15.tgz#fdfb9cf23b50d33112315e3194b9e16f7abf6c30"
|
||||
integrity sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==
|
||||
|
||||
"@esbuild/linux-s390x@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.15.tgz#ce608d95989a502878d7cb1167df791e45268011"
|
||||
integrity sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==
|
||||
|
||||
"@esbuild/linux-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.15.tgz#49bbba5607702709f63b41906b4f1bcc44cf2f8e"
|
||||
integrity sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==
|
||||
|
||||
"@esbuild/netbsd-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.15.tgz#08b5ccaf027c7e2174b9a19c29bebfe59dce1cfb"
|
||||
integrity sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==
|
||||
|
||||
"@esbuild/openbsd-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.15.tgz#38ec4223ebab562f0a89ffe20a40f05d500f89f0"
|
||||
integrity sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==
|
||||
|
||||
"@esbuild/sunos-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.15.tgz#dbbebf641957a54b77f39ca9b10b0b38586799ba"
|
||||
integrity sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==
|
||||
|
||||
"@esbuild/win32-arm64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.15.tgz#7f15fe5d14b9b24eb18ca211ad92e0f5df92a18b"
|
||||
integrity sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==
|
||||
|
||||
"@esbuild/win32-ia32@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.15.tgz#a6609735a4a5e8fbdeb045720bc8be46825566fa"
|
||||
integrity sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==
|
||||
|
||||
"@esbuild/win32-x64@0.18.15":
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.15.tgz#41ee66253566124cc44bce1b4c760a87d9f5bf1d"
|
||||
integrity sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==
|
||||
|
||||
"@eslint-community/eslint-utils@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518"
|
||||
|
|
@ -1709,6 +1824,13 @@
|
|||
consola "^2.15.0"
|
||||
node-fetch "^2.6.1"
|
||||
|
||||
"@originjs/vite-plugin-commonjs@^1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@originjs/vite-plugin-commonjs/-/vite-plugin-commonjs-1.0.3.tgz#2e3fb11ec78847da9422b79c103953f94d667f09"
|
||||
integrity sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==
|
||||
dependencies:
|
||||
esbuild "^0.14.14"
|
||||
|
||||
"@pkgjs/parseargs@^0.11.0":
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
|
||||
|
|
@ -1769,6 +1891,23 @@
|
|||
dependencies:
|
||||
type-fest "^2.0.0"
|
||||
|
||||
"@rollup/plugin-graphql@^2.0.3":
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/plugin-graphql/-/plugin-graphql-2.0.3.tgz#35fea077e225e2982ce8483dd6c381e8cca03aea"
|
||||
integrity sha512-IuuELo+0t29adRuLVg8izBFiUXFSFw8BmezespscynRfvfXSOV0S7g8RzQt75VzP6KHHVmNmlAgz+8qlkLur3w==
|
||||
dependencies:
|
||||
"@rollup/pluginutils" "^5.0.1"
|
||||
graphql-tag "^2.12.6"
|
||||
|
||||
"@rollup/pluginutils@^5.0.1":
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33"
|
||||
integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.0"
|
||||
estree-walker "^2.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
"@sentry/core@5.30.0":
|
||||
version "5.30.0"
|
||||
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3"
|
||||
|
|
@ -2164,6 +2303,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
|
||||
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
|
||||
|
||||
"@trysound/sax@0.2.0":
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
|
||||
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
|
||||
|
||||
"@types/aria-query@^4.2.0":
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0"
|
||||
|
|
@ -2239,6 +2383,11 @@
|
|||
dependencies:
|
||||
"@types/ms" "*"
|
||||
|
||||
"@types/estree@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
|
||||
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
|
||||
|
||||
"@types/events@*":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86"
|
||||
|
|
@ -2581,6 +2730,11 @@
|
|||
"@typescript-eslint/types" "5.38.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@vitejs/plugin-vue2@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue2/-/plugin-vue2-1.1.2.tgz#891f0acc5a6a2b4886a74cb8d6359d42f19f968a"
|
||||
integrity sha512-y6OEA+2UdJ0xrEQHodq20v9r3SpS62IOHrgN92JPLvVpNkhcissu7yvD5PXMzMESyazj0XNWGsc8UQk8+mVrjQ==
|
||||
|
||||
"@vue/apollo-components@^4.0.0-beta.4":
|
||||
version "4.0.0-beta.4"
|
||||
resolved "https://registry.yarnpkg.com/@vue/apollo-components/-/apollo-components-4.0.0-beta.4.tgz#cc2510cf22636c5b13fb42470578031631af6c51"
|
||||
|
|
@ -2631,7 +2785,7 @@
|
|||
postcss "^8.4.14"
|
||||
source-map "^0.6.1"
|
||||
|
||||
"@vue/compiler-sfc@^3.2.47":
|
||||
"@vue/compiler-sfc@^3.2.20", "@vue/compiler-sfc@^3.2.47":
|
||||
version "3.2.47"
|
||||
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz#1bdc36f6cdc1643f72e2c397eb1a398f5004ad3d"
|
||||
integrity sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==
|
||||
|
|
@ -3312,6 +3466,18 @@ atob@^2.1.2:
|
|||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
||||
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
||||
|
||||
autoprefixer@^10.4.8:
|
||||
version "10.4.14"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
|
||||
integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
|
||||
dependencies:
|
||||
browserslist "^4.21.5"
|
||||
caniuse-lite "^1.0.30001464"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
autosize@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/autosize/-/autosize-5.0.1.tgz#ed269b0fa9b7eb47627048a1bb3299e99e003a0f"
|
||||
|
|
@ -3669,15 +3835,15 @@ browserify-zlib@^0.2.0:
|
|||
dependencies:
|
||||
pako "~1.0.5"
|
||||
|
||||
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==
|
||||
browserslist@^4.20.2, browserslist@^4.20.3, browserslist@^4.21.3, browserslist@^4.21.5:
|
||||
version "4.21.5"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
|
||||
integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001370"
|
||||
electron-to-chromium "^1.4.202"
|
||||
node-releases "^2.0.6"
|
||||
update-browserslist-db "^1.0.5"
|
||||
caniuse-lite "^1.0.30001449"
|
||||
electron-to-chromium "^1.4.284"
|
||||
node-releases "^2.0.8"
|
||||
update-browserslist-db "^1.0.10"
|
||||
|
||||
bser@2.1.1:
|
||||
version "2.1.1"
|
||||
|
|
@ -3855,7 +4021,7 @@ camelcase@^6.2.0, camelcase@^6.3.0:
|
|||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001370:
|
||||
caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
|
||||
version "1.0.30001478"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001478.tgz#0ef8a1cf8b16be47a0f9fc4ecfc952232724b32a"
|
||||
integrity sha512-gMhDyXGItTHipJj2ApIvR+iVB5hd0KP3svMWWXDvZOmjzJJassGLMfxRkQCSYgGd2gtdL/ReeiyvMSFD1Ss6Mw==
|
||||
|
|
@ -4500,16 +4666,16 @@ css-loader@^2.1.1:
|
|||
postcss-value-parser "^3.3.0"
|
||||
schema-utils "^1.0.0"
|
||||
|
||||
css-select@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.2.tgz#8b52b6714ed3a80d8221ec971c543f3b12653286"
|
||||
integrity sha512-nu5ye2Hg/4ISq4XqdLY2bEatAcLIdt3OYGFc9Tm9n7VSlFBcfRv0gBNksHRgSdUDQGtN3XrZ94ztW+NfzkFSUw==
|
||||
css-select@^4.1.2, css-select@^4.1.3:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
|
||||
integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
|
||||
dependencies:
|
||||
boolbase "^1.0.0"
|
||||
css-what "^5.0.0"
|
||||
domhandler "^4.2.0"
|
||||
domutils "^2.6.0"
|
||||
nth-check "^2.0.0"
|
||||
css-what "^6.0.1"
|
||||
domhandler "^4.3.1"
|
||||
domutils "^2.8.0"
|
||||
nth-check "^2.0.1"
|
||||
|
||||
css-selector-parser@^1.3:
|
||||
version "1.3.0"
|
||||
|
|
@ -4521,6 +4687,14 @@ css-shorthand-properties@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935"
|
||||
integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A==
|
||||
|
||||
css-tree@^1.1.2, css-tree@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
|
||||
integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
|
||||
dependencies:
|
||||
mdn-data "2.0.14"
|
||||
source-map "^0.6.1"
|
||||
|
||||
css-tree@^2.0.1, css-tree@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
|
||||
|
|
@ -4543,6 +4717,11 @@ css-what@^5.0.0:
|
|||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
|
||||
integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
|
||||
|
||||
css-what@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
|
||||
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
|
||||
|
||||
cssesc@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
||||
|
|
@ -4553,6 +4732,13 @@ cssfontparser@^1.2.1:
|
|||
resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3"
|
||||
integrity sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=
|
||||
|
||||
csso@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
|
||||
integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
|
||||
dependencies:
|
||||
css-tree "^1.1.2"
|
||||
|
||||
cssom@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
|
||||
|
|
@ -5447,10 +5633,10 @@ domexception@^4.0.0:
|
|||
dependencies:
|
||||
webidl-conversions "^7.0.0"
|
||||
|
||||
domhandler@^4.0.0, domhandler@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059"
|
||||
integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==
|
||||
domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
|
||||
integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
|
||||
dependencies:
|
||||
domelementtype "^2.2.0"
|
||||
|
||||
|
|
@ -5464,10 +5650,10 @@ dompurify@2.4.5, dompurify@^2.4.5:
|
|||
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.5.tgz#0e89a27601f0bad978f9a924e7a05d5d2cccdd87"
|
||||
integrity sha512-jggCCd+8Iqp4Tsz0nIvpcb22InKEBrGz5dw3EQJMs8HPJDsKbFIO3STYtAvCfDx26Muevn1MHVI0XxjgFfmiSA==
|
||||
|
||||
domutils@^2.5.2, domutils@^2.6.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7"
|
||||
integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==
|
||||
domutils@^2.5.2, domutils@^2.6.0, domutils@^2.8.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
|
||||
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
|
||||
dependencies:
|
||||
dom-serializer "^1.0.1"
|
||||
domelementtype "^2.2.0"
|
||||
|
|
@ -5526,10 +5712,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.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==
|
||||
electron-to-chromium@^1.4.284:
|
||||
version "1.4.335"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.335.tgz#69c08baa608bbb58e290d83320190fa82c835efe"
|
||||
integrity sha512-l/eowQqTnrq3gu+WSrdfkhfNHnPgYqlKAwxz7MTOj6mom19vpEDHNXl6dxDxyTiYuhemydprKr/HCrHfgk+OfQ==
|
||||
|
||||
elkjs@^0.8.2:
|
||||
version "0.8.2"
|
||||
|
|
@ -5715,6 +5901,161 @@ es-to-primitive@^1.2.1:
|
|||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.2"
|
||||
|
||||
esbuild-android-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be"
|
||||
integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==
|
||||
|
||||
esbuild-android-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771"
|
||||
integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==
|
||||
|
||||
esbuild-darwin-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25"
|
||||
integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==
|
||||
|
||||
esbuild-darwin-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73"
|
||||
integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==
|
||||
|
||||
esbuild-freebsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d"
|
||||
integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==
|
||||
|
||||
esbuild-freebsd-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48"
|
||||
integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==
|
||||
|
||||
esbuild-linux-32@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5"
|
||||
integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==
|
||||
|
||||
esbuild-linux-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652"
|
||||
integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==
|
||||
|
||||
esbuild-linux-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b"
|
||||
integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==
|
||||
|
||||
esbuild-linux-arm@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59"
|
||||
integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==
|
||||
|
||||
esbuild-linux-mips64le@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34"
|
||||
integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==
|
||||
|
||||
esbuild-linux-ppc64le@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e"
|
||||
integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==
|
||||
|
||||
esbuild-linux-riscv64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8"
|
||||
integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==
|
||||
|
||||
esbuild-linux-s390x@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6"
|
||||
integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==
|
||||
|
||||
esbuild-netbsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81"
|
||||
integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==
|
||||
|
||||
esbuild-openbsd-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b"
|
||||
integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==
|
||||
|
||||
esbuild-sunos-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da"
|
||||
integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==
|
||||
|
||||
esbuild-windows-32@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31"
|
||||
integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==
|
||||
|
||||
esbuild-windows-64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4"
|
||||
integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==
|
||||
|
||||
esbuild-windows-arm64@0.14.54:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982"
|
||||
integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==
|
||||
|
||||
esbuild@^0.14.14:
|
||||
version "0.14.54"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2"
|
||||
integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==
|
||||
optionalDependencies:
|
||||
"@esbuild/linux-loong64" "0.14.54"
|
||||
esbuild-android-64 "0.14.54"
|
||||
esbuild-android-arm64 "0.14.54"
|
||||
esbuild-darwin-64 "0.14.54"
|
||||
esbuild-darwin-arm64 "0.14.54"
|
||||
esbuild-freebsd-64 "0.14.54"
|
||||
esbuild-freebsd-arm64 "0.14.54"
|
||||
esbuild-linux-32 "0.14.54"
|
||||
esbuild-linux-64 "0.14.54"
|
||||
esbuild-linux-arm "0.14.54"
|
||||
esbuild-linux-arm64 "0.14.54"
|
||||
esbuild-linux-mips64le "0.14.54"
|
||||
esbuild-linux-ppc64le "0.14.54"
|
||||
esbuild-linux-riscv64 "0.14.54"
|
||||
esbuild-linux-s390x "0.14.54"
|
||||
esbuild-netbsd-64 "0.14.54"
|
||||
esbuild-openbsd-64 "0.14.54"
|
||||
esbuild-sunos-64 "0.14.54"
|
||||
esbuild-windows-32 "0.14.54"
|
||||
esbuild-windows-64 "0.14.54"
|
||||
esbuild-windows-arm64 "0.14.54"
|
||||
|
||||
esbuild@^0.18.10:
|
||||
version "0.18.15"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.15.tgz#5b5c1a22e608afd5675f82ad466c4d2cfd723f85"
|
||||
integrity sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==
|
||||
optionalDependencies:
|
||||
"@esbuild/android-arm" "0.18.15"
|
||||
"@esbuild/android-arm64" "0.18.15"
|
||||
"@esbuild/android-x64" "0.18.15"
|
||||
"@esbuild/darwin-arm64" "0.18.15"
|
||||
"@esbuild/darwin-x64" "0.18.15"
|
||||
"@esbuild/freebsd-arm64" "0.18.15"
|
||||
"@esbuild/freebsd-x64" "0.18.15"
|
||||
"@esbuild/linux-arm" "0.18.15"
|
||||
"@esbuild/linux-arm64" "0.18.15"
|
||||
"@esbuild/linux-ia32" "0.18.15"
|
||||
"@esbuild/linux-loong64" "0.18.15"
|
||||
"@esbuild/linux-mips64el" "0.18.15"
|
||||
"@esbuild/linux-ppc64" "0.18.15"
|
||||
"@esbuild/linux-riscv64" "0.18.15"
|
||||
"@esbuild/linux-s390x" "0.18.15"
|
||||
"@esbuild/linux-x64" "0.18.15"
|
||||
"@esbuild/netbsd-x64" "0.18.15"
|
||||
"@esbuild/openbsd-x64" "0.18.15"
|
||||
"@esbuild/sunos-x64" "0.18.15"
|
||||
"@esbuild/win32-arm64" "0.18.15"
|
||||
"@esbuild/win32-ia32" "0.18.15"
|
||||
"@esbuild/win32-x64" "0.18.15"
|
||||
|
||||
escalade@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
||||
|
|
@ -6444,6 +6785,11 @@ forwarded@0.2.0:
|
|||
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
||||
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
||||
|
||||
fraction.js@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
|
||||
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
|
||||
|
||||
fragment-cache@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
||||
|
|
@ -6779,7 +7125,7 @@ graphql-sse@^1.0.1:
|
|||
resolved "https://registry.yarnpkg.com/graphql-sse/-/graphql-sse-1.0.4.tgz#051598b0e06c225327aac659f19fcc18bcaa0191"
|
||||
integrity sha512-oB43ifRcEdElgep9jTP9qsj5cJ7Ny/1tAFyIl1W3A0hXRRg/P71tUHzMFBrRkEsJ9IA7MTp+RKSJfh52QR6PBQ==
|
||||
|
||||
graphql-tag@^2.11.0, graphql-tag@^2.12.3:
|
||||
graphql-tag@^2.11.0, graphql-tag@^2.12.3, graphql-tag@^2.12.6:
|
||||
version "2.12.6"
|
||||
resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1"
|
||||
integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==
|
||||
|
|
@ -8451,9 +8797,9 @@ loader-runner@^4.1.0:
|
|||
integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
|
||||
|
||||
loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
|
||||
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
|
||||
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
|
||||
dependencies:
|
||||
big.js "^5.2.2"
|
||||
emojis-list "^3.0.0"
|
||||
|
|
@ -8957,6 +9303,11 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0:
|
|||
resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9"
|
||||
integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==
|
||||
|
||||
mdn-data@2.0.14:
|
||||
version "2.0.14"
|
||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
|
||||
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
|
||||
|
||||
mdn-data@2.0.30:
|
||||
version "2.0.30"
|
||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
|
||||
|
|
@ -9780,10 +10131,10 @@ node-libs-browser@^2.2.1:
|
|||
util "^0.11.0"
|
||||
vm-browserify "^1.0.1"
|
||||
|
||||
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==
|
||||
node-releases@^2.0.8:
|
||||
version "2.0.10"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
|
||||
integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
|
||||
|
||||
nodemon@^2.0.19:
|
||||
version "2.0.19"
|
||||
|
|
@ -9852,6 +10203,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
normalize-range@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
|
||||
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
|
||||
|
||||
npm-run-path@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
|
||||
|
|
@ -9859,7 +10215,7 @@ npm-run-path@^4.0.1:
|
|||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
nth-check@^2.0.0, nth-check@^2.0.1:
|
||||
nth-check@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
|
||||
integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
|
||||
|
|
@ -10422,7 +10778,7 @@ postcss-value-parser@^4.2.0:
|
|||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@8.4.28, postcss@^8.1.10, postcss@^8.2.1, postcss@^8.4.14, postcss@^8.4.25:
|
||||
postcss@8.4.28, postcss@^8.4.25:
|
||||
version "8.4.28"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5"
|
||||
integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==
|
||||
|
|
@ -10439,6 +10795,15 @@ postcss@^7.0.14, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6:
|
|||
picocolors "^0.2.1"
|
||||
source-map "^0.6.1"
|
||||
|
||||
postcss@^8.1.10, postcss@^8.2.1, postcss@^8.4.14, postcss@^8.4.27:
|
||||
version "8.4.27"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
|
||||
integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
prelude-ls@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||
|
|
@ -11229,6 +11594,13 @@ robust-predicates@^3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a"
|
||||
integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==
|
||||
|
||||
rollup@^3.27.1:
|
||||
version "3.27.2"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.27.2.tgz#59adc973504408289be89e5978e938ce852c9520"
|
||||
integrity sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
rope-sequence@^1.3.0:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.3.tgz#3f67fc106288b84b71532b4a5fd9d4881e4457f0"
|
||||
|
|
@ -11835,6 +12207,11 @@ ssri@^8.0.0:
|
|||
dependencies:
|
||||
minipass "^3.1.1"
|
||||
|
||||
stable@^0.1.8:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
|
||||
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
|
||||
|
||||
stack-utils@^2.0.3:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5"
|
||||
|
|
@ -12164,6 +12541,19 @@ svg-tags@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
|
||||
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
|
||||
|
||||
svgo@^2.7.0:
|
||||
version "2.8.0"
|
||||
resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
|
||||
integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
|
||||
dependencies:
|
||||
"@trysound/sax" "0.2.0"
|
||||
commander "^7.2.0"
|
||||
css-select "^4.1.3"
|
||||
css-tree "^1.1.3"
|
||||
csso "^4.2.0"
|
||||
picocolors "^1.0.0"
|
||||
stable "^0.1.8"
|
||||
|
||||
swagger-cli@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/swagger-cli/-/swagger-cli-4.0.4.tgz#c3f0b94277073c776b9bcc3ae7507b372f3ff414"
|
||||
|
|
@ -12821,10 +13211,10 @@ 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==
|
||||
update-browserslist-db@^1.0.10:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
|
||||
integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
|
||||
dependencies:
|
||||
escalade "^3.1.1"
|
||||
picocolors "^1.0.0"
|
||||
|
|
@ -12980,6 +13370,33 @@ visibilityjs@^1.2.4:
|
|||
resolved "https://registry.yarnpkg.com/visibilityjs/-/visibilityjs-1.2.4.tgz#bff8663da62c8c10ad4ee5ae6a1ae6fac4259d63"
|
||||
integrity sha1-v/hmPaYsjBCtTuWuahrm+sQlnWM=
|
||||
|
||||
vite-plugin-ruby@^3.2.2:
|
||||
version "3.2.2"
|
||||
resolved "https://registry.yarnpkg.com/vite-plugin-ruby/-/vite-plugin-ruby-3.2.2.tgz#a174bc435b11350cfcb1b976342ca740d0bcaed2"
|
||||
integrity sha512-cuHG1MajRWPR8YdfF6lvgsQRnKFEBRwZF//asFbRiI1psacxB5aPlHSvYZYxAu5IflrAa0MdR0HxEq+g98M3iQ==
|
||||
dependencies:
|
||||
debug "^4.3.4"
|
||||
fast-glob "^3.2.12"
|
||||
|
||||
vite-svg-loader@^3.4.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-3.6.0.tgz#71d246cba5e808c7f183a2a56a9dde6856bb0c92"
|
||||
integrity sha512-bZJffcgCREW57kNkgMhuNqeDznWXyQwJ3wKrRhHLMMzwDnP5jr3vXW3cqsmquRR7VTP5mLdKj1/zzPPooGUuPw==
|
||||
dependencies:
|
||||
"@vue/compiler-sfc" "^3.2.20"
|
||||
svgo "^2.7.0"
|
||||
|
||||
vite@^4.4.9:
|
||||
version "4.4.9"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d"
|
||||
integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==
|
||||
dependencies:
|
||||
esbuild "^0.18.10"
|
||||
postcss "^8.4.27"
|
||||
rollup "^3.27.1"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
vm-browserify@^1.0.1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
|
||||
|
|
|
|||
Loading…
Reference in New Issue