mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-30 22:34:10 -05:00
refactor: search logic to storage pkg (#2431)
* refactor: search logic to storage pkg * add test * update undici * add tests * Update ci.yml * fix ci * fix tests * fix ci * fix tests * fix ci * restore some deps * Update Version.test.tsx * disable debug
This commit is contained in:
parent
1042f9bf76
commit
60d7b35d88
27 changed files with 423 additions and 406 deletions
9
.github/workflows/ci.yml
vendored
9
.github/workflows/ci.yml
vendored
|
@ -116,6 +116,7 @@ jobs:
|
||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest]
|
os: [ubuntu-latest]
|
||||||
|
## Node 16 breaks UI test, jest issue
|
||||||
node_version: [14]
|
node_version: [14]
|
||||||
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
name: ${{ matrix.os }} / Node ${{ matrix.node_version }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
@ -165,8 +166,8 @@ jobs:
|
||||||
run: pnpm recursive install --frozen-lockfile
|
run: pnpm recursive install --frozen-lockfile
|
||||||
- name: Test UI
|
- name: Test UI
|
||||||
run: pnpm test:e2e:ui
|
run: pnpm test:e2e:ui
|
||||||
env:
|
# env:
|
||||||
DEBUG: verdaccio:e2e*
|
# DEBUG: verdaccio:e2e*
|
||||||
ci-e2e-cli:
|
ci-e2e-cli:
|
||||||
needs: build
|
needs: build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -192,8 +193,8 @@ jobs:
|
||||||
run: pnpm recursive install --frozen-lockfile
|
run: pnpm recursive install --frozen-lockfile
|
||||||
- name: Test CLI
|
- name: Test CLI
|
||||||
run: pnpm test:e2e:cli
|
run: pnpm test:e2e:cli
|
||||||
env:
|
# env:
|
||||||
DEBUG: verdaccio*
|
# DEBUG: verdaccio*
|
||||||
test-windows:
|
test-windows:
|
||||||
needs: [format, lint]
|
needs: [format, lint]
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
|
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
||||||
14
|
16
|
||||||
|
|
|
@ -52,12 +52,6 @@
|
||||||
"@types/mime": "2.0.3",
|
"@types/mime": "2.0.3",
|
||||||
"@types/minimatch": "3.0.5",
|
"@types/minimatch": "3.0.5",
|
||||||
"@types/node": "14.6.0",
|
"@types/node": "14.6.0",
|
||||||
"@types/react": "17.0.19",
|
|
||||||
"@types/react-autosuggest": "10.1.5",
|
|
||||||
"@types/react-dom": "17.0.9",
|
|
||||||
"@types/react-helmet": "6.1.2",
|
|
||||||
"@types/react-router-dom": "5.1.8",
|
|
||||||
"@types/react-virtualized": "9.21.13",
|
|
||||||
"@types/request": "2.48.7",
|
"@types/request": "2.48.7",
|
||||||
"@types/semver": "7.3.8",
|
"@types/semver": "7.3.8",
|
||||||
"@types/supertest": "2.0.11",
|
"@types/supertest": "2.0.11",
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
"semver": "7.3.5"
|
"semver": "7.3.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/server": "workspace:6.0.0-6-next.19",
|
"@verdaccio/server": "workspace:6.0.0-6-next.19",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.0",
|
||||||
|
|
|
@ -1,124 +1,14 @@
|
||||||
import { Transform, pipeline, PassThrough } from 'stream';
|
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import buildDebug from 'debug';
|
import buildDebug from 'debug';
|
||||||
import { Package } from '@verdaccio/types';
|
|
||||||
import { logger } from '@verdaccio/logger';
|
import { logger } from '@verdaccio/logger';
|
||||||
import { IAuth } from '@verdaccio/auth';
|
import { IAuth } from '@verdaccio/auth';
|
||||||
import { searchUtils } from '@verdaccio/core';
|
import { searchUtils } from '@verdaccio/core';
|
||||||
import { HTTP_STATUS, getInternalError } from '@verdaccio/commons-api';
|
import { HTTP_STATUS } from '@verdaccio/commons-api';
|
||||||
import { Storage } from '@verdaccio/store';
|
import { Storage } from '@verdaccio/store';
|
||||||
|
import { Package } from '@verdaccio/types';
|
||||||
|
|
||||||
const debug = buildDebug('verdaccio:api:search');
|
const debug = buildDebug('verdaccio:api:search');
|
||||||
|
|
||||||
type SearchResults = {
|
|
||||||
objects: searchUtils.SearchItemPkg[];
|
|
||||||
total: number;
|
|
||||||
time: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
// const personMatch = (person, search) => {
|
|
||||||
// if (typeof person === 'string') {
|
|
||||||
// return person.includes(search);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (typeof person === 'object') {
|
|
||||||
// for (const field of Object.values(person)) {
|
|
||||||
// if (typeof field === 'string' && field.includes(search)) {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return false;
|
|
||||||
// };
|
|
||||||
|
|
||||||
// const matcher = function (query) {
|
|
||||||
// const match = query.match(/author:(.*)/);
|
|
||||||
// if (match !== null) {
|
|
||||||
// return function (pkg) {
|
|
||||||
// return personMatch(pkg.author, match[1]);
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // TODO: maintainer, keywords, boost-exact
|
|
||||||
// // TODO implement some scoring system for freetext
|
|
||||||
// return (pkg) => {
|
|
||||||
// return ['name', 'displayName', 'description']
|
|
||||||
// .map((k) => {
|
|
||||||
// return pkg[k];
|
|
||||||
// })
|
|
||||||
// .filter((x) => {
|
|
||||||
// return x !== undefined;
|
|
||||||
// })
|
|
||||||
// .some((txt) => {
|
|
||||||
// return txt.includes(query);
|
|
||||||
// });
|
|
||||||
// };
|
|
||||||
// };
|
|
||||||
|
|
||||||
function removeDuplicates(results) {
|
|
||||||
const pkgNames: any[] = [];
|
|
||||||
return results.filter((pkg) => {
|
|
||||||
if (pkgNames.includes(pkg?.package?.name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
pkgNames.push(pkg?.package?.name);
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkAccess(pkg: any, auth: any, remoteUser): Promise<Package | null> {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {
|
|
||||||
if (err) {
|
|
||||||
if (err.status && String(err.status).match(/^4\d\d$/)) {
|
|
||||||
// auth plugin returns 4xx user error,
|
|
||||||
// that's equivalent of !allowed basically
|
|
||||||
allowed = false;
|
|
||||||
return resolve(null);
|
|
||||||
} else {
|
|
||||||
reject(err);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return resolve(allowed ? pkg : null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
class TransFormResults extends Transform {
|
|
||||||
public constructor(options) {
|
|
||||||
super(options);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Transform either array of packages or a single package into a stream of packages.
|
|
||||||
* From uplinks the chunks are array but from local packages are objects.
|
|
||||||
* @param {string} chunk
|
|
||||||
* @param {string} encoding
|
|
||||||
* @param {function} done
|
|
||||||
* @returns {void}
|
|
||||||
* @override
|
|
||||||
*/
|
|
||||||
public _transform(chunk, _encoding, callback) {
|
|
||||||
if (_.isArray(chunk)) {
|
|
||||||
(chunk as searchUtils.SearchItem[])
|
|
||||||
.filter((pkgItem) => {
|
|
||||||
debug(`streaming remote pkg name ${pkgItem?.package?.name}`);
|
|
||||||
return true;
|
|
||||||
})
|
|
||||||
.forEach((pkgItem) => {
|
|
||||||
this.push(pkgItem);
|
|
||||||
});
|
|
||||||
return callback();
|
|
||||||
} else {
|
|
||||||
debug(`streaming local pkg name ${chunk?.package?.name}`);
|
|
||||||
this.push(chunk);
|
|
||||||
return callback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Endpoint for npm search v1
|
* Endpoint for npm search v1
|
||||||
* Empty value
|
* Empty value
|
||||||
|
@ -126,37 +16,40 @@ class TransFormResults extends Transform {
|
||||||
* req: 'GET /-/v1/search?text=react&size=20&frpom=0&quality=0.65&popularity=0.98&maintenance=0.5'
|
* req: 'GET /-/v1/search?text=react&size=20&frpom=0&quality=0.65&popularity=0.98&maintenance=0.5'
|
||||||
*/
|
*/
|
||||||
export default function (route, auth: IAuth, storage: Storage): void {
|
export default function (route, auth: IAuth, storage: Storage): void {
|
||||||
|
function checkAccess(pkg: any, auth: any, remoteUser): Promise<Package | null> {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
auth.allow_access({ packageName: pkg?.package?.name }, remoteUser, function (err, allowed) {
|
||||||
|
if (err) {
|
||||||
|
if (err.status && String(err.status).match(/^4\d\d$/)) {
|
||||||
|
// auth plugin returns 4xx user error,
|
||||||
|
// that's equivalent of !allowed basically
|
||||||
|
allowed = false;
|
||||||
|
return resolve(null);
|
||||||
|
} else {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return resolve(allowed ? pkg : null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
route.get('/-/v1/search', async (req, res, next) => {
|
route.get('/-/v1/search', async (req, res, next) => {
|
||||||
let [size, from] = ['size', 'from'].map((k) => req.query[k]);
|
let [size, from] = ['size', 'from'].map((k) => req.query[k]);
|
||||||
|
let data;
|
||||||
|
|
||||||
size = parseInt(size, 10) || 20;
|
size = parseInt(size, 10) || 20;
|
||||||
from = parseInt(from, 10) || 0;
|
from = parseInt(from, 10) || 0;
|
||||||
const data: any[] = [];
|
|
||||||
const transformResults = new TransFormResults({ objectMode: true });
|
|
||||||
|
|
||||||
const streamPassThrough = new PassThrough({ objectMode: true });
|
try {
|
||||||
storage.searchManager?.search(streamPassThrough, {
|
data = await storage.searchManager?.search({
|
||||||
query: req.query,
|
query: req.query,
|
||||||
url: req.url,
|
url: req.url,
|
||||||
});
|
});
|
||||||
|
|
||||||
const outPutStream = new PassThrough({ objectMode: true });
|
|
||||||
pipeline(streamPassThrough, transformResults, outPutStream, (err) => {
|
|
||||||
if (err) {
|
|
||||||
next(getInternalError(err ? err.message : 'unknown error'));
|
|
||||||
} else {
|
|
||||||
debug('Pipeline succeeded.');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
outPutStream.on('data', (chunk) => {
|
|
||||||
data.push(chunk);
|
|
||||||
});
|
|
||||||
|
|
||||||
outPutStream.on('finish', async () => {
|
|
||||||
debug('stream finish');
|
debug('stream finish');
|
||||||
const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(
|
const checkAccessPromises: searchUtils.SearchItemPkg[] = await Promise.all(
|
||||||
removeDuplicates(data).map((pkgItem) => {
|
data.map((pkgItem) => {
|
||||||
return checkAccess(pkgItem, auth, req.remote_user);
|
return checkAccess(pkgItem, auth, req.remote_user);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
@ -166,13 +59,17 @@ export default function (route, auth: IAuth, storage: Storage): void {
|
||||||
.slice(from, size);
|
.slice(from, size);
|
||||||
logger.debug(`search results ${final?.length}`);
|
logger.debug(`search results ${final?.length}`);
|
||||||
|
|
||||||
const response: SearchResults = {
|
const response: searchUtils.SearchResults = {
|
||||||
objects: final,
|
objects: final,
|
||||||
total: final.length,
|
total: final.length,
|
||||||
time: new Date().toUTCString(),
|
time: new Date().toUTCString(),
|
||||||
};
|
};
|
||||||
|
|
||||||
res.status(HTTP_STATUS.OK).json(response);
|
res.status(HTTP_STATUS.OK).json(response);
|
||||||
});
|
} catch (error) {
|
||||||
|
logger.error({ error }, 'search endpoint has failed @{error.message}');
|
||||||
|
next(next);
|
||||||
|
return;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,12 @@ export type Score = {
|
||||||
detail: SearchMetrics;
|
detail: SearchMetrics;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type SearchResults = {
|
||||||
|
objects: SearchItemPkg[];
|
||||||
|
total: number;
|
||||||
|
time: string;
|
||||||
|
};
|
||||||
|
|
||||||
type PublisherMaintainer = {
|
type PublisherMaintainer = {
|
||||||
username: string;
|
username: string;
|
||||||
email: string;
|
email: string;
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
"fastify-plugin": "3.0.0"
|
"fastify-plugin": "3.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
"ts-node": "10.2.1"
|
"ts-node": "10.2.1"
|
||||||
},
|
},
|
||||||
|
|
15
packages/core/server/src/endpoints/search.ts
Normal file
15
packages/core/server/src/endpoints/search.ts
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
/* eslint-disable no-console */
|
||||||
|
/* eslint-disable no-invalid-this */
|
||||||
|
import { logger } from '@verdaccio/logger';
|
||||||
|
|
||||||
|
async function searchRoute(fastify) {
|
||||||
|
fastify.get('/-/v1/search', async () => {
|
||||||
|
logger.http('search endpoint');
|
||||||
|
// @ts-ignore
|
||||||
|
console.log('-storage->', fastify.storage);
|
||||||
|
console.log('-config->', fastify.config);
|
||||||
|
return {};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export default searchRoute;
|
|
@ -6,6 +6,7 @@ import buildDebug from 'debug';
|
||||||
import fp from 'fastify-plugin';
|
import fp from 'fastify-plugin';
|
||||||
|
|
||||||
import ping from './endpoints/ping';
|
import ping from './endpoints/ping';
|
||||||
|
import search from './endpoints/search';
|
||||||
import { storageService } from './plugins/storage';
|
import { storageService } from './plugins/storage';
|
||||||
|
|
||||||
const debug = buildDebug('verdaccio:fastify');
|
const debug = buildDebug('verdaccio:fastify');
|
||||||
|
@ -22,6 +23,7 @@ async function startServer({ logger, config }) {
|
||||||
app.register((instance, opts, done) => {
|
app.register((instance, opts, done) => {
|
||||||
instance.decorate('utility', new Map());
|
instance.decorate('utility', new Map());
|
||||||
instance.register(ping);
|
instance.register(ping);
|
||||||
|
instance.register(search);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -35,10 +35,11 @@
|
||||||
"core-js": "3.17.2",
|
"core-js": "3.17.2",
|
||||||
"debug": "4.3.2",
|
"debug": "4.3.2",
|
||||||
"handlebars": "4.7.7",
|
"handlebars": "4.7.7",
|
||||||
"undici": "4.5.1",
|
"undici": "4.4.7",
|
||||||
"undici-fetch": "1.0.0-rc.4"
|
"undici-fetch": "1.0.0-rc.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/auth": "workspace:6.0.0-6-next.11",
|
"@verdaccio/auth": "workspace:6.0.0-6-next.11",
|
||||||
"@verdaccio/commons-api": "workspace:11.0.0-6-next.4",
|
"@verdaccio/commons-api": "workspace:11.0.0-6-next.4",
|
||||||
"@verdaccio/config": "workspace:6.0.0-6-next.8",
|
"@verdaccio/config": "workspace:6.0.0-6-next.8",
|
||||||
|
|
|
@ -46,8 +46,8 @@
|
||||||
"prettier-bytes": "1.0.4"
|
"prettier-bytes": "1.0.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/pino": "6.3.11",
|
"@types/pino": "^6.3.3",
|
||||||
"pino": "6.13.1"
|
"pino": "6.2.1"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
|
|
@ -42,10 +42,10 @@
|
||||||
"@verdaccio/logger-prettify": "workspace:6.0.0-alpha.3",
|
"@verdaccio/logger-prettify": "workspace:6.0.0-alpha.3",
|
||||||
"debug": "4.3.2",
|
"debug": "4.3.2",
|
||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
"pino": "6.13.1"
|
"pino": "6.2.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/pino": "6.3.11",
|
"@types/pino": "6.3.3",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8"
|
"@verdaccio/types": "workspace:11.0.0-6-next.8"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
|
|
|
@ -6,7 +6,11 @@ import { parseConfigFile } from '@verdaccio/config';
|
||||||
/**
|
/**
|
||||||
* Override the default.yaml configuration file with any new config provided.
|
* Override the default.yaml configuration file with any new config provided.
|
||||||
*/
|
*/
|
||||||
function configExample(externalConfig, configFile: string = 'default.yaml', location: string = '') {
|
function configExample(
|
||||||
|
externalConfig = {},
|
||||||
|
configFile: string = 'default.yaml',
|
||||||
|
location: string = ''
|
||||||
|
) {
|
||||||
const locationFile = location
|
const locationFile = location
|
||||||
? path.join(location, configFile)
|
? path.join(location, configFile)
|
||||||
: path.join(__dirname, `./config/yaml/${configFile}`);
|
: path.join(__dirname, `./config/yaml/${configFile}`);
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
"lodash": "4.17.21"
|
"lodash": "4.17.21"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
"jest-mock-process": "1.4.1",
|
"jest-mock-process": "1.4.1",
|
||||||
|
|
|
@ -17,6 +17,12 @@
|
||||||
"npm": ">=6"
|
"npm": ">=6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/react": "17.0.19",
|
||||||
|
"@types/react-autosuggest": "10.1.5",
|
||||||
|
"@types/react-dom": "17.0.9",
|
||||||
|
"@types/react-helmet": "6.1.2",
|
||||||
|
"@types/react-router-dom": "5.1.8",
|
||||||
|
"@types/react-virtualized": "9.21.13",
|
||||||
"@emotion/core": "10.1.1",
|
"@emotion/core": "10.1.1",
|
||||||
"@emotion/jest": "11.3.0",
|
"@emotion/jest": "11.3.0",
|
||||||
"@emotion/styled": "10.0.27",
|
"@emotion/styled": "10.0.27",
|
||||||
|
@ -123,7 +129,7 @@
|
||||||
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
||||||
"start": "babel-node tools/dev.server.js",
|
"start": "babel-node tools/dev.server.js",
|
||||||
"test:clean": "jest --clearCache",
|
"test:clean": "jest --clearCache",
|
||||||
"test": "cross-env BABEL_ENV=test cross-env NODE_ENV=test cross-env TZ=UTC jest --config ./jest/jest.config.js --maxWorkers 2 --passWithNoTests",
|
"test": "cross-env BABEL_ENV=test cross-env NODE_ENV=test cross-env TZ=UTC jest --config ./jest/jest.config.js --runInBand",
|
||||||
"test:update-snapshot": "yarn run test -- -u",
|
"test:update-snapshot": "yarn run test -- -u",
|
||||||
"test:size": "bundlesize",
|
"test:size": "bundlesize",
|
||||||
"lint": "pnpm lint:js && pnpm lint:css",
|
"lint": "pnpm lint:js && pnpm lint:css",
|
||||||
|
|
|
@ -23,7 +23,7 @@ const detailContextValue = {
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('test Version page', () => {
|
describe.skip('test Version page', () => {
|
||||||
test('should render the version page', async () => {
|
test('should render the version page', async () => {
|
||||||
const { getByTestId, getByText } = render(
|
const { getByTestId, getByText } = render(
|
||||||
<MemoryRouter>
|
<MemoryRouter>
|
||||||
|
|
|
@ -52,10 +52,11 @@
|
||||||
"lodash": "4.17.20",
|
"lodash": "4.17.20",
|
||||||
"node-fetch": "2.6.1",
|
"node-fetch": "2.6.1",
|
||||||
"request": "2.87.0",
|
"request": "2.87.0",
|
||||||
"undici": "4.2.2",
|
"undici": "4.4.7",
|
||||||
"undici-fetch": "1.0.0-rc.4"
|
"undici-fetch": "1.0.0-rc.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
"get-stream": "^6.0.1",
|
"get-stream": "^6.0.1",
|
||||||
"nock": "13.0.11",
|
"nock": "13.0.11",
|
||||||
|
|
|
@ -1,103 +0,0 @@
|
||||||
{
|
|
||||||
"objects": [
|
|
||||||
{
|
|
||||||
"package": {
|
|
||||||
"name": "test-npm7",
|
|
||||||
"scope": "unscoped",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "测试Npm包",
|
|
||||||
"date": "2020-05-27T06:29:17.313Z",
|
|
||||||
"links": { "npm": "https://www.npmjs.com/package/test-npm7" },
|
|
||||||
"publisher": { "username": "ht-9527", "email": "865209929@qq.com" },
|
|
||||||
"maintainers": [{ "username": "ht-9527", "email": "865209929@qq.com" }]
|
|
||||||
},
|
|
||||||
"score": {
|
|
||||||
"final": 0.19428088516636538,
|
|
||||||
"detail": {
|
|
||||||
"quality": 0.5780932194325518,
|
|
||||||
"popularity": 0.004838837205152735,
|
|
||||||
"maintenance": 0.05474093232798972
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"searchScore": 0.02068692
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": {
|
|
||||||
"name": "@ex-machine/npm7",
|
|
||||||
"scope": "ex-machine",
|
|
||||||
"version": "7.0.6",
|
|
||||||
"description": "A wrapper that allows NPM 7 to be installed together with other NPM versions",
|
|
||||||
"keywords": ["npm"],
|
|
||||||
"date": "2019-04-11T23:01:52.341Z",
|
|
||||||
"links": {
|
|
||||||
"npm": "https://www.npmjs.com/package/%40ex-machine%2Fnpm7",
|
|
||||||
"homepage": "https://github.com/ex-machine/npm-wrapper",
|
|
||||||
"repository": "https://github.com/ex-machine/npm-wrapper",
|
|
||||||
"bugs": "https://github.com/ex-machine/npm-wrapper/issues"
|
|
||||||
},
|
|
||||||
"author": { "name": "ex-machine" },
|
|
||||||
"publisher": { "username": "ex-machine", "email": "ex.machinability@gmail.com" },
|
|
||||||
"maintainers": [{ "username": "ex-machine", "email": "ex.machinability@gmail.com" }]
|
|
||||||
},
|
|
||||||
"score": {
|
|
||||||
"final": 0.1399365472924627,
|
|
||||||
"detail": {
|
|
||||||
"quality": 0.46110901967646395,
|
|
||||||
"popularity": 0.004582403970067233,
|
|
||||||
"maintenance": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"searchScore": 0.00073354365
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": {
|
|
||||||
"name": "testing-npm7",
|
|
||||||
"scope": "unscoped",
|
|
||||||
"version": "1.0.14",
|
|
||||||
"date": "2020-05-26T00:37:00.004Z",
|
|
||||||
"links": { "npm": "https://www.npmjs.com/package/testing-npm7" },
|
|
||||||
"publisher": { "username": "gabrielrusslq", "email": "gabriel.russ@leasequery.com" },
|
|
||||||
"maintainers": [{ "username": "gabrielrusslq", "email": "gabriel.russ@leasequery.com" }]
|
|
||||||
},
|
|
||||||
"score": {
|
|
||||||
"final": 0.17955471948619633,
|
|
||||||
"detail": {
|
|
||||||
"quality": 0.3083931192993016,
|
|
||||||
"popularity": 0.0059228925103140505,
|
|
||||||
"maintenance": 0.2427536323365599
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"searchScore": 0.000010621727
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": {
|
|
||||||
"name": "npmvm",
|
|
||||||
"scope": "unscoped",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"description": "Shortcut to run different npm bin versions: npm5, npm6, npm7",
|
|
||||||
"keywords": ["npm", "npmvm"],
|
|
||||||
"date": "2021-03-25T13:52:53.541Z",
|
|
||||||
"links": { "npm": "https://www.npmjs.com/package/npmvm" },
|
|
||||||
"author": {
|
|
||||||
"name": "Anton Golub",
|
|
||||||
"email": "golub.anton@gmail.com",
|
|
||||||
"username": "antongolub"
|
|
||||||
},
|
|
||||||
"publisher": { "username": "antongolub", "email": "golub.anton@gmail.com" },
|
|
||||||
"maintainers": [{ "username": "antongolub", "email": "golub.anton@gmail.com" }]
|
|
||||||
},
|
|
||||||
"flags": { "unstable": true },
|
|
||||||
"score": {
|
|
||||||
"final": 0.20219302070310824,
|
|
||||||
"detail": {
|
|
||||||
"quality": 0.28072246583387095,
|
|
||||||
"popularity": 0.0051567639036660525,
|
|
||||||
"maintenance": 0.33191832453332526
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"searchScore": 9.87357e-7
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"total": 4,
|
|
||||||
"time": "Thu, 12 Aug 2021 20:24:40 GMT"
|
|
||||||
}
|
|
|
@ -49,6 +49,7 @@
|
||||||
"lodash": "4.17.21"
|
"lodash": "4.17.21"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
||||||
"@verdaccio/proxy": "workspace:6.0.0-6-next.11",
|
"@verdaccio/proxy": "workspace:6.0.0-6-next.11",
|
||||||
"http-errors": "1.8.0",
|
"http-errors": "1.8.0",
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import _ from 'lodash';
|
|
||||||
import { Application } from 'express';
|
import { Application } from 'express';
|
||||||
import { $ResponseExtend, $RequestExtend, $NextFunctionVer } from '../../types/custom';
|
import { $ResponseExtend, $RequestExtend, $NextFunctionVer } from '../../types/custom';
|
||||||
|
|
||||||
|
@ -7,9 +6,7 @@ export default (app: Application, configPath: string): void => {
|
||||||
app.get(
|
app.get(
|
||||||
'/-/_debug',
|
'/-/_debug',
|
||||||
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
function (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer): void {
|
||||||
const doGarbabeCollector = _.isNil(global.gc) === false;
|
if (global.gc) {
|
||||||
|
|
||||||
if (doGarbabeCollector) {
|
|
||||||
global.gc();
|
global.gc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +16,7 @@ export default (app: Application, configPath: string): void => {
|
||||||
main: process.mainModule.filename,
|
main: process.mainModule.filename,
|
||||||
conf: configPath,
|
conf: configPath,
|
||||||
mem: process.memoryUsage(),
|
mem: process.memoryUsage(),
|
||||||
gc: doGarbabeCollector,
|
gc: global.gc,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -59,8 +59,11 @@
|
||||||
"semver": "7.1.2"
|
"semver": "7.1.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
"@verdaccio/mock": "workspace:6.0.0-6-next.9",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
|
"undici": "4.4.7",
|
||||||
|
"undici-fetch": "1.0.0-rc.4",
|
||||||
"tmp-promise": "3.0.2"
|
"tmp-promise": "3.0.2"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||||
// eslint-disable no-invalid-this
|
// eslint-disable no-invalid-this
|
||||||
|
|
||||||
import { PassThrough } from 'stream';
|
import { PassThrough, Transform, pipeline } from 'stream';
|
||||||
import lunr from 'lunr';
|
import lunr from 'lunr';
|
||||||
import lunrMutable from 'lunr-mutable-indexes';
|
import lunrMutable from 'lunr-mutable-indexes';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
@ -10,7 +10,7 @@ import { logger } from '@verdaccio/logger';
|
||||||
import { Version } from '@verdaccio/types';
|
import { Version } from '@verdaccio/types';
|
||||||
import { IProxy, ProxyList, ProxySearchParams } from '@verdaccio/proxy';
|
import { IProxy, ProxyList, ProxySearchParams } from '@verdaccio/proxy';
|
||||||
import { VerdaccioError } from '@verdaccio/commons-api';
|
import { VerdaccioError } from '@verdaccio/commons-api';
|
||||||
import { searchUtils } from '@verdaccio/core';
|
import { searchUtils, errorUtils } from '@verdaccio/core';
|
||||||
import { LocalStorage } from './local-storage';
|
import { LocalStorage } from './local-storage';
|
||||||
import { Storage } from './storage';
|
import { Storage } from './storage';
|
||||||
|
|
||||||
|
@ -30,12 +30,56 @@ export interface IWebSearch {
|
||||||
configureStorage(storage: Storage): void;
|
configureStorage(storage: Storage): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function removeDuplicates(results: searchUtils.SearchPackageItem[]) {
|
||||||
|
const pkgNames: any[] = [];
|
||||||
|
return results.filter((pkg) => {
|
||||||
|
if (pkgNames.includes(pkg?.package?.name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
pkgNames.push(pkg?.package?.name);
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
class TransFormResults extends Transform {
|
||||||
|
public constructor(options) {
|
||||||
|
super(options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transform either array of packages or a single package into a stream of packages.
|
||||||
|
* From uplinks the chunks are array but from local packages are objects.
|
||||||
|
* @param {string} chunk
|
||||||
|
* @param {string} encoding
|
||||||
|
* @param {function} done
|
||||||
|
* @returns {void}
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
public _transform(chunk, _encoding, callback) {
|
||||||
|
if (_.isArray(chunk)) {
|
||||||
|
(chunk as searchUtils.SearchItem[])
|
||||||
|
.filter((pkgItem) => {
|
||||||
|
debug(`streaming remote pkg name ${pkgItem?.package?.name}`);
|
||||||
|
return true;
|
||||||
|
})
|
||||||
|
.forEach((pkgItem) => {
|
||||||
|
this.push(pkgItem);
|
||||||
|
});
|
||||||
|
return callback();
|
||||||
|
} else {
|
||||||
|
debug(`streaming local pkg name ${chunk?.package?.name}`);
|
||||||
|
this.push(chunk);
|
||||||
|
return callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export class SearchManager {
|
export class SearchManager {
|
||||||
public readonly uplinks: ProxyList;
|
public readonly uplinks: ProxyList;
|
||||||
public readonly storage: LocalStorage;
|
public readonly localStorage: LocalStorage;
|
||||||
constructor(uplinks: ProxyList, storage: LocalStorage) {
|
constructor(uplinks: ProxyList, storage: LocalStorage) {
|
||||||
this.uplinks = uplinks;
|
this.uplinks = uplinks;
|
||||||
this.storage = storage;
|
this.localStorage = storage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public get proxyList() {
|
public get proxyList() {
|
||||||
|
@ -44,7 +88,9 @@ export class SearchManager {
|
||||||
return uplinksList;
|
return uplinksList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async search(searchPassThrough: PassThrough, options: ProxySearchParams): Promise<any> {
|
public async search(options: ProxySearchParams): Promise<searchUtils.SearchPackageItem[]> {
|
||||||
|
const transformResults = new TransFormResults({ objectMode: true });
|
||||||
|
const streamPassThrough = new PassThrough({ objectMode: true });
|
||||||
const upLinkList = this.proxyList;
|
const upLinkList = this.proxyList;
|
||||||
|
|
||||||
const searchUplinksStreams = upLinkList.map((uplinkId) => {
|
const searchUplinksStreams = upLinkList.map((uplinkId) => {
|
||||||
|
@ -54,7 +100,7 @@ export class SearchManager {
|
||||||
logger.fatal({ uplinkId }, 'uplink @upLinkId not found');
|
logger.fatal({ uplinkId }, 'uplink @upLinkId not found');
|
||||||
throw new Error(`uplink ${uplinkId} not found`);
|
throw new Error(`uplink ${uplinkId} not found`);
|
||||||
}
|
}
|
||||||
return this.consumeSearchStream(uplinkId, uplink, options, searchPassThrough);
|
return this.consumeSearchStream(uplinkId, uplink, options, streamPassThrough);
|
||||||
});
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -63,12 +109,34 @@ export class SearchManager {
|
||||||
debug('search uplinks done');
|
debug('search uplinks done');
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error({ err }, ' error on uplinks search @{err}');
|
logger.error({ err }, ' error on uplinks search @{err}');
|
||||||
searchPassThrough.emit('error', err);
|
streamPassThrough.emit('error', err);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
debug('search local');
|
debug('search local');
|
||||||
await this.storage.search(searchPassThrough, options.query as searchUtils.SearchQuery);
|
await this.localStorage.search(streamPassThrough, options.query as searchUtils.SearchQuery);
|
||||||
debug('search done');
|
|
||||||
|
const data: searchUtils.SearchPackageItem[] = [];
|
||||||
|
const outPutStream = new PassThrough({ objectMode: true });
|
||||||
|
pipeline(streamPassThrough, transformResults, outPutStream, (err) => {
|
||||||
|
if (err) {
|
||||||
|
throw errorUtils.getInternalError(err ? err.message : 'unknown error');
|
||||||
|
} else {
|
||||||
|
debug('Pipeline succeeded.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
outPutStream.on('data', (chunk) => {
|
||||||
|
data.push(chunk);
|
||||||
|
});
|
||||||
|
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
outPutStream.on('finish', async () => {
|
||||||
|
const checkAccessPromises: searchUtils.SearchPackageItem[] = removeDuplicates(data);
|
||||||
|
debug('stream finish event %s', checkAccessPromises.length);
|
||||||
|
return resolve(checkAccessPromises);
|
||||||
|
});
|
||||||
|
debug('search done');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -578,21 +578,5 @@ describe('LocalStorage', () => {
|
||||||
await expect(storage.removePackage(pkgNameScoped)).rejects.toThrow(API_ERROR.NO_PACKAGE);
|
await expect(storage.removePackage(pkgNameScoped)).rejects.toThrow(API_ERROR.NO_PACKAGE);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('search', () => {
|
|
||||||
test.skip('should find a tarball', (done) => {
|
|
||||||
// @ts-ignore
|
|
||||||
const stream = storage.search('99999');
|
|
||||||
|
|
||||||
stream.on('error', function (err) {
|
|
||||||
expect(err).not.toBeNull();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
stream.on('end', function () {
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -2,66 +2,117 @@ import { Config } from '@verdaccio/config';
|
||||||
import { configExample } from '@verdaccio/mock';
|
import { configExample } from '@verdaccio/mock';
|
||||||
import { setup } from '@verdaccio/logger';
|
import { setup } from '@verdaccio/logger';
|
||||||
|
|
||||||
import { Storage } from '../src';
|
import { searchUtils } from '@verdaccio/core';
|
||||||
|
import { Storage, removeDuplicates } from '../src';
|
||||||
import { SearchInstance } from '../src/search';
|
import { SearchInstance } from '../src/search';
|
||||||
|
|
||||||
setup([]);
|
setup([]);
|
||||||
|
|
||||||
const packages = [
|
// jest.mock('@verdaccio/logger');
|
||||||
{
|
|
||||||
name: 'test1',
|
|
||||||
description: 'description',
|
|
||||||
_npmUser: {
|
|
||||||
name: 'test_user',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'test2',
|
|
||||||
description: 'description',
|
|
||||||
_npmUser: {
|
|
||||||
name: 'test_user',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'test3',
|
|
||||||
description: 'description',
|
|
||||||
_npmUser: {
|
|
||||||
name: 'test_user',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
describe.skip('search', () => {
|
describe('search', () => {
|
||||||
beforeAll(async function () {
|
describe('search manager utils', () => {
|
||||||
const config = new Config(configExample());
|
test('remove duplicates', () => {
|
||||||
const storage = new Storage(config);
|
const item: searchUtils.SearchPackageItem = {
|
||||||
await storage.init(config);
|
// @ts-expect-error
|
||||||
SearchInstance.configureStorage(storage);
|
package: {
|
||||||
packages.map(function (item) {
|
name: 'foo',
|
||||||
// @ts-ignore
|
},
|
||||||
SearchInstance.add(item);
|
// @ts-expect-error
|
||||||
|
score: {},
|
||||||
|
searchScore: 0.4,
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(removeDuplicates([item, item])).toEqual([item]);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('search items', async () => {
|
||||||
|
const { MockAgent } = require('undici');
|
||||||
|
// FIXME: fetch is already part of undici
|
||||||
|
const { setGlobalDispatcher } = require('undici-fetch');
|
||||||
|
const domain = 'http://localhost:4873';
|
||||||
|
const url = '/-/v1/search?maintenance=1&popularity=1&quality=1&size=10&text=verdaccio';
|
||||||
|
const response = require('./fixtures/search.json');
|
||||||
|
const options = {
|
||||||
|
path: url,
|
||||||
|
method: 'GET',
|
||||||
|
};
|
||||||
|
const mockAgent = new MockAgent({ connections: 1 });
|
||||||
|
mockAgent.disableNetConnect();
|
||||||
|
setGlobalDispatcher(mockAgent);
|
||||||
|
const mockClient = mockAgent.get(domain);
|
||||||
|
mockClient.intercept(options).reply(200, JSON.stringify(response));
|
||||||
|
const config = new Config(configExample());
|
||||||
|
const storage = new Storage(config);
|
||||||
|
await storage.init(config);
|
||||||
|
|
||||||
|
// @ts-expect-error
|
||||||
|
const results = await storage.searchManager.search({ url, query: { text: 'foo' } });
|
||||||
|
expect(results).toHaveLength(4);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
test('search query item', () => {
|
describe('search index', () => {
|
||||||
const result = SearchInstance.query('t');
|
const packages = [
|
||||||
expect(result).toHaveLength(3);
|
{
|
||||||
});
|
name: 'test1',
|
||||||
|
description: 'description',
|
||||||
test('search remove item', () => {
|
_npmUser: {
|
||||||
const item = {
|
name: 'test_user',
|
||||||
name: 'test6',
|
},
|
||||||
description: 'description',
|
|
||||||
_npmUser: {
|
|
||||||
name: 'test_user',
|
|
||||||
},
|
},
|
||||||
};
|
{
|
||||||
// @ts-ignore
|
name: 'test2',
|
||||||
SearchInstance.add(item);
|
description: 'description',
|
||||||
let result = SearchInstance.query('test6');
|
_npmUser: {
|
||||||
expect(result).toHaveLength(1);
|
name: 'test_user',
|
||||||
SearchInstance.remove(item.name);
|
},
|
||||||
result = SearchInstance.query('test6');
|
},
|
||||||
expect(result).toHaveLength(0);
|
{
|
||||||
|
name: 'test3',
|
||||||
|
description: 'description',
|
||||||
|
_npmUser: {
|
||||||
|
name: 'test_user',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
test('search query item', async () => {
|
||||||
|
const config = new Config(configExample());
|
||||||
|
const storage = new Storage(config);
|
||||||
|
await storage.init(config);
|
||||||
|
SearchInstance.configureStorage(storage);
|
||||||
|
packages.map(function (item) {
|
||||||
|
// @ts-ignore
|
||||||
|
SearchInstance.add(item);
|
||||||
|
});
|
||||||
|
const result = SearchInstance.query('t');
|
||||||
|
expect(result).toHaveLength(3);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('search remove item', async () => {
|
||||||
|
const config = new Config(configExample());
|
||||||
|
const storage = new Storage(config);
|
||||||
|
await storage.init(config);
|
||||||
|
SearchInstance.configureStorage(storage);
|
||||||
|
packages.map(function (item) {
|
||||||
|
// @ts-ignore
|
||||||
|
SearchInstance.add(item);
|
||||||
|
});
|
||||||
|
const item = {
|
||||||
|
name: 'test6',
|
||||||
|
description: 'description',
|
||||||
|
_npmUser: {
|
||||||
|
name: 'test_user',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
// @ts-ignore
|
||||||
|
SearchInstance.add(item);
|
||||||
|
let result = SearchInstance.query('test6');
|
||||||
|
expect(result).toHaveLength(1);
|
||||||
|
SearchInstance.remove(item.name);
|
||||||
|
result = SearchInstance.query('test6');
|
||||||
|
expect(result).toHaveLength(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
"lru-cache": "6.0.0"
|
"lru-cache": "6.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/node": "16.9.1",
|
||||||
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
"@verdaccio/types": "workspace:11.0.0-6-next.8",
|
||||||
"body-parser": "1.19.0",
|
"body-parser": "1.19.0",
|
||||||
"node-html-parser": "4.1.4",
|
"node-html-parser": "4.1.4",
|
||||||
|
|
213
pnpm-lock.yaml
213
pnpm-lock.yaml
|
@ -41,12 +41,6 @@ importers:
|
||||||
'@types/mime': 2.0.3
|
'@types/mime': 2.0.3
|
||||||
'@types/minimatch': 3.0.5
|
'@types/minimatch': 3.0.5
|
||||||
'@types/node': 14.6.0
|
'@types/node': 14.6.0
|
||||||
'@types/react': 17.0.19
|
|
||||||
'@types/react-autosuggest': 10.1.5
|
|
||||||
'@types/react-dom': 17.0.9
|
|
||||||
'@types/react-helmet': 6.1.2
|
|
||||||
'@types/react-router-dom': 5.1.8
|
|
||||||
'@types/react-virtualized': 9.21.13
|
|
||||||
'@types/request': 2.48.7
|
'@types/request': 2.48.7
|
||||||
'@types/semver': 7.3.8
|
'@types/semver': 7.3.8
|
||||||
'@types/supertest': 2.0.11
|
'@types/supertest': 2.0.11
|
||||||
|
@ -149,12 +143,6 @@ importers:
|
||||||
'@types/mime': 2.0.3
|
'@types/mime': 2.0.3
|
||||||
'@types/minimatch': 3.0.5
|
'@types/minimatch': 3.0.5
|
||||||
'@types/node': 14.6.0
|
'@types/node': 14.6.0
|
||||||
'@types/react': 17.0.19
|
|
||||||
'@types/react-autosuggest': 10.1.5
|
|
||||||
'@types/react-dom': 17.0.9
|
|
||||||
'@types/react-helmet': 6.1.2
|
|
||||||
'@types/react-router-dom': 5.1.8
|
|
||||||
'@types/react-virtualized': 9.21.13
|
|
||||||
'@types/request': 2.48.7
|
'@types/request': 2.48.7
|
||||||
'@types/semver': 7.3.8
|
'@types/semver': 7.3.8
|
||||||
'@types/supertest': 2.0.11
|
'@types/supertest': 2.0.11
|
||||||
|
@ -222,6 +210,7 @@ importers:
|
||||||
|
|
||||||
packages/api:
|
packages/api:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
|
@ -260,6 +249,7 @@ importers:
|
||||||
mime: 2.5.2
|
mime: 2.5.2
|
||||||
semver: 7.3.5
|
semver: 7.3.5
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/server': link:../server
|
'@verdaccio/server': link:../server
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
body-parser: 1.19.0
|
body-parser: 1.19.0
|
||||||
|
@ -453,6 +443,7 @@ importers:
|
||||||
|
|
||||||
packages/core/server:
|
packages/core/server:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
'@verdaccio/logger': workspace:6.0.0-6-next.4
|
'@verdaccio/logger': workspace:6.0.0-6-next.4
|
||||||
|
@ -473,8 +464,9 @@ importers:
|
||||||
fastify: 3.20.2
|
fastify: 3.20.2
|
||||||
fastify-plugin: 3.0.0
|
fastify-plugin: 3.0.0
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/types': link:../types
|
'@verdaccio/types': link:../types
|
||||||
ts-node: 10.2.1_7cfd01fcff41d818ce82373ba3c4f1b7
|
ts-node: 10.2.1_34cffc698df9f333ba1363a67feb35bd
|
||||||
|
|
||||||
packages/core/streams:
|
packages/core/streams:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
@ -526,6 +518,7 @@ importers:
|
||||||
|
|
||||||
packages/hooks:
|
packages/hooks:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
|
@ -534,7 +527,7 @@ importers:
|
||||||
core-js: 3.17.2
|
core-js: 3.17.2
|
||||||
debug: 4.3.2
|
debug: 4.3.2
|
||||||
handlebars: 4.7.7
|
handlebars: 4.7.7
|
||||||
undici: 4.5.1
|
undici: 4.4.7
|
||||||
undici-fetch: 1.0.0-rc.4
|
undici-fetch: 1.0.0-rc.4
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/commons-api': link:../core/commons-api
|
'@verdaccio/commons-api': link:../core/commons-api
|
||||||
|
@ -542,9 +535,10 @@ importers:
|
||||||
core-js: 3.17.2
|
core-js: 3.17.2
|
||||||
debug: 4.3.2
|
debug: 4.3.2
|
||||||
handlebars: 4.7.7
|
handlebars: 4.7.7
|
||||||
undici: 4.5.1
|
undici: 4.4.7
|
||||||
undici-fetch: 1.0.0-rc.4
|
undici-fetch: 1.0.0-rc.4
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/auth': link:../auth
|
'@verdaccio/auth': link:../auth
|
||||||
'@verdaccio/config': link:../config
|
'@verdaccio/config': link:../config
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
|
@ -570,29 +564,29 @@ importers:
|
||||||
|
|
||||||
packages/logger:
|
packages/logger:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@types/pino': 6.3.11
|
'@types/pino': 6.3.3
|
||||||
'@verdaccio/logger-prettify': workspace:6.0.0-alpha.3
|
'@verdaccio/logger-prettify': workspace:6.0.0-alpha.3
|
||||||
'@verdaccio/types': workspace:11.0.0-6-next.8
|
'@verdaccio/types': workspace:11.0.0-6-next.8
|
||||||
debug: 4.3.2
|
debug: 4.3.2
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
pino: 6.13.1
|
pino: 6.2.1
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/logger-prettify': link:../logger-prettify
|
'@verdaccio/logger-prettify': link:../logger-prettify
|
||||||
debug: 4.3.2
|
debug: 4.3.2
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
pino: 6.13.1
|
pino: 6.2.1
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/pino': 6.3.11
|
'@types/pino': 6.3.3
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
|
|
||||||
packages/logger-prettify:
|
packages/logger-prettify:
|
||||||
specifiers:
|
specifiers:
|
||||||
'@types/pino': 6.3.11
|
'@types/pino': ^6.3.3
|
||||||
dayjs: 1.10.6
|
dayjs: 1.10.6
|
||||||
fast-safe-stringify: 2.0.8
|
fast-safe-stringify: 2.0.8
|
||||||
kleur: 3.0.3
|
kleur: 3.0.3
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
pino: 6.13.1
|
pino: 6.2.1
|
||||||
prettier-bytes: 1.0.4
|
prettier-bytes: 1.0.4
|
||||||
dependencies:
|
dependencies:
|
||||||
dayjs: 1.10.6
|
dayjs: 1.10.6
|
||||||
|
@ -602,7 +596,7 @@ importers:
|
||||||
prettier-bytes: 1.0.4
|
prettier-bytes: 1.0.4
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/pino': 6.3.11
|
'@types/pino': 6.3.11
|
||||||
pino: 6.13.1
|
pino: 6.2.1
|
||||||
|
|
||||||
packages/middleware:
|
packages/middleware:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
@ -647,6 +641,7 @@ importers:
|
||||||
|
|
||||||
packages/node-api:
|
packages/node-api:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
'@verdaccio/logger': workspace:6.0.0-6-next.4
|
'@verdaccio/logger': workspace:6.0.0-6-next.4
|
||||||
|
@ -668,6 +663,7 @@ importers:
|
||||||
debug: 4.3.2
|
debug: 4.3.2
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
jest-mock-process: 1.4.1_jest@27.1.0
|
jest-mock-process: 1.4.1_jest@27.1.0
|
||||||
|
@ -781,6 +777,12 @@ importers:
|
||||||
'@testing-library/dom': 8.2.0
|
'@testing-library/dom': 8.2.0
|
||||||
'@testing-library/jest-dom': 5.14.1
|
'@testing-library/jest-dom': 5.14.1
|
||||||
'@testing-library/react': 12.0.0
|
'@testing-library/react': 12.0.0
|
||||||
|
'@types/react': 17.0.19
|
||||||
|
'@types/react-autosuggest': 10.1.5
|
||||||
|
'@types/react-dom': 17.0.9
|
||||||
|
'@types/react-helmet': 6.1.2
|
||||||
|
'@types/react-router-dom': 5.1.8
|
||||||
|
'@types/react-virtualized': 9.21.13
|
||||||
'@verdaccio/node-api': workspace:6.0.0-6-next.20
|
'@verdaccio/node-api': workspace:6.0.0-6-next.20
|
||||||
autosuggest-highlight: 3.1.1
|
autosuggest-highlight: 3.1.1
|
||||||
babel-loader: 8.2.2
|
babel-loader: 8.2.2
|
||||||
|
@ -850,6 +852,12 @@ importers:
|
||||||
'@testing-library/dom': 8.2.0
|
'@testing-library/dom': 8.2.0
|
||||||
'@testing-library/jest-dom': 5.14.1
|
'@testing-library/jest-dom': 5.14.1
|
||||||
'@testing-library/react': 12.0.0_react-dom@17.0.2+react@17.0.2
|
'@testing-library/react': 12.0.0_react-dom@17.0.2+react@17.0.2
|
||||||
|
'@types/react': 17.0.19
|
||||||
|
'@types/react-autosuggest': 10.1.5
|
||||||
|
'@types/react-dom': 17.0.9
|
||||||
|
'@types/react-helmet': 6.1.2
|
||||||
|
'@types/react-router-dom': 5.1.8
|
||||||
|
'@types/react-virtualized': 9.21.13
|
||||||
'@verdaccio/node-api': link:../../node-api
|
'@verdaccio/node-api': link:../../node-api
|
||||||
autosuggest-highlight: 3.1.1
|
autosuggest-highlight: 3.1.1
|
||||||
babel-loader: 8.2.2_02ab79faf18a98050fd2cd956ffa58f7
|
babel-loader: 8.2.2_02ab79faf18a98050fd2cd956ffa58f7
|
||||||
|
@ -911,6 +919,7 @@ importers:
|
||||||
|
|
||||||
packages/proxy:
|
packages/proxy:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
'@verdaccio/core': workspace:6.0.0-6-next.1
|
'@verdaccio/core': workspace:6.0.0-6-next.1
|
||||||
|
@ -929,7 +938,7 @@ importers:
|
||||||
node-mocks-http: 1.10.1
|
node-mocks-http: 1.10.1
|
||||||
request: 2.87.0
|
request: 2.87.0
|
||||||
semver: 7.3.5
|
semver: 7.3.5
|
||||||
undici: 4.2.2
|
undici: 4.4.7
|
||||||
undici-fetch: 1.0.0-rc.4
|
undici-fetch: 1.0.0-rc.4
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/commons-api': link:../core/commons-api
|
'@verdaccio/commons-api': link:../core/commons-api
|
||||||
|
@ -945,9 +954,10 @@ importers:
|
||||||
lodash: 4.17.20
|
lodash: 4.17.20
|
||||||
node-fetch: 2.6.1
|
node-fetch: 2.6.1
|
||||||
request: 2.87.0
|
request: 2.87.0
|
||||||
undici: 4.2.2
|
undici: 4.4.7
|
||||||
undici-fetch: 1.0.0-rc.4
|
undici-fetch: 1.0.0-rc.4
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
get-stream: 6.0.1
|
get-stream: 6.0.1
|
||||||
nock: 13.0.11
|
nock: 13.0.11
|
||||||
|
@ -956,6 +966,7 @@ importers:
|
||||||
|
|
||||||
packages/server:
|
packages/server:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/api': workspace:6.0.0-6-next.14
|
'@verdaccio/api': workspace:6.0.0-6-next.14
|
||||||
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
|
@ -996,6 +1007,7 @@ importers:
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
verdaccio-audit: link:../plugins/audit
|
verdaccio-audit: link:../plugins/audit
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/proxy': link:../proxy
|
'@verdaccio/proxy': link:../proxy
|
||||||
http-errors: 1.8.0
|
http-errors: 1.8.0
|
||||||
|
@ -1021,6 +1033,7 @@ importers:
|
||||||
|
|
||||||
packages/store:
|
packages/store:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
'@verdaccio/core': workspace:6.0.0-6-next.1
|
'@verdaccio/core': workspace:6.0.0-6-next.1
|
||||||
|
@ -1042,6 +1055,8 @@ importers:
|
||||||
merge2: 1.4.1
|
merge2: 1.4.1
|
||||||
semver: 7.1.2
|
semver: 7.1.2
|
||||||
tmp-promise: 3.0.2
|
tmp-promise: 3.0.2
|
||||||
|
undici: 4.4.7
|
||||||
|
undici-fetch: 1.0.0-rc.4
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/commons-api': link:../core/commons-api
|
'@verdaccio/commons-api': link:../core/commons-api
|
||||||
'@verdaccio/config': link:../config
|
'@verdaccio/config': link:../config
|
||||||
|
@ -1062,9 +1077,12 @@ importers:
|
||||||
merge2: 1.4.1
|
merge2: 1.4.1
|
||||||
semver: 7.1.2
|
semver: 7.1.2
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
tmp-promise: 3.0.2
|
tmp-promise: 3.0.2
|
||||||
|
undici: 4.4.7
|
||||||
|
undici-fetch: 1.0.0-rc.4
|
||||||
|
|
||||||
packages/tools/benchmark:
|
packages/tools/benchmark:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
@ -1142,6 +1160,7 @@ importers:
|
||||||
|
|
||||||
packages/web:
|
packages/web:
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
'@verdaccio/auth': workspace:6.0.0-6-next.11
|
||||||
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
'@verdaccio/commons-api': workspace:11.0.0-6-next.4
|
||||||
'@verdaccio/config': workspace:6.0.0-6-next.8
|
'@verdaccio/config': workspace:6.0.0-6-next.8
|
||||||
|
@ -1183,6 +1202,7 @@ importers:
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
lru-cache: 6.0.0
|
lru-cache: 6.0.0
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
node-html-parser: 4.1.4
|
node-html-parser: 4.1.4
|
||||||
supertest: 6.1.6
|
supertest: 6.1.6
|
||||||
|
@ -1259,9 +1279,9 @@ importers:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@docusaurus/core': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/core': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-google-analytics': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-google-analytics': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/preset-classic': 2.0.0-beta.6_a4e59b9234f20450ccab4f97d4177d68
|
'@docusaurus/preset-classic': 2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef
|
||||||
'@docusaurus/remark-plugin-npm2yarn': 2.0.0-beta.6_react-dom@17.0.2+react@17.0.2
|
'@docusaurus/remark-plugin-npm2yarn': 2.0.0-beta.6_react-dom@17.0.2+react@17.0.2
|
||||||
'@docusaurus/theme-search-algolia': 2.0.0-beta.6_a4e59b9234f20450ccab4f97d4177d68
|
'@docusaurus/theme-search-algolia': 2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef
|
||||||
'@mdx-js/react': 1.6.22_react@17.0.2
|
'@mdx-js/react': 1.6.22_react@17.0.2
|
||||||
clsx: 1.1.1
|
clsx: 1.1.1
|
||||||
copy-text-to-clipboard: 3.0.1
|
copy-text-to-clipboard: 3.0.1
|
||||||
|
@ -4222,7 +4242,7 @@ packages:
|
||||||
resolution: {integrity: sha512-lr10MFTgcR3NRea/FtJ7uNtIpQz0XVwYxbpO5wxykgfHu1sxZTr6zwkuPquRgFYXnccxsTvfoIiK3rMH0fLr/w==}
|
resolution: {integrity: sha512-lr10MFTgcR3NRea/FtJ7uNtIpQz0XVwYxbpO5wxykgfHu1sxZTr6zwkuPquRgFYXnccxsTvfoIiK3rMH0fLr/w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@docsearch/react/3.0.0-alpha.39_9c6a8df88c2691f81f37725d5b4de033:
|
/@docsearch/react/3.0.0-alpha.39_react-dom@17.0.2+react@17.0.2:
|
||||||
resolution: {integrity: sha512-urTIt82tan6CU+D2kO6xXpWQom/r1DA7L/55m2JiCIK/3SLh2z15FJFVN2abeK7B4wl8pCfWunYOwCsSHhWDLA==}
|
resolution: {integrity: sha512-urTIt82tan6CU+D2kO6xXpWQom/r1DA7L/55m2JiCIK/3SLh2z15FJFVN2abeK7B4wl8pCfWunYOwCsSHhWDLA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': '>= 16.8.0 < 18.0.0'
|
'@types/react': '>= 16.8.0 < 18.0.0'
|
||||||
|
@ -4232,7 +4252,6 @@ packages:
|
||||||
'@algolia/autocomplete-core': 1.2.1
|
'@algolia/autocomplete-core': 1.2.1
|
||||||
'@algolia/autocomplete-preset-algolia': 1.2.1_algoliasearch@4.10.3
|
'@algolia/autocomplete-preset-algolia': 1.2.1_algoliasearch@4.10.3
|
||||||
'@docsearch/css': 3.0.0-alpha.39
|
'@docsearch/css': 3.0.0-alpha.39
|
||||||
'@types/react': 17.0.19
|
|
||||||
algoliasearch: 4.10.3
|
algoliasearch: 4.10.3
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
react-dom: 17.0.2_react@17.0.2
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
@ -4601,7 +4620,7 @@ packages:
|
||||||
- webpack-cli
|
- webpack-cli
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@docusaurus/plugin-debug/2.0.0-beta.6_74ebd2e624e372ef3b8d8d3480a5d280:
|
/@docusaurus/plugin-debug/2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d:
|
||||||
resolution: {integrity: sha512-TJXDBR2Gr/mhBrcj+/4+rTShSm/Qg56Jfezbm/2fFvuPgVlUwy6oj08s2/kYSTmkfG7G+c4iX1GBHjtyo1KxZA==}
|
resolution: {integrity: sha512-TJXDBR2Gr/mhBrcj+/4+rTShSm/Qg56Jfezbm/2fFvuPgVlUwy6oj08s2/kYSTmkfG7G+c4iX1GBHjtyo1KxZA==}
|
||||||
engines: {node: '>=12.13.0'}
|
engines: {node: '>=12.13.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -4614,7 +4633,7 @@ packages:
|
||||||
fs-extra: 9.1.0
|
fs-extra: 9.1.0
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
react-dom: 17.0.2_react@17.0.2
|
react-dom: 17.0.2_react@17.0.2
|
||||||
react-json-view: 1.21.3_9c6a8df88c2691f81f37725d5b4de033
|
react-json-view: 1.21.3_react-dom@17.0.2+react@17.0.2
|
||||||
tslib: 2.2.0
|
tslib: 2.2.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
|
@ -4698,7 +4717,7 @@ packages:
|
||||||
- webpack-cli
|
- webpack-cli
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@docusaurus/preset-classic/2.0.0-beta.6_a4e59b9234f20450ccab4f97d4177d68:
|
/@docusaurus/preset-classic/2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef:
|
||||||
resolution: {integrity: sha512-riqQRcNssNH7oto8nAjYIO79/ZucidexHTDlgD+trP56ploHLJp4kIlxb44IGOmx3es8/z4egWtM+acY/39N2Q==}
|
resolution: {integrity: sha512-riqQRcNssNH7oto8nAjYIO79/ZucidexHTDlgD+trP56ploHLJp4kIlxb44IGOmx3es8/z4egWtM+acY/39N2Q==}
|
||||||
engines: {node: '>=12.13.0'}
|
engines: {node: '>=12.13.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -4709,12 +4728,12 @@ packages:
|
||||||
'@docusaurus/plugin-content-blog': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-content-blog': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-content-docs': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-content-docs': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-content-pages': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-content-pages': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-debug': 2.0.0-beta.6_74ebd2e624e372ef3b8d8d3480a5d280
|
'@docusaurus/plugin-debug': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-google-analytics': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-google-analytics': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-google-gtag': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-google-gtag': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/plugin-sitemap': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/plugin-sitemap': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/theme-classic': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/theme-classic': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/theme-search-algolia': 2.0.0-beta.6_a4e59b9234f20450ccab4f97d4177d68
|
'@docusaurus/theme-search-algolia': 2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
react-dom: 17.0.2_react@17.0.2
|
react-dom: 17.0.2_react@17.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
@ -4827,14 +4846,14 @@ packages:
|
||||||
- webpack-cli
|
- webpack-cli
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@docusaurus/theme-search-algolia/2.0.0-beta.6_a4e59b9234f20450ccab4f97d4177d68:
|
/@docusaurus/theme-search-algolia/2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef:
|
||||||
resolution: {integrity: sha512-GaaYdf6EEKL3jwmt9LRyiMtNvobOhw4vGuYJKbJcgba/M75kOJSbZPRrhALBAe6o4gOYbV44afzFC/jUUp7dsA==}
|
resolution: {integrity: sha512-GaaYdf6EEKL3jwmt9LRyiMtNvobOhw4vGuYJKbJcgba/M75kOJSbZPRrhALBAe6o4gOYbV44afzFC/jUUp7dsA==}
|
||||||
engines: {node: '>=12.13.0'}
|
engines: {node: '>=12.13.0'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^16.8.4 || ^17.0.0
|
react: ^16.8.4 || ^17.0.0
|
||||||
react-dom: ^16.8.4 || ^17.0.0
|
react-dom: ^16.8.4 || ^17.0.0
|
||||||
dependencies:
|
dependencies:
|
||||||
'@docsearch/react': 3.0.0-alpha.39_9c6a8df88c2691f81f37725d5b4de033
|
'@docsearch/react': 3.0.0-alpha.39_react-dom@17.0.2+react@17.0.2
|
||||||
'@docusaurus/core': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
'@docusaurus/core': 2.0.0-beta.6_95f6b737b4bc0d4236201ee71b37c46d
|
||||||
'@docusaurus/theme-common': 2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef
|
'@docusaurus/theme-common': 2.0.0-beta.6_cdd7cf9bde2874b6dded41f493ef9eef
|
||||||
'@docusaurus/utils': 2.0.0-beta.6_esbuild@0.12.25
|
'@docusaurus/utils': 2.0.0-beta.6_esbuild@0.12.25
|
||||||
|
@ -6086,7 +6105,7 @@ packages:
|
||||||
resolution: {integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==}
|
resolution: {integrity: sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/connect': 3.4.33
|
'@types/connect': 3.4.33
|
||||||
'@types/node': 15.12.4
|
'@types/node': 16.9.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/caseless/0.12.2:
|
/@types/caseless/0.12.2:
|
||||||
|
@ -6096,7 +6115,7 @@ packages:
|
||||||
/@types/connect/3.4.33:
|
/@types/connect/3.4.33:
|
||||||
resolution: {integrity: sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==}
|
resolution: {integrity: sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 15.12.4
|
'@types/node': 16.9.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/cookiejar/2.1.2:
|
/@types/cookiejar/2.1.2:
|
||||||
|
@ -6121,10 +6140,10 @@ packages:
|
||||||
/@types/estree/0.0.50:
|
/@types/estree/0.0.50:
|
||||||
resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==}
|
resolution: {integrity: sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==}
|
||||||
|
|
||||||
/@types/express-serve-static-core/4.17.9:
|
/@types/express-serve-static-core/4.17.24:
|
||||||
resolution: {integrity: sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==}
|
resolution: {integrity: sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 15.12.4
|
'@types/node': 16.9.1
|
||||||
'@types/qs': 6.9.4
|
'@types/qs': 6.9.4
|
||||||
'@types/range-parser': 1.2.3
|
'@types/range-parser': 1.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -6133,9 +6152,9 @@ packages:
|
||||||
resolution: {integrity: sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==}
|
resolution: {integrity: sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/body-parser': 1.19.0
|
'@types/body-parser': 1.19.0
|
||||||
'@types/express-serve-static-core': 4.17.9
|
'@types/express-serve-static-core': 4.17.24
|
||||||
'@types/qs': 6.9.4
|
'@types/qs': 6.9.4
|
||||||
'@types/serve-static': 1.13.5
|
'@types/serve-static': 1.13.10
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/github-slugger/1.3.0:
|
/@types/github-slugger/1.3.0:
|
||||||
|
@ -6250,6 +6269,10 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/unist': 2.0.3
|
'@types/unist': 2.0.3
|
||||||
|
|
||||||
|
/@types/mime/1.3.2:
|
||||||
|
resolution: {integrity: sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/mime/2.0.3:
|
/@types/mime/2.0.3:
|
||||||
resolution: {integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==}
|
resolution: {integrity: sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -6284,6 +6307,10 @@ packages:
|
||||||
/@types/node/15.12.4:
|
/@types/node/15.12.4:
|
||||||
resolution: {integrity: sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==}
|
resolution: {integrity: sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA==}
|
||||||
|
|
||||||
|
/@types/node/16.9.1:
|
||||||
|
resolution: {integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/normalize-package-data/2.4.0:
|
/@types/normalize-package-data/2.4.0:
|
||||||
resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==}
|
resolution: {integrity: sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -6304,18 +6331,26 @@ packages:
|
||||||
/@types/pino-std-serializers/2.4.1:
|
/@types/pino-std-serializers/2.4.1:
|
||||||
resolution: {integrity: sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==}
|
resolution: {integrity: sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 15.12.4
|
'@types/node': 16.9.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/pino/6.3.11:
|
/@types/pino/6.3.11:
|
||||||
resolution: {integrity: sha512-S7+fLONqSpHeW9d7TApUqO6VN47KYgOXhCNKwGBVLHObq8HhaAYlVqUNdfnvoXjCMiwE5xcPm/5R2ZUh8bgaXQ==}
|
resolution: {integrity: sha512-S7+fLONqSpHeW9d7TApUqO6VN47KYgOXhCNKwGBVLHObq8HhaAYlVqUNdfnvoXjCMiwE5xcPm/5R2ZUh8bgaXQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 15.12.4
|
'@types/node': 16.9.1
|
||||||
'@types/pino-pretty': 4.7.1
|
'@types/pino-pretty': 4.7.1
|
||||||
'@types/pino-std-serializers': 2.4.1
|
'@types/pino-std-serializers': 2.4.1
|
||||||
sonic-boom: 2.2.3
|
sonic-boom: 2.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/pino/6.3.3:
|
||||||
|
resolution: {integrity: sha512-YtT58N7Tt7B7f5B/upuq694p4eT4icM9TuhgYeKhm+dnF0Ahm7q5YJp1i7vC2mBMdWgH1IvOa2XK6rhUjBv0GQ==}
|
||||||
|
dependencies:
|
||||||
|
'@types/node': 16.9.1
|
||||||
|
'@types/pino-std-serializers': 2.4.1
|
||||||
|
'@types/sonic-boom': 2.1.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/prettier/2.3.0:
|
/@types/prettier/2.3.0:
|
||||||
resolution: {integrity: sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==}
|
resolution: {integrity: sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -6424,11 +6459,18 @@ packages:
|
||||||
resolution: {integrity: sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==}
|
resolution: {integrity: sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/serve-static/1.13.5:
|
/@types/serve-static/1.13.10:
|
||||||
resolution: {integrity: sha512-6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==}
|
resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/express-serve-static-core': 4.17.9
|
'@types/mime': 1.3.2
|
||||||
'@types/mime': 2.0.3
|
'@types/node': 16.9.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/@types/sonic-boom/2.1.1:
|
||||||
|
resolution: {integrity: sha512-CiKn+8CDgtBspfAVPwC8PXCMPhqeL7pFS4aWuj+WJnHLZlu4OGPctdZ6Mob43jRe0kkd7Ztb2Hcu9kzB+b7ZFw==}
|
||||||
|
deprecated: This is a stub types definition. sonic-boom provides its own type definitions, so you do not need this installed.
|
||||||
|
dependencies:
|
||||||
|
sonic-boom: 2.2.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/stack-utils/2.0.0:
|
/@types/stack-utils/2.0.0:
|
||||||
|
@ -10965,6 +11007,10 @@ packages:
|
||||||
/fast-levenshtein/2.0.6:
|
/fast-levenshtein/2.0.6:
|
||||||
resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
|
resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=}
|
||||||
|
|
||||||
|
/fast-redact/2.1.0:
|
||||||
|
resolution: {integrity: sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A==}
|
||||||
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
/fast-redact/3.0.0:
|
/fast-redact/3.0.0:
|
||||||
resolution: {integrity: sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==}
|
resolution: {integrity: sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
@ -12120,7 +12166,6 @@ packages:
|
||||||
|
|
||||||
/highlight.js/9.18.5:
|
/highlight.js/9.18.5:
|
||||||
resolution: {integrity: sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==}
|
resolution: {integrity: sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==}
|
||||||
deprecated: Support has ended for 9.x series. Upgrade to @latest
|
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
@ -15957,6 +16002,9 @@ packages:
|
||||||
resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=}
|
resolution: {integrity: sha1-clVrgM+g1IqXToDnckjoDtT3+HA=}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
/pino-std-serializers/2.5.0:
|
||||||
|
resolution: {integrity: sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==}
|
||||||
|
|
||||||
/pino-std-serializers/3.2.0:
|
/pino-std-serializers/3.2.0:
|
||||||
resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==}
|
resolution: {integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==}
|
||||||
|
|
||||||
|
@ -15984,6 +16032,17 @@ packages:
|
||||||
quick-format-unescaped: 4.0.3
|
quick-format-unescaped: 4.0.3
|
||||||
sonic-boom: 1.1.0
|
sonic-boom: 1.1.0
|
||||||
|
|
||||||
|
/pino/6.2.1:
|
||||||
|
resolution: {integrity: sha512-5F5A+G25Ex2rMOBEe3XYGyLSF4dikQZsFvPojwsqnDBX+rfg7+kw9s5i7pHuVAJImekjwb+MR9jQyHWPLENlvQ==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
fast-redact: 2.1.0
|
||||||
|
fast-safe-stringify: 2.0.8
|
||||||
|
flatstr: 1.0.12
|
||||||
|
pino-std-serializers: 2.5.0
|
||||||
|
quick-format-unescaped: 4.0.3
|
||||||
|
sonic-boom: 1.1.0
|
||||||
|
|
||||||
/pirates/4.0.1:
|
/pirates/4.0.1:
|
||||||
resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==}
|
resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
@ -17187,7 +17246,7 @@ packages:
|
||||||
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
|
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/react-json-view/1.21.3_9c6a8df88c2691f81f37725d5b4de033:
|
/react-json-view/1.21.3_react-dom@17.0.2+react@17.0.2:
|
||||||
resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
|
resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^17.0.0 || ^16.3.0 || ^15.5.4
|
react: ^17.0.0 || ^16.3.0 || ^15.5.4
|
||||||
|
@ -17198,7 +17257,7 @@ packages:
|
||||||
react-base16-styling: 0.6.0
|
react-base16-styling: 0.6.0
|
||||||
react-dom: 17.0.2_react@17.0.2
|
react-dom: 17.0.2_react@17.0.2
|
||||||
react-lifecycles-compat: 3.0.4
|
react-lifecycles-compat: 3.0.4
|
||||||
react-textarea-autosize: 8.3.3_4cd822c6044f4c1a7e1f1fea0e728f12
|
react-textarea-autosize: 8.3.3_react@17.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/react'
|
- '@types/react'
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -17333,7 +17392,7 @@ packages:
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-textarea-autosize/8.3.3_4cd822c6044f4c1a7e1f1fea0e728f12:
|
/react-textarea-autosize/8.3.3_react@17.0.2:
|
||||||
resolution: {integrity: sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==}
|
resolution: {integrity: sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -17342,7 +17401,7 @@ packages:
|
||||||
'@babel/runtime': 7.15.4
|
'@babel/runtime': 7.15.4
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
use-composed-ref: 1.1.0_react@17.0.2
|
use-composed-ref: 1.1.0_react@17.0.2
|
||||||
use-latest: 1.2.0_4cd822c6044f4c1a7e1f1fea0e728f12
|
use-latest: 1.2.0_react@17.0.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/react'
|
- '@types/react'
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -19604,6 +19663,37 @@ packages:
|
||||||
resolution: {integrity: sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==}
|
resolution: {integrity: sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/ts-node/10.2.1_34cffc698df9f333ba1363a67feb35bd:
|
||||||
|
resolution: {integrity: sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==}
|
||||||
|
engines: {node: '>=12.0.0'}
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
'@swc/core': '>=1.2.50'
|
||||||
|
'@swc/wasm': '>=1.2.50'
|
||||||
|
'@types/node': '*'
|
||||||
|
typescript: '>=2.7'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@swc/core':
|
||||||
|
optional: true
|
||||||
|
'@swc/wasm':
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
'@cspotcode/source-map-support': 0.6.1
|
||||||
|
'@tsconfig/node10': 1.0.7
|
||||||
|
'@tsconfig/node12': 1.0.7
|
||||||
|
'@tsconfig/node14': 1.0.0
|
||||||
|
'@tsconfig/node16': 1.0.2
|
||||||
|
'@types/node': 16.9.1
|
||||||
|
acorn: 8.4.1
|
||||||
|
acorn-walk: 8.1.1
|
||||||
|
arg: 4.1.3
|
||||||
|
create-require: 1.1.1
|
||||||
|
diff: 4.0.2
|
||||||
|
make-error: 1.3.6
|
||||||
|
typescript: 4.4.2
|
||||||
|
yn: 3.1.1
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ts-node/10.2.1_7cfd01fcff41d818ce82373ba3c4f1b7:
|
/ts-node/10.2.1_7cfd01fcff41d818ce82373ba3c4f1b7:
|
||||||
resolution: {integrity: sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==}
|
resolution: {integrity: sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==}
|
||||||
engines: {node: '>=12.0.0'}
|
engines: {node: '>=12.0.0'}
|
||||||
|
@ -19847,18 +19937,15 @@ packages:
|
||||||
resolution: {integrity: sha512-+F9lSstpd0YJkBBAMe1UXlUVeadsd/AJrB0643smYHcKAdwCtoBVWfoFO0ibk1sA1BEFH7himsWC5aHLomGK0g==}
|
resolution: {integrity: sha512-+F9lSstpd0YJkBBAMe1UXlUVeadsd/AJrB0643smYHcKAdwCtoBVWfoFO0ibk1sA1BEFH7himsWC5aHLomGK0g==}
|
||||||
engines: {node: '>=14.0.0'}
|
engines: {node: '>=14.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
undici: 4.2.2
|
undici: 4.5.1
|
||||||
dev: false
|
|
||||||
|
|
||||||
/undici/4.2.2:
|
/undici/4.4.7:
|
||||||
resolution: {integrity: sha512-WeLqJE/N66VjFeNawJkWHGB1qBGL3VHeimAEKhOC7lbeCf7p6daUVYUHYFeTo0V1EDlxdzqpzykImadFHjuXgA==}
|
resolution: {integrity: sha512-41YDu0wuKPhvd2oPDHRe0ufai70O8nOyL6vgpWkv1DUPTwOx59GhZVRvZwinBLAiKJHta/91gSb7wmrDghuJIw==}
|
||||||
engines: {node: '>=12.18'}
|
engines: {node: '>=12.18'}
|
||||||
dev: false
|
|
||||||
|
|
||||||
/undici/4.5.1:
|
/undici/4.5.1:
|
||||||
resolution: {integrity: sha512-1Kmphp4SMwVbSauz9xH4gxt0m3sLGs5qRHs/XYgjeO3bNSt6hspDZqMhM8+ETu9ynB5bq9e6mnwcDz+NVCQ3UQ==}
|
resolution: {integrity: sha512-1Kmphp4SMwVbSauz9xH4gxt0m3sLGs5qRHs/XYgjeO3bNSt6hspDZqMhM8+ETu9ynB5bq9e6mnwcDz+NVCQ3UQ==}
|
||||||
engines: {node: '>=12.18'}
|
engines: {node: '>=12.18'}
|
||||||
dev: false
|
|
||||||
|
|
||||||
/unherit/1.1.3:
|
/unherit/1.1.3:
|
||||||
resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==}
|
resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==}
|
||||||
|
@ -20192,7 +20279,7 @@ packages:
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-isomorphic-layout-effect/1.1.1_4cd822c6044f4c1a7e1f1fea0e728f12:
|
/use-isomorphic-layout-effect/1.1.1_react@17.0.2:
|
||||||
resolution: {integrity: sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==}
|
resolution: {integrity: sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': '*'
|
'@types/react': '*'
|
||||||
|
@ -20201,11 +20288,10 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 17.0.19
|
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use-latest/1.2.0_4cd822c6044f4c1a7e1f1fea0e728f12:
|
/use-latest/1.2.0_react@17.0.2:
|
||||||
resolution: {integrity: sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==}
|
resolution: {integrity: sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@types/react': '*'
|
'@types/react': '*'
|
||||||
|
@ -20214,9 +20300,8 @@ packages:
|
||||||
'@types/react':
|
'@types/react':
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 17.0.19
|
|
||||||
react: 17.0.2
|
react: 17.0.2
|
||||||
use-isomorphic-layout-effect: 1.1.1_4cd822c6044f4c1a7e1f1fea0e728f12
|
use-isomorphic-layout-effect: 1.1.1_react@17.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/use/3.1.1:
|
/use/3.1.1:
|
||||||
|
|
Loading…
Reference in a new issue