Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
0eb4fd2f32
commit
49a923c646
14 changed files with 145 additions and 170 deletions
|
@ -37,6 +37,8 @@
|
|||
paths:
|
||||
- webpack-report/
|
||||
- assets-compile.log
|
||||
# We consume these files in GitLab UI for integration tests:
|
||||
# https://gitlab.com/gitlab-org/gitlab-ui/-/blob/e88493b3c855aea30bf60baee692a64606b0eb1e/.storybook/preview-head.pug#L1
|
||||
- public/assets/application-*.css
|
||||
- public/assets/application-*.css.gz
|
||||
when: always
|
||||
|
|
51
app/models/concerns/has_unique_internal_users.rb
Normal file
51
app/models/concerns/has_unique_internal_users.rb
Normal file
|
@ -0,0 +1,51 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module HasUniqueInternalUsers
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
class_methods do
|
||||
private
|
||||
|
||||
def unique_internal(scope, username, email_pattern, &block)
|
||||
scope.first || create_unique_internal(scope, username, email_pattern, &block)
|
||||
end
|
||||
|
||||
def create_unique_internal(scope, username, email_pattern, &creation_block)
|
||||
# Since we only want a single one of these in an instance, we use an
|
||||
# exclusive lease to ensure than this block is never run concurrently.
|
||||
lease_key = "user:unique_internal:#{username}"
|
||||
lease = Gitlab::ExclusiveLease.new(lease_key, timeout: 1.minute.to_i)
|
||||
|
||||
until uuid = lease.try_obtain
|
||||
# Keep trying until we obtain the lease. To prevent hammering Redis too
|
||||
# much we'll wait for a bit between retries.
|
||||
sleep(1)
|
||||
end
|
||||
|
||||
# Recheck if the user is already present. One might have been
|
||||
# added between the time we last checked (first line of this method)
|
||||
# and the time we acquired the lock.
|
||||
existing_user = uncached { scope.first }
|
||||
return existing_user if existing_user.present?
|
||||
|
||||
uniquify = Uniquify.new
|
||||
|
||||
username = uniquify.string(username) { |s| User.find_by_username(s) }
|
||||
|
||||
email = uniquify.string(-> (n) { Kernel.sprintf(email_pattern, n) }) do |s|
|
||||
User.find_by_email(s)
|
||||
end
|
||||
|
||||
user = scope.build(
|
||||
username: username,
|
||||
email: email,
|
||||
&creation_block
|
||||
)
|
||||
|
||||
Users::UpdateService.new(user, user: user).execute(validate: false)
|
||||
user
|
||||
ensure
|
||||
Gitlab::ExclusiveLease.cancel(lease_key, uuid)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -21,6 +21,7 @@ class User < ApplicationRecord
|
|||
include OptionallySearch
|
||||
include FromUnion
|
||||
include BatchDestroyDependentAssociations
|
||||
include HasUniqueInternalUsers
|
||||
include IgnorableColumns
|
||||
|
||||
DEFAULT_NOTIFICATION_LEVEL = :participating
|
||||
|
@ -612,7 +613,7 @@ class User < ApplicationRecord
|
|||
# owns records previously belonging to deleted users.
|
||||
def ghost
|
||||
email = 'ghost%s@example.com'
|
||||
unique_internal(where(ghost: true), 'ghost', email) do |u|
|
||||
unique_internal(where(ghost: true, user_type: :ghost), 'ghost', email) do |u|
|
||||
u.bio = _('This is a "Ghost User", created to hold all issues authored by users that have since been deleted. This user cannot be removed.')
|
||||
u.name = 'Ghost User'
|
||||
end
|
||||
|
@ -650,6 +651,13 @@ class User < ApplicationRecord
|
|||
ghost? || bot?
|
||||
end
|
||||
|
||||
# We are transitioning from ghost boolean column to user_type
|
||||
# so we need to read from old column for now
|
||||
# @see https://gitlab.com/gitlab-org/gitlab/-/issues/210025
|
||||
def ghost?
|
||||
ghost
|
||||
end
|
||||
|
||||
def self.internal
|
||||
where(ghost: true).or(bots)
|
||||
end
|
||||
|
@ -1793,48 +1801,6 @@ class User < ApplicationRecord
|
|||
end
|
||||
end
|
||||
|
||||
def self.unique_internal(scope, username, email_pattern, &block)
|
||||
scope.first || create_unique_internal(scope, username, email_pattern, &block)
|
||||
end
|
||||
|
||||
def self.create_unique_internal(scope, username, email_pattern, &creation_block)
|
||||
# Since we only want a single one of these in an instance, we use an
|
||||
# exclusive lease to ensure than this block is never run concurrently.
|
||||
lease_key = "user:unique_internal:#{username}"
|
||||
lease = Gitlab::ExclusiveLease.new(lease_key, timeout: 1.minute.to_i)
|
||||
|
||||
until uuid = lease.try_obtain
|
||||
# Keep trying until we obtain the lease. To prevent hammering Redis too
|
||||
# much we'll wait for a bit between retries.
|
||||
sleep(1)
|
||||
end
|
||||
|
||||
# Recheck if the user is already present. One might have been
|
||||
# added between the time we last checked (first line of this method)
|
||||
# and the time we acquired the lock.
|
||||
existing_user = uncached { scope.first }
|
||||
return existing_user if existing_user.present?
|
||||
|
||||
uniquify = Uniquify.new
|
||||
|
||||
username = uniquify.string(username) { |s| User.find_by_username(s) }
|
||||
|
||||
email = uniquify.string(-> (n) { Kernel.sprintf(email_pattern, n) }) do |s|
|
||||
User.find_by_email(s)
|
||||
end
|
||||
|
||||
user = scope.build(
|
||||
username: username,
|
||||
email: email,
|
||||
&creation_block
|
||||
)
|
||||
|
||||
Users::UpdateService.new(user, user: user).execute(validate: false) # rubocop: disable CodeReuse/ServiceClass
|
||||
user
|
||||
ensure
|
||||
Gitlab::ExclusiveLease.cancel(lease_key, uuid)
|
||||
end
|
||||
|
||||
def groups_with_developer_maintainer_project_access
|
||||
project_creation_levels = [::Gitlab::Access::DEVELOPER_MAINTAINER_PROJECT_ACCESS]
|
||||
|
||||
|
|
|
@ -2,13 +2,11 @@
|
|||
|
||||
module UserTypeEnums
|
||||
def self.types
|
||||
bots.merge(human: nil)
|
||||
@types ||= bots.merge(human: nil, ghost: 5)
|
||||
end
|
||||
|
||||
def self.bots
|
||||
{
|
||||
alert_bot: 2
|
||||
}.with_indifferent_access
|
||||
@bots ||= { alert_bot: 2 }.with_indifferent_access
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fill user_type for ghost users
|
||||
merge_request: 27387
|
||||
author:
|
||||
type: other
|
13
db/migrate/20200313101649_fill_ghost_user_type.rb
Normal file
13
db/migrate/20200313101649_fill_ghost_user_type.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class FillGhostUserType < ActiveRecord::Migration[6.0]
|
||||
DOWNTIME = false
|
||||
|
||||
def up
|
||||
execute('UPDATE users SET user_type = 5 WHERE ghost IS TRUE AND user_type IS NULL')
|
||||
end
|
||||
|
||||
def down
|
||||
execute('UPDATE users SET user_type = NULL WHERE ghost IS TRUE AND user_type IS NOT NULL')
|
||||
end
|
||||
end
|
|
@ -26,7 +26,7 @@ The following steps enable AWS Cognito as an authentication provider:
|
|||
- **Callback URL** - `https://gitlab.example.com/users/auth/cognito/callback`
|
||||
- Substitute the URL of your GitLab instance for `gitlab.example.com`
|
||||
- **Allowed OAuth Flows** - Authorization code grant
|
||||
- **Allowed OAuth Scopes** - `email` and `openid`
|
||||
- **Allowed OAuth2 Scopes** - `email`, `openid`, and `profile`
|
||||
|
||||
1. Save changes for the app client settings.
|
||||
1. Under **Domain name** include the AWS domain name for your AWS Cognito application.
|
||||
|
@ -54,15 +54,17 @@ Include the code block in the `/etc/gitlab/gitlab.rb` file:
|
|||
"app_id" => "CLIENT ID",
|
||||
"app_secret" => "CLIENT SECRET",
|
||||
"args" => {
|
||||
"scope" => "openid profile email",
|
||||
client_options: {
|
||||
'site' => 'https://your_domain.auth.your_region.amazoncognito.com',
|
||||
'authorize_url' => '/login',
|
||||
'authorize_url' => '/oauth2/authorize',
|
||||
'token_url' => '/oauth2/token',
|
||||
'user_info_url' => '/oauth2/userInfo'
|
||||
},
|
||||
user_response_structure: {
|
||||
root_path: [],
|
||||
attributes: { nickname: 'email'}
|
||||
id_path: ['sub'],
|
||||
attributes: { nickname: 'email', name: 'email', email: 'email' }
|
||||
},
|
||||
name: 'cognito',
|
||||
strategy_class: "OmniAuth::Strategies::OAuth2Generic"
|
||||
|
|
|
@ -184,10 +184,9 @@ simply be treated as if you had invoked `save` from outside the block.
|
|||
|
||||
There are a few restrictions to how these APIs can be used:
|
||||
|
||||
- `ON CONFLICT` behavior cannot currently be configured; an error will be raised on primary key conflicts.
|
||||
- `BulkInsertableAssociations` furthermore has the following restrictions:
|
||||
- only compatible with `has_many` relations.
|
||||
- does not support `has_many through: ...` relations.
|
||||
- `BulkInsertableAssociations`:
|
||||
- It is currently only compatible with `has_many` relations.
|
||||
- It does not yet support `has_many through: ...` relations.
|
||||
- Writing [`jsonb`](https://www.postgresql.org/docs/current/datatype-json.html) content is
|
||||
[not currently supported](https://gitlab.com/gitlab-org/gitlab/-/issues/210560).
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ class CleanupUsersUpdatedAtRename < ActiveRecord::Migration[4.2]
|
|||
end
|
||||
```
|
||||
|
||||
NOTE: **Note:** If you're renaming a large table, please carefully consider the state when the first migration has run but the second cleanup migration hasn't been run yet.
|
||||
NOTE: **Note:** If you're renaming a [large table](https://gitlab.com/gitlab-org/gitlab/-/blob/master/rubocop/migration_helpers.rb#L9), please carefully consider the state when the first migration has run but the second cleanup migration hasn't been run yet.
|
||||
With [Canary](https://about.gitlab.com/handbook/engineering/infrastructure/library/canary/) it is possible that the system runs in this state for a significant amount of time.
|
||||
|
||||
## Changing Column Constraints
|
||||
|
|
|
@ -17,10 +17,11 @@ to learn how to protect your organization.
|
|||
If you are using [GitLab CI/CD](../../../ci/README.md), you can analyze your source code for known
|
||||
vulnerabilities using Static Application Security Testing (SAST).
|
||||
|
||||
You can take advantage of SAST by either [including the CI job](#configuration) in
|
||||
your existing `.gitlab-ci.yml` file or by implicitly using
|
||||
[Auto SAST](../../../topics/autodevops/index.md#auto-sast-ultimate)
|
||||
that is provided by [Auto DevOps](../../../topics/autodevops/index.md).
|
||||
You can take advantage of SAST by doing one of the following:
|
||||
|
||||
- [Including the CI job](#configuration) in your existing `.gitlab-ci.yml` file.
|
||||
- Implicitly using [Auto SAST](../../../topics/autodevops/index.md#auto-sast-ultimate) provided by
|
||||
[Auto DevOps](../../../topics/autodevops/index.md).
|
||||
|
||||
GitLab checks the SAST report, compares the found vulnerabilities between the
|
||||
source and target branches, and shows the information right on the merge request.
|
||||
|
@ -91,12 +92,14 @@ The Java analyzers can also be used for variants like the
|
|||
|
||||
## Configuration
|
||||
|
||||
For GitLab 11.9 and later, to enable SAST, you must
|
||||
[include](../../../ci/yaml/README.md#includetemplate) the
|
||||
[`SAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml)
|
||||
that's provided as a part of your GitLab installation.
|
||||
For GitLab versions earlier than 11.9, you can copy and use the job as defined
|
||||
that template.
|
||||
NOTE: **Note:**
|
||||
You don't have to configure SAST manually as shown in this section if you're using [Auto SAST](../../../topics/autodevops/index.md#auto-sast-ultimate)
|
||||
provided by [Auto DevOps](../../../topics/autodevops/index.md).
|
||||
|
||||
For GitLab 11.9 and later, to enable SAST you must [include](../../../ci/yaml/README.md#includetemplate)
|
||||
the [`SAST.gitlab-ci.yml` template](https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml)
|
||||
that is provided as a part of your GitLab installation. For GitLab versions earlier than 11.9, you
|
||||
can copy and use the job as defined that template.
|
||||
|
||||
Add the following to your `.gitlab-ci.yml` file:
|
||||
|
||||
|
@ -448,8 +451,9 @@ the report JSON unless stated otherwise. Presence of optional fields depends on
|
|||
|
||||
## Secret detection
|
||||
|
||||
GitLab is also able to detect secrets and credentials that have been unintentionally pushed to the repository.
|
||||
For example, an API key that allows write access to third-party deployment environments.
|
||||
GitLab is also able to detect secrets and credentials that have been unintentionally pushed to the
|
||||
repository (for example, an API key that allows write access to third-party deployment
|
||||
environments).
|
||||
|
||||
This check is performed by a specific analyzer during the `sast` job. It runs regardless of the programming
|
||||
language of your app, and you don't need to change anything to your
|
||||
|
|
|
@ -190,12 +190,8 @@ NOTE: **Note:** GitLab is unable to provide support for IdPs that are not listed
|
|||
|----------|---------------|
|
||||
| ADFS (Active Directory Federation Services) | [Create a Relying Party Trust](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) |
|
||||
| Azure | [Configuring single sign-on to applications](https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-single-sign-on-non-gallery-applications) |
|
||||
| Auth0 | [Auth0 as Identity Provider](https://auth0.com/docs/protocols/saml/saml-idp-generic) |
|
||||
| G Suite | [Set up your own custom SAML application](https://support.google.com/a/answer/6087519?hl=en) |
|
||||
| JumpCloud | [Single Sign On (SSO) with GitLab](https://support.jumpcloud.com/support/s/article/single-sign-on-sso-with-gitlab-2019-08-21-10-36-47) |
|
||||
| Okta | [Setting up a SAML application in Okta](https://developer.okta.com/docs/guides/saml-application-setup/overview/) |
|
||||
| OneLogin | [Use the OneLogin SAML Test Connector](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f) |
|
||||
| Ping One for Enterprise | [Add and configure a new SAML application](https://support.pingidentity.com/s/document-item?bundleId=pingone&topicId=xsh1564020480660-1.html) |
|
||||
|
||||
When [configuring your identify provider](#configuring-your-identity-provider), please consider the notes below for specific providers to help avoid common issues and as a guide for terminology used.
|
||||
|
||||
|
@ -360,6 +356,13 @@ This can be prevented by configuring the [NameID](#nameid) to return a consisten
|
|||
|
||||
Not a problem, the SAML standard means that a wide range of identity providers will work with GitLab. Unfortunately we aren't familiar with all of them so can only offer support configuring the [listed providers](#providers).
|
||||
|
||||
Your identity provider may also have relevant documentation. It may be generic SAML documentation, or specifically targeted for GitLab. Examples:
|
||||
|
||||
- [Auth0](https://auth0.com/docs/protocols/saml/saml-idp-generic)
|
||||
- [G Suite](https://support.google.com/a/answer/6087519?hl=en)
|
||||
- [JumpCloud](https://support.jumpcloud.com/support/s/article/single-sign-on-sso-with-gitlab-2019-08-21-10-36-47)
|
||||
- [OneLogin](https://onelogin.service-now.com/support?id=kb_article&sys_id=93f95543db109700d5505eea4b96198f).
|
||||
|
||||
### I need additional information to configure my identity provider
|
||||
|
||||
Many SAML terms can vary between providers. It is possible that the information you are looking for is listed under another name.
|
||||
|
|
|
@ -66,8 +66,7 @@
|
|||
"core-js": "^3.6.4",
|
||||
"cropper": "^2.3.0",
|
||||
"css-loader": "^1.0.0",
|
||||
"d3": "^4.13.0",
|
||||
"d3-scale": "^1.0.7",
|
||||
"d3-scale": "^2.2.2",
|
||||
"d3-selection": "^1.2.0",
|
||||
"dateformat": "^3.0.3",
|
||||
"deckar01-task_list": "^2.3.1",
|
||||
|
|
|
@ -3134,6 +3134,8 @@ describe User, :do_not_mock_admin_mode do
|
|||
expect(ghost).to be_persisted
|
||||
expect(ghost.namespace).not_to be_nil
|
||||
expect(ghost.namespace).to be_persisted
|
||||
expect(ghost.user_type).to eq 'ghost'
|
||||
expect(ghost.ghost).to eq true
|
||||
end
|
||||
|
||||
it "does not create a second ghost user if one is already present" do
|
||||
|
|
125
yarn.lock
125
yarn.lock
|
@ -3303,17 +3303,17 @@ cyclist@~0.2.2:
|
|||
resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
|
||||
integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
|
||||
|
||||
d3-array@1, d3-array@1.2.1, d3-array@^1.1.1, d3-array@^1.2.0:
|
||||
d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc"
|
||||
integrity sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw==
|
||||
|
||||
d3-axis@1, d3-axis@1.0.8:
|
||||
d3-axis@1:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz#31a705a0b535e65759de14173a31933137f18efa"
|
||||
integrity sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo=
|
||||
|
||||
d3-brush@1, d3-brush@1.0.4:
|
||||
d3-brush@1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz#00c2f238019f24f6c0a194a26d41a1530ffe7bc4"
|
||||
integrity sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=
|
||||
|
@ -3324,7 +3324,7 @@ d3-brush@1, d3-brush@1.0.4:
|
|||
d3-selection "1"
|
||||
d3-transition "1"
|
||||
|
||||
d3-chord@1, d3-chord@1.0.4:
|
||||
d3-chord@1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz#7dec4f0ba886f713fe111c45f763414f6f74ca2c"
|
||||
integrity sha1-fexPC6iG9xP+ERxF92NBT290yiw=
|
||||
|
@ -3332,12 +3332,12 @@ d3-chord@1, d3-chord@1.0.4:
|
|||
d3-array "1"
|
||||
d3-path "1"
|
||||
|
||||
d3-collection@1, d3-collection@1.0.4:
|
||||
d3-collection@1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz#342dfd12837c90974f33f1cc0a785aea570dcdc2"
|
||||
integrity sha1-NC39EoN8kJdPM/HMCnha6lcNzcI=
|
||||
|
||||
d3-color@1, d3-color@1.0.3:
|
||||
d3-color@1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b"
|
||||
integrity sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs=
|
||||
|
@ -3349,12 +3349,12 @@ d3-contour@1:
|
|||
dependencies:
|
||||
d3-array "^1.1.1"
|
||||
|
||||
d3-dispatch@1, d3-dispatch@1.0.3:
|
||||
d3-dispatch@1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz#46e1491eaa9b58c358fce5be4e8bed626e7871f8"
|
||||
integrity sha1-RuFJHqqbWMNY/OW+TovtYm54cfg=
|
||||
|
||||
d3-drag@1, d3-drag@1.2.1:
|
||||
d3-drag@1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz#df8dd4c502fb490fc7462046a8ad98a5c479282d"
|
||||
integrity sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==
|
||||
|
@ -3362,7 +3362,7 @@ d3-drag@1, d3-drag@1.2.1:
|
|||
d3-dispatch "1"
|
||||
d3-selection "1"
|
||||
|
||||
d3-dsv@1, d3-dsv@1.0.8:
|
||||
d3-dsv@1:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz#907e240d57b386618dc56468bacfe76bf19764ae"
|
||||
integrity sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==
|
||||
|
@ -3371,7 +3371,7 @@ d3-dsv@1, d3-dsv@1.0.8:
|
|||
iconv-lite "0.4"
|
||||
rw "1"
|
||||
|
||||
d3-ease@1, d3-ease@1.0.3:
|
||||
d3-ease@1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e"
|
||||
integrity sha1-aL+8NJM4o4DETYrMT7wzBKotjA4=
|
||||
|
@ -3383,7 +3383,7 @@ d3-fetch@1:
|
|||
dependencies:
|
||||
d3-dsv "1"
|
||||
|
||||
d3-force@1, d3-force@1.1.0:
|
||||
d3-force@1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz#cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3"
|
||||
integrity sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==
|
||||
|
@ -3393,65 +3393,50 @@ d3-force@1, d3-force@1.1.0:
|
|||
d3-quadtree "1"
|
||||
d3-timer "1"
|
||||
|
||||
d3-format@1, d3-format@1.2.2:
|
||||
d3-format@1:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz#1a39c479c8a57fe5051b2e67a3bee27061a74e7a"
|
||||
integrity sha512-zH9CfF/3C8zUI47nsiKfD0+AGDEuM8LwBIP7pBVpyR4l/sKkZqITmMtxRp04rwBrlshIZ17XeFAaovN3++wzkw==
|
||||
|
||||
d3-geo@1, d3-geo@1.9.1:
|
||||
d3-geo@1:
|
||||
version "1.9.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz#157e3b0f917379d0f73bebfff3be537f49fa7356"
|
||||
integrity sha512-l9wL/cEQkyZQYXw3xbmLsH3eQ5ij+icNfo4r0GrLa5rOCZR/e/3am45IQ0FvQ5uMsv+77zBRunLc9ufTWSQYFA==
|
||||
dependencies:
|
||||
d3-array "1"
|
||||
|
||||
d3-hierarchy@1, d3-hierarchy@1.1.5:
|
||||
d3-hierarchy@1:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26"
|
||||
integrity sha1-ochFxC+Eoga88cAcAQmOpN2qeiY=
|
||||
|
||||
d3-interpolate@1, d3-interpolate@1.1.6:
|
||||
d3-interpolate@1:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6"
|
||||
integrity sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==
|
||||
dependencies:
|
||||
d3-color "1"
|
||||
|
||||
d3-path@1, d3-path@1.0.5:
|
||||
d3-path@1:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764"
|
||||
integrity sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q=
|
||||
|
||||
d3-polygon@1, d3-polygon@1.0.3:
|
||||
d3-polygon@1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz#16888e9026460933f2b179652ad378224d382c62"
|
||||
integrity sha1-FoiOkCZGCTPysXllKtN4Ik04LGI=
|
||||
|
||||
d3-quadtree@1, d3-quadtree@1.0.3:
|
||||
d3-quadtree@1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz#ac7987e3e23fe805a990f28e1b50d38fcb822438"
|
||||
integrity sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg=
|
||||
|
||||
d3-queue@3.0.7:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz#c93a2e54b417c0959129d7d73f6cf7d4292e7618"
|
||||
integrity sha1-yTouVLQXwJWRKdfXP2z31Ckudhg=
|
||||
|
||||
d3-random@1, d3-random@1.1.0:
|
||||
d3-random@1:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz#6642e506c6fa3a648595d2b2469788a8d12529d3"
|
||||
integrity sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM=
|
||||
|
||||
d3-request@1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz#a1044a9ef4ec28c824171c9379fae6d79474b19f"
|
||||
integrity sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==
|
||||
dependencies:
|
||||
d3-collection "1"
|
||||
d3-dispatch "1"
|
||||
d3-dsv "1"
|
||||
xmlhttprequest "1"
|
||||
|
||||
d3-scale-chromatic@1:
|
||||
version "1.3.3"
|
||||
resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz#dad4366f0edcb288f490128979c3c793583ed3c0"
|
||||
|
@ -3460,20 +3445,7 @@ d3-scale-chromatic@1:
|
|||
d3-color "1"
|
||||
d3-interpolate "1"
|
||||
|
||||
d3-scale@1.0.7, d3-scale@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d"
|
||||
integrity sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==
|
||||
dependencies:
|
||||
d3-array "^1.2.0"
|
||||
d3-collection "1"
|
||||
d3-color "1"
|
||||
d3-format "1"
|
||||
d3-interpolate "1"
|
||||
d3-time "1"
|
||||
d3-time-format "2"
|
||||
|
||||
d3-scale@2:
|
||||
d3-scale@2, d3-scale@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
|
||||
integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==
|
||||
|
@ -3485,36 +3457,36 @@ d3-scale@2:
|
|||
d3-time "1"
|
||||
d3-time-format "2"
|
||||
|
||||
d3-selection@1, d3-selection@1.3.0, d3-selection@^1.1.0, d3-selection@^1.2.0:
|
||||
d3-selection@1, d3-selection@^1.1.0, d3-selection@^1.2.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz#d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d"
|
||||
integrity sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA==
|
||||
|
||||
d3-shape@1, d3-shape@1.2.0:
|
||||
d3-shape@1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.0.tgz#45d01538f064bafd05ea3d6d2cb748fd8c41f777"
|
||||
integrity sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=
|
||||
dependencies:
|
||||
d3-path "1"
|
||||
|
||||
d3-time-format@2, d3-time-format@2.1.1:
|
||||
d3-time-format@2:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz#85b7cdfbc9ffca187f14d3c456ffda268081bb31"
|
||||
integrity sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==
|
||||
dependencies:
|
||||
d3-time "1"
|
||||
|
||||
d3-time@1, d3-time@1.0.8:
|
||||
d3-time@1:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84"
|
||||
integrity sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ==
|
||||
|
||||
d3-timer@1, d3-timer@1.0.7:
|
||||
d3-timer@1:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531"
|
||||
integrity sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA==
|
||||
|
||||
d3-transition@1, d3-transition@1.1.1:
|
||||
d3-transition@1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz#d8ef89c3b848735b060e54a39b32aaebaa421039"
|
||||
integrity sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==
|
||||
|
@ -3526,12 +3498,12 @@ d3-transition@1, d3-transition@1.1.1:
|
|||
d3-selection "^1.1.0"
|
||||
d3-timer "1"
|
||||
|
||||
d3-voronoi@1, d3-voronoi@1.1.2:
|
||||
d3-voronoi@1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c"
|
||||
integrity sha1-Fodmfo8TotFYyAwUgMWinLDYlzw=
|
||||
|
||||
d3-zoom@1, d3-zoom@1.7.1:
|
||||
d3-zoom@1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz#02f43b3c3e2db54f364582d7e4a236ccc5506b63"
|
||||
integrity sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==
|
||||
|
@ -3542,42 +3514,6 @@ d3-zoom@1, d3-zoom@1.7.1:
|
|||
d3-selection "1"
|
||||
d3-transition "1"
|
||||
|
||||
d3@^4.13.0:
|
||||
version "4.13.0"
|
||||
resolved "https://registry.yarnpkg.com/d3/-/d3-4.13.0.tgz#ab236ff8cf0cfc27a81e69bf2fb7518bc9b4f33d"
|
||||
integrity sha512-l8c4+0SldjVKLaE2WG++EQlqD7mh/dmQjvi2L2lKPadAVC+TbJC4ci7Uk9bRi+To0+ansgsS0iWfPjD7DBy+FQ==
|
||||
dependencies:
|
||||
d3-array "1.2.1"
|
||||
d3-axis "1.0.8"
|
||||
d3-brush "1.0.4"
|
||||
d3-chord "1.0.4"
|
||||
d3-collection "1.0.4"
|
||||
d3-color "1.0.3"
|
||||
d3-dispatch "1.0.3"
|
||||
d3-drag "1.2.1"
|
||||
d3-dsv "1.0.8"
|
||||
d3-ease "1.0.3"
|
||||
d3-force "1.1.0"
|
||||
d3-format "1.2.2"
|
||||
d3-geo "1.9.1"
|
||||
d3-hierarchy "1.1.5"
|
||||
d3-interpolate "1.1.6"
|
||||
d3-path "1.0.5"
|
||||
d3-polygon "1.0.3"
|
||||
d3-quadtree "1.0.3"
|
||||
d3-queue "3.0.7"
|
||||
d3-random "1.1.0"
|
||||
d3-request "1.0.6"
|
||||
d3-scale "1.0.7"
|
||||
d3-selection "1.3.0"
|
||||
d3-shape "1.2.0"
|
||||
d3-time "1.0.8"
|
||||
d3-time-format "2.1.1"
|
||||
d3-timer "1.0.7"
|
||||
d3-transition "1.1.1"
|
||||
d3-voronoi "1.1.2"
|
||||
d3-zoom "1.7.1"
|
||||
|
||||
d3@^5.14, d3@^5.7.0:
|
||||
version "5.15.0"
|
||||
resolved "https://registry.yarnpkg.com/d3/-/d3-5.15.0.tgz#ffd44958e6a3cb8a59a84429c45429b8bca5677a"
|
||||
|
@ -12283,11 +12219,6 @@ xmlhttprequest-ssl@~1.5.4:
|
|||
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
|
||||
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
|
||||
|
||||
xmlhttprequest@1:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc"
|
||||
integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=
|
||||
|
||||
xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
|
||||
|
|
Loading…
Reference in a new issue