Skip to content

Commit

Permalink
Merge #63491 #63751
Browse files Browse the repository at this point in the history
63491: sql: Add Last Execution Timestamp r=maryliag a=maryliag

Adding new parameter to Statement protobuf for Last Execution Timestamp

Related to: #60974

63751: kvserver: use replica clock for determining stale closed ts r=andreimatei a=andreimatei

Replicas evaluate whether a closed timestamp they find out about is
older than they wish. For this, they were using the system time. Most
things in CRDB use an hlc.Clock - for example because in tests that one
can be stopped. This patch switches the staleness determination to use
the hlc.

Release note: None

Co-authored-by: Marylia Gutierrez <marylia@cockroachlabs.com>
Co-authored-by: Andrei Matei <andrei@cockroachlabs.com>
  • Loading branch information
3 people committed Apr 19, 2021
3 parents bf6da8a + f430c4a + 2cafaf8 commit 1c10372
Show file tree
Hide file tree
Showing 12 changed files with 293 additions and 108 deletions.
6 changes: 3 additions & 3 deletions pkg/kv/kvserver/replica_rangefeed.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ import (
"github.com/cockroachdb/cockroach/pkg/util/hlc"
"github.com/cockroachdb/cockroach/pkg/util/log"
"github.com/cockroachdb/cockroach/pkg/util/syncutil"
"github.com/cockroachdb/cockroach/pkg/util/timeutil"
"github.com/cockroachdb/cockroach/pkg/util/uuid"
"github.com/cockroachdb/errors"
)
Expand Down Expand Up @@ -611,14 +610,15 @@ func (r *Replica) handleClosedTimestampUpdateRaftMuLocked(ctx context.Context) {
// If the closed timestamp is sufficiently stale, signal that we want an
// update to the leaseholder so that it will eventually begin to progress
// again.
behind := r.Clock().PhysicalTime().Sub(closedTS.GoTime())
slowClosedTSThresh := 5 * closedts.TargetDuration.Get(&r.store.cfg.Settings.SV)
if d := timeutil.Since(closedTS.GoTime()); d > slowClosedTSThresh {
if behind > slowClosedTSThresh {
m := r.store.metrics.RangeFeedMetrics
if m.RangeFeedSlowClosedTimestampLogN.ShouldLog() {
if closedTS.IsEmpty() {
log.Infof(ctx, "RangeFeed closed timestamp is empty")
} else {
log.Infof(ctx, "RangeFeed closed timestamp %s is behind by %s", closedTS, d)
log.Infof(ctx, "RangeFeed closed timestamp %s is behind by %s", closedTS, behind)
}
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/roachpb/app_stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ func (s *StatementStatistics) Add(other *StatementStatistics) {
s.SensitiveInfo = other.SensitiveInfo
}

if s.LastExecTimestamp.Before(other.LastExecTimestamp) {
s.LastExecTimestamp = other.LastExecTimestamp
}

s.Count += other.Count
}

Expand Down
227 changes: 138 additions & 89 deletions pkg/roachpb/app_stats.pb.go

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions pkg/roachpb/app_stats.proto
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ message StatementStatistics {
// SQLType is the type of the sql (DDL, DML, DCL or TCL)
optional string sql_type = 22 [(gogoproto.nullable) = false, (gogoproto.customname) = "SQLType"];

// LastExecTimestamp is the last timestamp the statement was executed.
optional google.protobuf.Timestamp last_exec_timestamp = 23 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true];

// Note: be sure to update `sql/app_stats.go` when adding/removing fields here!

reserved 13, 14, 17, 18, 19, 20;
Expand Down
1 change: 1 addition & 0 deletions pkg/sql/app_stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ func (a *appStats) recordStatement(
s.mu.data.OverheadLat.Record(s.mu.data.Count, ovhLat)
s.mu.data.BytesRead.Record(s.mu.data.Count, float64(stats.bytesRead))
s.mu.data.RowsRead.Record(s.mu.data.Count, float64(stats.rowsRead))
s.mu.data.LastExecTimestamp = timeutil.Now()
// Note that some fields derived from tracing statements (such as
// BytesSentOverNetwork) are not updated here because they are collected
// on-demand.
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"cypress:update-snapshots": "yarn cypress run --env updateSnapshots=true --spec 'cypress/integration/**/*.visual.spec.ts'"
},
"dependencies": {
"@cockroachlabs/cluster-ui": "^0.2.28",
"@cockroachlabs/cluster-ui": "^0.2.30",
"analytics-node": "^3.5.0",
"antd": "^3.25.2",
"babel-polyfill": "^6.26.0",
Expand Down
2 changes: 1 addition & 1 deletion pkg/ui/src/js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@cockroachlabs/crdb-protobuf-client",
"version": "0.0.9",
"version": "0.0.10",
"description": "Javascript client for use by CockroachDB UI",
"main": "./protos.js",
"types": "./protos.d.ts",
Expand Down
5 changes: 5 additions & 0 deletions pkg/ui/src/util/appStats.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,11 @@ function randomStats(sensitiveInfo?: ISensitiveInfo): StatementStatistics {
rows_read: randomStat(),
sensitive_info: sensitiveInfo || makeSensitiveInfo(null, null),
exec_stats: randomExecStats(),
sql_type: "DDL",
last_exec_timestamp: {
seconds: Long.fromInt(1599670292),
nanos: 111613000,
},
};
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/ui/src/util/appStats.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ export function addStatementStats(
legacy_last_err_redacted: "",
exec_stats: addExecStats(a.exec_stats, b.exec_stats),
sql_type: a.sql_type,
last_exec_timestamp:
a.last_exec_timestamp.seconds > b.last_exec_timestamp.seconds
? a.last_exec_timestamp
: b.last_exec_timestamp,
};
}

Expand Down
4 changes: 4 additions & 0 deletions pkg/ui/src/views/statements/statements.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,10 @@ function makeStats(): Required<StatementStatistics> {
bytes_read: makeStat(),
exec_stats: makeExecStats(),
sql_type: "DDL",
last_exec_timestamp: {
seconds: Long.fromInt(1599670292),
nanos: 111613000,
},
};
}

Expand Down
141 changes: 128 additions & 13 deletions pkg/ui/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1717,7 +1717,7 @@
dependencies:
regenerator-runtime "^0.13.2"

"@babel/runtime@^7.12.13":
"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.8.7":
version "7.13.10"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d"
integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==
Expand Down Expand Up @@ -1813,13 +1813,13 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"

"@cockroachlabs/cluster-ui@^0.2.28":
version "0.2.28"
resolved "https://registry.yarnpkg.com/@cockroachlabs/cluster-ui/-/cluster-ui-0.2.28.tgz#9d4a6467e4abdfb13911f7fc73935dae7a5b188b"
integrity sha512-Yog17595qSxgXeGG7ykpaiXs0JTEhfbdrzI+CNXSub20gi4g2qI8FQ0ksKiSI9k2HoNI2fWBj3c/xkJ9brgCHA==
"@cockroachlabs/cluster-ui@^0.2.30":
version "0.2.30"
resolved "https://registry.yarnpkg.com/@cockroachlabs/cluster-ui/-/cluster-ui-0.2.30.tgz#2a2f96e2be242a08f3c24c9867489c0f4b3d1bb9"
integrity sha512-xf/TEGyUYS/U7CLJxDCgPg4BLeH1oKvpVinAk1FmwULSohVKfPAApKSJ9/jjPuutQ2ESJRSZdAblxUegYWYB9A==
dependencies:
"@babel/runtime" "^7.12.13"
"@cockroachlabs/crdb-protobuf-client" "^0.0.8"
"@cockroachlabs/crdb-protobuf-client" "^0.0.10-beta.0"
"@cockroachlabs/icons" "0.3.0"
"@cockroachlabs/ui-components" "0.2.14-alpha.0"
"@popperjs/core" "^2.4.0"
Expand All @@ -1833,13 +1833,13 @@
npm-run-all "^4.1.5"
react-helmet "^5.2.0"
react-popper "^2.2.3"
react-select "^1.2.1"
react-select "^4.3.0"
reselect "^4.0.0"

"@cockroachlabs/crdb-protobuf-client@^0.0.8":
version "0.0.8"
resolved "https://registry.yarnpkg.com/@cockroachlabs/crdb-protobuf-client/-/crdb-protobuf-client-0.0.8.tgz#064f44664091dd23e18167c67cf1713ff7845470"
integrity sha512-JP6miYNX8FvFSTSZ51etCfyxO/mi/TVVyeVIFsnN/CTlbHI6QZODHJIS1OSPvzfBnfXgFwcb1tQmMrK0L9xFEA==
"@cockroachlabs/crdb-protobuf-client@^0.0.10-beta.0":
version "0.0.10-beta.0"
resolved "https://registry.yarnpkg.com/@cockroachlabs/crdb-protobuf-client/-/crdb-protobuf-client-0.0.10-beta.0.tgz#b1bb2283379d8cf9d75adf780ff19374b4485e65"
integrity sha512-FQ29hZTM7CnunHWG88a5pgWXYGy/aAFrW0tn0E0t++QG7BTGkDVEuPdPcoMSCEUcKbFpzYc7AaY050JnU27rAA==

"@cockroachlabs/eslint-config@^0.1.11":
version "0.1.11"
Expand Down Expand Up @@ -1873,6 +1873,17 @@
"@emotion/utils" "0.11.3"
"@emotion/weak-memoize" "0.2.5"

"@emotion/cache@^11.0.0", "@emotion/cache@^11.1.3":
version "11.1.3"
resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.1.3.tgz#c7683a9484bcd38d5562f2b9947873cf66829afd"
integrity sha512-n4OWinUPJVaP6fXxWZD9OUeQ0lY7DvtmtSuqtRWT0Ofo/sBLCVSgb4/Oa0Q5eFxcwablRKjUXqXtNZVyEwCAuA==
dependencies:
"@emotion/memoize" "^0.7.4"
"@emotion/sheet" "^1.0.0"
"@emotion/utils" "^1.0.0"
"@emotion/weak-memoize" "^0.2.5"
stylis "^4.0.3"

"@emotion/core@^10.0.7":
version "10.0.27"
resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.27.tgz#7c3f78be681ab2273f3bf11ca3e2edc4a9dd1fdc"
Expand All @@ -1899,6 +1910,11 @@
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz#f14932887422c9056b15a8d222a9074a7dfa2831"
integrity sha512-fxfMSBMX3tlIbKUdtGKxqB1fyrH6gVrX39Gsv3y8lRYKUqlgDt3UMqQyGnR1bQMa2B8aGnhLZokZgg8vT0Le+A==

"@emotion/hash@^0.8.0":
version "0.8.0"
resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==

"@emotion/is-prop-valid@0.8.6":
version "0.8.6"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.6.tgz#4757646f0a58e9dec614c47c838e7147d88c263c"
Expand All @@ -1911,6 +1927,24 @@
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==

"@emotion/memoize@^0.7.4":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50"
integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==

"@emotion/react@^11.1.1":
version "11.1.5"
resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.1.5.tgz#15e78f9822894cdc296e6f4e0688bac8120dfe66"
integrity sha512-xfnZ9NJEv9SU9K2sxXM06lzjK245xSeHRpUh67eARBm3PBHjjKIZlfWZ7UQvD0Obvw6ZKjlC79uHrlzFYpOB/Q==
dependencies:
"@babel/runtime" "^7.7.2"
"@emotion/cache" "^11.1.3"
"@emotion/serialize" "^1.0.0"
"@emotion/sheet" "^1.0.1"
"@emotion/utils" "^1.0.0"
"@emotion/weak-memoize" "^0.2.5"
hoist-non-react-statics "^3.3.1"

"@emotion/serialize@^0.11.15":
version "0.11.15"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.15.tgz#9a0f5873fb458d87d4f23e034413c12ed60a705a"
Expand All @@ -1922,11 +1956,27 @@
"@emotion/utils" "0.11.3"
csstype "^2.5.7"

"@emotion/serialize@^1.0.0":
version "1.0.2"
resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965"
integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==
dependencies:
"@emotion/hash" "^0.8.0"
"@emotion/memoize" "^0.7.4"
"@emotion/unitless" "^0.7.5"
"@emotion/utils" "^1.0.0"
csstype "^3.0.2"

"@emotion/sheet@0.9.4":
version "0.9.4"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5"
integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==

"@emotion/sheet@^1.0.0", "@emotion/sheet@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.0.1.tgz#245f54abb02dfd82326e28689f34c27aa9b2a698"
integrity sha512-GbIvVMe4U+Zc+929N1V7nW6YYJtidj31lidSmdYcWozwoBIObXBnaJkKNDjZrLm9Nc0BR+ZyHNaRZxqNZbof5g==

"@emotion/styled-base@^10.0.27":
version "10.0.27"
resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.0.27.tgz#d9efa307ae4e938fcc4d0596b40b7e8bc10f7c7c"
Expand All @@ -1950,7 +2000,7 @@
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==

"@emotion/unitless@0.7.5":
"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.5":
version "0.7.5"
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
Expand All @@ -1960,7 +2010,12 @@
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==

"@emotion/weak-memoize@0.2.5":
"@emotion/utils@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af"
integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==

"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5":
version "0.2.5"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
Expand Down Expand Up @@ -5298,6 +5353,11 @@ csstype@^2.2.0, csstype@^2.5.7:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.8.tgz#0fb6fc2417ffd2816a418c9336da74d7f07db431"
integrity sha512-msVS9qTuMT5zwAGCVm4mxfrZ18BNc6Csd0oJAtiFMZ1FAx1CCvy2+5MDmYoix63LM/6NDbNtodCiGYGmFgO0dA==

csstype@^3.0.2:
version "3.0.7"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b"
integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==

custom-event@~1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425"
Expand Down Expand Up @@ -5697,6 +5757,14 @@ dom-converter@^0.2:
dependencies:
utila "~0.4"

dom-helpers@^5.0.1:
version "5.2.0"
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz#57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b"
integrity sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==
dependencies:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"

dom-matches@>=1.0.1:
version "2.0.0"
resolved "https://registry.yarnpkg.com/dom-matches/-/dom-matches-2.0.0.tgz#d2728b416a87533980eb089b848d253cf23a758c"
Expand Down Expand Up @@ -7546,6 +7614,13 @@ hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0:
dependencies:
react-is "^16.7.0"

hoist-non-react-statics@^3.3.1:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
dependencies:
react-is "^16.7.0"

homedir-polyfill@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
Expand Down Expand Up @@ -9015,6 +9090,11 @@ mem@^4.0.0:
mimic-fn "^2.0.0"
p-is-promise "^2.0.0"

memoize-one@^5.0.0:
version "5.1.1"
resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==

memoizerific@^1.11.3:
version "1.11.3"
resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a"
Expand Down Expand Up @@ -11411,6 +11491,13 @@ react-input-autosize@^2.1.2:
dependencies:
prop-types "^15.5.8"

react-input-autosize@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-3.0.0.tgz#6b5898c790d4478d69420b55441fcc31d5c50a85"
integrity sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==
dependencies:
prop-types "^15.5.8"

react-inspector@^2.3.0, react-inspector@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-2.3.1.tgz#f0eb7f520669b545b441af9d38ec6d706e5f649c"
Expand Down Expand Up @@ -11556,6 +11643,19 @@ react-select@^1.2.1:
prop-types "^15.5.8"
react-input-autosize "^2.1.2"

react-select@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/react-select/-/react-select-4.3.0.tgz#6bde634ae7a378b49f3833c85c126f533483fa2e"
integrity sha512-SBPD1a3TJqE9zoI/jfOLCAoLr/neluaeokjOixr3zZ1vHezkom8K0A9J4QG9IWDqIDE9K/Mv+0y1GjidC2PDtQ==
dependencies:
"@babel/runtime" "^7.12.0"
"@emotion/cache" "^11.0.0"
"@emotion/react" "^11.1.1"
memoize-one "^5.0.0"
prop-types "^15.6.0"
react-input-autosize "^3.0.0"
react-transition-group "^4.3.0"

react-side-effect@^1.1.0:
version "1.1.5"
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.5.tgz#f26059e50ed9c626d91d661b9f3c8bb38cd0ff2d"
Expand Down Expand Up @@ -11602,6 +11702,16 @@ react-textarea-autosize@^7.0.4:
"@babel/runtime" "^7.1.2"
prop-types "^15.6.0"

react-transition-group@^4.3.0:
version "4.4.1"
resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.1.tgz#63868f9325a38ea5ee9535d828327f85773345c9"
integrity sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==
dependencies:
"@babel/runtime" "^7.5.5"
dom-helpers "^5.0.1"
loose-envify "^1.4.0"
prop-types "^15.6.2"

react@^0.14.0:
version "0.14.9"
resolved "https://registry.yarnpkg.com/react/-/react-0.14.9.tgz#9110a6497c49d44ba1c0edd317aec29c2e0d91d1"
Expand Down Expand Up @@ -13079,6 +13189,11 @@ stylint@^1.5.9:
user-home "2.0.0"
yargs "4.7.1"

stylis@^4.0.3:
version "4.0.10"
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240"
integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==

stylus-loader@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6"
Expand Down

0 comments on commit 1c10372

Please sign in to comment.