mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[ML] Fix apiDocs extractor script (#82582)
* [ML] fix serializer script * [ML] fix extractor * [ML] bump apiDoc version * [ML] update yarn.lock
This commit is contained in:
parent
7e24ae6e70
commit
c32215d7ff
6 changed files with 347 additions and 89 deletions
|
@ -577,8 +577,8 @@
|
|||
"angular-recursion": "^1.0.5",
|
||||
"angular-route": "^1.8.0",
|
||||
"angular-sortable-view": "^0.0.17",
|
||||
"apidoc": "^0.20.1",
|
||||
"apidoc-markdown": "^5.0.0",
|
||||
"apidoc": "^0.25.0",
|
||||
"apidoc-markdown": "^5.1.8",
|
||||
"apollo-link": "^1.2.3",
|
||||
"apollo-link-error": "^1.1.7",
|
||||
"apollo-link-state": "^0.4.1",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "ml_kibana_api",
|
||||
"version": "7.8.0",
|
||||
"version": "7.11.0",
|
||||
"description": "This is the documentation of the REST API provided by the Machine Learning Kibana plugin. Each API is experimental and can include breaking changes in any version.",
|
||||
"title": "ML Kibana API",
|
||||
"order": [
|
||||
|
|
|
@ -0,0 +1,209 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { extractDocumentation } from './schema_extractor';
|
||||
import * as path from 'path';
|
||||
|
||||
describe('schema_extractor', () => {
|
||||
it('should serialize schema definition', () => {
|
||||
const result = extractDocumentation([
|
||||
path.resolve(__dirname, '..', 'schemas', 'datafeeds_schema.ts'),
|
||||
]);
|
||||
|
||||
expect(result.get('startDatafeedSchema')).toEqual([
|
||||
{
|
||||
name: 'start',
|
||||
documentation: '',
|
||||
type: 'string | number',
|
||||
},
|
||||
{
|
||||
name: 'end',
|
||||
documentation: '',
|
||||
type: 'string | number',
|
||||
},
|
||||
{
|
||||
name: 'timeout',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
]);
|
||||
|
||||
expect(result.get('datafeedConfigSchema')).toEqual([
|
||||
{
|
||||
name: 'datafeed_id',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'feed_id',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'aggregations',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
{
|
||||
name: 'aggs',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
{
|
||||
name: 'chunking_config',
|
||||
documentation: '',
|
||||
type: 'chunking_config',
|
||||
nested: [
|
||||
{
|
||||
name: 'mode',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'time_span',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'frequency',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'indices',
|
||||
documentation: '',
|
||||
type: 'string[]',
|
||||
},
|
||||
{
|
||||
name: 'indexes',
|
||||
documentation: '',
|
||||
type: 'string[]',
|
||||
},
|
||||
{
|
||||
name: 'job_id',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'query',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
{
|
||||
name: 'max_empty_searches',
|
||||
documentation: '',
|
||||
type: 'number',
|
||||
},
|
||||
{
|
||||
name: 'query_delay',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'script_fields',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
{
|
||||
name: 'scroll_size',
|
||||
documentation: '',
|
||||
type: 'number',
|
||||
},
|
||||
{
|
||||
name: 'delayed_data_check_config',
|
||||
documentation: '',
|
||||
type: 'any',
|
||||
},
|
||||
{
|
||||
name: 'indices_options',
|
||||
documentation: '',
|
||||
type: 'indices_options',
|
||||
nested: [
|
||||
{
|
||||
name: 'expand_wildcards',
|
||||
documentation: '',
|
||||
type: 'string[]',
|
||||
},
|
||||
{
|
||||
name: 'ignore_unavailable',
|
||||
documentation: '',
|
||||
type: 'boolean',
|
||||
},
|
||||
{
|
||||
name: 'allow_no_indices',
|
||||
documentation: '',
|
||||
type: 'boolean',
|
||||
},
|
||||
{
|
||||
name: 'ignore_throttled',
|
||||
documentation: '',
|
||||
type: 'boolean',
|
||||
},
|
||||
],
|
||||
},
|
||||
]);
|
||||
|
||||
expect(result.get('deleteDatafeedQuerySchema')).toEqual([
|
||||
{
|
||||
name: 'force',
|
||||
documentation: '',
|
||||
type: 'any', // string
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
it('serializes schema with nested objects and nullable', () => {
|
||||
const result = extractDocumentation([
|
||||
path.resolve(__dirname, '..', 'schemas', 'results_service_schema.ts'),
|
||||
]);
|
||||
expect(result.get('getCategorizerStatsSchema')).toEqual([
|
||||
{
|
||||
name: 'partitionByValue',
|
||||
documentation:
|
||||
'Optional value to fetch the categorizer stats where results are filtered by partition_by_value = value',
|
||||
type: 'any', // FIXME string
|
||||
},
|
||||
]);
|
||||
|
||||
// @ts-ignore
|
||||
expect(result.get('partitionFieldValuesSchema')![5].nested[0]).toEqual({
|
||||
name: 'partition_field',
|
||||
documentation: '',
|
||||
type: 'partition_field',
|
||||
nested: [
|
||||
{
|
||||
name: 'applyTimeRange',
|
||||
documentation: '',
|
||||
type: 'boolean',
|
||||
},
|
||||
{
|
||||
name: 'anomalousOnly',
|
||||
documentation: '',
|
||||
type: 'boolean',
|
||||
},
|
||||
{
|
||||
name: 'sort',
|
||||
documentation: '',
|
||||
type: 'sort',
|
||||
nested: [
|
||||
{
|
||||
name: 'by',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
documentation: '',
|
||||
type: 'string',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
});
|
|
@ -90,65 +90,77 @@ export function extractDocumentation(
|
|||
return members;
|
||||
}
|
||||
|
||||
function resolveTypeArgument(type: ts.Type): ts.SymbolTable | string {
|
||||
// required to extract members
|
||||
type.getProperty('type');
|
||||
|
||||
// @ts-ignores
|
||||
let members = type.members;
|
||||
/**
|
||||
* Extracts properties of the type.
|
||||
* @param type
|
||||
*/
|
||||
function resolveTypeProperties(type: ts.Type): ts.Symbol[] {
|
||||
let props = type.getProperties();
|
||||
|
||||
const typeArguments = checker.getTypeArguments((type as unknown) as ts.TypeReference);
|
||||
|
||||
if (type.aliasTypeArguments) {
|
||||
// @ts-ignores
|
||||
members = type.aliasTypeArguments[0].members;
|
||||
props = type.aliasTypeArguments[0].getProperties();
|
||||
}
|
||||
|
||||
if (typeArguments.length > 0) {
|
||||
members = resolveTypeArgument(typeArguments[0]);
|
||||
props = resolveTypeProperties(typeArguments[0]);
|
||||
}
|
||||
|
||||
if (members === undefined) {
|
||||
members = checker.typeToString(type);
|
||||
}
|
||||
|
||||
return members;
|
||||
return props;
|
||||
}
|
||||
|
||||
function serializeProperty(symbol: ts.Symbol): DocEntry {
|
||||
// @ts-ignore
|
||||
const typeOfSymbol = symbol.type;
|
||||
const typeArguments = checker.getTypeArguments((typeOfSymbol as unknown) as ts.TypeReference);
|
||||
|
||||
let resultType: ts.Type = typeOfSymbol;
|
||||
|
||||
let members;
|
||||
if (typeArguments.length > 0) {
|
||||
members = resolveTypeArgument(typeArguments[0]);
|
||||
resultType = typeArguments[0];
|
||||
if (typeOfSymbol === undefined) {
|
||||
return {
|
||||
name: symbol.getName(),
|
||||
documentation: getCommentString(symbol),
|
||||
type: 'any',
|
||||
};
|
||||
}
|
||||
|
||||
let typeAsString = checker.typeToString(resultType);
|
||||
let targetType: ts.TypeReference | ts.Type =
|
||||
typeOfSymbol.getProperty('type')?.type ?? typeOfSymbol;
|
||||
|
||||
const isArrayOf = targetType.symbol?.name === 'Array';
|
||||
if (isArrayOf) {
|
||||
targetType = checker.getTypeArguments(targetType as ts.TypeReference)[0];
|
||||
}
|
||||
|
||||
let typeAsString = checker.typeToString(targetType);
|
||||
const nestedEntries: DocEntry[] = [];
|
||||
if (members && typeof members !== 'string' && members.size > 0) {
|
||||
// we hit an object or collection
|
||||
typeAsString =
|
||||
resultType.symbol.name === 'Array' || typeOfSymbol.symbol.name === 'Array'
|
||||
? `${symbol.getName()}[]`
|
||||
: symbol.getName();
|
||||
|
||||
members.forEach((member) => {
|
||||
nestedEntries.push(serializeProperty(member));
|
||||
});
|
||||
if (
|
||||
targetType.aliasTypeArguments ||
|
||||
checker.getTypeArguments(targetType as ts.TypeReference).length > 0
|
||||
) {
|
||||
// Resolve complex types, objects and arrays, that contain nested properties
|
||||
const typeProperties = resolveTypeProperties(targetType);
|
||||
|
||||
if (Array.isArray(typeProperties) && typeProperties.length > 0) {
|
||||
// we hit an object or collection
|
||||
typeAsString =
|
||||
targetType.symbol?.name === 'Array' || typeOfSymbol.symbol?.name === 'Array'
|
||||
? `${symbol.getName()}[]`
|
||||
: symbol.getName();
|
||||
|
||||
typeProperties.forEach((member) => {
|
||||
nestedEntries.push(serializeProperty(member));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
const res = {
|
||||
name: symbol.getName(),
|
||||
documentation: getCommentString(symbol),
|
||||
type: typeAsString,
|
||||
type: isArrayOf ? `${typeAsString}[]` : typeAsString,
|
||||
...(nestedEntries.length > 0 ? { nested: nestedEntries } : {}),
|
||||
};
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
function getCommentString(symbol: ts.Symbol): string {
|
||||
|
|
|
@ -10,10 +10,10 @@ import { DocEntry, extractDocumentation } from './schema_extractor';
|
|||
import { ApiParameter, Block } from './types';
|
||||
|
||||
export function postProcess(parsedFiles: any[]): void {
|
||||
const schemasDirPath = `${__dirname}${path.sep}..${path.sep}..${path.sep}schemas${path.sep}`;
|
||||
const schemasDirPath = path.resolve(__dirname, '..', '..', 'schemas');
|
||||
const schemaFiles = fs
|
||||
.readdirSync(schemasDirPath)
|
||||
.map((filename) => path.resolve(schemasDirPath + filename));
|
||||
.map((filename) => path.resolve(schemasDirPath, filename));
|
||||
|
||||
const schemaDocs = extractDocumentation(schemaFiles);
|
||||
|
||||
|
|
139
yarn.lock
139
yarn.lock
|
@ -6765,39 +6765,41 @@ anymatch@^3.0.3, anymatch@~3.1.1:
|
|||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
apidoc-core@^0.11.1:
|
||||
version "0.11.1"
|
||||
resolved "https://registry.yarnpkg.com/apidoc-core/-/apidoc-core-0.11.1.tgz#b04a7e0292e4ac0d714b40789f1b92f414486c81"
|
||||
integrity sha512-pt/ICBdFQCZTgL38Aw1XB3G9AajDU1JA5E3yoDEgg0mqbPTCkOL8AyWdysjvNtQS/kkXgSPazCZaZzZYqrPHog==
|
||||
apidoc-core@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/apidoc-core/-/apidoc-core-0.12.0.tgz#96e5c04c17b92c288664ef3c8aa4c78cbfacccb6"
|
||||
integrity sha512-VMhkJWz5IAyvWM0RnEbKNi1qe8se+id3/Ki3H/ePM8ih0KYTfaaSDxqo2w4uIVB1UVVKFvrTWyYUyQs7CEcoKQ==
|
||||
dependencies:
|
||||
fs-extra "^8.1.0"
|
||||
glob "^7.1.4"
|
||||
iconv-lite "^0.5.0"
|
||||
fs-extra "^9.0.1"
|
||||
glob "^7.1.6"
|
||||
iconv-lite "^0.6.2"
|
||||
klaw-sync "^6.0.0"
|
||||
lodash "~4.17.15"
|
||||
semver "~6.3.0"
|
||||
lodash "^4.17.20"
|
||||
semver "~7.3.2"
|
||||
|
||||
apidoc-markdown@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/apidoc-markdown/-/apidoc-markdown-5.0.0.tgz#e2d59d7cbbaa10402b09cec3e8ec17a03a27be59"
|
||||
integrity sha512-gp4I4MvtgJvZPikEd7lwn149jjnC454CanPhm5demROdHCuakY+3YtIKEgVrJOqnS2iwbeeF+u4riB9CoO11+A==
|
||||
apidoc-markdown@^5.1.8:
|
||||
version "5.1.8"
|
||||
resolved "https://registry.yarnpkg.com/apidoc-markdown/-/apidoc-markdown-5.1.8.tgz#521c1c5b387b8491f1ad58f26405ba8b5c6effe7"
|
||||
integrity sha512-S92k1aJVSmWIW/HyKtU0NBcSWCmU5j/uNBF7OfWYgLFPryNnyjkYBZxVv4s+7MxRJaiinHXx1WFcxqnDq8Q2Gg==
|
||||
dependencies:
|
||||
ejs "^3.0.1"
|
||||
semver "^7.1.3"
|
||||
yargs "^15.1.0"
|
||||
ejs "^3.1.5"
|
||||
semver "^7.3.2"
|
||||
update-notifier "^4.1.1"
|
||||
yargs "^16.0.3"
|
||||
|
||||
apidoc@^0.20.1:
|
||||
version "0.20.1"
|
||||
resolved "https://registry.yarnpkg.com/apidoc/-/apidoc-0.20.1.tgz#b29a2e2ae47e2df6a29e1f1527b94edf91853072"
|
||||
integrity sha512-V54vkZ2lDFBiGn0qusZmHbMi4svuFBq0rjZAIe3nwYvBY7iztW78vKOyHyTr9ASaTB7EGe8hhLbpEnYAIO31TQ==
|
||||
apidoc@^0.25.0:
|
||||
version "0.25.0"
|
||||
resolved "https://registry.yarnpkg.com/apidoc/-/apidoc-0.25.0.tgz#d59ad8724e091f4a1e349ff50cf4fb4dd3de6142"
|
||||
integrity sha512-5g9fp8OffXZOdBTzm4BBvV5Vw54s+NmKnGZIUKuH+gRTqqJuRJpcGN6sz6WnjJ+NcvXhB7rIRp6FhtJahazx2Q==
|
||||
dependencies:
|
||||
apidoc-core "^0.11.1"
|
||||
apidoc-core "^0.12.0"
|
||||
commander "^2.20.0"
|
||||
fs-extra "^8.1.0"
|
||||
lodash "^4.17.15"
|
||||
markdown-it "^10.0.0"
|
||||
nodemon "^2.0.2"
|
||||
winston "^3.2.1"
|
||||
fs-extra "^9.0.1"
|
||||
handlebars "^4.7.6"
|
||||
lodash "^4.17.20"
|
||||
markdown-it "^11.0.0"
|
||||
nodemon "^2.0.4"
|
||||
winston "^3.3.3"
|
||||
|
||||
apollo-cache-control@^0.1.0:
|
||||
version "0.1.1"
|
||||
|
@ -12054,7 +12056,7 @@ ee-first@1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
|
||||
|
||||
ejs@^3.0.1, ejs@^3.1.2, ejs@^3.1.5:
|
||||
ejs@^3.1.2, ejs@^3.1.5:
|
||||
version "3.1.5"
|
||||
resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b"
|
||||
integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==
|
||||
|
@ -14135,15 +14137,6 @@ fs-extra@^7.0.0, fs-extra@^7.0.1, fs-extra@~7.0.1:
|
|||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
|
||||
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.0"
|
||||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-extra@^9.0.0, fs-extra@^9.0.1:
|
||||
version "9.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc"
|
||||
|
@ -15353,7 +15346,7 @@ handle-thing@^2.0.0:
|
|||
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
|
||||
integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
|
||||
|
||||
handlebars@4.7.6:
|
||||
handlebars@4.7.6, handlebars@^4.7.6:
|
||||
version "4.7.6"
|
||||
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e"
|
||||
integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==
|
||||
|
@ -16040,13 +16033,20 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@~0.4.13:
|
|||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.5.0, iconv-lite@^0.5.1:
|
||||
iconv-lite@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64"
|
||||
integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3"
|
||||
|
||||
iconv-lite@^0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01"
|
||||
integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
||||
|
||||
icss-utils@^4.0.0, icss-utils@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
|
||||
|
@ -18737,6 +18737,13 @@ linkify-it@^2.0.0:
|
|||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
linkify-it@^3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8"
|
||||
integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
listr-silent-renderer@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e"
|
||||
|
@ -19527,6 +19534,17 @@ markdown-it@^10.0.0:
|
|||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-it@^11.0.0:
|
||||
version "11.0.1"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-11.0.1.tgz#b54f15ec2a2193efa66dda1eb4173baea08993d6"
|
||||
integrity sha512-aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ==
|
||||
dependencies:
|
||||
argparse "^1.0.7"
|
||||
entities "~2.0.0"
|
||||
linkify-it "^3.0.1"
|
||||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-to-jsx@^6.11.4:
|
||||
version "6.11.4"
|
||||
resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5"
|
||||
|
@ -20766,10 +20784,10 @@ nodemailer@^4.7.0:
|
|||
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-4.7.0.tgz#4420e06abfffd77d0618f184ea49047db84f4ad8"
|
||||
integrity sha512-IludxDypFpYw4xpzKdMAozBSkzKHmNBvGanUREjJItgJ2NYcK/s8+PggVhj7c2yGFQykKsnnmv1+Aqo0ZfjHmw==
|
||||
|
||||
nodemon@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.3.tgz#e9c64df8740ceaef1cb00e1f3da57c0a93ef3714"
|
||||
integrity sha512-lLQLPS90Lqwc99IHe0U94rDgvjo+G9I4uEIxRG3evSLROcqQ9hwc0AxlSHKS4T1JW/IMj/7N5mthiN58NL/5kw==
|
||||
nodemon@^2.0.4:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.6.tgz#1abe1937b463aaf62f0d52e2b7eaadf28cc2240d"
|
||||
integrity sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==
|
||||
dependencies:
|
||||
chokidar "^3.2.2"
|
||||
debug "^3.2.6"
|
||||
|
@ -20779,8 +20797,8 @@ nodemon@^2.0.2:
|
|||
semver "^5.7.1"
|
||||
supports-color "^5.5.0"
|
||||
touch "^3.1.0"
|
||||
undefsafe "^2.0.2"
|
||||
update-notifier "^4.0.0"
|
||||
undefsafe "^2.0.3"
|
||||
update-notifier "^4.1.0"
|
||||
|
||||
"nomnom@>= 1.5.x":
|
||||
version "1.8.1"
|
||||
|
@ -24890,7 +24908,7 @@ safefs@^4.1.0:
|
|||
editions "^1.1.1"
|
||||
graceful-fs "^4.1.4"
|
||||
|
||||
"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
||||
"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
@ -25129,12 +25147,12 @@ semver@7.0.0:
|
|||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
|
||||
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
|
||||
|
||||
semver@7.3.2, semver@^7.1.3, semver@^7.3.2:
|
||||
semver@7.3.2, semver@^7.3.2, semver@~7.3.2:
|
||||
version "7.3.2"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938"
|
||||
integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==
|
||||
|
||||
semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@~6.3.0:
|
||||
semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
|
@ -27690,7 +27708,7 @@ undeclared-identifiers@^1.1.2:
|
|||
simple-concat "^1.0.0"
|
||||
xtend "^4.0.1"
|
||||
|
||||
undefsafe@^2.0.2:
|
||||
undefsafe@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
|
||||
integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
|
||||
|
@ -28095,7 +28113,7 @@ update-notifier@^0.5.0:
|
|||
semver-diff "^2.0.0"
|
||||
string-length "^1.0.0"
|
||||
|
||||
update-notifier@^4.0.0, update-notifier@^4.1.0:
|
||||
update-notifier@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3"
|
||||
integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==
|
||||
|
@ -28114,6 +28132,25 @@ update-notifier@^4.0.0, update-notifier@^4.1.0:
|
|||
semver-diff "^3.1.1"
|
||||
xdg-basedir "^4.0.0"
|
||||
|
||||
update-notifier@^4.1.1:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
|
||||
integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
|
||||
dependencies:
|
||||
boxen "^4.2.0"
|
||||
chalk "^3.0.0"
|
||||
configstore "^5.0.1"
|
||||
has-yarn "^2.1.0"
|
||||
import-lazy "^2.1.0"
|
||||
is-ci "^2.0.0"
|
||||
is-installed-globally "^0.3.1"
|
||||
is-npm "^4.0.0"
|
||||
is-yarn-global "^0.3.0"
|
||||
latest-version "^5.0.0"
|
||||
pupa "^2.0.1"
|
||||
semver-diff "^3.1.1"
|
||||
xdg-basedir "^4.0.0"
|
||||
|
||||
upper-case-first@^1.1.0, upper-case-first@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115"
|
||||
|
@ -29450,7 +29487,7 @@ winston@3.2.1:
|
|||
triple-beam "^1.3.0"
|
||||
winston-transport "^4.3.0"
|
||||
|
||||
winston@^3.0.0, winston@^3.2.1, winston@^3.3.3:
|
||||
winston@^3.0.0, winston@^3.3.3:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
|
||||
integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
|
||||
|
@ -29816,7 +29853,7 @@ yargs@13.3.2, yargs@^13.2.2, yargs@^13.3.0, yargs@^13.3.2:
|
|||
y18n "^4.0.0"
|
||||
yargs-parser "^13.1.2"
|
||||
|
||||
yargs@^15.0.2, yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1:
|
||||
yargs@^15.0.2, yargs@^15.3.1, yargs@^15.4.1:
|
||||
version "15.4.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
|
||||
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue