graphql-hive 0.4.2 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +12 -19
- data/.gitignore +6 -0
- data/.rubocop.yml +10 -41
- data/.ruby-version +1 -0
- data/Gemfile +13 -1
- data/Gemfile.lock +75 -12
- data/README.md +47 -35
- data/Rakefile +3 -3
- data/graphql-hive.gemspec +15 -20
- data/lib/graphql-hive/analyzer.rb +1 -1
- data/lib/graphql-hive/client.rb +13 -13
- data/lib/graphql-hive/printer.rb +17 -17
- data/lib/graphql-hive/sampler.rb +15 -15
- data/lib/graphql-hive/sampling/basic_sampler.rb +1 -1
- data/lib/graphql-hive/sampling/dynamic_sampler.rb +1 -1
- data/lib/graphql-hive/sampling/sampling_context.rb +1 -1
- data/lib/graphql-hive/usage_reporter.rb +29 -25
- data/lib/graphql-hive/version.rb +1 -1
- data/lib/graphql-hive.rb +31 -28
- metadata +3 -73
- data/.github/workflows/benchmark.yml +0 -67
- data/examples/simple-api/Gemfile +0 -8
- data/examples/simple-api/Gemfile.lock +0 -48
- data/examples/simple-api/app.rb +0 -31
- data/examples/simple-api/config.ru +0 -2
- data/examples/simple-api/schema.rb +0 -52
- data/k6/graphql-api/Gemfile +0 -9
- data/k6/graphql-api/Gemfile.lock +0 -52
- data/k6/graphql-api/app.rb +0 -26
- data/k6/graphql-api/config.ru +0 -2
- data/k6/graphql-api/schema.rb +0 -41
- data/k6/k6.js +0 -99
- data/k6/package.json +0 -11
- data/k6/usage-api.js +0 -26
- data/k6/yarn.lock +0 -405
data/k6/graphql-api/app.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'sinatra'
|
2
|
-
require 'sinatra/json'
|
3
|
-
require 'rack/contrib'
|
4
|
-
|
5
|
-
require_relative 'schema'
|
6
|
-
|
7
|
-
class DemoApp < Sinatra::Base
|
8
|
-
use Rack::JSONBodyParser
|
9
|
-
|
10
|
-
get '/' do
|
11
|
-
status 200
|
12
|
-
end
|
13
|
-
|
14
|
-
post '/graphql' do
|
15
|
-
result = Schema.execute(
|
16
|
-
params['query'],
|
17
|
-
variables: params[:variables],
|
18
|
-
operation_name: params[:operationName],
|
19
|
-
context: {
|
20
|
-
client_name: 'GraphQL Client',
|
21
|
-
client_version: '1.0'
|
22
|
-
}
|
23
|
-
)
|
24
|
-
json result
|
25
|
-
end
|
26
|
-
end
|
data/k6/graphql-api/config.ru
DELETED
data/k6/graphql-api/schema.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'graphql'
|
2
|
-
require 'graphql-hive'
|
3
|
-
|
4
|
-
module Types
|
5
|
-
class PostType < GraphQL::Schema::Object
|
6
|
-
description 'A blog post'
|
7
|
-
field :id, ID, null: false
|
8
|
-
field :title, String, null: false
|
9
|
-
# fields should be queried in camel-case (this will be `truncatedPreview`)
|
10
|
-
field :truncated_preview, String, null: false
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class QueryType < GraphQL::Schema::Object
|
15
|
-
description 'The query root of this schema'
|
16
|
-
|
17
|
-
# First describe the field signature:
|
18
|
-
field :post, Types::PostType, 'Find a post by ID' do
|
19
|
-
argument :id, [ID]
|
20
|
-
end
|
21
|
-
|
22
|
-
# Then provide an implementation:
|
23
|
-
def post(id:)
|
24
|
-
{ id: 1, title: 'GraphQL Hive with `graphql-ruby`',
|
25
|
-
truncated_preview: 'Monitor operations, inspect your queries and publish your GraphQL schema with GraphQL Hive' }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class Schema < GraphQL::Schema
|
30
|
-
query QueryType
|
31
|
-
|
32
|
-
use(
|
33
|
-
GraphQL::Hive,
|
34
|
-
enabled: ENV['HIVE_ENABLED'] === 'true',
|
35
|
-
endpoint: 'localhost',
|
36
|
-
debug: true,
|
37
|
-
port: 8888,
|
38
|
-
token: 'stress-token',
|
39
|
-
report_schema: false
|
40
|
-
)
|
41
|
-
end
|
data/k6/k6.js
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
import { check } from "k6";
|
2
|
-
import http from "k6/http";
|
3
|
-
import { textSummary } from "https://jslib.k6.io/k6-summary/0.0.1/index.js";
|
4
|
-
import { githubComment } from "https://raw.githubusercontent.com/dotansimha/k6-github-pr-comment/master/lib.js";
|
5
|
-
|
6
|
-
export const options = {
|
7
|
-
discardResponseBodies: true,
|
8
|
-
scenarios: {
|
9
|
-
hiveEnabled: {
|
10
|
-
executor: "shared-iterations",
|
11
|
-
vus: 120,
|
12
|
-
iterations: 500,
|
13
|
-
maxDuration: "30s",
|
14
|
-
env: { GQL_API_PORT: "9292", HIVE_ENABLED: "true" },
|
15
|
-
},
|
16
|
-
hiveDisabled: {
|
17
|
-
executor: "shared-iterations",
|
18
|
-
vus: 120,
|
19
|
-
iterations: 500,
|
20
|
-
maxDuration: "30s",
|
21
|
-
startTime: "30s",
|
22
|
-
env: { GQL_API_PORT: "9291", HIVE_ENABLED: "false" },
|
23
|
-
},
|
24
|
-
},
|
25
|
-
thresholds: {
|
26
|
-
"http_req_duration{hive:enabled}": ["avg<4500"],
|
27
|
-
"http_req_duration{hive:disabled}": ["avg<4500"],
|
28
|
-
},
|
29
|
-
};
|
30
|
-
|
31
|
-
const QUERY = /* GraphQL */ `
|
32
|
-
query GetPost {
|
33
|
-
post(id: 1) {
|
34
|
-
title
|
35
|
-
myId: id
|
36
|
-
}
|
37
|
-
}
|
38
|
-
`;
|
39
|
-
|
40
|
-
export default function () {
|
41
|
-
const payload = JSON.stringify({
|
42
|
-
query: QUERY,
|
43
|
-
operationName: "GetPost",
|
44
|
-
});
|
45
|
-
const params = {
|
46
|
-
headers: {
|
47
|
-
"Content-Type": "application/json",
|
48
|
-
},
|
49
|
-
tags: { hive: __ENV.HIVE_ENABLED === "true" ? "enabled" : "disabled" },
|
50
|
-
};
|
51
|
-
|
52
|
-
return http.post(
|
53
|
-
`http://localhost:${__ENV.GQL_API_PORT}/graphql`,
|
54
|
-
payload,
|
55
|
-
params
|
56
|
-
);
|
57
|
-
}
|
58
|
-
|
59
|
-
export function handleSummary(data) {
|
60
|
-
let overheadPercentage = null;
|
61
|
-
if (
|
62
|
-
data.metrics["http_req_duration{hive:enabled}"] &&
|
63
|
-
data.metrics["http_req_duration{hive:disabled}"]
|
64
|
-
) {
|
65
|
-
const withHive =
|
66
|
-
data.metrics["http_req_duration{hive:enabled}"].values["avg"];
|
67
|
-
const withoutHive =
|
68
|
-
data.metrics["http_req_duration{hive:disabled}"].values["avg"];
|
69
|
-
overheadPercentage = 100 - (withHive * 100.0) / withoutHive;
|
70
|
-
}
|
71
|
-
if (__ENV.GITHUB_TOKEN) {
|
72
|
-
githubComment(data, {
|
73
|
-
token: __ENV.GITHUB_TOKEN,
|
74
|
-
commit: __ENV.GITHUB_SHA,
|
75
|
-
pr: __ENV.GITHUB_PR,
|
76
|
-
org: "charlypoly",
|
77
|
-
repo: "graphql-ruby-hive",
|
78
|
-
renderTitle: () => {
|
79
|
-
return overheadPercentage < 5
|
80
|
-
? "✅ Benchmark Results"
|
81
|
-
: "❌ Benchmark Failed";
|
82
|
-
},
|
83
|
-
renderMessage: () => {
|
84
|
-
const result = [];
|
85
|
-
if (overheadPercentage > 5) {
|
86
|
-
result.push(
|
87
|
-
"**Performance regression detected**: it seems like your Pull Request adds some extra latency to GraphQL Hive operations processing"
|
88
|
-
);
|
89
|
-
} else {
|
90
|
-
result.push("Overhead <= 1%");
|
91
|
-
}
|
92
|
-
return result.join("\n");
|
93
|
-
},
|
94
|
-
});
|
95
|
-
}
|
96
|
-
return {
|
97
|
-
stdout: textSummary(data, { indent: " ", enableColors: true }),
|
98
|
-
};
|
99
|
-
}
|
data/k6/package.json
DELETED
data/k6/usage-api.js
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
const express = require("express");
|
2
|
-
const app = express();
|
3
|
-
const port = 8888;
|
4
|
-
|
5
|
-
app.use(express.json());
|
6
|
-
|
7
|
-
let count = 0;
|
8
|
-
|
9
|
-
app.get("/", (req, res) => {
|
10
|
-
res.status(200).send({ status: 'ok' })
|
11
|
-
});
|
12
|
-
|
13
|
-
app.get("/count", (req, res) => {
|
14
|
-
res.status(200).send({ count });
|
15
|
-
});
|
16
|
-
|
17
|
-
app.post("/usage", (req, res) => {
|
18
|
-
if (req.body && req.body.operations) {
|
19
|
-
count += Object.keys(req.body.operations).length;
|
20
|
-
}
|
21
|
-
res.status(200).send({ status: "ok " });
|
22
|
-
});
|
23
|
-
|
24
|
-
app.listen(port, () => {
|
25
|
-
console.log(`Usage API listening on port ${port}`);
|
26
|
-
});
|
data/k6/yarn.lock
DELETED
@@ -1,405 +0,0 @@
|
|
1
|
-
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
2
|
-
# yarn lockfile v1
|
3
|
-
|
4
|
-
|
5
|
-
accepts@~1.3.8:
|
6
|
-
version "1.3.8"
|
7
|
-
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
|
8
|
-
integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
|
9
|
-
dependencies:
|
10
|
-
mime-types "~2.1.34"
|
11
|
-
negotiator "0.6.3"
|
12
|
-
|
13
|
-
array-flatten@1.1.1:
|
14
|
-
version "1.1.1"
|
15
|
-
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
16
|
-
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
|
17
|
-
|
18
|
-
body-parser@1.20.0:
|
19
|
-
version "1.20.0"
|
20
|
-
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5"
|
21
|
-
integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==
|
22
|
-
dependencies:
|
23
|
-
bytes "3.1.2"
|
24
|
-
content-type "~1.0.4"
|
25
|
-
debug "2.6.9"
|
26
|
-
depd "2.0.0"
|
27
|
-
destroy "1.2.0"
|
28
|
-
http-errors "2.0.0"
|
29
|
-
iconv-lite "0.4.24"
|
30
|
-
on-finished "2.4.1"
|
31
|
-
qs "6.10.3"
|
32
|
-
raw-body "2.5.1"
|
33
|
-
type-is "~1.6.18"
|
34
|
-
unpipe "1.0.0"
|
35
|
-
|
36
|
-
bytes@3.1.2:
|
37
|
-
version "3.1.2"
|
38
|
-
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
|
39
|
-
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
|
40
|
-
|
41
|
-
call-bind@^1.0.0:
|
42
|
-
version "1.0.2"
|
43
|
-
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
44
|
-
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
45
|
-
dependencies:
|
46
|
-
function-bind "^1.1.1"
|
47
|
-
get-intrinsic "^1.0.2"
|
48
|
-
|
49
|
-
content-disposition@0.5.4:
|
50
|
-
version "0.5.4"
|
51
|
-
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
|
52
|
-
integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
|
53
|
-
dependencies:
|
54
|
-
safe-buffer "5.2.1"
|
55
|
-
|
56
|
-
content-type@~1.0.4:
|
57
|
-
version "1.0.4"
|
58
|
-
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
59
|
-
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
|
60
|
-
|
61
|
-
cookie-signature@1.0.6:
|
62
|
-
version "1.0.6"
|
63
|
-
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
64
|
-
integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
|
65
|
-
|
66
|
-
cookie@0.5.0:
|
67
|
-
version "0.5.0"
|
68
|
-
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
|
69
|
-
integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
|
70
|
-
|
71
|
-
debug@2.6.9:
|
72
|
-
version "2.6.9"
|
73
|
-
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
74
|
-
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
|
75
|
-
dependencies:
|
76
|
-
ms "2.0.0"
|
77
|
-
|
78
|
-
depd@2.0.0:
|
79
|
-
version "2.0.0"
|
80
|
-
resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
|
81
|
-
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
|
82
|
-
|
83
|
-
destroy@1.2.0:
|
84
|
-
version "1.2.0"
|
85
|
-
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
|
86
|
-
integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
|
87
|
-
|
88
|
-
ee-first@1.1.1:
|
89
|
-
version "1.1.1"
|
90
|
-
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
91
|
-
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
|
92
|
-
|
93
|
-
encodeurl@~1.0.2:
|
94
|
-
version "1.0.2"
|
95
|
-
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
96
|
-
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
|
97
|
-
|
98
|
-
escape-html@~1.0.3:
|
99
|
-
version "1.0.3"
|
100
|
-
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
101
|
-
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
|
102
|
-
|
103
|
-
etag@~1.8.1:
|
104
|
-
version "1.8.1"
|
105
|
-
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
106
|
-
integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
|
107
|
-
|
108
|
-
express@^4.18.1:
|
109
|
-
version "4.18.1"
|
110
|
-
resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
|
111
|
-
integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
|
112
|
-
dependencies:
|
113
|
-
accepts "~1.3.8"
|
114
|
-
array-flatten "1.1.1"
|
115
|
-
body-parser "1.20.0"
|
116
|
-
content-disposition "0.5.4"
|
117
|
-
content-type "~1.0.4"
|
118
|
-
cookie "0.5.0"
|
119
|
-
cookie-signature "1.0.6"
|
120
|
-
debug "2.6.9"
|
121
|
-
depd "2.0.0"
|
122
|
-
encodeurl "~1.0.2"
|
123
|
-
escape-html "~1.0.3"
|
124
|
-
etag "~1.8.1"
|
125
|
-
finalhandler "1.2.0"
|
126
|
-
fresh "0.5.2"
|
127
|
-
http-errors "2.0.0"
|
128
|
-
merge-descriptors "1.0.1"
|
129
|
-
methods "~1.1.2"
|
130
|
-
on-finished "2.4.1"
|
131
|
-
parseurl "~1.3.3"
|
132
|
-
path-to-regexp "0.1.7"
|
133
|
-
proxy-addr "~2.0.7"
|
134
|
-
qs "6.10.3"
|
135
|
-
range-parser "~1.2.1"
|
136
|
-
safe-buffer "5.2.1"
|
137
|
-
send "0.18.0"
|
138
|
-
serve-static "1.15.0"
|
139
|
-
setprototypeof "1.2.0"
|
140
|
-
statuses "2.0.1"
|
141
|
-
type-is "~1.6.18"
|
142
|
-
utils-merge "1.0.1"
|
143
|
-
vary "~1.1.2"
|
144
|
-
|
145
|
-
finalhandler@1.2.0:
|
146
|
-
version "1.2.0"
|
147
|
-
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
|
148
|
-
integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
|
149
|
-
dependencies:
|
150
|
-
debug "2.6.9"
|
151
|
-
encodeurl "~1.0.2"
|
152
|
-
escape-html "~1.0.3"
|
153
|
-
on-finished "2.4.1"
|
154
|
-
parseurl "~1.3.3"
|
155
|
-
statuses "2.0.1"
|
156
|
-
unpipe "~1.0.0"
|
157
|
-
|
158
|
-
forwarded@0.2.0:
|
159
|
-
version "0.2.0"
|
160
|
-
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
|
161
|
-
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
|
162
|
-
|
163
|
-
fresh@0.5.2:
|
164
|
-
version "0.5.2"
|
165
|
-
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
166
|
-
integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
|
167
|
-
|
168
|
-
function-bind@^1.1.1:
|
169
|
-
version "1.1.1"
|
170
|
-
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
171
|
-
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
172
|
-
|
173
|
-
get-intrinsic@^1.0.2:
|
174
|
-
version "1.1.2"
|
175
|
-
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598"
|
176
|
-
integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==
|
177
|
-
dependencies:
|
178
|
-
function-bind "^1.1.1"
|
179
|
-
has "^1.0.3"
|
180
|
-
has-symbols "^1.0.3"
|
181
|
-
|
182
|
-
has-symbols@^1.0.3:
|
183
|
-
version "1.0.3"
|
184
|
-
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
185
|
-
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
186
|
-
|
187
|
-
has@^1.0.3:
|
188
|
-
version "1.0.3"
|
189
|
-
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
190
|
-
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
191
|
-
dependencies:
|
192
|
-
function-bind "^1.1.1"
|
193
|
-
|
194
|
-
http-errors@2.0.0:
|
195
|
-
version "2.0.0"
|
196
|
-
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
|
197
|
-
integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
|
198
|
-
dependencies:
|
199
|
-
depd "2.0.0"
|
200
|
-
inherits "2.0.4"
|
201
|
-
setprototypeof "1.2.0"
|
202
|
-
statuses "2.0.1"
|
203
|
-
toidentifier "1.0.1"
|
204
|
-
|
205
|
-
iconv-lite@0.4.24:
|
206
|
-
version "0.4.24"
|
207
|
-
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
208
|
-
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
|
209
|
-
dependencies:
|
210
|
-
safer-buffer ">= 2.1.2 < 3"
|
211
|
-
|
212
|
-
inherits@2.0.4:
|
213
|
-
version "2.0.4"
|
214
|
-
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
215
|
-
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
216
|
-
|
217
|
-
ipaddr.js@1.9.1:
|
218
|
-
version "1.9.1"
|
219
|
-
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
220
|
-
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
|
221
|
-
|
222
|
-
media-typer@0.3.0:
|
223
|
-
version "0.3.0"
|
224
|
-
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
225
|
-
integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
|
226
|
-
|
227
|
-
merge-descriptors@1.0.1:
|
228
|
-
version "1.0.1"
|
229
|
-
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
230
|
-
integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
|
231
|
-
|
232
|
-
methods@~1.1.2:
|
233
|
-
version "1.1.2"
|
234
|
-
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
235
|
-
integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==
|
236
|
-
|
237
|
-
mime-db@1.52.0:
|
238
|
-
version "1.52.0"
|
239
|
-
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
240
|
-
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
241
|
-
|
242
|
-
mime-types@~2.1.24, mime-types@~2.1.34:
|
243
|
-
version "2.1.35"
|
244
|
-
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
245
|
-
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
246
|
-
dependencies:
|
247
|
-
mime-db "1.52.0"
|
248
|
-
|
249
|
-
mime@1.6.0:
|
250
|
-
version "1.6.0"
|
251
|
-
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
252
|
-
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
|
253
|
-
|
254
|
-
ms@2.0.0:
|
255
|
-
version "2.0.0"
|
256
|
-
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
257
|
-
integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
|
258
|
-
|
259
|
-
ms@2.1.3:
|
260
|
-
version "2.1.3"
|
261
|
-
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
262
|
-
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
263
|
-
|
264
|
-
negotiator@0.6.3:
|
265
|
-
version "0.6.3"
|
266
|
-
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
267
|
-
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
268
|
-
|
269
|
-
object-inspect@^1.9.0:
|
270
|
-
version "1.12.2"
|
271
|
-
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
|
272
|
-
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
|
273
|
-
|
274
|
-
on-finished@2.4.1:
|
275
|
-
version "2.4.1"
|
276
|
-
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
|
277
|
-
integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
|
278
|
-
dependencies:
|
279
|
-
ee-first "1.1.1"
|
280
|
-
|
281
|
-
parseurl@~1.3.3:
|
282
|
-
version "1.3.3"
|
283
|
-
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
284
|
-
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
|
285
|
-
|
286
|
-
path-to-regexp@0.1.7:
|
287
|
-
version "0.1.7"
|
288
|
-
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
289
|
-
integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
|
290
|
-
|
291
|
-
proxy-addr@~2.0.7:
|
292
|
-
version "2.0.7"
|
293
|
-
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
|
294
|
-
integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
|
295
|
-
dependencies:
|
296
|
-
forwarded "0.2.0"
|
297
|
-
ipaddr.js "1.9.1"
|
298
|
-
|
299
|
-
qs@6.10.3:
|
300
|
-
version "6.10.3"
|
301
|
-
resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
|
302
|
-
integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
|
303
|
-
dependencies:
|
304
|
-
side-channel "^1.0.4"
|
305
|
-
|
306
|
-
range-parser@~1.2.1:
|
307
|
-
version "1.2.1"
|
308
|
-
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
309
|
-
integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
|
310
|
-
|
311
|
-
raw-body@2.5.1:
|
312
|
-
version "2.5.1"
|
313
|
-
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
|
314
|
-
integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
|
315
|
-
dependencies:
|
316
|
-
bytes "3.1.2"
|
317
|
-
http-errors "2.0.0"
|
318
|
-
iconv-lite "0.4.24"
|
319
|
-
unpipe "1.0.0"
|
320
|
-
|
321
|
-
safe-buffer@5.2.1:
|
322
|
-
version "5.2.1"
|
323
|
-
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
324
|
-
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
325
|
-
|
326
|
-
"safer-buffer@>= 2.1.2 < 3":
|
327
|
-
version "2.1.2"
|
328
|
-
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
329
|
-
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
330
|
-
|
331
|
-
send@0.18.0:
|
332
|
-
version "0.18.0"
|
333
|
-
resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
|
334
|
-
integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
|
335
|
-
dependencies:
|
336
|
-
debug "2.6.9"
|
337
|
-
depd "2.0.0"
|
338
|
-
destroy "1.2.0"
|
339
|
-
encodeurl "~1.0.2"
|
340
|
-
escape-html "~1.0.3"
|
341
|
-
etag "~1.8.1"
|
342
|
-
fresh "0.5.2"
|
343
|
-
http-errors "2.0.0"
|
344
|
-
mime "1.6.0"
|
345
|
-
ms "2.1.3"
|
346
|
-
on-finished "2.4.1"
|
347
|
-
range-parser "~1.2.1"
|
348
|
-
statuses "2.0.1"
|
349
|
-
|
350
|
-
serve-static@1.15.0:
|
351
|
-
version "1.15.0"
|
352
|
-
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
|
353
|
-
integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
|
354
|
-
dependencies:
|
355
|
-
encodeurl "~1.0.2"
|
356
|
-
escape-html "~1.0.3"
|
357
|
-
parseurl "~1.3.3"
|
358
|
-
send "0.18.0"
|
359
|
-
|
360
|
-
setprototypeof@1.2.0:
|
361
|
-
version "1.2.0"
|
362
|
-
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
|
363
|
-
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
|
364
|
-
|
365
|
-
side-channel@^1.0.4:
|
366
|
-
version "1.0.4"
|
367
|
-
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
|
368
|
-
integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
|
369
|
-
dependencies:
|
370
|
-
call-bind "^1.0.0"
|
371
|
-
get-intrinsic "^1.0.2"
|
372
|
-
object-inspect "^1.9.0"
|
373
|
-
|
374
|
-
statuses@2.0.1:
|
375
|
-
version "2.0.1"
|
376
|
-
resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
|
377
|
-
integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
|
378
|
-
|
379
|
-
toidentifier@1.0.1:
|
380
|
-
version "1.0.1"
|
381
|
-
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
|
382
|
-
integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
|
383
|
-
|
384
|
-
type-is@~1.6.18:
|
385
|
-
version "1.6.18"
|
386
|
-
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
387
|
-
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
|
388
|
-
dependencies:
|
389
|
-
media-typer "0.3.0"
|
390
|
-
mime-types "~2.1.24"
|
391
|
-
|
392
|
-
unpipe@1.0.0, unpipe@~1.0.0:
|
393
|
-
version "1.0.0"
|
394
|
-
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
395
|
-
integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
|
396
|
-
|
397
|
-
utils-merge@1.0.1:
|
398
|
-
version "1.0.1"
|
399
|
-
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
400
|
-
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
|
401
|
-
|
402
|
-
vary@~1.1.2:
|
403
|
-
version "1.1.2"
|
404
|
-
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
405
|
-
integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
|