diff --git a/.gitignore b/.gitignore index 1dd9f4ef8aa2b64bf4c1cb0f21f60f485942d912..218ceaf40df87531c8199a43a9c43edac441765a 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,11 @@ tags.lock tags.temp .stylelintcache .solargraph.yml + +# Vite Ruby +/public/vite* +node_modules +# Vite uses dotenv and suggests to ignore local-only env files. See +# https://vitejs.dev/guide/env-and-mode.html#env-files +*.local + diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index 2e0d83187cf51aadf0aeb08ca7ce1fb6f8d2385c..27aa656032880fb9f83696487072fefd144c2a26 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -11,6 +11,7 @@ # https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384 BROWSERSLIST_IGNORE_OLD_DATA: "true" WEBPACK_COMPILE_LOG_PATH: "tmp/webpack-output.log" + VITE_RUBY_SKIP_ASSETS_PRECOMPILE_EXTENSION: "true" stage: prepare script: - yarn_install_script diff --git a/Gemfile b/Gemfile index 3660b31d27d23bb1e54a8e8fe35f2502d8f604b6..90ad441f5e89f9bc8eddab8f45360328fa61602e 100644 --- a/Gemfile +++ b/Gemfile @@ -15,6 +15,8 @@ gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', requir # https://gitlab.com/gitlab-org/gitlab/-/issues/375713 gem 'rails', '~> 6.1.7.2' +gem 'vite_rails' + gem 'bootsnap', '~> 1.16.0', require: false # Pin openssl to match the version bundled with our supported Rubies. diff --git a/Gemfile.checksum b/Gemfile.checksum index 19ed2a937b244f9f26928f8bcb0d4cf51c8ef16f..2d789059a3740dca0358961e06296e0c3d732447 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -116,6 +116,7 @@ {"name":"doorkeeper","version":"5.5.4","platform":"ruby","checksum":"7fe233a96f93bf0d5496e2284abf431f38ab465fd65d1972b90cbec7c45b1ea1"}, {"name":"doorkeeper-openid_connect","version":"1.8.3","platform":"ruby","checksum":"0df2e714508f1f43fdb4669e97b38b90d365a072908427416da943a1a8e00b6e"}, {"name":"dotenv","version":"2.7.6","platform":"ruby","checksum":"2451ed5e8e43776d7a787e51d6f8903b98e446146c7ad143d5678cc2c409d547"}, +{"name":"dry-cli","version":"0.7.0","platform":"ruby","checksum":"7aa4d4808cdfb39de2f5fc770e34e216ac4ee5e5e77b42757701068b42bbcdb9"}, {"name":"dry-configurable","version":"0.12.0","platform":"ruby","checksum":"87a9579a04dfbae73e401d694282800d64bbdb8631cb3e987bfb79b673df7c67"}, {"name":"dry-container","version":"0.7.2","platform":"ruby","checksum":"a071824ba3451048b23500210f96a2b9facd6e46ac687f65e49c75d18786f6da"}, {"name":"dry-core","version":"0.5.0","platform":"ruby","checksum":"3af9777320a7c930766e2fe638df970c62145100f673caf7aae25ecc3a2c4493"}, @@ -643,6 +644,8 @@ {"name":"version_gem","version":"1.1.0","platform":"ruby","checksum":"6b009518020db57f51ec7b410213fae2bf692baea9f1b51770db97fbc93d9a80"}, {"name":"version_sorter","version":"2.3.0","platform":"ruby","checksum":"2147f2a1a3804fbb8f60d268b7d7c1ec717e6dd727ffe2c165b4e05e82efe1da"}, {"name":"view_component","version":"2.74.1","platform":"ruby","checksum":"0bbd47a9c11455a45043dc01aa604db708654718a4d8755c911425482e8392c0"}, +{"name":"vite_rails","version":"3.0.10","platform":"ruby","checksum":"d0da61fad05563860480729dbcbfc68bcc354ea1cf86dd37168a86674c537b4c"}, +{"name":"vite_ruby","version":"3.2.1","platform":"ruby","checksum":"9740b18b302ea1d8c2148d347b36e1e016d3c00461cceae449b78bbda8e384d5"}, {"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"}, diff --git a/Gemfile.lock b/Gemfile.lock index deec0b5c88d635a1706bc70bf17785ab97cbf075..25bbd179bf18a0dc985653bc163b23a8c8e70a16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -380,6 +380,7 @@ GEM doorkeeper (>= 5.5, < 5.7) json-jwt (>= 1.15.0) dotenv (2.7.6) + dry-cli (1.0.0) dry-configurable (0.12.0) concurrent-ruby (~> 1.0) dry-core (~> 0.5, >= 0.5.0) @@ -1508,7 +1509,7 @@ GEM tty-screen (0.8.1) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) u2f (0.2.1) uber (0.1.0) @@ -1546,6 +1547,13 @@ GEM activesupport (>= 5.0.0, < 8.0) concurrent-ruby (~> 1.0) method_source (~> 1.0) + vite_rails (3.0.13) + railties (>= 5.1, < 8) + vite_ruby (~> 3.0, >= 3.2.2) + vite_ruby (3.2.14) + 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) @@ -1888,6 +1896,7 @@ DEPENDENCIES validates_hostname (~> 1.0.11) version_sorter (~> 2.3) view_component (~> 2.74.1) + vite_rails vmstat (~> 2.3.0) warning (~> 1.3.0) webauthn (~> 2.3) diff --git a/Procfile.dev b/Procfile.dev new file mode 100644 index 0000000000000000000000000000000000000000..1acf605c34644863929ae170f376b38b07eee5c6 --- /dev/null +++ b/Procfile.dev @@ -0,0 +1,3 @@ + +vite: bin/vite dev +web: bin/rails s diff --git a/app/assets/javascripts/entries/jira_connect_app.js b/app/assets/javascripts/entries/jira_connect_app.js new file mode 100644 index 0000000000000000000000000000000000000000..90ad39ea487b3bb1233bb8827cd646ba58994183 --- /dev/null +++ b/app/assets/javascripts/entries/jira_connect_app.js @@ -0,0 +1 @@ +import '../jira_connect/subscriptions'; diff --git a/app/assets/javascripts/entries/main.js b/app/assets/javascripts/entries/main.js new file mode 100644 index 0000000000000000000000000000000000000000..6d2d4f345ba50ffed8eb014ca2743433912e5ffd --- /dev/null +++ b/app/assets/javascripts/entries/main.js @@ -0,0 +1,14 @@ +import '../main'; + +const modules = import.meta.glob('../pages/**/index.js'); + +const paths = document + .querySelector('meta[name="controller-path"]') + .content.split('/') + .map((part, index, arr) => { + return `../pages/${[...arr.slice(0, index), part].join('/')}/index.js`; + }); + +paths.forEach((path) => { + modules[path]?.(); +}); diff --git a/app/assets/javascripts/entries/main_ee.js b/app/assets/javascripts/entries/main_ee.js new file mode 100644 index 0000000000000000000000000000000000000000..0469659944beb69b53f088c82d28d0120bc98db9 --- /dev/null +++ b/app/assets/javascripts/entries/main_ee.js @@ -0,0 +1,14 @@ +const modules = import.meta.glob('../../../../ee/app/assets/javascripts/pages/**/index.js'); + +const paths = document + .querySelector('meta[name="controller-path"]') + .content.split('/') + .map((part, index, arr) => { + return `../../../../ee/app/assets/javascripts/pages/${[...arr.slice(0, index), part].join( + '/', + )}/index.js`; + }); + +paths.forEach((path) => { + modules[path]?.(); +}); diff --git a/app/assets/javascripts/entries/main_jh.js b/app/assets/javascripts/entries/main_jh.js new file mode 100644 index 0000000000000000000000000000000000000000..99d7f31ef9254169bd2419ec42f210698e71c107 --- /dev/null +++ b/app/assets/javascripts/entries/main_jh.js @@ -0,0 +1,14 @@ +const modules = import.meta.glob('../../../../jh/app/assets/javascripts/pages/**/index.js'); + +const paths = document + .querySelector('meta[name="controller-path"]') + .content.split('/') + .map((part, index, arr) => { + return `../../../../jh/app/assets/javascripts/pages/${[...arr.slice(0, index), part].join( + '/', + )}/index.js`; + }); + +paths.forEach((path) => { + modules[path]?.(); +}); diff --git a/app/assets/javascripts/entries/performance_bar.js b/app/assets/javascripts/entries/performance_bar.js new file mode 100644 index 0000000000000000000000000000000000000000..3f6fc6272d0ae78b12743099686b9935cdcd7e65 --- /dev/null +++ b/app/assets/javascripts/entries/performance_bar.js @@ -0,0 +1 @@ +import '../performance_bar'; diff --git a/app/assets/javascripts/entries/redirect_listbox.js b/app/assets/javascripts/entries/redirect_listbox.js new file mode 100644 index 0000000000000000000000000000000000000000..150b818bb452f4bce71bbd5d0e1c3596fbc72e78 --- /dev/null +++ b/app/assets/javascripts/entries/redirect_listbox.js @@ -0,0 +1 @@ +import '../entrypoints/behaviors/redirect_listbox'; diff --git a/app/assets/javascripts/entries/sandboxed_mermaid.js b/app/assets/javascripts/entries/sandboxed_mermaid.js new file mode 100644 index 0000000000000000000000000000000000000000..d3dd144ffba6d5a1bdbeed94b837365b0fb067b1 --- /dev/null +++ b/app/assets/javascripts/entries/sandboxed_mermaid.js @@ -0,0 +1 @@ +import '../lib/mermaid'; diff --git a/app/assets/javascripts/entries/sentry.js b/app/assets/javascripts/entries/sentry.js new file mode 100644 index 0000000000000000000000000000000000000000..debafc6fab39720b856279faddaf8f5960bfe086 --- /dev/null +++ b/app/assets/javascripts/entries/sentry.js @@ -0,0 +1 @@ +import '../sentry/index'; diff --git a/app/assets/javascripts/lib/utils/webpack.js b/app/assets/javascripts/lib/utils/webpack.js index 38d2f3d75512edece72019373ed98f4f146bc995..2074ceabb76490e4e323e0811a22ab3da9cb563c 100644 --- a/app/assets/javascripts/lib/utils/webpack.js +++ b/app/assets/javascripts/lib/utils/webpack.js @@ -10,5 +10,6 @@ export function resetServiceWorkersPublicPath() { // see: https://webpack.js.org/guides/public-path/ const relativeRootPath = (gon && gon.relative_url_root) || ''; const webpackAssetPath = joinPaths(relativeRootPath, '/assets/webpack/'); + if (typeof __webpack_public_path__ === 'undefined') return; // eslint-disable-line camelcase __webpack_public_path__ = webpackAssetPath; // eslint-disable-line camelcase } diff --git a/app/assets/javascripts/notebook/cells/markdown.vue b/app/assets/javascripts/notebook/cells/markdown.vue index 2caa93c3c93563eb9fdc64d7300e00db01a49493..f374df30844584469d7d0da359288c26f095496e 100644 --- a/app/assets/javascripts/notebook/cells/markdown.vue +++ b/app/assets/javascripts/notebook/cells/markdown.vue @@ -181,7 +181,7 @@ export default { is that the katex stylesheet depends on many fonts that are in node_module subfolders - moving all these fonts would make updating katex difficult. */ -@import '~katex/dist/katex.min.css'; +@import '../../../../../node_modules/katex/dist/katex.min.css'; .markdown .katex { display: block; diff --git a/app/assets/javascripts/sentry/index.js b/app/assets/javascripts/sentry/index.js index 5539a061726b7c7e253b870aba17cbe5fbdba1dc..e8481a58a4491e93c21037406864a23d1587eb1b 100644 --- a/app/assets/javascripts/sentry/index.js +++ b/app/assets/javascripts/sentry/index.js @@ -9,8 +9,8 @@ const index = function index() { dsn: gon.sentry_dsn, environment: gon.sentry_environment, currentUserId: gon.current_user_id, - allowUrls: - process.env.NODE_ENV === 'production' + whitelistUrls: + import.meta.env.NODE_ENV === 'production' ? [gon.gitlab_url] : [gon.gitlab_url, 'webpack-internal://'], release: gon.revision, diff --git a/app/assets/javascripts/webpack.js b/app/assets/javascripts/webpack.js index 1c6e632135d5f580d6ab72f42ffde1d73c0e1a6e..ef82142289d3c86ee258079c1d22901d687e21a9 100644 --- a/app/assets/javascripts/webpack.js +++ b/app/assets/javascripts/webpack.js @@ -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 } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 40228b93e01b5fff94cf189ac7b9c15ee290d140..93e52f1e22394613e94da537ef199997bf40d2ec 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -13,10 +13,10 @@ @import 'page_specific_files'; // Component specific styles, will be moved to gitlab-ui -@import 'components/**/*'; +@import './components/index'; // Vendors specific styles -@import 'vendors/**/*'; +@import './vendors/atwho'; // Styles for JS behaviors. @import 'behaviors'; diff --git a/app/assets/stylesheets/components/index.sass b/app/assets/stylesheets/components/index.sass new file mode 100644 index 0000000000000000000000000000000000000000..24b6a25b4860f3bd8c1e8b33c4393615f938ba50 --- /dev/null +++ b/app/assets/stylesheets/components/index.sass @@ -0,0 +1,10 @@ +@import './severity/icons' +@import './upload_dropzone/upload_dropzone' +@import './avatar' +@import './collapsible_card' +@import './content_editor' +@import './deployment_instance' +@import './ref_selector' +@import './related_items_list' +@import './shortcuts_help' +@import './whats_new' diff --git a/app/assets/stylesheets/emoji_sprites.scss b/app/assets/stylesheets/emoji_sprites.scss index 5a5f39a4b77b9d7c857c5550a77d9b1d0031d704..10bf54b4ffb51b80d2b0bd5f93fab8df327bc992 100644 --- a/app/assets/stylesheets/emoji_sprites.scss +++ b/app/assets/stylesheets/emoji_sprites.scss @@ -7176,7 +7176,7 @@ } .emoji-icon { - background-image: image-url('emoji.png'); + background-image: url('emoji.png'); background-repeat: no-repeat; color: transparent; text-indent: -99em; @@ -7190,7 +7190,7 @@ only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) { - background-image: image-url('emoji@2x.png'); + background-image: url('emoji@2x.png'); background-size: 860px 840px; } /* stylelint-enable media-feature-name-no-vendor-prefix */ diff --git a/app/assets/stylesheets/framework/diffs.scss b/app/assets/stylesheets/framework/diffs.scss index f7cd5d7e183792f01cb71e11ead3c88def915e8f..5f7150166bd7d256fa983cb98e8aaa3fad89483a 100644 --- a/app/assets/stylesheets/framework/diffs.scss +++ b/app/assets/stylesheets/framework/diffs.scss @@ -261,7 +261,7 @@ width: 15px; position: absolute; top: 0; - background: image-url('swipemode_sprites.gif') 0 3px no-repeat; + background: url('swipemode_sprites.gif') 0 3px no-repeat; } .bottom-handle { @@ -270,7 +270,7 @@ width: 15px; position: absolute; bottom: 0; - background: image-url('swipemode_sprites.gif') 0 -11px no-repeat; + background: url('swipemode_sprites.gif') 0 -11px no-repeat; } } } @@ -308,7 +308,7 @@ left: 12px; height: 10px; width: 276px; - background: image-url('onion_skin_sprites.gif') -4px -20px repeat-x; + background: url('onion_skin_sprites.gif') -4px -20px repeat-x; } .dragger { @@ -318,7 +318,7 @@ top: 0; height: 14px; width: 14px; - background: image-url('onion_skin_sprites.gif') 0 -34px repeat-x; + background: url('onion_skin_sprites.gif') 0 -34px repeat-x; cursor: pointer; } @@ -329,7 +329,7 @@ right: 0; height: 10px; width: 10px; - background: image-url('onion_skin_sprites.gif') -2px 0 no-repeat; + background: url('onion_skin_sprites.gif') -2px 0 no-repeat; } .opaque { @@ -339,7 +339,7 @@ left: 0; height: 10px; width: 10px; - background: image-url('onion_skin_sprites.gif') -2px -10px no-repeat; + background: url('onion_skin_sprites.gif') -2px -10px no-repeat; } } } @@ -816,12 +816,12 @@ table.code { .frame.click-to-comment, .btn-transparent.image-diff-overlay-add-comment { position: relative; - cursor: image-url('illustrations/image_comment_light_cursor.svg') $image-comment-cursor-left-offset $image-comment-cursor-top-offset, + cursor: url('@gitlab/svgs/dist/illustrations/image_comment_light_cursor.svg') $image-comment-cursor-left-offset $image-comment-cursor-top-offset, auto; // Retina cursor - cursor: image-set(image-url('illustrations/image_comment_light_cursor.svg') 1x, - image-url('illustrations/image_comment_light_cursor@2x.svg') 2x) $image-comment-cursor-left-offset $image-comment-cursor-top-offset, + cursor: image-set(url('@gitlab/svgs/dist/illustrations/image_comment_light_cursor.svg') 1x, + url('@gitlab/svgs/dist/illustrations/image_comment_light_cursor@2x.svg') 2x) $image-comment-cursor-left-offset $image-comment-cursor-top-offset, auto; .comment-indicator { diff --git a/app/assets/stylesheets/framework/dropdowns.scss b/app/assets/stylesheets/framework/dropdowns.scss index ebb9466eb158a57c58fa58b5d5fe490890473b0e..d41c6b82af38edf44d02d081279707ba6805ef8d 100644 --- a/app/assets/stylesheets/framework/dropdowns.scss +++ b/app/assets/stylesheets/framework/dropdowns.scss @@ -545,7 +545,7 @@ left: 1rem; width: 1rem; height: 1rem; - mask-image: asset_url('icons-stacked.svg#check'); + mask-image: url('@gitlab/svgs/dist/icons-stacked.svg#check'); mask-repeat: no-repeat; mask-size: cover; mask-position: center center; diff --git a/app/assets/stylesheets/framework/files.scss b/app/assets/stylesheets/framework/files.scss index 06c5b26f39b76ca09add83ebda86fe76f355c360..705f1c8afdbb14ddf9a749dbeac3f18f1eb61451 100644 --- a/app/assets/stylesheets/framework/files.scss +++ b/app/assets/stylesheets/framework/files.scss @@ -537,7 +537,7 @@ span.idiff { @include gl-h-5; @include gl-float-left; background-color: $gray-400; - mask-image: asset_url('icons-stacked.svg#doc-versions'); + mask-image: url('@gitlab/svgs/dist/icons-stacked.svg#doc-versions'); mask-repeat: no-repeat; mask-size: cover; mask-position: center; diff --git a/app/assets/stylesheets/framework/source_editor.scss b/app/assets/stylesheets/framework/source_editor.scss index 046b8636f65b6a22eda433ba29661d7be30b9a99..24b2e2e85e10908bfb2ae3bf5b8b9fa5faf48eab 100644 --- a/app/assets/stylesheets/framework/source_editor.scss +++ b/app/assets/stylesheets/framework/source_editor.scss @@ -54,7 +54,7 @@ @include gl-mr-2; @include gl-w-4; @include gl-h-4; - mask-image: asset_url('icons-stacked.svg#link'); + mask-image: url('@gitlab/svgs/dist/icons-stacked.svg#link'); mask-repeat: no-repeat; mask-size: cover; mask-position: center; diff --git a/app/assets/stylesheets/framework/typography.scss b/app/assets/stylesheets/framework/typography.scss index 9b5897b7df917b99294a64651aeda22554458244..50ffa7c87510d029fd2f01915eb338ecb0c39e58 100644 --- a/app/assets/stylesheets/framework/typography.scss +++ b/app/assets/stylesheets/framework/typography.scss @@ -494,7 +494,7 @@ outline: none; &::after { - content: image-url('icon_anchor.svg'); + content: url('icon_anchor.svg'); visibility: hidden; } } diff --git a/app/assets/stylesheets/highlight/common.scss b/app/assets/stylesheets/highlight/common.scss index 96df8487c0efd417555251d4560abfb9ac66b825..106be43e15dd62ac1afb5edb344c7fd35e570128 100644 --- a/app/assets/stylesheets/highlight/common.scss +++ b/app/assets/stylesheets/highlight/common.scss @@ -107,7 +107,7 @@ @include gl-w-5; @include gl-h-5; background-color: rgba($color, 0.3); - mask-image: asset_url('icons-stacked.svg##{$icon}'); + mask-image: url('@gitlab/svgs/dist/icons-stacked.svg##{$icon}'); mask-repeat: no-repeat; mask-size: cover; mask-position: center; diff --git a/app/assets/stylesheets/lazy_bundles/select2_overrides.scss b/app/assets/stylesheets/lazy_bundles/select2_overrides.scss index e3cec187fabb8b40b27def5c45f427804fbe8142..c2de6e52ac9be46cd23a9c6c8344e770c33f5776 100644 --- a/app/assets/stylesheets/lazy_bundles/select2_overrides.scss +++ b/app/assets/stylesheets/lazy_bundles/select2_overrides.scss @@ -191,7 +191,7 @@ input { padding: $grid-size; - background: transparent image-url('select2.png'); + background: transparent url('select2.png'); color: var(--gl-text-color, $gl-text-color); background-clip: content-box; background-origin: content-box; @@ -208,7 +208,7 @@ &.select2-active { background-color: var(--white, $white); - background-image: image-url('select2-spinner.gif') !important; + background-image: url('select2-spinner.gif') !important; background-origin: content-box; background-repeat: no-repeat; background-position: right 6px center !important; diff --git a/app/assets/stylesheets/pages/issues.scss b/app/assets/stylesheets/pages/issues.scss index c2ac4f3248037a7fa66a219336bc31e9a6bcd4ad..1b729f85cd55b24f49b8d02f220c7910ab660e6a 100644 --- a/app/assets/stylesheets/pages/issues.scss +++ b/app/assets/stylesheets/pages/issues.scss @@ -242,7 +242,7 @@ ul.related-merge-requests > li gl-emoji { outline: none; &::after { - content: image-url('icon_anchor.svg'); + content: url('icon_anchor.svg'); visibility: hidden; } } diff --git a/app/assets/stylesheets/pages/notes.scss b/app/assets/stylesheets/pages/notes.scss index 567f24be3361d7a3fe8f9e230bb860d8ed60aca7..1b9f738c84d0452d62d200b3240db236298a893c 100644 --- a/app/assets/stylesheets/pages/notes.scss +++ b/app/assets/stylesheets/pages/notes.scss @@ -984,7 +984,7 @@ $system-note-svg-size: 1rem; .unified-diff-components-diff-note-button { &::before { background-color: $blue-500; - mask-image: asset_url('icons-stacked.svg#comment'); + mask-image: url('@gitlab/svgs/dist/icons-stacked.svg#comment'); mask-repeat: no-repeat; mask-size: cover; mask-position: center; diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 865cde1b6411ec05ea823d17433db49cda5c7e66..c597e1656159c82b1e3f611dbd05866acfa4318b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -114,6 +114,24 @@ def self.endpoint_id_for_action(action_name) 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'] diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 93b7c8c0b94649f53652941b9054be6f543518cf..3f153c75a935ab6153ec21ea6bb8cca13c4d5bf8 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -274,9 +274,9 @@ def page_filter_path(options = {}) def stylesheet_link_tag_defer(path) if startup_css_enabled? - stylesheet_link_tag(path, media: "print", crossorigin: ActionController::Base.asset_host ? 'anonymous' : nil) + universal_stylesheet_link_tag(path, media: "print", crossorigin: ActionController::Base.asset_host ? 'anonymous' : nil) else - stylesheet_link_tag(path, crossorigin: ActionController::Base.asset_host ? 'anonymous' : nil) + universal_stylesheet_link_tag(path, crossorigin: ActionController::Base.asset_host ? 'anonymous' : nil) end end @@ -401,7 +401,7 @@ def add_page_specific_style(path, defer: true) if defer stylesheet_link_tag_defer path else - stylesheet_link_tag path + universal_stylesheet_link_tag path end end end @@ -460,6 +460,15 @@ def gitlab_ui_form_with(**args, &block) form_with(**args.merge({ builder: ::Gitlab::FormBuilders::GitlabUiFormBuilder }), &block) 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 diff --git a/app/helpers/vite_helper.rb b/app/helpers/vite_helper.rb new file mode 100644 index 0000000000000000000000000000000000000000..d599462c97d011e6c08432f5c59e7ec726647110 --- /dev/null +++ b/app/helpers/vite_helper.rb @@ -0,0 +1,49 @@ +# 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 + + def universal_stylesheet_link_tag(path, *args) + if vite_stylesheets_enabled + vite_stylesheet_tag("stylesheets/#{path}.scss", *args) + else + stylesheet_link_tag(path, *args) + end + end + + def universal_path_to_stylesheet(path, *args) + if vite_stylesheets_enabled + vite_asset_url("stylesheets/#{path}.scss", *args) + else + path_to_stylesheet(path, *args) + end + end + + private + + def vite_enabled + Feature.enabled?(:vite) && !Rails.env.test? && vite_running + end + + def vite_stylesheets_enabled + Feature.enabled?(:vite_stylesheets) && vite_enabled + end + + def vite_running + ViteRuby.instance.dev_server_running? + end +end diff --git a/app/helpers/webpack_helper.rb b/app/helpers/webpack_helper.rb index ba3c232bec418ff3fd1ea748e63771c3730fecbc..928741687980a216287940fdddd3f2f960f40bc8 100644 --- a/app/helpers/webpack_helper.rb +++ b/app/helpers/webpack_helper.rb @@ -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 @@ def prefetch_link_tag(source) 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 @@ def webpack_preload_asset_tag(asset, options = {}) end def webpack_controller_bundle_tags + return if Feature.enabled?(:vite) && !Rails.env.test? + chunks = [] action = case controller.action_name diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index bb8d20b8301ad40686801dd64ab94b2b749c5485..d43eb4d4e3a2fe2133a4b8078108edc0c5db51c1 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -5,6 +5,7 @@ class ApplicationMailer < ActionMailer::Base helper ApplicationHelper helper MarkupHelper + helper ViteHelper attr_accessor :current_user diff --git a/app/mailers/devise_mailer.rb b/app/mailers/devise_mailer.rb index 7129e577cb808987a1d2f146b6b795f6a6cdd0fa..4d01549347efb2fa30fb77b7bac9d9b23147a0bc 100644 --- a/app/mailers/devise_mailer.rb +++ b/app/mailers/devise_mailer.rb @@ -8,6 +8,7 @@ class DeviseMailer < Devise::Mailer helper EmailsHelper helper ApplicationHelper + helper ViteHelper def password_change_by_admin(record, opts = {}) devise_mail(record, :password_change_by_admin, opts) diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml index dd441d0d1556b74d8640a06bbb03490479058402..7e80be598f1d1f86e2bf2e3706ab7e89df9b9ee0 100644 --- a/app/views/layouts/_head.html.haml +++ b/app/views/layouts/_head.html.haml @@ -1,5 +1,6 @@ - page_description brand_title unless page_description - site_name = _('GitLab') +- vite_enabled = Feature.enabled?(:vite) && !Rails.env.test? && ViteRuby.instance.dev_server_running? %head{ prefix: "og: http://ogp.me/ns#" } %meta{ charset: "utf-8" } @@ -9,6 +10,9 @@ %meta{ 'http-equiv' => 'X-UA-Compatible', content: 'IE=edge' } + - if vite_enabled && Rails.env.development? + = javascript_include_tag(vite_manifest.vite_client_src, type: "module", extname: false) + = render 'layouts/startup_js' - if page_canonical_link @@ -34,8 +38,8 @@ = stylesheet_link_tag_defer "application" = yield :page_specific_styles = stylesheet_link_tag_defer 'application_utilities' - = stylesheet_link_tag "disable_animations", media: "all" if Rails.env.test? || Gitlab.config.gitlab['disable_animations'] - = stylesheet_link_tag "test_environment", media: "all" if Rails.env.test? + = universal_stylesheet_link_tag "disable_animations", media: "all" if Rails.env.test? || Gitlab.config.gitlab['disable_animations'] + = universal_stylesheet_link_tag "test_environment", media: "all" if Rails.env.test? = stylesheet_link_tag_defer "fonts" @@ -44,7 +48,7 @@ - if startup_css_enabled? = render 'layouts/startup_css_activation' - = stylesheet_link_tag 'performance_bar' if performance_bar_enabled? + = universal_stylesheet_link_tag 'performance_bar' if performance_bar_enabled? = Gon::Base.render_data(nonce: content_security_policy_nonce) @@ -55,6 +59,14 @@ = 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 } + = 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_controller_bundle_tags diff --git a/app/views/layouts/_loading_hints.html.haml b/app/views/layouts/_loading_hints.html.haml index 9026bec84c3ec94250f3e99093165d9ecee3b8c6..428f872dc0100b435d3033c0f2e15124c7311c5b 100644 --- a/app/views/layouts/_loading_hints.html.haml +++ b/app/views/layouts/_loading_hints.html.haml @@ -5,12 +5,12 @@ %link{ rel: 'dns-prefetch', href: ActionController::Base.asset_host } %link{ rel: 'preconnect', href: ActionController::Base.asset_host, crossorigin: '' } - if user_application_theme == 'gl-dark' - = preload_link_tag(path_to_stylesheet('application_utilities_dark'), crossorigin: css_crossorigin) - = preload_link_tag(path_to_stylesheet('application_dark'), crossorigin: css_crossorigin) + = preload_link_tag(universal_path_to_stylesheet('application_utilities_dark'), crossorigin: css_crossorigin, as: "style") + = preload_link_tag(universal_path_to_stylesheet('application_dark'), crossorigin: css_crossorigin, as: "style") - else - = preload_link_tag(path_to_stylesheet('application_utilities'), crossorigin: css_crossorigin) - = preload_link_tag(path_to_stylesheet('application'), crossorigin: css_crossorigin) - = preload_link_tag(path_to_stylesheet("highlight/themes/#{user_color_scheme}"), crossorigin: css_crossorigin) + = preload_link_tag(universal_path_to_stylesheet('application_utilities'), crossorigin: css_crossorigin, as: "style") + = preload_link_tag(universal_path_to_stylesheet('application'), crossorigin: css_crossorigin, as: "style") + = preload_link_tag(universal_path_to_stylesheet("highlight/themes/#{user_color_scheme}"), crossorigin: css_crossorigin, as: "style") - if Gitlab::Tracking.enabled? && Gitlab::Tracking.collector_hostname %link{ rel: 'preconnect', href: "https://#{Gitlab::Tracking.collector_hostname}", crossorigin: '' } -# Do not use preload_link_tag for fonts, to work around Firefox double-fetch bug. diff --git a/app/views/layouts/_mailer.html.haml b/app/views/layouts/_mailer.html.haml index 95ebe09a2e62a183cd0422857ea93afde61fde03..258034046eb040288e00c55295b7b8a65ab98bb6 100644 --- a/app/views/layouts/_mailer.html.haml +++ b/app/views/layouts/_mailer.html.haml @@ -12,7 +12,7 @@ %style{ type: 'text/css', 'data-premailer': 'ignore' } = asset_to_string('mailer_client_specific.css').html_safe - = stylesheet_link_tag 'mailer.css' + = universal_stylesheet_link_tag 'mailer' %body = yield :preview_text %table#body{ border: "0", cellpadding: "0", cellspacing: "0" } diff --git a/app/views/layouts/component_preview.html.haml b/app/views/layouts/component_preview.html.haml index a1b1304f9940294755de826736d58db986b0a2d2..bb157a2624476c3aacb8ecb50ee9670f8cfe6335 100644 --- a/app/views/layouts/component_preview.html.haml +++ b/app/views/layouts/component_preview.html.haml @@ -1,10 +1,10 @@ %head - if params[:lookbook][:display][:theme] == 'light' - = stylesheet_link_tag "application" - = stylesheet_link_tag "application_utilities" + = universal_stylesheet_link_tag "application" + = universal_stylesheet_link_tag "application_utilities" - else - = stylesheet_link_tag "application_dark" - = stylesheet_link_tag "application_utilities_dark" + = universal_stylesheet_link_tag "application_dark" + = universal_stylesheet_link_tag "application_utilities_dark" %body .container.gl-mt-6 - if params[:lookbook][:display][:bg_dark] diff --git a/app/views/layouts/notify.html.haml b/app/views/layouts/notify.html.haml index c557dc365341df3050c377271cae2e189f13cd4c..11068482472734bb39f4978948a35869fa9c6bcd 100644 --- a/app/views/layouts/notify.html.haml +++ b/app/views/layouts/notify.html.haml @@ -4,13 +4,13 @@ %title GitLab - if Feature.enabled?(:enhanced_notify_css) - = stylesheet_link_tag 'notify_enhanced' + = universal_stylesheet_link_tag 'notify_enhanced' %style{ type: 'text/css', 'data-premailer': 'ignore' } -# The MUA automatically turns some text into links. -# Match the color of explicit links ($blue-600 from typography.scss). a { color: #1068bf; } - else - = stylesheet_link_tag 'notify' + = universal_stylesheet_link_tag 'notify' = yield :head %body .content diff --git a/app/views/layouts/service_desk.html.haml b/app/views/layouts/service_desk.html.haml index 7ac108e7f31e81fbef11e3a795fca4dc709cdf20..e09a03ad6a0ba1bd14fc69bfb56319497e31a2b5 100644 --- a/app/views/layouts/service_desk.html.haml +++ b/app/views/layouts/service_desk.html.haml @@ -6,13 +6,13 @@ GitLab -# haml-lint:enable NoPlainNodes - if Feature.enabled?(:enhanced_notify_css) - = stylesheet_link_tag 'notify_enhanced' + = universal_stylesheet_link_tag 'notify_enhanced' %style{ type: 'text/css', 'data-premailer': 'ignore' } -# The MUA automatically turns some text into links. -# Match the color of explicit links ($blue-600 from typography.scss). a { color: #1068bf; } - else - = stylesheet_link_tag 'notify' + = universal_stylesheet_link_tag 'notify' = yield :head %body = html_header_message diff --git a/app/views/notify/_note_email.html.haml b/app/views/notify/_note_email.html.haml index 2f0e62981eced4ad39b4b3110d6df65c019ca58a..54d04908e0805cfebaea9db72e5f731a23508c67 100644 --- a/app/views/notify/_note_email.html.haml +++ b/app/views/notify/_note_email.html.haml @@ -26,7 +26,7 @@ - if discussion&.diff_discussion? && discussion.on_text? - if include_stylesheet_link = content_for :head do - = stylesheet_link_tag 'mailers/highlighted_diff_email' + = universal_stylesheet_link_tag 'mailers/highlighted_diff_email' %table.code.gl-mb-5 = render partial: "projects/diffs/email_line", diff --git a/app/views/notify/new_review_email.html.haml b/app/views/notify/new_review_email.html.haml index afc1bd682156baec211696b2dab4eeec6cf2fb0e..09ed1633b0ed648c04366cb83087db00ad273e5b 100644 --- a/app/views/notify/new_review_email.html.haml +++ b/app/views/notify/new_review_email.html.haml @@ -1,6 +1,6 @@ - if @include_diff_discussion_stylesheet = content_for :head do - = stylesheet_link_tag 'mailers/highlighted_diff_email' + = universal_stylesheet_link_tag 'mailers/highlighted_diff_email' %table{ border: "0", cellpadding: "0", cellspacing: "0", style: "width:100%;margin:0 auto;border-collapse:separate;border-spacing:0;" } %tbody diff --git a/app/views/notify/repository_push_email.html.haml b/app/views/notify/repository_push_email.html.haml index d493f9d5d9839aeaecac8e76f4d4185985fab65e..8901af3de3c59cff0f5dd2e9da96f065aaf39186 100644 --- a/app/views/notify/repository_push_email.html.haml +++ b/app/views/notify/repository_push_email.html.haml @@ -1,5 +1,5 @@ = content_for :head do - = stylesheet_link_tag 'mailers/highlighted_diff_email' + = universal_stylesheet_link_tag 'mailers/highlighted_diff_email' %h3 = s_('Notify|%{author_name} %{action_name} %{ref_type} %{ref_name} at %{project_link}').html_safe % {author_name: @message.author_name, action_name: @message.action_name, ref_type: @message.ref_type, ref_name: @message.ref_name, project_link: link_to(@message.project_name_with_namespace, strip_tags(project_url(@message.project)))} diff --git a/app/views/profiles/preferences/show.html.haml b/app/views/profiles/preferences/show.html.haml index b10d05efc4f09e8c6437ebe876fb104b934ac9ee..3c567d25bd121e7836edc773ba2057e35df4b480 100644 --- a/app/views/profiles/preferences/show.html.haml +++ b/app/views/profiles/preferences/show.html.haml @@ -8,7 +8,7 @@ - data_attributes = { themes: @themes, integration_views: integration_views.to_json, user_fields: user_fields, body_classes: Gitlab::Themes.body_classes, profile_preferences_path: profile_preferences_path } - Gitlab::Themes.each do |theme| - = stylesheet_link_tag "themes/#{theme.css_filename}" if theme.css_filename + = universal_stylesheet_link_tag "themes/#{theme.css_filename}" if theme.css_filename = gitlab_ui_form_for @user, url: profile_preferences_path, remote: true, method: :put, html: { id: "profile-preferences-form" } do |f| .row.gl-mt-3.js-preferences-form.js-search-settings-section diff --git a/app/views/projects/environments/terminal.html.haml b/app/views/projects/environments/terminal.html.haml index 7c837d4ded0685527063d00b7cae9a87df0a5078..7f576ed669abf3e88d99db5bfb2a8f6852b29218 100644 --- a/app/views/projects/environments/terminal.html.haml +++ b/app/views/projects/environments/terminal.html.haml @@ -1,7 +1,7 @@ - page_title _("Terminal for environment"), @environment.name - add_page_specific_style 'page_bundles/terminal' - content_for :page_specific_javascripts do - = stylesheet_link_tag "xterm.css" + = universal_stylesheet_link_tag "xterm.css" .top-area .row diff --git a/app/views/projects/jobs/terminal.html.haml b/app/views/projects/jobs/terminal.html.haml index 95acbcae6d91037ba31506ce8c2232a3f8f33a9d..3ec43598b254767eeb4f97c40b21bd3b253e452e 100644 --- a/app/views/projects/jobs/terminal.html.haml +++ b/app/views/projects/jobs/terminal.html.haml @@ -4,7 +4,7 @@ - page_title _('Terminal'), "#{@build.name} (##{@build.id})", _('Jobs') - add_page_specific_style 'page_bundles/terminal' - content_for :page_specific_javascripts do - = stylesheet_link_tag "xterm.css" + = universal_stylesheet_link_tag "xterm.css" .terminal-container diff --git a/bin/vite b/bin/vite new file mode 100755 index 0000000000000000000000000000000000000000..7527d097eb6e5273c7f81cf13b64017f0ae06067 --- /dev/null +++ b/bin/vite @@ -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") diff --git a/config/feature_flags/development/vite.yml b/config/feature_flags/development/vite.yml new file mode 100644 index 0000000000000000000000000000000000000000..ab0a20e7509bc42e7bb1ad5aa87de96c302b0137 --- /dev/null +++ b/config/feature_flags/development/vite.yml @@ -0,0 +1,8 @@ +--- +name: vite +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94685 +rollout_issue_url: +milestone: '15.4' +type: development +group: group::foundations +default_enabled: false diff --git a/config/feature_flags/development/vite_stylesheets.yml b/config/feature_flags/development/vite_stylesheets.yml new file mode 100644 index 0000000000000000000000000000000000000000..bef15ed00c4f795b3ad850a27eb3b6d384ea0ef3 --- /dev/null +++ b/config/feature_flags/development/vite_stylesheets.yml @@ -0,0 +1,8 @@ +--- +name: vite_stylesheets +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94685 +rollout_issue_url: +milestone: '15.4' +type: development +group: group::foundations +default_enabled: false diff --git a/config/vite.json b/config/vite.json new file mode 100644 index 0000000000000000000000000000000000000000..2bcab051e874a1301daf984fb6ba9b7d68b45f6e --- /dev/null +++ b/config/vite.json @@ -0,0 +1,35 @@ +{ + "all": { + "sourceCodeDir": "app/assets", + "entrypointsDir": "javascripts/entries", + "additionalEntrypoints": [ + "~/images/**/*", + "~/stylesheets/application.scss", + "~/stylesheets/application_dark.scss", + "~/stylesheets/application_utilities.scss", + "~/stylesheets/application_utilities_dark.scss", + "~/stylesheets/mailer.scss", + "~/stylesheets/mailers/highlighted_diff_email.scss", + "~/stylesheets/notify.scss", + "~/stylesheets/notify_enhanced.scss", + "~/stylesheets/performance_bar.scss", + "~/stylesheets/print.scss", + "~/stylesheets/disable_animations.scss", + "~/stylesheets/test_environment.scss", + "~/stylesheets/page_bundles/**/*.scss" + ], + "watchAdditionalPaths": [], + "devServerConnectTimeout": 3 + }, + "development": { + "autoBuild": true, + "publicOutputDir": "vite-dev", + "host": "localhost", + "port": 3038 + }, + "test": { + "autoBuild": true, + "publicOutputDir": "vite-test", + "port": 3037 + } +} diff --git a/config/webpack.config.js b/config/webpack.config.js index fd58e22bb996c535eeda7363ca6ca651c5eeb7d6..e01f34db17ac2fe4ab255559137b777707bfc0d4 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -5,8 +5,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'); @@ -25,14 +23,23 @@ const WEBPACK_VERSION = require('webpack/package.json').version; const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin'); const esbuildConfiguration = require('./esbuild.config'); +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') @@ -74,19 +81,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; diff --git a/config/webpack.constants.js b/config/webpack.constants.js new file mode 100644 index 0000000000000000000000000000000000000000..17816b66db90239c9557dcb35b52364632a1667e --- /dev/null +++ b/config/webpack.constants.js @@ -0,0 +1,29 @@ +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_EE; +module.exports.IS_JH = IS_JH; +module.exports.ROOT_PATH = ROOT_PATH; +module.exports.WEBPACK_OUTPUT_PATH = WEBPACK_OUTPUT_PATH; +module.exports.WEBPACK_PUBLIC_PATH = WEBPACK_PUBLIC_PATH; +module.exports.SOURCEGRAPH_OUTPUT_PATH = SOURCEGRAPH_OUTPUT_PATH; +module.exports.SOURCEGRAPH_PUBLIC_PATH = SOURCEGRAPH_PUBLIC_PATH; +module.exports.GITLAB_WEB_IDE_OUTPUT_PATH = GITLAB_WEB_IDE_OUTPUT_PATH; +module.exports.GITLAB_WEB_IDE_PUBLIC_PATH = GITLAB_WEB_IDE_PUBLIC_PATH; diff --git a/ee/app/assets/stylesheets/_ee/application_ee.scss b/ee/app/assets/stylesheets/_ee/application_ee.scss index 13b42167d122b136725d37697ab4e87233000f9d..41220784e796158486f24868cd0897a43ff03d08 100644 --- a/ee/app/assets/stylesheets/_ee/application_ee.scss +++ b/ee/app/assets/stylesheets/_ee/application_ee.scss @@ -1,6 +1,6 @@ /* Entry point for EE specific CSS */ -@import '../components/**/*'; -@import '../framework/**/*'; -@import '../pages/**/*'; +@import '../components/index'; +@import '../framework/index'; +@import '../pages/index'; diff --git a/ee/app/assets/stylesheets/components/index.scss b/ee/app/assets/stylesheets/components/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..f6afc55eb0b0a4d16ac337ecbd5cd289a219a6a3 --- /dev/null +++ b/ee/app/assets/stylesheets/components/index.scss @@ -0,0 +1,6 @@ +@import 'audit_logs/logs_table'; +@import 'batch_comments/draft_note'; +@import 'compliance_dashboard/dashboard'; +@import 'generic_vulnerability_report'; +@import 'vulnerability_list'; +@import 'related_items_tree'; diff --git a/ee/app/assets/stylesheets/framework/index.scss b/ee/app/assets/stylesheets/framework/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..3449a658d8c8f395ea2cf0e51e6813517260bb9f --- /dev/null +++ b/ee/app/assets/stylesheets/framework/index.scss @@ -0,0 +1,2 @@ +@import 'badges'; +@import 'diffs'; diff --git a/ee/app/assets/stylesheets/pages/index.scss b/ee/app/assets/stylesheets/pages/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..643da47590721500f52a4732556833f26c910155 --- /dev/null +++ b/ee/app/assets/stylesheets/pages/index.scss @@ -0,0 +1,9 @@ +@import 'security/vulnerability_report'; +@import 'security/compliance_dashboard'; +@import 'ee_start_trial'; +@import 'groups'; +@import 'issuable'; +@import 'issuable_form'; +@import 'issues'; +@import 'projects'; +@import 'subscriptions'; diff --git a/package.json b/package.json index bb57680aa233fbdbf8fb5c41fbe66e8eae64bd2d..369085ff2dafbb7f4352c80819224e17e3e9bc9b 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,8 @@ "swagger:validate": "swagger-cli validate", "webpack": "NODE_OPTIONS=\"--max-old-space-size=3584\" webpack --config config/webpack.config.js", "webpack-vendor": "NODE_OPTIONS=\"--max-old-space-size=3584\" webpack --config config/webpack.vendor.config.js", - "webpack-prod": "NODE_OPTIONS=\"--max-old-space-size=3584\" NODE_ENV=production webpack --config config/webpack.config.js" + "webpack-prod": "NODE_OPTIONS=\"--max-old-space-size=3584\" NODE_ENV=production webpack --config config/webpack.config.js", + "vite-prod": "NODE_OPTIONS=\"--max-old-space-size=8192\" NODE_ENV=production node_modules/.bin/vite build" }, "dependencies": { "@_ueberdosis/prosemirror-tables": "^1.1.3", @@ -62,43 +63,48 @@ "@gitlab/web-ide": "0.0.1-dev-20230120231236", "@rails/actioncable": "6.1.4-7", "@rails/ujs": "6.1.4-7", + "@rollup/plugin-graphql": "^1.1.0", + "@sentry/browser": "5.30.0", "@sourcegraph/code-host-integration": "0.0.84", - "@tiptap/core": "^2.0.0-beta.202", - "@tiptap/extension-blockquote": "^2.0.0-beta.202", - "@tiptap/extension-bold": "^2.0.0-beta.202", + "@tiptap/core": "^2.0.0-beta.210", + "@tiptap/extension-blockquote": "^2.0.0-beta.210", + "@tiptap/extension-bold": "^2.0.0-beta.210", "@tiptap/extension-bubble-menu": "2.0.0-beta.200", - "@tiptap/extension-bullet-list": "^2.0.0-beta.202", - "@tiptap/extension-code": "^2.0.0-beta.202", - "@tiptap/extension-code-block": "^2.0.0-beta.202", + "@tiptap/extension-bullet-list": "^2.0.0-beta.210", + "@tiptap/extension-code": "^2.0.0-beta.210", + "@tiptap/extension-code-block": "^2.0.0-beta.210", "@tiptap/extension-code-block-lowlight": "2.0.0-beta.202", - "@tiptap/extension-document": "^2.0.0-beta.202", - "@tiptap/extension-dropcursor": "^2.0.0-beta.202", - "@tiptap/extension-gapcursor": "^2.0.0-beta.202", - "@tiptap/extension-hard-break": "^2.0.0-beta.202", - "@tiptap/extension-heading": "^2.0.0-beta.202", + "@tiptap/extension-document": "^2.0.0-beta.210", + "@tiptap/extension-dropcursor": "^2.0.0-beta.210", + "@tiptap/extension-gapcursor": "^2.0.0-beta.210", + "@tiptap/extension-hard-break": "^2.0.0-beta.210", + "@tiptap/extension-heading": "^2.0.0-beta.210", "@tiptap/extension-highlight": "^2.0.0-beta.209", - "@tiptap/extension-history": "^2.0.0-beta.202", - "@tiptap/extension-horizontal-rule": "^2.0.0-beta.202", - "@tiptap/extension-image": "^2.0.0-beta.202", - "@tiptap/extension-italic": "^2.0.0-beta.202", - "@tiptap/extension-link": "^2.0.0-beta.202", - "@tiptap/extension-list-item": "^2.0.0-beta.202", - "@tiptap/extension-ordered-list": "^2.0.0-beta.202", - "@tiptap/extension-paragraph": "^2.0.0-beta.202", - "@tiptap/extension-strike": "^2.0.0-beta.202", - "@tiptap/extension-subscript": "^2.0.0-beta.202", - "@tiptap/extension-superscript": "^2.0.0-beta.202", - "@tiptap/extension-table": "^2.0.0-beta.202", - "@tiptap/extension-table-cell": "^2.0.0-beta.202", - "@tiptap/extension-table-header": "^2.0.0-beta.202", - "@tiptap/extension-table-row": "^2.0.0-beta.202", - "@tiptap/extension-task-item": "^2.0.0-beta.202", - "@tiptap/extension-task-list": "^2.0.0-beta.202", - "@tiptap/extension-text": "^2.0.0-beta.202", - "@tiptap/suggestion": "^2.0.0-beta.202", + "@tiptap/extension-history": "^2.0.0-beta.210", + "@tiptap/extension-horizontal-rule": "^2.0.0-beta.210", + "@tiptap/extension-image": "^2.0.0-beta.210", + "@tiptap/extension-italic": "^2.0.0-beta.210", + "@tiptap/extension-link": "^2.0.0-beta.210", + "@tiptap/extension-list-item": "^2.0.0-beta.210", + "@tiptap/extension-ordered-list": "^2.0.0-beta.210", + "@tiptap/extension-paragraph": "^2.0.0-beta.210", + "@tiptap/extension-strike": "^2.0.0-beta.210", + "@tiptap/extension-subscript": "^2.0.0-beta.210", + "@tiptap/extension-superscript": "^2.0.0-beta.210", + "@tiptap/extension-table": "^2.0.0-beta.210", + "@tiptap/extension-table-cell": "^2.0.0-beta.210", + "@tiptap/extension-table-header": "^2.0.0-beta.210", + "@tiptap/extension-table-row": "^2.0.0-beta.210", + "@tiptap/extension-task-item": "^2.0.0-beta.210", + "@tiptap/extension-task-list": "^2.0.0-beta.210", + "@tiptap/extension-text": "^2.0.0-beta.210", + "@tiptap/pm": "^2.0.0-beta.212", + "@tiptap/suggestion": "^2.0.0-beta.210", "@tiptap/vue-2": "2.0.0-beta.200", + "@vitejs/plugin-vue2": "^1.1.2", "apollo-upload-client": "15.0.0", "apollo3-cache-persist": "^0.14.1", + "autoprefixer": "^10.4.8", "autosize": "^5.0.1", "axios": "^0.24.0", "babel-loader": "^8.2.5", @@ -173,6 +179,7 @@ "remark-gfm": "^3.0.1", "remark-parse": "^10.0.1", "remark-rehype": "^10.1.0", + "rollup-plugin-node-polyfills": "^0.2.1", "scrollparent": "^2.0.1", "select2": "3.5.2-browserify", "sentrybrowser5": "npm:@sentry/browser@5.30.0", @@ -191,13 +198,16 @@ "url-loader": "^4.1.1", "uuid": "8.1.0", "visibilityjs": "^1.2.4", - "vue": "2.6.14", + "vite": "^4.0.0", + "vite-plugin-ruby": "^3.1.2", + "vite-svg-loader": "^3.4.0", + "vue": "^2.7.10", "vue-apollo": "^3.0.7", - "vue-loader": "15.9.6", + "vue-loader": "^15.10", "vue-observe-visibility": "^1.0.0", "vue-resize": "^1.0.1", "vue-router": "3.4.9", - "vue-template-compiler": "2.6.14", + "vue-template-compiler": "^2.7.10", "vue-virtual-scroll-list": "^1.4.7", "vuedraggable": "^2.23.0", "vuex": "^3.6.2", @@ -206,7 +216,7 @@ "webpack-bundle-analyzer": "^4.6.1", "webpack-cli": "^4.10.0", "webpack-stats-plugin": "^0.3.1", - "worker-loader": "^2.0.0", + "worker-loader": "3.0.8", "xterm": "3.14.5", "yaml": "^2.0.0-10" }, @@ -214,6 +224,7 @@ "@gitlab/eslint-plugin": "18.1.0", "@gitlab/stylelint-config": "4.1.0", "@graphql-eslint/eslint-plugin": "3.12.0", + "@originjs/vite-plugin-commonjs": "^1.0.3", "@testing-library/dom": "^7.16.2", "@types/jest": "^28.1.3", "@vue/test-utils": "1.3.0", @@ -269,7 +280,9 @@ }, "resolutions": { "chokidar": "^3.5.3", - "@types/node": "14.17.5" + "@types/node": "14.17.5", + "terser-webpack-plugin/terser": "^4.1.2", + "vite/terser": "^5.4.0" }, "engines": { "node": ">=12.22.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000000000000000000000000000000000000..a47ef4f95284d3103dd43c01eb27677a3ef833fd --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {}, + }, +}; diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index bb1a4d57cc0f4ced2f5b6ce0cc8f42c36b1182d0..96aba3856bdc7c8d43d1ca4ef0c9d2b4653ecc68 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -706,4 +706,62 @@ def stub_controller_method(method_name, value) expect(helper.stylesheet_link_tag_defer('test')).to eq( '') end end + + describe '#use_new_fonts?' do + subject { helper.use_new_fonts? } + + it { is_expected.to eq true } + + context 'when the feature flag is disabled' do + before do + stub_feature_flags(new_fonts: false) + end + + it { is_expected.to eq false } + + context 'with special request param' do + let(:request) { instance_double(ActionController::TestRequest, params: { new_fonts: true }) } + + before do + allow(helper).to receive(:request).and_return(request) + end + + it { is_expected.to eq true } + 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 diff --git a/spec/helpers/vite_helper_spec.rb b/spec/helpers/vite_helper_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..535e11917b09892890b71b41a4e5c4f0c41bfa94 --- /dev/null +++ b/spec/helpers/vite_helper_spec.rb @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe ViteHelper do + let(:source) { 'foo.js' } + let(:vite_source) { 'vite/foo.js' } + let(:vite_tag) { '' } + let(:webpack_source) { 'webpack/foo.js' } + let(:webpack_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 + + describe '#universal_stylesheet_link_tag' do + it 'returns vite tag' do + expect(helper.universal_stylesheet_link_tag(source)).to eq(vite_tag) + end + end + + describe '#universal_path_to_stylesheet' do + it 'returns vite asset path' do + expect(helper.universal_path_to_stylesheet(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 + + describe '#universal_stylesheet_link_tag' do + it 'returns webpack tag' do + expect(helper.universal_stylesheet_link_tag(source)).to eq(webpack_tag) + end + end + + describe '#universal_path_to_stylesheet' do + it 'returns ActionView asset path' do + expect(helper.universal_path_to_stylesheet(source)).to eq(webpack_source) + end + end + end +end diff --git a/spec/helpers/webpack_helper_spec.rb b/spec/helpers/webpack_helper_spec.rb index f9e2d265153b1b2eccb33769248679f3ebde1faa..23585c4723998a6f4403ebaf42a2aa1276d32de7 100644 --- a/spec/helpers/webpack_helper_spec.rb +++ b/spec/helpers/webpack_helper_spec.rb @@ -34,4 +34,22 @@ expect(output).to eq("") 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 diff --git a/spec/requests/content_security_policy_spec.rb b/spec/requests/content_security_policy_spec.rb index 3f0665f1ce572dfdfc67084edb5d1b14db9325d9..dcd55b1eeee89eaf2d158d8f0f199281a82751fc 100644 --- a/spec/requests/content_security_policy_spec.rb +++ b/spec/requests/content_security_policy_spec.rb @@ -7,6 +7,7 @@ # 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 @@ 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 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2d3afb489df08ab46749e1e0aefcd297dc8bb880..98f73c7375293ffcdc138ac47d37095a43b81efb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -312,6 +312,8 @@ # dashboard page to Vue. https://gitlab.com/gitlab-org/gitlab/-/issues/379025 stub_feature_flags(vue_issues_dashboard: false) + stub_feature_flags(vite: false) + allow(Gitlab::GitalyClient).to receive(:can_use_disk?).and_return(enable_rugged) else unstub_all_feature_flags diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000000000000000000000000000000000000..02d8e2ba63cbc79cfcfa2643fee7e6028bf9cfd7 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,131 @@ +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'; +// eslint-disable-next-line import/no-unresolved +import RubyPlugin from 'vite-plugin-ruby'; +import { viteCommonjs } from '@originjs/vite-plugin-commonjs'; +import config 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(config.resolve.alias).map(([find, replacement]) => ({ + find, + replacement, +})); + +const assetsPath = path.resolve(__dirname, 'app/assets'); +const javascriptsPath = path.resolve(assetsPath, 'javascripts'); +const stylesheetsPath = path.resolve(assetsPath, 'stylesheets'); +const eePath = IS_EE + ? path.resolve(__dirname, 'ee/app/assets/stylesheets/_ee') + : path.join(assetsPath, 'stylesheets/_ee'); +const jhPath = IS_JH + ? path.resolve(__dirname, 'jh/app/assets/stylesheets/_jh') + : path.resolve(assetsPath, 'stylesheets/_jh'); +const gitlabUI = path.resolve(__dirname, 'node_modules/@gitlab/ui/src/scss'); +const threeJsModule = path.resolve(__dirname, 'node_modules/three/build/three.module.js'); + +const emptyComponent = path.resolve(javascriptsPath, 'vue_shared/components/empty_component.js'); + +const [rubyPlugin, ...rest] = RubyPlugin(); + +const fixedRubyPlugin = [ + { + ...rubyPlugin, + config: (...args) => { + // @ts-ignore + const originalConfig = rubyPlugin.config(...args); + return { + ...originalConfig, + resolve: undefined, + }; + }, + }, + ...rest, +]; + +const sassGlobals = [ + '@gitlab/ui/src/scss/variables.scss', + '@gitlab/ui/src/scss/bootstrap.scss', + '@gitlab/ui/src/scss/utility-mixins/index.scss', + 'framework/variables.scss', + 'bootstrap_migration.scss', +]; + +const additionalData = sassGlobals.map((sassPath) => `@import "${sassPath}";`).join(''); + +export default defineConfig({ + resolve: { + alias: [ + ...aliasArr, + { + find: /^ee_component\/(.*)\.vue/, + replacement: emptyComponent, + }, + { + find: /^jh_component\/(.*)\.vue/, + replacement: emptyComponent, + }, + { + find: '~/', + replacement: javascriptsPath, + }, + { + find: 'path', + replacement: 'rollup-plugin-node-polyfills/polyfills/path', + }, + { + find: 'three/build/three.module', + replacement: threeJsModule, + }, + ], + }, + plugins: [ + fixedRubyPlugin, + vue(), + graphql(), + svgLoader({ + defaultImport: 'raw', + }), + viteCommonjs({ + include: [path.resolve(javascriptsPath, 'locale/ensure_single_line.cjs')], + }), + ], + css: { + preprocessorOptions: { + scss: { + additionalData, + includePaths: [stylesheetsPath, eePath, jhPath, gitlabUI], + }, + }, + }, + define: { + IS_EE: IS_EE + ? 'typeof window !== "undefined" && window.gon && window.gon.ee' + : JSON.stringify(false), + IS_JH: IS_JH + ? 'typeof window !== "undefined" && 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), + }, + build: { + target: 'es2015', + }, + server: { + hmr: { + host: viteSharedConfig?.development?.host || 'localhost', + // ensure we stay compatible with HTTPS enabled for GDK + protocol: 'ws', + }, + https: false, + }, +}); diff --git a/yarn.lock b/yarn.lock index f97643431a5c09f05fea2f006c8970a533045df0..4b25bf1044099e94635e47ddbc7da1a98c895ae1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@_ueberdosis/prosemirror-tables@1.1.3", "@_ueberdosis/prosemirror-tables@^1.1.3": +"@_ueberdosis/prosemirror-tables@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@_ueberdosis/prosemirror-tables/-/prosemirror-tables-1.1.3.tgz#56fdbc8b1d6ec43e7b7beb21e213c131eec451cd" integrity sha512-su3pbFi1DT89g6Cuh72TE0MWWKHmWgHcQJ3ODRkm6XfIppWaGpU49t02ur3sgJc7hUhfQXjB93aSkDgOmIii2w== @@ -349,10 +349,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.18.10", "@babel/parser@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.0.tgz#497fcafb1d5b61376959c1c338745ef0577aa02c" - integrity sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.8", "@babel/parser@^7.18.4": + version "7.18.11" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" + integrity sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ== + +"@babel/parser@^7.18.10", "@babel/parser@^7.19.0": + version "7.20.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.15.tgz#eec9f36d8eaf0948bb88c87a46784b5ee9fd0c89" + integrity sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12": version "7.17.12" @@ -1165,6 +1170,11 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.4.tgz#3fc352bb54e0959fda273cd2253b1c72ca41b8c2" integrity sha512-3lqFi4VFo/Vwvn77FZXeLd0ctolIJH/uXkH3yNgEk89Eh6D3XXAC9/iTPEzeEpsNE5IqGIsFa5Z0iPeOh25IyA== +"@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.16.17": version "0.16.17" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz#d5ad459d41ed42bbd4d005256b31882ec52227d8" @@ -1788,7 +1798,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.2": +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.2" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== @@ -1807,6 +1817,14 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.11" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" @@ -1838,6 +1856,11 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz#0300943770e04231041a51bd39f0439b5c7ab4f0" integrity sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg== +"@linaria/core@3.0.0-beta.13": + version "3.0.0-beta.13" + resolved "https://registry.yarnpkg.com/@linaria/core/-/core-3.0.0-beta.13.tgz#049c5be5faa67e341e413a0f6b641d5d78d91056" + integrity sha512-3zEi5plBCOsEzUneRVuQb+2SAx3qaC1dj0FfFAI6zIJQoDWu0dlSwKijMRack7oO9tUWrchfj3OkKQAd1LBdVg== + "@miragejs/pretender-node-polyfill@^0.1.0": version "0.1.2" resolved "https://registry.yarnpkg.com/@miragejs/pretender-node-polyfill/-/pretender-node-polyfill-0.1.2.tgz#d26b6b7483fb70cd62189d05c95d2f67153e43f2" @@ -1877,20 +1900,32 @@ mkdirp "^1.0.4" "@nuxt/opencollective@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02" - integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.3.tgz#80ff0eb8f6fca1d0ed5a089b9688f41bff2dd8ab" + integrity sha512-6IKCd+gP0HliixqZT/p8nW3tucD6Sv/u/eR2A9X4rxT/6hXlMzA4GZQzq4d2qnBAwSwGpmKyzkyTjNjrhaA25A== dependencies: chalk "^4.1.0" consola "^2.15.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" + +"@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" "@polka/url@^1.0.0-next.9": version "1.0.0-next.12" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== -"@popperjs/core@^2.11.2", "@popperjs/core@^2.9.0": +"@popperjs/core@^2.11.2": + version "2.11.6" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" + integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw== + +"@popperjs/core@^2.9.0": version "2.11.5" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64" integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw== @@ -1905,6 +1940,67 @@ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4-7.tgz#ef0b83ef40f64bc6704e13ae6624236a4a91fa6f" integrity sha512-842WcLh0BErNgGE8rdqNh31VnqGQcklPQ7RXzQfA0ilQNZcU7AO+t576g1m//18Lk8m7cXZ8fIKA1YB41LKWAQ== +"@remirror/core-constants@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-2.0.0.tgz#a52f89059d93955e00810023cc76b4f7db9650bf" + integrity sha512-vpePPMecHJllBqCWXl6+FIcZqS+tRUM2kSCCKFeEo1H3XUEv3ocijBIPhnlSAa7g6maX+12ATTgxrOsLpWVr2g== + dependencies: + "@babel/runtime" "^7.13.10" + +"@remirror/core-helpers@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@remirror/core-helpers/-/core-helpers-2.0.1.tgz#6847666a009ada8c9b9f3a093c13a6d07a95d9bb" + integrity sha512-s8M1pn33aBUhduvD1QR02uUQMegnFkGaTr4c1iBzxTTyg0rbQstzuQ7Q8TkL6n64JtgCdJS9jLz2dONb2meBKQ== + dependencies: + "@babel/runtime" "^7.13.10" + "@linaria/core" "3.0.0-beta.13" + "@remirror/core-constants" "^2.0.0" + "@remirror/types" "^1.0.0" + "@types/object.omit" "^3.0.0" + "@types/object.pick" "^1.3.1" + "@types/throttle-debounce" "^2.1.0" + case-anything "^2.1.10" + dash-get "^1.0.2" + deepmerge "^4.2.2" + fast-deep-equal "^3.1.3" + make-error "^1.3.6" + object.omit "^3.0.0" + object.pick "^1.3.0" + throttle-debounce "^3.0.1" + +"@remirror/types@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@remirror/types/-/types-1.0.0.tgz#cc8764440089a2ada71f149c409739575b73b12e" + integrity sha512-7HQbW7k8VxrAtfzs9FxwO6XSDabn8tSFDi1wwzShOnU+cvaYpfxu0ygyTk3TpXsag1hgFKY3ZIlAfB4WVz2LkQ== + dependencies: + type-fest "^2.0.0" + +"@rollup/plugin-graphql@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-graphql/-/plugin-graphql-1.1.0.tgz#492f579816f65bc21ce26394f2f140d95192622d" + integrity sha512-X+H6oFlprDlnO3D0UiEytdW97AMphPXO0C7KunS7i/rBXIGQRQVDU5WKTXnBu2tfyYbjCTtfhXMSGI0i885PNg== + dependencies: + "@rollup/pluginutils" "^4.0.0" + graphql-tag "^2.2.2" + +"@rollup/pluginutils@^4.0.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@sentry/browser@5.30.0", "sentrybrowser5@npm:@sentry/browser@5.30.0": + version "5.30.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz#c28f49d551db3172080caef9f18791a7fd39e3b3" + integrity sha512-rOb58ZNVJWh1VuMuBG1mL9r54nZqKeaIlwSlvzJfc89vyfd7n6tQ1UXMN383QBz/MS5H5z44Hy5eE+7pCrYAfw== + dependencies: + "@sentry/core" "5.30.0" + "@sentry/types" "5.30.0" + "@sentry/utils" "5.30.0" + tslib "^1.9.3" + "@sentry/core@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz#6b203664f69e75106ee8b5a2fe1d717379b331f3" @@ -2006,30 +2102,22 @@ dom-accessibility-api "^0.5.1" pretty-format "^26.4.2" -"@tiptap/core@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.202.tgz#be4c6a200e81875c552e1cc15ae9c6cdd86c37c2" - integrity sha512-KnOcZBtkWoDT7EsVLiJr9DyBnQcKJQHI8kOhNIL0snUrksr25q8xBW05iYqw6cGAF7iu1cFM80VikfgefsZUpw== - dependencies: - prosemirror-commands "^1.3.1" - prosemirror-keymap "^1.2.0" - prosemirror-model "^1.18.1" - prosemirror-schema-list "^1.2.2" - prosemirror-state "^1.4.1" - prosemirror-transform "^1.7.0" - prosemirror-view "^1.28.2" +"@tiptap/core@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-2.0.0-beta.212.tgz#a2e7bb3e7a94ac09cb54f0b3126b7fad53607de0" + integrity sha512-aQbeTJiR3wtqCNXyrFnRBjBT4F0kQrHGSOJyj5lWnEetImprJNgg2DbX8Yu5odh9CRcYVtAoWKdEdnyvtMhzAQ== -"@tiptap/extension-blockquote@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.202.tgz#91168b32387ed0ce4d03dd3b6c802682287ede3c" - integrity sha512-weLbMxM7VfI4hJsThw1+mB4jbQnVFizmzRlGU40LKMzEU5yIgIhuaomQ02Z7V0cRgfXsoKX9oc0BYGiO0Ra6/g== +"@tiptap/extension-blockquote@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-2.0.0-beta.212.tgz#a68485dfae3622cb49a65da4063175d72aa6439b" + integrity sha512-6UmW1/UQU1JmF3DrbJ4HCVwNdulpGmRK9r5XH3CUPH4Im35Vb4c9gmh+F3ePJR2uvXgK5Lx3WYt6955PyReS2w== -"@tiptap/extension-bold@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.202.tgz#877309e7b84701c22865517f09cbc5d288aa9369" - integrity sha512-AsfoChIleoSbY9gAuhbLF8BAEhHPrRKofmU09xJ62SBkL1rtgci8YzJYhL9leQCM4n1MQZEDeVf0ho75HeTPMA== +"@tiptap/extension-bold@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-2.0.0-beta.212.tgz#b77b0e7ce30b9c4b7697ca9fb60ffe8a40d08a98" + integrity sha512-YSPQNGV9ZADq/aAbDfGa9lyLm7NxPFLzAHaa65wFhXNNU/1BvNUngqDK6u31Q2nuSSrk38PE6ltZ6uVSjBfEQA== -"@tiptap/extension-bubble-menu@2.0.0-beta.200", "@tiptap/extension-bubble-menu@^2.0.0-beta.200": +"@tiptap/extension-bubble-menu@2.0.0-beta.200": version "2.0.0-beta.200" resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.200.tgz#7851efdb5b9bccf78a020e386ee0f5eb92103198" integrity sha512-57EIDlYpI+jRurzHzsnulkAgf+LFoGytK5YcoXmuq8A2f295mj9ANzuOUnLJ76nm2NBmt8Y6ks0zUIIktKKK0Q== @@ -2038,10 +2126,18 @@ prosemirror-view "^1.28.2" tippy.js "^6.3.7" -"@tiptap/extension-bullet-list@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.202.tgz#1826ec86a83cc2feba3f90b3015c0e642a925f8c" - integrity sha512-Su+GvRGyW9FTBtcFjvNkkYwzDRo+1O2YTNOZi1Z/OkDqbg3g89kRue78avs0nHW7HEgdhCap+z8KtAPrie4eBg== +"@tiptap/extension-bubble-menu@^2.0.0-beta.200": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.0.0-beta.212.tgz#321063ba3a70cd2495cacff915aeea2677b0ede7" + integrity sha512-LqwXN66hIhjQL+aVbKHlsu6ryX6Mtnz2eaKrUPDkU/vqu1M7iSlB9kSDu7DQgOJzd9a69UrsH9DiD3LdUtyd/g== + dependencies: + lodash "^4.17.21" + tippy.js "^6.3.7" + +"@tiptap/extension-bullet-list@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.0-beta.212.tgz#331d5ca389b6934f1ef7b036b584b67e15603e24" + integrity sha512-owW+SPkeYEB4SKCprp5yt6MRMvB+TOObxauvaiuZ+RPGKX/a6/uXyCfsPJ+Wz85lPn1GYefZwlfANJ6C5HQGkg== "@tiptap/extension-code-block-lowlight@2.0.0-beta.202": version "2.0.0-beta.202" @@ -2052,172 +2148,173 @@ prosemirror-state "^1.4.1" prosemirror-view "^1.28.2" -"@tiptap/extension-code-block@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.202.tgz#a76fcb90e8e22082bedd9853f7a9bd0a541a800e" - integrity sha512-tfK9khIroGjsXQvk2K/9z1/UyQrB4+zghkjyK1xikzRmhgfOeqQzA0TDrFrz7ywFXmSFQ7GnnYAp+RW6r6wyUg== - dependencies: - prosemirror-state "^1.4.1" +"@tiptap/extension-code-block@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-2.0.0-beta.212.tgz#48c79ef982a9f01f4b63387938ccaf038587ddf7" + integrity sha512-pS1R8kGcYFHJNiiyB0NF1i7HPT0iL+URPvW4u1Ww4LmyhBrv5RwqdYyg/E6q+J+0AZkhMVQL3Y1Wg6SPJYq8EA== -"@tiptap/extension-code@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.0.0-beta.202.tgz#5d4352a6cc4a2d16262472fb11c54cfca24bd40a" - integrity sha512-XwAr7ysSWJVZWHNXDaNBTPH1CTyVxHnPv/PiCWTGhf8Fkx7R7xW2QCUKx4ablwxFlTY7H8xGmCujaewUQBdO5w== +"@tiptap/extension-code@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-2.0.0-beta.212.tgz#340c6739127f110a79a80c70c3ab3f7cd5805ce1" + integrity sha512-F/r5cQ2JrGYm4YN2+ifKF/ZQUl/pShI2ICwaohV1zcEle+BCjmM13Pb5UOyXFGEmI2nwGwEz023PGxGK1p2RXw== -"@tiptap/extension-document@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.202.tgz#fa2b1a42075b1a6bfbcd9564289dfbf7347c903c" - integrity sha512-UsDSe93QtnuDrUo11wYCMtp7XlTIBvL5HNhx+enLRY7B8nUhX+d78u1BzspTpCkMYKcdwDmAGfIYMqqPViPEvA== +"@tiptap/extension-document@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-2.0.0-beta.212.tgz#94aff82e343b12f00ccd5f92595615e6990facb5" + integrity sha512-dGt4Y/aDHWkYzGJLaZtx823af0b0NMPdtUECwpypvTEIqLG1RrEvNP5va2BsHcgug+Kt5UgmPrR+PvuDPX9Vnw== -"@tiptap/extension-dropcursor@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.202.tgz#a7e2b3c66dfb5c05077c05991fccd5e4166bdc1d" - integrity sha512-4Q3LnqvMnxP0KdX7tIgCoTCKg949rg351m0wguVb1bo4v9lA0zfJpSgqjQ1Xs2vaYVBwkFjLoqrfhTRn5mnopQ== - dependencies: - prosemirror-dropcursor "1.5.0" +"@tiptap/extension-dropcursor@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.0-beta.212.tgz#1422fb9e7dfc84ed3795b34d55fed68128da91c0" + integrity sha512-DsZeoL0ZCSWxeHTm0eeRzx74kk0bUHRqhwr8kK39hi8lppBrRdHoi4KcjlDXMwgpAoMZEeB8ZX3zFg6TtFMsRg== "@tiptap/extension-floating-menu@^2.0.0-beta.200": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.202.tgz#9f895a04cd93cf4b41542ef3b09f3c90bfd0e215" - integrity sha512-09liirOFsPDFRLS2FiFdnfzyyOQwwyVXLzI6MzUOw5RZbOsGJ5kB8jZdkXvsAIiOs0YYsH3fyOyWirIwSRhBTQ== + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-2.0.0-beta.212.tgz#56236907ec09d03c3a529b6176de87584f9594af" + integrity sha512-sMTv9jSDbqg59fUkv0y+Yn2ecSxPnbNXoIl+abbE9XhLgeDhZMzOG75ICK9Am5YSiH7fz+DakpPSgt+3KGycAQ== dependencies: - prosemirror-state "^1.4.1" - prosemirror-view "^1.28.2" tippy.js "^6.3.7" -"@tiptap/extension-gapcursor@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.202.tgz#567fb6281068db7fb5da2092550e83e01530d8cf" - integrity sha512-jOPMPPnTfVuc5YpFTcQM42/cg1J3+OeHitYb1/vBMpaNinVijuafsK14xDoVP8+sydKVgtBzYkfP/faN82I9iA== - dependencies: - prosemirror-gapcursor "^1.3.1" +"@tiptap/extension-gapcursor@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.0-beta.212.tgz#0847f2d13ed87652067a1c592f23242d9e69c7b7" + integrity sha512-DIv1K+uOfMVWtfkJqv+fccZ/kxPUU+YgNFPINAFXqBh/rTkXbcXAb96x/g18apwo7WDOQvYwHOjxb1tB3b64ZQ== -"@tiptap/extension-hard-break@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.202.tgz#f82c29f71082ae44c361964fb42e6e78d339dc29" - integrity sha512-Nr9BXeP+dXS5vLP/C2voTrhl+4YkDHBtPlc+5xm5NPBn04slTGSPO2lgV3YrMsfUOMNXHqeob1lq4qiLF4pybQ== +"@tiptap/extension-hard-break@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-2.0.0-beta.212.tgz#4b412a45973a2dfe2025360d6bc4bdbf3c4160d5" + integrity sha512-JcoE10HWH7g6Pdj/1MzavKlO6XwNgc4JfaYQQnIlcw2ws9SGN/82thnvNyq6joVF4FlVAR9cUCPpc1Fpr57dIQ== -"@tiptap/extension-heading@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.202.tgz#da12041c626825f8a3f3173ac922e11f2df55cbf" - integrity sha512-sF271jSWHgtoJLDNFLS7eyUcUStl7mBDQNJIENWVI+lFu2Ax8GmO7AoB74Q6L5Zaw4h73L6TAvaafHIXurz7tA== +"@tiptap/extension-heading@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-2.0.0-beta.212.tgz#eff69ad2c91dc890bfa1582e3656eb039369c982" + integrity sha512-LrEs/Arp/4IN6D1D8sraf4iTIy7XCERu/nAgqXzs4N9DKS2UM3QD0ql09A3hKZrxwb5Yo6Mk1mnOOxihd+0WpA== "@tiptap/extension-highlight@^2.0.0-beta.209": - version "2.0.0-beta.209" - resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.0.0-beta.209.tgz#f373884097c17daf92ce3aecdc6c3781a4904c31" - integrity sha512-uy0Zu1dU2VcozvqpECb7+mxiazxstlb6w7jQQx8n4PAwIfN2LGv1UIil+VKRkc9amjBVwz+knm9psXEeJfjiBw== - -"@tiptap/extension-history@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.0.0-beta.202.tgz#d94770367a1a7b4e8f81f36d8b1731ca1fbc6879" - integrity sha512-BLwaOWmFHBQjOonojYHl1Po27IHxgjSAPw+ijMKtKzqa2msJRJevjC4tBaX5s/YrB7PQ2tFE7rfJED4HLjBm6w== - dependencies: - prosemirror-history "^1.3.0" - -"@tiptap/extension-horizontal-rule@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.202.tgz#12da36ea8ede0e720c7b2e5d1a2dd4c255798b2f" - integrity sha512-ut2Im/TNQynnuqdoY9yOjMDUKmxn97ERVEpqcQSaIgqBuF6bjk60Wa13ob6oS2g6vqXxwWFrnQVz48A9TcF5FQ== - dependencies: - prosemirror-state "^1.4.1" - -"@tiptap/extension-image@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.0.0-beta.202.tgz#5e50fdf7d7ac67b3475b1cfba71fb3acaddab0df" - integrity sha512-aHPJMXuoMgToTYkGZsz2ue8gKzes+B92qb9lVRYlY9f+r/tC2K4q3HMtx6qvh8l4Dei5/yeV9TqliY79E9A5dg== - -"@tiptap/extension-italic@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.202.tgz#0a991167dd06064bdf3c811d638d04cea9029206" - integrity sha512-vgSLy4KDp6AmnAHLHXe/nWeNbLnyUXxmf4U4+esebAV5Hu2F7LgceknFt9D8AGEtYUU+/fYKSeE2NGJgTQG9lA== - -"@tiptap/extension-link@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.0.0-beta.202.tgz#2b10ef877937bf2d491fffaf3e0545105f61b6fb" - integrity sha512-/9bZd43dMkzmo7SCCDtEscgdFKCat9yZAyAyg+PHYdhI8Lbqv5GfjxzBbx58v7jEP1eDKFnwTDFVwAsxCE9f0w== + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-highlight/-/extension-highlight-2.0.0-beta.212.tgz#af057f88ef0d4f351eba7accd9914e4bc1c09703" + integrity sha512-ejmtVvZm2sEOuh2clACceDfBZvTlHxPRWdX1JSsYfNaJxnxQrDw6IQZI7I8n+qupySLVZx0TNx/zBYKCnG90zA== + +"@tiptap/extension-history@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-history/-/extension-history-2.0.0-beta.212.tgz#b41d3d0b12031e2f1f6aa972b13c7541741ad23c" + integrity sha512-o2VU01AVNhfJPzqSSPJMbKJ167BHomlbbq01dGigPM0YNfkOpBJG5GLrgpXlACMqmE/y3BVw1/o+Z/buzgC2Vg== + +"@tiptap/extension-horizontal-rule@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.0-beta.212.tgz#c5bba6ec90d43c5073489f42bafdcb432112b56b" + integrity sha512-f+C5EAhQCeDWA2VqnOvlDzZ31WuMUAHIqDYYBxL9sNrhqHHduLBp7Oa498oyVeAcU2ZQT+iLGE9yO+fY3f6dSA== + +"@tiptap/extension-image@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-image/-/extension-image-2.0.0-beta.212.tgz#59fb92541884ed31d571a805d980590841a8c18b" + integrity sha512-F/3N3Er57shgfIfavAQoTy5E0C1cJivQ0VyG/gfxzjMPfUdPJdECv9W5V0KZ41VGwKtDyu7nmvR6vsqcTYx9Ww== + +"@tiptap/extension-italic@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-2.0.0-beta.212.tgz#03c5589d9725f184ad3c506858c0a7bcc5422a0c" + integrity sha512-sLsRojqIIjpGapxxRxoc2IwcJtn3+eYwyenNjX7xl/GIsfTEJ3uOehxS5GZSAJwiWVtQAAAQunSfmPZAHTxdRw== + +"@tiptap/extension-link@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-2.0.0-beta.212.tgz#5f2cf1ba1f681e1e7ab491a2a4d42c168ef2a5a8" + integrity sha512-FRhJHBIYpObrZXWvLgLW3lx+GYnkOJsJrkrKqkS5t5MdGDpsreKgqkxA06tQjNYx13xkt2HeaeUIuQENiB1d4Q== dependencies: linkifyjs "^3.0.5" - prosemirror-model "^1.18.1" - prosemirror-state "^1.4.1" - -"@tiptap/extension-list-item@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.202.tgz#32bc4beacb0f692abfc8283760292a6354f070dc" - integrity sha512-15yAsO+CCM8ievdX4oxg8kMBVFqhzVAw7pU6E8KL76kIwWCIIyVW6hU3VZdglyBVnAG0ws5/DaZ4VRFtVPRDvg== - -"@tiptap/extension-ordered-list@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.202.tgz#5b5987d3a1c98e579071e70485db2e82bf638ed9" - integrity sha512-PpJn8EtS8MLZ4NN9R3crmrivbjTMHjuSE2Ab3Y9TdeR9x9DIF23O/EkunnkPUiBUx6sNADprEWJIQesgpakrtw== - -"@tiptap/extension-paragraph@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.202.tgz#5a395a8107bfc767f80335a0cf7f89278ad0cf20" - integrity sha512-QI86DMUAz5froDJJXpbFV0I+iSFikjhQ8W5clYDbnrP/clRI/FYxklQ3oxSk4VzGBGB5EaBJf+jD7htLKb39UA== - -"@tiptap/extension-strike@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.202.tgz#8bf200fb044e5b2401edef26e26920b94ab35249" - integrity sha512-cs87UI/VTkmSfIwlHpm7nAPXok2bAQvxmNJ1y7UPzTATVl+ixP1F4aIkwiYk+X7rE/Sys+09PGg1Pr1shwUUkQ== - -"@tiptap/extension-subscript@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.0.0-beta.202.tgz#730e0181c5b8d623fb4674d568d5ef4f3bd986d5" - integrity sha512-s/90xjDJGlWxontzyL0howpdTEbnl5EyvIDDYdAwalnHOGkyfWq8JMxL3klnxUL+Rn10sjatHnEYaLS2A5tN+Q== - -"@tiptap/extension-superscript@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.0.0-beta.202.tgz#d756fb63585f8214ce3a7e2333978f2fb68b1259" - integrity sha512-kDOc+Sf1N5LzKWDBrTYBWaQFG40z3dCt/ljIMDWJt3Vka8ahnH4kcXhW9eNZLeIWavoj+M+4th+CPSfMdAYJbg== - -"@tiptap/extension-table-cell@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.202.tgz#95f3f9c14d4f21122bab109fb82e10b64ca5e613" - integrity sha512-Ypmcq7zaMSZ0VNKwDPINOsSzyuH+gSIw+FrXy6O1dzVHAo1gNFJ2pEG/ZhQ2RqpDTpGfJFD8tNDx8wjCCAVlxA== - -"@tiptap/extension-table-header@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.202.tgz#e9284abcfbe17c3c1ddfff55bb98873879c9d34a" - integrity sha512-/l0lz3Hmc+hikj+RfSW7F6B/jYV2dROGQnK1/EYjgbvOK0158ml1mB6/Dhm+BhldV73MI7eU8+3YLB9uhsPR4w== -"@tiptap/extension-table-row@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.0.0-beta.202.tgz#60cc878e7f7ae4ad82e1013471cb39a4058f9844" - integrity sha512-IsHBT3lp//XSqcAWPIGWjPIKQ4okVaDJbwcElehlOo/rcRBeK0orT+c10T08PoOsozi4BeMYRo0nfA5tvrJMEw== - -"@tiptap/extension-table@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.0.0-beta.202.tgz#841254bf183e84a5b76edb4f1719883c85d51df8" - integrity sha512-WMfXtDfx45FgU81WnfxGOSJbVoaDpe8hjuBJSGbwJj+Qj4HGhbK7/RbTtDrM8oqseHRzHuGWgNX+EfOUQppjdA== - dependencies: - "@_ueberdosis/prosemirror-tables" "1.1.3" +"@tiptap/extension-list-item@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-2.0.0-beta.212.tgz#9f0615e1e6ba2acf003bdceb6b375ef3e971cdcc" + integrity sha512-I028s1mc60QcYTZ6quWzCBiZpQczTfhWtzoDZ5tsqQrlEENpSo6g1ktHhgw8AyGK1e9w/ZbxQkFqno+HpZLuWw== + +"@tiptap/extension-ordered-list@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.0-beta.212.tgz#d4a6682b52162db5e02a8428e5c06d5d711d3ca5" + integrity sha512-k6zEpxrZbXcveOXGoNELZcHKqGHlh3MLfUvdVnXy4khcHfevMAXVstma6lPzNmPcCkRpmrKtKykCOn2aTX9IHA== + +"@tiptap/extension-paragraph@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-2.0.0-beta.212.tgz#8aced9ccdcbec9cf2f6f323e4516b1d14d68dc59" + integrity sha512-teyjFRLqJwHhxgUv5X3jOt6k4JAzHV+R6rdl5E2DJOJ8IlZxP/gEae2GXBqcidTb8v7GXyPszqyPbaV2iq6oBw== + +"@tiptap/extension-strike@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-2.0.0-beta.212.tgz#0c7ec3f90131e363d8eb5ed28f2939e19eed360a" + integrity sha512-/6V2ia4CNzMY7MXMBOBFTXl+sZzD3iMOgBy5U85AQnmYgSqLQR/SinsnaJ9e7Wgd2zUikG1pahdnQ47RoGp/ag== + +"@tiptap/extension-subscript@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-subscript/-/extension-subscript-2.0.0-beta.212.tgz#ffb2bd897afb0155eb8238494b1421e657d4a72e" + integrity sha512-mr8eqUOvjzVHFGbbDGyyxmUvA2DjM/fEOU7hbsbk7QUdHUU9ohi2zwrPsAlDLdM9hbO7uCHXQtobT4TN9SvJUQ== + +"@tiptap/extension-superscript@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-superscript/-/extension-superscript-2.0.0-beta.212.tgz#61d8c7ba8686f0d947914515cd83e711ee542431" + integrity sha512-R8DJpSrwa3lMD6UxdU0WRg38wuL8T6Q+mZlYbiByMiLfBkALknCjgJcZuvw6dqQ57qXtSrK717BuM18fYwWGhA== + +"@tiptap/extension-table-cell@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-cell/-/extension-table-cell-2.0.0-beta.212.tgz#1a3b89d2933719913d9ea242b066c75771f7761d" + integrity sha512-0j8AbVn2B79enX0dZc0cKbgy+4zFD2ICeRbSzOKsDvb3xy4QMX1OQgLUnCk5s3/QqZWdGb3uc/abZbWQGz9fCg== + +"@tiptap/extension-table-header@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-header/-/extension-table-header-2.0.0-beta.212.tgz#543f6a6c1ed1c17af897cac19fbbaf705579bd10" + integrity sha512-N/KnUbH6R+rrjA9GF6G+IUAo0+jaRJJhwvOJVFbrAFQTo0IKq5UZtKzHKqgM4BGvYeeLvovqYA6S4ehXsVTk7A== + +"@tiptap/extension-table-row@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table-row/-/extension-table-row-2.0.0-beta.212.tgz#27a6d87c26fc4a8d4bfe7470f4722586c2b134fc" + integrity sha512-QI2LLP/eH7Xe9a5n7o8gRMd3i21xzJBibeRaqfoF88LAAq4bMmnZyQBVX/7RS01IkvewRvWD+kBioQ5GFpmQ0g== + +"@tiptap/extension-table@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-table/-/extension-table-2.0.0-beta.212.tgz#e40c9c0f0c47505bbfbc692874c8fb9d12e30afc" + integrity sha512-gVmCcQuTn62nBPYaXqVbJL91+xXU7uHH3+PyaV6eBcUTLkWf2zNNoBzRQ7EeCn55eFUGrJ1fXgLfICuI51TdPg== + +"@tiptap/extension-task-item@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.0.0-beta.212.tgz#109232a5bc7d7c5769ac42e581442d0f9d61fb6e" + integrity sha512-dl5YA4SuAGznCc//v7wktIWE0MJAZ3JsTs25frLx8vDBvqV1jwkT+xg4phlxoqla7EIpqoJI3BDdE2kh2KbNlA== + +"@tiptap/extension-task-list@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.0.0-beta.212.tgz#4ba2e7505e1096efea9789d22e4eb7b06d42dfb2" + integrity sha512-hsagYH0UjjshKvqdBCN3IP2pwhu3FSbt8ACTkZAQylItsrVEu6qsrEJ2VKn+7GZee8Wii6EhY2ghTdTzpwVNvA== + +"@tiptap/extension-text@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.212.tgz#5ae31b98cbe65b59c10a5da1656160f5f504dcab" + integrity sha512-KesuaSB6m1AI1G37LTdscE/RLgtqfxD29CCUqlPfUeM05gYyMwRsW0421yuaXJQC0UOHwdLok9SfFRQErhC23w== + +"@tiptap/pm@^2.0.0-beta.212": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-2.0.0-beta.212.tgz#ea9f6c60301d6a329ee921793e94676d5fbb3abc" + integrity sha512-TyGooU5in2r+cCbSivWBpeMODOCZFzJ0bxn3rJeoLxycId5UOd2dHE2chEQ5X6MsAukjscV+uMdUK6CrNRoA3w== + dependencies: + prosemirror-changeset "^2.2.0" + prosemirror-collab "^1.3.0" + prosemirror-commands "^1.3.1" + prosemirror-dropcursor "^1.5.0" + prosemirror-gapcursor "^1.3.1" + prosemirror-history "^1.3.0" + prosemirror-inputrules "^1.2.0" + prosemirror-keymap "^1.2.0" + prosemirror-markdown "^1.10.1" + prosemirror-menu "^1.2.1" prosemirror-model "^1.18.1" + prosemirror-schema-basic "^1.2.0" + prosemirror-schema-list "^1.2.2" prosemirror-state "^1.4.1" + prosemirror-tables "^1.3.0" + prosemirror-trailing-node "^2.0.2" + prosemirror-transform "^1.7.0" prosemirror-view "^1.28.2" -"@tiptap/extension-task-item@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-task-item/-/extension-task-item-2.0.0-beta.202.tgz#350fd2d823300bd9e64a56c98404bbcffe802f08" - integrity sha512-yOd72ELIr/NK3wb4SjetFCsTW/YU66LMjUCv6RFxgbcPtTN3auoaCelyo1l7EZSZmWbovR7G2QOiG1fQmfNgMg== - -"@tiptap/extension-task-list@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-task-list/-/extension-task-list-2.0.0-beta.202.tgz#b2484ca0507f1d8b413e7f2967f4b71afefa91a9" - integrity sha512-0E7hL2+vVeBm1khONomqk4Lac/LcQfKYesLvzLhjHOEuC7t8wTt7sZxI407b87YnQ+l8dsZey0vrcmV2/Wi4YQ== - -"@tiptap/extension-text@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-2.0.0-beta.202.tgz#d0152f547572a14c4e0e88287acb2b0c311fef04" - integrity sha512-6UsfU9xvKTxHfZYxVJy5DSQ0ibnhC403KLRQ4ePwpJql0TotBx93/CBfPCVLFEwF86HNhf1fFUCx+j2wuwVxmA== - -"@tiptap/suggestion@^2.0.0-beta.202": - version "2.0.0-beta.202" - resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.0.0-beta.202.tgz#f0bc6a6712aeea266d7ed156c7c70ad29fb864e5" - integrity sha512-V2BepOUj3ycvogOZE/nY9q2J4Hm1oH44YhOkqHB+QFQeOu6vqhFRqgGniJji52z2tAF+dvydSpQEzG+uCf2MEA== - dependencies: - prosemirror-model "^1.18.1" - prosemirror-state "^1.4.1" - prosemirror-view "^1.28.2" +"@tiptap/suggestion@^2.0.0-beta.210": + version "2.0.0-beta.212" + resolved "https://registry.yarnpkg.com/@tiptap/suggestion/-/suggestion-2.0.0-beta.212.tgz#205906991b52a45829143e7f2947bfb24868b8c1" + integrity sha512-BcTz+4qA1lgBqzxQr1hwdBDaRECn5beGaRCYOxz3A3yce94S9EDnCXIcPXp2VS/auLDXmpGGmjHCStZmFWlcrg== "@tiptap/vue-2@2.0.0-beta.200": version "2.0.0-beta.200" @@ -2233,6 +2330,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== + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -2470,6 +2572,16 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== +"@types/object.omit@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/object.omit/-/object.omit-3.0.0.tgz#0d31e1208eac8fe2ad5c9499a1016a8273bbfafc" + integrity sha512-I27IoPpH250TUzc9FzXd0P1BV/BMJuzqD3jOz98ehf9dQqGkxlq+hO1bIqZGWqCg5bVOy0g4AUVJtnxe0klDmw== + +"@types/object.pick@^1.3.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/object.pick/-/object.pick-1.3.2.tgz#9eb28118240ad8f658b9c9c6caf35359fdb37150" + integrity sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -2542,6 +2654,11 @@ resolved "https://registry.yarnpkg.com/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz#9aa30c04db212a9a0649d6ae6fd50accc40748a1" integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== +"@types/throttle-debounce@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776" + integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ== + "@types/tough-cookie@*": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397" @@ -2631,6 +2748,62 @@ "@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/compiler-core@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.37.tgz#b3c42e04c0e0f2c496ff1784e543fbefe91e215a" + integrity sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/shared" "3.2.37" + estree-walker "^2.0.2" + source-map "^0.6.1" + +"@vue/compiler-dom@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz#10d2427a789e7c707c872da9d678c82a0c6582b5" + integrity sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ== + dependencies: + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" + +"@vue/compiler-sfc@2.7.10": + version "2.7.10" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-2.7.10.tgz#3fe08e780053a3bbf41328c65ae5dfdee0385206" + integrity sha512-55Shns6WPxlYsz4WX7q9ZJBL77sKE1ZAYNYStLs6GbhIOMrNtjMvzcob6gu3cGlfpCR4bT7NXgyJ3tly2+Hx8Q== + dependencies: + "@babel/parser" "^7.18.4" + postcss "^8.4.14" + source-map "^0.6.1" + +"@vue/compiler-sfc@^3.2.20": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz#3103af3da2f40286edcd85ea495dcb35bc7f5ff4" + integrity sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.37" + "@vue/compiler-dom" "3.2.37" + "@vue/compiler-ssr" "3.2.37" + "@vue/reactivity-transform" "3.2.37" + "@vue/shared" "3.2.37" + estree-walker "^2.0.2" + magic-string "^0.25.7" + postcss "^8.1.10" + source-map "^0.6.1" + +"@vue/compiler-ssr@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz#4899d19f3a5fafd61524a9d1aee8eb0505313cff" + integrity sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw== + dependencies: + "@vue/compiler-dom" "3.2.37" + "@vue/shared" "3.2.37" + "@vue/component-compiler-utils@^3.1.0": version "3.3.0" resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9" @@ -2647,6 +2820,22 @@ optionalDependencies: prettier "^1.18.2 || ^2.0.0" +"@vue/reactivity-transform@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz#0caa47c4344df4ae59f5a05dde2a8758829f8eca" + integrity sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg== + dependencies: + "@babel/parser" "^7.16.4" + "@vue/compiler-core" "3.2.37" + "@vue/shared" "3.2.37" + estree-walker "^2.0.2" + magic-string "^0.25.7" + +"@vue/shared@3.2.37": + version "3.2.37" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.37.tgz#8e6adc3f2759af52f0e85863dfb0b711ecc5c702" + integrity sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw== + "@vue/test-utils@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-1.3.0.tgz#d563decdcd9c68a7bca151d4179a2bfd6d5c3e15" @@ -3196,6 +3385,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.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.8.tgz#92c7a0199e1cfb2ad5d9427bd585a3d75895b9e5" + integrity sha512-75Jr6Q/XpTqEf6D2ltS5uMewJIx5irCU1oBYJrWjFenq/m12WRRrz6g15L1EIoYvPLXTbEry7rDOwrcYNj77xw== + dependencies: + browserslist "^4.21.3" + caniuse-lite "^1.0.30001373" + 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" @@ -3437,11 +3638,16 @@ bootstrap-vue@2.20.1: portal-vue "^2.1.7" vue-functional-data-merge "^3.1.0" -bootstrap@4.5.3, "bootstrap@>=4.5.3 <5.0.0": +bootstrap@4.5.3: version "4.5.3" resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.5.3.tgz#c6a72b355aaf323920be800246a6e4ef30997fe6" integrity sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ== +"bootstrap@>=4.5.3 <5.0.0": + version "4.6.2" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.2.tgz#8e0cd61611728a5bf65a3a2b8d6ff6c77d5d7479" + integrity sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3725,16 +3931,21 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001370: - version "1.0.30001388" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz#88e01f4591cbd81f9f665f3f078c66b509fbe55d" - integrity sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ== +caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001373: + version "1.0.30001375" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz#8e73bc3d1a4c800beb39f3163bf0190d7e5d7672" + integrity sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw== canvas-confetti@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/canvas-confetti/-/canvas-confetti-1.4.0.tgz#840f6db4a566f8f32abe28c00dcd82acf39c92bd" integrity sha512-S18o4Y9PqI/uabdlT/jI3MY7XBJjNxnfapFIkjkMwpz6qNxLFZOm2b22OMf4ZYDL9lpNWI+Ih4fEMVPwO1KHFQ== +case-anything@^2.1.10: + version "2.1.10" + resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.10.tgz#d18a6ca968d54ec3421df71e3e190f3bced23410" + integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== + ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -4246,6 +4457,11 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +crelt@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94" + integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA== + cron-validator@^1.1.1: version "1.2.1" resolved "https://registry.yarnpkg.com/cron-validator/-/cron-validator-1.2.1.tgz#0f0de2de36d231a6ace0e43ffc6c0564fe6edf1a" @@ -4357,6 +4573,17 @@ css-select@^4.1.2: domutils "^2.6.0" nth-check "^2.0.0" +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 "^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" resolved "https://registry.yarnpkg.com/css-selector-parser/-/css-selector-parser-1.3.0.tgz#5f1ad43e2d8eefbfdc304fcd39a521664943e3eb" @@ -4367,6 +4594,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: version "2.1.0" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.1.0.tgz#170e27ccf94e7c5facb183765c25898be843d1d2" @@ -4389,6 +4624,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" @@ -4399,6 +4639,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" @@ -4416,6 +4663,11 @@ cssstyle@^2.3.0: dependencies: cssom "~0.3.6" +csstype@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.0.tgz#4ddcac3718d787cf9df0d1b7d15033925c8f29f2" + integrity sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA== + custom-jquery-matchers@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/custom-jquery-matchers/-/custom-jquery-matchers-2.1.0.tgz#e5988fa9715c416b0986b372563f872d9e91e024" @@ -4944,6 +5196,11 @@ dagre@^0.8.5: graphlib "^2.1.8" lodash "^4.17.15" +dash-get@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/dash-get/-/dash-get-1.0.2.tgz#4c9e9ad5ef04c4bf9d3c9a451f6f7997298dcc7c" + integrity sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ== + data-urls@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" @@ -5266,6 +5523,13 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.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" + dommatrix@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/dommatrix/-/dommatrix-1.0.3.tgz#e7c18e8d6f3abdd1fef3dd4aa74c4d2e620a0525" @@ -5290,6 +5554,15 @@ domutils@^2.5.2, domutils@^2.6.0: domelementtype "^2.2.0" domhandler "^4.2.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" + domhandler "^4.2.0" + dropzone@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/dropzone/-/dropzone-4.2.0.tgz#fbe7acbb9918e0706489072ef663effeef8a79f3" @@ -5339,9 +5612,9 @@ ee-first@1.1.1: 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== + version "1.4.217" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.217.tgz#f1f51b319435f4c1587a850806a0dfebe9774598" + integrity sha512-iX8GbAMij7cOtJPZo02CClpaPMWjvN5meqXiJXkBgwvraNWTNH0Z7F9tkznI34JRPtWASoPM/xWamq3oNb49GA== elliptic@^6.0.0: version "6.5.4" @@ -5504,6 +5777,76 @@ 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-loader@^2.21.0: version "2.21.0" resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.21.0.tgz#2698a3e565b0db2bb19a3dd91c2b6c9aad526c80" @@ -5516,6 +5859,36 @@ esbuild-loader@^2.21.0: tapable "^2.2.0" webpack-sources "^1.4.3" +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.17.4: version "0.17.4" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.4.tgz#af4f8f78604c67f8e6afbdee36a3f4211ecfc859" @@ -5544,7 +5917,34 @@ esbuild@0.17.4: "@esbuild/win32-ia32" "0.17.4" "@esbuild/win32-x64" "0.17.4" -esbuild@^0.16.17: +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.16.14, esbuild@^0.16.17: version "0.16.17" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.17.tgz#fc2c3914c57ee750635fee71b89f615f25065259" integrity sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg== @@ -5884,6 +6284,16 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^2.0.1, estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -6300,6 +6710,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" @@ -6627,7 +7042,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.2.2: 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== @@ -6845,7 +7260,7 @@ hastscript@^7.0.0: property-information "^6.0.0" space-separated-tokens "^2.0.0" -he@^1.1.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -7266,13 +7681,20 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.7.0, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" +is-core-module@^2.5.0, is-core-module@^2.7.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -7320,7 +7742,7 @@ is-extendable@^0.1.0, is-extendable@^0.1.1: resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= -is-extendable@^1.0.1: +is-extendable@^1.0.0, is-extendable@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== @@ -8247,7 +8669,7 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-utils@^1.0.0, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +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== @@ -8470,6 +8892,13 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +magic-string@^0.25.3, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" @@ -8485,7 +8914,7 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: dependencies: semver "^6.0.0" -make-error@^1.1.1: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== @@ -8720,6 +9149,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.27: version "2.0.27" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.27.tgz#1710baa7b0db8176d3b3d565ccb7915fc69525ab" @@ -9596,6 +10030,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" @@ -9665,6 +10104,13 @@ object.entries@^1.1.5: define-properties "^1.1.3" es-abstract "^1.19.1" +object.omit@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" + integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ== + dependencies: + is-extendable "^1.0.0" + object.pick@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" @@ -10016,7 +10462,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -10145,7 +10591,7 @@ postcss-value-parser@^4.1.0, 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.14, postcss@^8.2.1, postcss@^8.4.14: +postcss@8.4.14, postcss@^8.2.1: version "8.4.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== @@ -10162,6 +10608,33 @@ 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: + version "8.4.16" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c" + integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.14: + version "8.4.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" + integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.4.21: + version "8.4.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" + integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== + dependencies: + nanoid "^3.3.4" + 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" @@ -10251,19 +10724,33 @@ property-information@^6.0.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.1.1.tgz#5ca85510a3019726cb9afed4197b7b8ac5926a22" integrity sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w== -prosemirror-commands@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.3.1.tgz#926c88801eebaa50363d4658850b41406d375a31" - integrity sha512-XTporPgoECkOQACVw0JTe3RZGi+fls3/byqt+tXwGTkD7qLuB4KdVrJamDMJf4kfKga3uB8hZ+kUUyZ5oWpnfg== +prosemirror-changeset@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.2.0.tgz#22c05da271a118be40d3e339fa2cace789b1254b" + integrity sha512-QM7ohGtkpVpwVGmFb8wqVhaz9+6IUXcIQBGZ81YNAKYuHiFJ1ShvSzab4pKqTinJhwciZbrtBEk/2WsqSt2PYg== + dependencies: + prosemirror-transform "^1.0.0" + +prosemirror-collab@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.3.0.tgz#601d33473bf72e6c43041a54b860c84c60b37769" + integrity sha512-+S/IJ69G2cUu2IM5b3PBekuxs94HO1CxJIWOFrLQXUaUDKL/JfBx+QcH31ldBlBXyDEUl+k3Vltfi1E1MKp2mA== + dependencies: + prosemirror-state "^1.0.0" + +prosemirror-commands@^1.0.0, prosemirror-commands@^1.3.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.5.0.tgz#d10efece1647c1d984fef6f65d52fdc77785560b" + integrity sha512-zL0Fxbj3fh71GPNHn5YdYgYGX2aU2XLecZYk2ekEF0oOD259HcXtM+96VjPVi5o3h4sGUdDfEEhGiREXW6U+4A== dependencies: prosemirror-model "^1.0.0" prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-dropcursor@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.5.0.tgz#edbc61d6f71f9f924130eec8e85b0861357957c9" - integrity sha512-vy7i77ddKyXlu8kKBB3nlxLBnsWyKUmQIPB5x8RkYNh01QNp/qqGmdd5yZefJs0s3rtv5r7Izfu2qbtr+tYAMQ== +prosemirror-dropcursor@^1.5.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.6.1.tgz#31f696172105f232bd17543ccf305e0f33e59d1d" + integrity sha512-LtyqQpkIknaT7NnZl3vDr3TpkNcG4ABvGRXx37XJ8tJNUGtcrZBh40A0344rDwlRTfUEmynQS/grUsoSWz+HgA== dependencies: prosemirror-state "^1.0.0" prosemirror-transform "^1.1.0" @@ -10279,7 +10766,7 @@ prosemirror-gapcursor@^1.3.1: prosemirror-state "^1.0.0" prosemirror-view "^1.0.0" -prosemirror-history@^1.3.0: +prosemirror-history@^1.0.0, prosemirror-history@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.3.0.tgz#bf5a1ff7759aca759ddf0c722c2fa5b14fb0ddc1" integrity sha512-qo/9Wn4B/Bq89/YD+eNWFbAytu6dmIM85EhID+fz9Jcl9+DfGEo8TTSrRhP15+fFEoaPqpHSxlvSzSEbmlxlUA== @@ -10288,6 +10775,14 @@ prosemirror-history@^1.3.0: prosemirror-transform "^1.0.0" rope-sequence "^1.3.0" +prosemirror-inputrules@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.2.0.tgz#476dde2dc244050b3aca00cf58a82adfad6749e7" + integrity sha512-eAW/M/NTSSzpCOxfR8Abw6OagdG0MiDAiWHQMQveIsZtoKVYzm0AflSPq/ymqJd56/Su1YPbwy9lM13wgHOFmQ== + dependencies: + prosemirror-state "^1.0.0" + prosemirror-transform "^1.0.0" + prosemirror-keymap@^1.0.0, prosemirror-keymap@^1.1.2, prosemirror-keymap@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.2.0.tgz#d5cc9da9b712020690a994b50b92a0e448a60bf5" @@ -10304,6 +10799,24 @@ prosemirror-markdown@1.9.1: markdown-it "^13.0.1" prosemirror-model "^1.0.0" +prosemirror-markdown@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.10.1.tgz#e20468201cda1916a6182686159398b242bb78ab" + integrity sha512-s7iaTLiX+qO5z8kF2NcMmy2T7mIlxzkS4Sp3vTKSYChPtbMpg6YxFkU0Y06rUg2WtKlvBu7v1bXzlGBkfjUWAA== + dependencies: + markdown-it "^13.0.1" + prosemirror-model "^1.0.0" + +prosemirror-menu@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prosemirror-menu/-/prosemirror-menu-1.2.1.tgz#94d99a8547b7ba5680c20e9c497ce19846ce3b2c" + integrity sha512-sBirXxVfHalZO4f1ZS63WzewINK4182+7dOmoMeBkqYO8wqMBvBS7wQuwVOHnkMWPEh0+N0LJ856KYUN+vFkmQ== + dependencies: + crelt "^1.0.0" + prosemirror-commands "^1.0.0" + prosemirror-history "^1.0.0" + prosemirror-state "^1.0.0" + prosemirror-model@^1.0.0, prosemirror-model@^1.16.0, prosemirror-model@^1.18.1, prosemirror-model@^1.2.0, prosemirror-model@^1.8.1: version "1.18.1" resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.18.1.tgz#1d5d6b6de7b983ee67a479dc607165fdef3935bd" @@ -10327,7 +10840,7 @@ prosemirror-schema-list@^1.0.0, prosemirror-schema-list@^1.2.2: prosemirror-state "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1: +prosemirror-state@^1.0.0, prosemirror-state@^1.3.1, prosemirror-state@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.1.tgz#f6e26c7b6a7e11206176689eb6ebbf91870953e1" integrity sha512-U/LBDW2gNmVa07sz/D229XigSdDQ5CLFwVB1Vb32MJbAHHhWe/6pOc721faI17tqw4pZ49i1xfY/jEZ9tbIhPg== @@ -10335,6 +10848,26 @@ prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1, pr prosemirror-model "^1.0.0" prosemirror-transform "^1.0.0" +prosemirror-state@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.4.2.tgz#f93bd8a33a4454efab917ba9b738259d828db7e5" + integrity sha512-puuzLD2mz/oTdfgd8msFbe0A42j5eNudKAAPDB0+QJRw8cO1ygjLmhLrg9RvDpf87Dkd6D4t93qdef00KKNacQ== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + prosemirror-view "^1.27.0" + +prosemirror-tables@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.3.2.tgz#ca208c6a55d510af14b652d23e800e00ba6bebd4" + integrity sha512-/9JTeN6s58Zq66HXaxP6uf8PAmc7XXKZFPlOGVtLvxEd6xBP6WtzaJB9wBjiGUzwbdhdMEy7V62yuHqk/3VrnQ== + dependencies: + prosemirror-keymap "^1.1.2" + prosemirror-model "^1.8.1" + prosemirror-state "^1.3.1" + prosemirror-transform "^1.2.1" + prosemirror-view "^1.13.3" + prosemirror-test-builder@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/prosemirror-test-builder/-/prosemirror-test-builder-1.1.0.tgz#70d0b10d56e45dff47e0e4b0a1b29c4403a5d9e6" @@ -10344,14 +10877,40 @@ prosemirror-test-builder@^1.1.0: prosemirror-schema-basic "^1.0.0" prosemirror-schema-list "^1.0.0" -prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1, prosemirror-transform@^1.7.0: +prosemirror-trailing-node@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.3.tgz#213fc0e545a434ff3c37b5218a0de69561bf3892" + integrity sha512-lGrjMrn97KWkjQSW/FjdvnhJmqFACmQIyr6lKYApvHitDnKsCoZz6XzrHB7RZYHni/0NxQmZ01p/2vyK2SkvaA== + dependencies: + "@babel/runtime" "^7.13.10" + "@remirror/core-constants" "^2.0.0" + "@remirror/core-helpers" "^2.0.1" + escape-string-regexp "^4.0.0" + +prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transform@^1.2.1: version "1.7.0" resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.7.0.tgz#a8a0768f3ee6418d26ebef435beda9d43c65e472" integrity sha512-O4T697Cqilw06Zvc3Wm+e237R6eZtJL/xGMliCi+Uo8VL6qHk6afz1qq0zNjT3eZMuYwnP8ZS0+YxX/tfcE9TQ== dependencies: prosemirror-model "^1.0.0" -prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3, prosemirror-view@^1.28.2: +prosemirror-transform@^1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.7.1.tgz#b516e818c3add0bdf960f4ca8ccb9d057a3ba21b" + integrity sha512-VteoifAfpt46z0yEt6Fc73A5OID9t/y2QIeR5MgxEwTuitadEunD/V0c9jQW8ziT8pbFM54uTzRLJ/nLuQjMxg== + dependencies: + prosemirror-model "^1.0.0" + +prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0: + version "1.30.1" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.30.1.tgz#7cf0ae8dc8553a02c32961e82eca25079c4d8fc9" + integrity sha512-pZUfr7lICJkEY7XwzldAKrkflZDeIvnbfuu2RIS01N5NwJmR/dfZzDzJRzhb3SM2QtT/bM8b4Nnib8X3MGpAhA== + dependencies: + prosemirror-model "^1.16.0" + prosemirror-state "^1.0.0" + prosemirror-transform "^1.1.0" + +prosemirror-view@^1.13.3, prosemirror-view@^1.28.2: version "1.28.2" resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.28.2.tgz#e997ef9dc623d01afd170e328fc924e6f4382003" integrity sha512-uK28mJbu0GI8Oz7Aclt6BKL4g+C59EBShBXDB0Y9Y71H25p4bQgmLQLfDWjsT1J9XOw0bR8QQajZmdK8RvXI9g== @@ -10851,10 +11410,40 @@ robust-predicates@^3.0.0: resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz#e4233855bfba6c0c12a312fd6649dff9a13ee9f4" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz#53092a2744837164d5b8a28812ba5f3ff61109fd" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + +rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^3.10.0: + version "3.14.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.14.0.tgz#f5925255f3b6e8de1dba3916d7619c7da5708d95" + integrity sha512-o23sdgCLcLSe3zIplT9nQ1+r97okuaiR+vmAPZPTDYB7/f3tgWIYNyiQveMsZwshBT0is4eGax/HH83Q7CG+/Q== + optionalDependencies: + fsevents "~2.3.2" + rope-sequence@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz#a19e02d72991ca71feb6b5f8a91154e48e3c098b" - integrity sha512-ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg== + version "1.3.3" + resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.3.tgz#3f67fc106288b84b71532b4a5fd9d4881e4457f0" + integrity sha512-85aZYCxweiD5J8yTEbw+E6A27zSnLPNDL0WfPdw3YYodq7WjnTKo0q4dtyQ2gz23iPT8Q9CUyJtAaUNcTxRf5Q== route-recognizer@^0.3.3: version "0.3.4" @@ -10951,14 +11540,6 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -schema-utils@^0.4.0: - version "0.4.7" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" - integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== - dependencies: - ajv "^6.1.0" - ajv-keywords "^3.1.0" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -11064,16 +11645,6 @@ send@0.17.2: range-parser "~1.2.1" statuses "~1.5.0" -"sentrybrowser5@npm:@sentry/browser@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz#c28f49d551db3172080caef9f18791a7fd39e3b3" - integrity sha512-rOb58ZNVJWh1VuMuBG1mL9r54nZqKeaIlwSlvzJfc89vyfd7n6tQ1UXMN383QBz/MS5H5z44Hy5eE+7pCrYAfw== - dependencies: - "@sentry/core" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - "sentrybrowser7@npm:@sentry/browser@^7.21.1": version "7.21.1" resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.21.1.tgz#bffa3ea19050c06400107d2297b9802f9719f98b" @@ -11326,7 +11897,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.13, source-map-support@~0.5.12: +source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== @@ -11334,6 +11905,14 @@ source-map-support@0.5.13, source-map-support@~0.5.12: buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.20" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" + integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" @@ -11349,6 +11928,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + space-separated-tokens@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" @@ -11429,6 +12013,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" @@ -11719,6 +12308,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" @@ -11824,6 +12426,16 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.4.0: + version "5.14.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" + integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -11848,6 +12460,11 @@ throttle-debounce@^2.1.0: resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.1.0.tgz#257e648f0a56bd9e54fe0f132c4ab8611df4e1d5" integrity sha512-AOvyNahXQuU7NN+VVvOOX+uW6FPaWdAOdRP5HfwYxAfCzXTFKRMoIMk+n+po318+ktcChx+F1Dd91G3YHeMKyg== +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -11980,7 +12597,7 @@ tr46@^3.0.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== traverse@^0.6.7: version "0.6.7" @@ -12114,6 +12731,11 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^2.0.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -12475,6 +13097,34 @@ 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.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/vite-plugin-ruby/-/vite-plugin-ruby-3.1.2.tgz#513297e64e3c9a2e2eace6c39856870f5aef0e90" + integrity sha512-Pp/NR79lV96wEOjp5MhVHuFxqUhEMNqc7L/02i+XXl1Mq1ab7s2j9kAgtiqp5QKxMd1jy8gV32PgWWVOmcd7/Q== + dependencies: + debug "^4.3.4" + fast-glob "^3.2.11" + +vite-svg-loader@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/vite-svg-loader/-/vite-svg-loader-3.4.0.tgz#4638827fe86b85ecfcea1ad61dd972c351d5befd" + integrity sha512-xD3yb1FX+f4l9/TmsYIqyki8ncpcVsZ2gEJFh/wLuNNqt55C8OJ+JlcMWOA/Z9gRA+ylV/TA1wmJLxzZkCRqlA== + dependencies: + "@vue/compiler-sfc" "^3.2.20" + svgo "^2.7.0" + +vite@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.1.tgz#3b18b81a4e85ce3df5cbdbf4c687d93ebf402e6b" + integrity sha512-LM9WWea8vsxhr782r9ntg+bhSFS06FJgCvvB0+8hf8UWtvaiDagKYWXndjfX6kGl74keHJUcpzrQliDXZlF5yg== + dependencies: + esbuild "^0.16.14" + postcss "^8.4.21" + resolve "^1.22.1" + rollup "^3.10.0" + 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" @@ -12527,10 +13177,10 @@ vue-hot-reload-api@^2.3.0: resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2" integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== -vue-loader@15.9.6: - version "15.9.6" - resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.6.tgz#f4bb9ae20c3a8370af3ecf09b8126d38ffdb6b8b" - integrity sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg== +vue-loader@^15.10: + version "15.10.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.10.0.tgz#2a12695c421a2a2cc2138f05a949d04ed086e38b" + integrity sha512-VU6tuO8eKajrFeBzMssFUP9SvakEeeSi1BxdTH5o3+1yUyrldp8IERkSdXlMI2t4kxF2sqYUDsQY+WJBxzBmZg== dependencies: "@vue/component-compiler-utils" "^3.1.0" hash-sum "^1.0.2" @@ -12568,13 +13218,13 @@ vue-style-loader@^4.1.0: hash-sum "^1.0.2" loader-utils "^1.0.2" -vue-template-compiler@2.6.14: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763" - integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g== +vue-template-compiler@^2.7.10: + version "2.7.10" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.7.10.tgz#9e20f35b2fdccacacf732dd7dedb49bf65f4556b" + integrity sha512-QO+8R9YRq1Gudm8ZMdo/lImZLJVUIAM8c07Vp84ojdDAf8HmPJc7XB556PcXV218k2AkKznsRz6xB5uOjAC4EQ== dependencies: de-indent "^1.0.2" - he "^1.1.0" + he "^1.2.0" vue-template-es2015-compiler@^1.9.0: version "1.9.1" @@ -12586,10 +13236,13 @@ vue-virtual-scroll-list@^1.4.7: resolved "https://registry.yarnpkg.com/vue-virtual-scroll-list/-/vue-virtual-scroll-list-1.4.7.tgz#12ee26833885f5bb4d37dc058085ccf3ce5b5a74" integrity sha512-R8bk+k7WMGGoFQ9xF0krGCAlZhQjbJOkDUX+YZD2J+sHQWTzDtmTLS6kiIJToOHK1d/8QPGiD8fd9w0lDP4arg== -vue@2.6.14: - version "2.6.14" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" - integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== +vue@^2.7.10: + version "2.7.10" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.7.10.tgz#ae516cc6c88e1c424754468844218fdd5e280f40" + integrity sha512-HmFC70qarSHPXcKtW8U8fgIkF6JGvjEmDiVInTkKZP0gIlEPhlVlcJJLkdGIDiNkIeA2zJPQTWJUI4iWe+AVfg== + dependencies: + "@vue/compiler-sfc" "2.7.10" + csstype "^3.1.0" vuedraggable@^2.23.0: version "2.23.0" @@ -12677,7 +13330,7 @@ web-vitals@^0.2.4: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^7.0.0: version "7.0.0" @@ -12858,7 +13511,7 @@ whatwg-url@^11.0.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -12922,13 +13575,13 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -worker-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-2.0.0.tgz#45fda3ef76aca815771a89107399ee4119b430ac" - integrity sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw== +worker-loader@3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" + integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== dependencies: - loader-utils "^1.0.0" - schema-utils "^0.4.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" wrap-ansi@^6.2.0: version "6.2.0"