Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
054378fd4a
commit
50a75eed99
17 changed files with 105 additions and 31 deletions
|
@ -566,9 +566,6 @@ Graphql/Descriptions:
|
|||
RSpec/ImplicitSubject:
|
||||
Enabled: false
|
||||
|
||||
RSpec/HooksBeforeExamples:
|
||||
Enabled: false
|
||||
|
||||
RSpec/Be:
|
||||
Enabled: false
|
||||
|
||||
|
|
76
.rubocop_todo/rspec/hooks_before_examples.yml
Normal file
76
.rubocop_todo/rspec/hooks_before_examples.yml
Normal file
|
@ -0,0 +1,76 @@
|
|||
---
|
||||
# Cop supports --auto-correct.
|
||||
RSpec/HooksBeforeExamples:
|
||||
Exclude:
|
||||
- 'ee/spec/features/boards/swimlanes/epics_swimlanes_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/boards/epic_boards/destroy_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/escalation_policy/destroy_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/issuable_resource_link/create_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/issuable_resource_link/destroy_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/incident_management/oncall_schedule/update_spec.rb'
|
||||
- 'ee/spec/graphql/mutations/issues/set_escalation_policy_spec.rb'
|
||||
- 'ee/spec/graphql/types/app_sec/fuzzing/coverage/corpus_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/dast/profile_schedule_type_spec.rb'
|
||||
- 'ee/spec/graphql/types/dast/profile_type_spec.rb'
|
||||
- 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb'
|
||||
- 'ee/spec/lib/ee/gitlab/usage_data_counters/hll_redis_counter_spec.rb'
|
||||
- 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb'
|
||||
- 'ee/spec/models/ee/merge_request_diff_spec.rb'
|
||||
- 'ee/spec/models/merge_train_spec.rb'
|
||||
- 'ee/spec/requests/api/boards_spec.rb'
|
||||
- 'ee/spec/requests/ee/projects/deploy_tokens_controller_spec.rb'
|
||||
- 'ee/spec/services/ee/groups/deploy_tokens/create_service_spec.rb'
|
||||
- 'ee/spec/services/ee/groups/deploy_tokens/destroy_service_spec.rb'
|
||||
- 'ee/spec/services/ee/groups/deploy_tokens/revoke_service_spec.rb'
|
||||
- 'ee/spec/services/ee/projects/deploy_tokens/destroy_service_spec.rb'
|
||||
- 'ee/spec/services/merge_trains/create_pipeline_service_spec.rb'
|
||||
- 'qa/qa/specs/features/api/1_manage/project_access_token_spec.rb'
|
||||
- 'qa/qa/specs/features/api/1_manage/user_access_termination_spec.rb'
|
||||
- 'qa/qa/specs/features/api/1_manage/user_inherited_access_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/login/log_in_with_2fa_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/project/project_access_token_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/user/follow_user_activity_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/user/user_access_termination_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/1_manage/user/user_inherited_access_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb'
|
||||
- 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/13_secure/security_reports_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/group/prevent_forking_outside_group_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb'
|
||||
- 'qa/qa/specs/features/ee/browser_ui/1_manage/user/minimal_access_user_spec.rb'
|
||||
- 'qa/spec/resource/reusable_collection_spec.rb'
|
||||
- 'qa/spec/specs/runner_spec.rb'
|
||||
- 'spec/controllers/import/github_controller_spec.rb'
|
||||
- 'spec/features/projects/pages/user_configures_pages_pipeline_spec.rb'
|
||||
- 'spec/graphql/resolvers/design_management/design_resolver_spec.rb'
|
||||
- 'spec/graphql/resolvers/design_management/designs_resolver_spec.rb'
|
||||
- 'spec/graphql/resolvers/project_pipeline_resolver_spec.rb'
|
||||
- 'spec/lib/banzai/filter/inline_grafana_metrics_filter_spec.rb'
|
||||
- 'spec/lib/banzai/filter/references/user_reference_filter_spec.rb'
|
||||
- 'spec/lib/feature/definition_spec.rb'
|
||||
- 'spec/lib/gitlab/auth/saml/user_spec.rb'
|
||||
- 'spec/lib/gitlab/email/handler/create_issue_handler_spec.rb'
|
||||
- 'spec/lib/gitlab/email/handler/create_merge_request_handler_spec.rb'
|
||||
- 'spec/lib/gitlab/email/handler/create_note_handler_spec.rb'
|
||||
- 'spec/lib/gitlab/email/hook/disable_email_interceptor_spec.rb'
|
||||
- 'spec/lib/gitlab/tracking/event_definition_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metric_definition_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_counters/hll_redis_counter_spec.rb'
|
||||
- 'spec/lib/mattermost/session_spec.rb'
|
||||
- 'spec/models/ci/build_trace_chunk_spec.rb'
|
||||
- 'spec/models/clusters/applications/ingress_spec.rb'
|
||||
- 'spec/models/clusters/applications/knative_spec.rb'
|
||||
- 'spec/models/integrations/chat_message/pipeline_message_spec.rb'
|
||||
- 'spec/models/repository_spec.rb'
|
||||
- 'spec/serializers/pipeline_details_entity_spec.rb'
|
||||
- 'spec/services/feature_flags/hook_service_spec.rb'
|
||||
- 'spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb'
|
||||
- 'spec/support/shared_examples/lib/gitlab/cycle_analytics/deployment_metrics.rb'
|
|
@ -11,7 +11,7 @@ When developing a feature that requires architectural design, or changing the fu
|
|||
A Frontend Architect is an expert who makes high-level Frontend design decisions
|
||||
and decides on technical standards, including coding standards and frameworks.
|
||||
|
||||
Architectural decisions should be accessible to everyone, so please document
|
||||
Architectural decisions should be accessible to everyone, so document
|
||||
them in the relevant Merge Request discussion or by updating our documentation
|
||||
when appropriate.
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
Anti-patterns may seem like good approaches at first, but it has been shown that they bring more ills than benefits. These should
|
||||
generally be avoided.
|
||||
|
||||
Throughout the GitLab codebase, there may be historic uses of these anti-patterns. Please [use discretion](https://about.gitlab.com/handbook/engineering/development/principles/#balance-refactoring-and-velocity)
|
||||
Throughout the GitLab codebase, there may be historic uses of these anti-patterns. [Use discretion](https://about.gitlab.com/handbook/engineering/development/principles/#balance-refactoring-and-velocity)
|
||||
when figuring out whether or not to refactor, when touching code that uses one of these legacy patterns.
|
||||
|
||||
NOTE:
|
||||
|
@ -62,7 +62,7 @@ could be appropriate:
|
|||
- When a responsibility is truly global and should be referenced across the application
|
||||
(for example, an application-wide Event Bus).
|
||||
|
||||
Even in these scenarios, please consider avoiding the Shared Global Object pattern because the
|
||||
Even in these scenarios, consider avoiding the Shared Global Object pattern because the
|
||||
side-effects can be notoriously difficult to reason with.
|
||||
|
||||
### References
|
||||
|
@ -140,7 +140,7 @@ that a Singleton could be appropriate in the following rare cases:
|
|||
- We need to manage some resource that **MUST** have just 1 instance (that is, some hardware restriction).
|
||||
- There is a real [cross-cutting concern](https://en.wikipedia.org/wiki/Cross-cutting_concern) (for example, logging) and a Singleton provides the simplest API.
|
||||
|
||||
Even in these scenarios, please consider avoiding the Singleton pattern.
|
||||
Even in these scenarios, consider avoiding the Singleton pattern.
|
||||
|
||||
### What alternatives are there to the Singleton pattern?
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Copy the content over to your issue or merge request and if something doesn't ap
|
|||
|
||||
This checklist is intended to help us during development of bigger features/refactorings. It is not a "use it always and every point always matches" list.
|
||||
|
||||
Please use your best judgment when to use it and please contribute new points through merge requests if something comes to your mind.
|
||||
Use your best judgment when to use it and contribute new points through merge requests if something comes to your mind.
|
||||
|
||||
```markdown
|
||||
### Frontend development
|
||||
|
@ -39,7 +39,7 @@ Please use your best judgment when to use it and please contribute new points th
|
|||
- [ ] **Cookie Mode** Think about hiding the feature behind a cookie flag if the implementation is on top of existing features
|
||||
- [ ] **New route** Are you refactoring something big then you might consider adding a new route where you implement the new feature and when finished delete the current route and rename the new one. (for example 'merge_request' and 'new_merge_request')
|
||||
- [ ] **Setup** Is there any specific setup needed for your implementation (for example a kubernetes cluster)? Then let everyone know if it is not already mentioned where they can find documentation (if it doesn't exist - create it)
|
||||
- [ ] **Security** Are there any new security relevant implementations? Then please contact the security team for an app security review. If you are not sure ask our [domain expert](https://about.gitlab.com/handbook/engineering/frontend/#frontend-domain-experts)
|
||||
- [ ] **Security** Are there any new security relevant implementations? Then contact the security team for an app security review. If you are not sure ask our [domain expert](https://about.gitlab.com/handbook/engineering/frontend/#frontend-domain-experts)
|
||||
|
||||
#### During development
|
||||
|
||||
|
@ -90,7 +90,7 @@ code that is unused:
|
|||
|
||||
### Merge Request Review
|
||||
|
||||
With the purpose of being [respectful of others' time](https://about.gitlab.com/handbook/values/#be-respectful-of-others-time) please follow these guidelines when asking for a review:
|
||||
With the purpose of being [respectful of others' time](https://about.gitlab.com/handbook/values/#be-respectful-of-others-time), follow these guidelines when asking for a review:
|
||||
|
||||
- Make sure your Merge Request:
|
||||
- milestone is set
|
||||
|
@ -101,7 +101,7 @@ With the purpose of being [respectful of others' time](https://about.gitlab.com/
|
|||
- includes tests
|
||||
- includes a changelog entry (when necessary)
|
||||
- Before assigning to a maintainer, assign to a reviewer.
|
||||
- If you assigned a merge request or pinged someone directly, be patient because we work in different timezones and asynchronously. Unless the merge request is urgent (like fixing a broken default branch), please don't DM or reassign the merge request before waiting for a 24-hour window.
|
||||
- If you assigned a merge request or pinged someone directly, be patient because we work in different timezones and asynchronously. Unless the merge request is urgent (like fixing a broken default branch), don't DM or reassign the merge request before waiting for a 24-hour window.
|
||||
- If you have a question regarding your merge request/issue, make it on the merge request/issue. When we DM each other, we no longer have a SSOT and [no one else is able to contribute](https://about.gitlab.com/handbook/values/#public-by-default).
|
||||
- When you have a big **Draft** merge request with many changes, you're advised to get the review started before adding/removing significant code. Make sure it is assigned well before the release cut-off, as the reviewers/maintainers would always prioritize reviewing finished MRs before the **Draft** ones.
|
||||
- Make sure to remove the `Draft:` title before the last round of review.
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
## Rules of Frontend FAQ
|
||||
|
||||
1. **You talk about Frontend FAQ.**
|
||||
Please share links to it whenever applicable, so more eyes catch when content
|
||||
Share links to it whenever applicable, so more eyes catch when content
|
||||
gets outdated.
|
||||
1. **Keep it short and simple.**
|
||||
Whenever an answer needs more than two sentences it does not belong here.
|
||||
|
@ -17,7 +17,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
Linking to relevant source code, issue / epic, or other documentation helps
|
||||
to understand the answer.
|
||||
1. **If you see something, do something.**
|
||||
Please remove or update any content that is outdated as soon as you see it.
|
||||
Remove or update any content that is outdated as soon as you see it.
|
||||
|
||||
## FAQ
|
||||
|
||||
|
@ -101,7 +101,7 @@ axios.get(joinPaths(gon.gitlab_url, '-', 'foo'))
|
|||
axios.get(joinPaths(gon.relative_url_root, '-', 'foo'))
|
||||
```
|
||||
|
||||
Also, please try not to hardcode paths in the Frontend, but instead receive them from the Backend (see next section).
|
||||
Also, try not to hardcode paths in the Frontend, but instead receive them from the Backend (see next section).
|
||||
When referencing Backend rails paths, avoid using `*_url`, and use `*_path` instead.
|
||||
|
||||
Example:
|
||||
|
|
|
@ -109,7 +109,7 @@ Default client accepts two parameters: `resolvers` and `config`.
|
|||
|
||||
If you are making multiple queries to the same Apollo client object you might encounter the following error: `Cache data may be lost when replacing the someProperty field of a Query object. To address this problem, either ensure all objects of SomeEntityhave an id or a custom merge function`. We are already checking `ID` presence for every GraphQL type that has an `ID`, so this shouldn't be the case. Most likely, the `SomeEntity` type doesn't have an `ID` property, and to fix this warning we need to define a custom merge function.
|
||||
|
||||
We have some client-wide types with `merge: true` defined in the default client as [typePolicies](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/lib/graphql.js) (this means that Apollo will merge existing and incoming responses in the case of subsequent queries). Please consider adding `SomeEntity` there or defining a custom merge function for it.
|
||||
We have some client-wide types with `merge: true` defined in the default client as [typePolicies](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/assets/javascripts/lib/graphql.js) (this means that Apollo will merge existing and incoming responses in the case of subsequent queries). Consider adding `SomeEntity` there or defining a custom merge function for it.
|
||||
|
||||
## GraphQL Queries
|
||||
|
||||
|
@ -212,7 +212,7 @@ with a **new and updated** object.
|
|||
|
||||
To facilitate the process of updating the cache and returning the new object we
|
||||
use the library [Immer](https://immerjs.github.io/immer/).
|
||||
Please, follow these conventions:
|
||||
Follow these conventions:
|
||||
|
||||
- The updated cache is named `data`.
|
||||
- The original cache data is named `sourceData`.
|
||||
|
@ -1490,7 +1490,7 @@ describe('Some component', () => {
|
|||
When mocking resolved values, ensure the structure of the response is the same
|
||||
as the actual API response. For example, root property should be `data`.
|
||||
|
||||
When testing queries, please keep in mind they are promises, so they need to be _resolved_ to render a result. Without resolving, we can check the `loading` state of the query:
|
||||
When testing queries, keep in mind they are promises, so they need to be _resolved_ to render a result. Without resolving, we can check the `loading` state of the query:
|
||||
|
||||
```javascript
|
||||
it('renders a loading state', () => {
|
||||
|
@ -2055,7 +2055,7 @@ automatically adds the `__typename` for you upon generation.
|
|||
|
||||
### Warning about losing cache data
|
||||
|
||||
Sometimes you can see a warning in the console: `Cache data may be lost when replacing the someProperty field of a Query object. To address this problem, either ensure all objects of SomeEntityhave an id or a custom merge function`. Please check section about [multiple queries](#multiple-client-queries-for-the-same-object) to resolve an issue.
|
||||
Sometimes you can see a warning in the console: `Cache data may be lost when replacing the someProperty field of a Query object. To address this problem, either ensure all objects of SomeEntityhave an id or a custom merge function`. Check section about [multiple queries](#multiple-client-queries-for-the-same-object) to resolve an issue.
|
||||
|
||||
```yaml
|
||||
- current_route_path = request.fullpath.match(/-\/tree\/[^\/]+\/(.+$)/).to_a[1]
|
||||
|
|
|
@ -81,7 +81,7 @@ export default {
|
|||
|
||||
### Usage in HTML/JS
|
||||
|
||||
Please use the following function inside JS to render an icon:
|
||||
Use the following function inside JS to render an icon:
|
||||
`gl.utils.spriteIcon(iconName)`
|
||||
|
||||
## Loading icon
|
||||
|
|
|
@ -220,7 +220,7 @@ Use the following rules when creating real-time solutions.
|
|||
A `Poll-Interval: -1` means you should disable polling, and this must be implemented.
|
||||
1. A response with HTTP status different from 2XX should disable polling as well.
|
||||
1. Use a common library for polling.
|
||||
1. Poll on active tabs only. Please use [Visibility](https://github.com/ai/visibilityjs).
|
||||
1. Poll on active tabs only. Use [Visibility](https://github.com/ai/visibilityjs).
|
||||
1. Use regular polling intervals, do not use backoff polling or jitter, as the interval is
|
||||
controlled by the server.
|
||||
1. The backend code is likely to be using ETags. You do not and should not check for status
|
||||
|
|
|
@ -123,7 +123,8 @@ things.map(parseInt);
|
|||
things.map(Number);
|
||||
```
|
||||
|
||||
**PLEASE NOTE:** If the String could represent a non-integer (i.e., it includes a decimal), **do not** use `parseInt`. Consider `Number` or `parseFloat` instead.
|
||||
NOTE:
|
||||
If the String could represent a non-integer (i.e., it includes a decimal), **do not** use `parseInt`. Consider `Number` or `parseFloat` instead.
|
||||
|
||||
## CSS Selectors - Use `js-` prefix
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ easy to maintain, and performant for the end-user.
|
|||
|
||||
## Rules
|
||||
|
||||
Our CSS is a mixture of current and legacy approaches. That means sometimes it may be difficult to follow this guide to the letter; it means you are likely to run into exceptions, where following the guide is difficult to impossible without major effort. In those cases, you may work with your reviewers and maintainers to identify an approach that does not fit these rules. Please endeavor to limit these cases.
|
||||
Our CSS is a mixture of current and legacy approaches. That means sometimes it may be difficult to follow this guide to the letter; it means you are likely to run into exceptions, where following the guide is difficult to impossible without major effort. In those cases, you may work with your reviewers and maintainers to identify an approach that does not fit these rules. Try to limit these cases.
|
||||
|
||||
### Utility Classes
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
## Linting
|
||||
|
||||
We default to [eslint-vue-plugin](https://github.com/vuejs/eslint-plugin-vue), with the `plugin:vue/recommended`.
|
||||
Please check this [rules](https://github.com/vuejs/eslint-plugin-vue#bulb-rules) for more documentation.
|
||||
Check the [rules](https://github.com/vuejs/eslint-plugin-vue#bulb-rules) for more documentation.
|
||||
|
||||
## Basic Rules
|
||||
|
||||
|
|
|
@ -175,7 +175,7 @@ preferred editor (all major editors are supported) accordingly. We suggest
|
|||
setting up Prettier to run when each file is saved. For instructions about using
|
||||
Prettier in your preferred editor, see the [Prettier documentation](https://prettier.io/docs/en/editors.html).
|
||||
|
||||
Please take care that you only let Prettier format the same file types as the global Yarn script does (`.js`, `.vue`, `.graphql`, and `.scss`). For example, you can exclude file formats in your Visual Studio Code settings file:
|
||||
Take care that you only let Prettier format the same file types as the global Yarn script does (`.js`, `.vue`, `.graphql`, and `.scss`). For example, you can exclude file formats in your Visual Studio Code settings file:
|
||||
|
||||
```json
|
||||
"prettier.disableLanguages": [
|
||||
|
|
|
@ -12,7 +12,7 @@ Running into a problem? Maybe this will help ¯\_(ツ)_/¯.
|
|||
|
||||
### This guide doesn't contain the issue I ran into
|
||||
|
||||
If you run into a Frontend development issue that is not in this guide, please consider updating this guide with your issue and possible remedies. This way future adventurers can face these dragons with more success, being armed with your experience and knowledge.
|
||||
If you run into a Frontend development issue that is not in this guide, consider updating this guide with your issue and possible remedies. This way future adventurers can face these dragons with more success, being armed with your experience and knowledge.
|
||||
|
||||
## Testing issues
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ Instead of creating an mutation to toggle the loading state, we should:
|
|||
|
||||
As a result, we can dispatch the `fetchNamespace` action from the component and it is responsible to commit `REQUEST_NAMESPACE`, `RECEIVE_NAMESPACE_SUCCESS` and `RECEIVE_NAMESPACE_ERROR` mutations.
|
||||
|
||||
> Previously, we were dispatching actions from the `fetchNamespace` action instead of committing mutation, so please don't be confused if you find a different pattern in the older parts of the codebase. However, we encourage leveraging a new pattern whenever you write new Vuex stores.
|
||||
> Previously, we were dispatching actions from the `fetchNamespace` action instead of committing mutation, so don't be confused if you find a different pattern in the older parts of the codebase. However, we encourage leveraging a new pattern whenever you write new Vuex stores.
|
||||
|
||||
By following this pattern we guarantee:
|
||||
|
||||
|
|
|
@ -243,7 +243,7 @@
|
|||
"sass": "^1.49.9",
|
||||
"stylelint": "^14.9.1",
|
||||
"timezone-mock": "^1.0.8",
|
||||
"webpack-dev-server": "4.9.3",
|
||||
"webpack-dev-server": "4.10.0",
|
||||
"xhr-mock": "^2.5.1",
|
||||
"yarn-check-webpack-plugin": "^1.2.0",
|
||||
"yarn-deduplicate": "^5.0.0"
|
||||
|
|
|
@ -12127,10 +12127,10 @@ webpack-dev-middleware@^5.3.1:
|
|||
range-parser "^1.2.1"
|
||||
schema-utils "^4.0.0"
|
||||
|
||||
webpack-dev-server@4.9.3:
|
||||
version "4.9.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz#2360a5d6d532acb5410a668417ad549ee3b8a3c9"
|
||||
integrity sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==
|
||||
webpack-dev-server@4.10.0:
|
||||
version "4.10.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz#de270d0009eba050546912be90116e7fd740a9ca"
|
||||
integrity sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==
|
||||
dependencies:
|
||||
"@types/bonjour" "^3.5.9"
|
||||
"@types/connect-history-api-fallback" "^1.3.5"
|
||||
|
|
Loading…
Reference in a new issue