mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-16 21:56:25 -05:00
feat: standalone server (#2046)
* feat: standalone version * chore: add changeset
This commit is contained in:
parent
eab3007939
commit
061bfcc8d4
17 changed files with 375 additions and 23 deletions
30
.changeset/plenty-news-remember.md
Normal file
30
.changeset/plenty-news-remember.md
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
'@verdaccio/auth': major
|
||||||
|
'verdaccio-htpasswd': major
|
||||||
|
'verdaccio-audit': major
|
||||||
|
'@verdaccio/server': major
|
||||||
|
'@verdaccio/cli-standalone': major
|
||||||
|
---
|
||||||
|
|
||||||
|
feat: standalone registry with no dependencies
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
To install a server with no dependencies
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g @verdaccio/standalone
|
||||||
|
```
|
||||||
|
|
||||||
|
with no internet required
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install -g ./tarball.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
Bundles htpasswd and audit plugins.
|
||||||
|
|
||||||
|
### Breaking Change
|
||||||
|
|
||||||
|
It does not allow anymore the `auth` and `middleware` property at config file empty,
|
||||||
|
it will fallback to those plugins by default.
|
7
.gitignore
vendored
7
.gitignore
vendored
|
@ -18,8 +18,7 @@ package-lock.json
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
|
||||||
## ui
|
|
||||||
static/
|
|
||||||
|
|
||||||
# jest
|
# jest
|
||||||
reports/
|
reports/
|
||||||
|
@ -32,6 +31,10 @@ coverage/
|
||||||
packages/partials
|
packages/partials
|
||||||
tsconfig.tsbuildinfo
|
tsconfig.tsbuildinfo
|
||||||
|
|
||||||
|
## bundle files
|
||||||
|
packages/standalone/dist/
|
||||||
|
## ui
|
||||||
|
static/
|
||||||
|
|
||||||
# website
|
# website
|
||||||
website/public
|
website/public
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
"@verdaccio/loaders": "workspace:5.0.0-alpha.3",
|
"@verdaccio/loaders": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/logger": "workspace:5.0.0-alpha.3",
|
"@verdaccio/logger": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/utils": "workspace:5.0.0-alpha.3",
|
"@verdaccio/utils": "workspace:5.0.0-alpha.3",
|
||||||
|
"verdaccio-htpasswd": "workspace:10.0.0-alpha.4",
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
"jsonwebtoken": "8.5.1",
|
"jsonwebtoken": "8.5.1",
|
||||||
|
|
|
@ -13,6 +13,7 @@ import {
|
||||||
getForbidden,
|
getForbidden,
|
||||||
} from '@verdaccio/commons-api';
|
} from '@verdaccio/commons-api';
|
||||||
import { loadPlugin } from '@verdaccio/loaders';
|
import { loadPlugin } from '@verdaccio/loaders';
|
||||||
|
import { HTPasswd, HTPasswdConfig } from 'verdaccio-htpasswd';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Config,
|
Config,
|
||||||
|
@ -25,6 +26,7 @@ import {
|
||||||
AuthPluginPackage,
|
AuthPluginPackage,
|
||||||
AllowAccess,
|
AllowAccess,
|
||||||
PackageAccess,
|
PackageAccess,
|
||||||
|
PluginOptions,
|
||||||
} from '@verdaccio/types';
|
} from '@verdaccio/types';
|
||||||
|
|
||||||
import { isNil, isFunction, convertPayloadToBase64 } from '@verdaccio/utils';
|
import { isNil, isFunction, convertPayloadToBase64 } from '@verdaccio/utils';
|
||||||
|
@ -98,10 +100,29 @@ class Auth implements IAuth {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.logger = LoggerApi.logger.child({ sub: 'auth' });
|
this.logger = LoggerApi.logger.child({ sub: 'auth' });
|
||||||
this.secret = config.secret;
|
this.secret = config.secret;
|
||||||
this.plugins = this._loadPlugin(config);
|
|
||||||
|
this.plugins =
|
||||||
|
_.isNil(config?.auth) === false ? this._loadPlugin(config) : this.loadDefaultPlugin(config);
|
||||||
this._applyDefaultPlugins();
|
this._applyDefaultPlugins();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private loadDefaultPlugin(config: Config) {
|
||||||
|
const plugingConf: HTPasswdConfig = { ...config, file: './htpasswd' };
|
||||||
|
const pluginOptions: PluginOptions<{}> = {
|
||||||
|
config,
|
||||||
|
logger: this.logger,
|
||||||
|
};
|
||||||
|
let authPlugin;
|
||||||
|
try {
|
||||||
|
authPlugin = new HTPasswd(plugingConf, pluginOptions);
|
||||||
|
} catch (error) {
|
||||||
|
debug('error on loading auth htpasswd plugin stack: %o', error);
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [authPlugin];
|
||||||
|
}
|
||||||
|
|
||||||
private _loadPlugin(config: Config): IPluginAuth<Config>[] {
|
private _loadPlugin(config: Config): IPluginAuth<Config>[] {
|
||||||
const pluginOptions = {
|
const pluginOptions = {
|
||||||
config,
|
config,
|
||||||
|
@ -122,6 +143,7 @@ class Auth implements IAuth {
|
||||||
}
|
}
|
||||||
|
|
||||||
private _applyDefaultPlugins(): void {
|
private _applyDefaultPlugins(): void {
|
||||||
|
// TODO: rename to applyFallbackPluginMethods
|
||||||
this.plugins.push(getDefaultPlugins(this.logger));
|
this.plugins.push(getDefaultPlugins(this.logger));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../core/commons-api"
|
"path": "../core/commons-api"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../core/htpasswd"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import Path from 'path';
|
import Path from 'path';
|
||||||
|
|
||||||
import { Callback, AuthConf, Config, IPluginAuth } from '@verdaccio/types';
|
import { Callback, Config, IPluginAuth, PluginOptions } from '@verdaccio/types';
|
||||||
import { unlockFile } from '@verdaccio/file-locking';
|
import { unlockFile } from '@verdaccio/file-locking';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
@ -13,14 +13,14 @@ import {
|
||||||
sanityCheck,
|
sanityCheck,
|
||||||
} from './utils';
|
} from './utils';
|
||||||
|
|
||||||
export interface VerdaccioConfigApp extends Config {
|
export type HTPasswdConfig = {
|
||||||
file: string;
|
file: string;
|
||||||
}
|
} & Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTPasswd - Verdaccio auth class
|
* HTPasswd - Verdaccio auth class
|
||||||
*/
|
*/
|
||||||
export default class HTPasswd implements IPluginAuth<VerdaccioConfigApp> {
|
export default class HTPasswd implements IPluginAuth<HTPasswdConfig> {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {*} config htpasswd file
|
* @param {*} config htpasswd file
|
||||||
|
@ -35,7 +35,7 @@ export default class HTPasswd implements IPluginAuth<VerdaccioConfigApp> {
|
||||||
private logger: {};
|
private logger: {};
|
||||||
private lastTime: any;
|
private lastTime: any;
|
||||||
// constructor
|
// constructor
|
||||||
public constructor(config: AuthConf, stuff: VerdaccioConfigApp) {
|
public constructor(config: HTPasswdConfig, stuff: PluginOptions<{}>) {
|
||||||
this.users = {};
|
this.users = {};
|
||||||
|
|
||||||
// config for this module
|
// config for this module
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
import HTPasswd from './htpasswd';
|
import HTPasswd, { HTPasswdConfig } from './htpasswd';
|
||||||
|
|
||||||
/**
|
export default function (config: HTPasswdConfig, stuff): HTPasswd {
|
||||||
* A new instance of HTPasswd class.
|
|
||||||
* @param {object} config
|
|
||||||
* @param {object} stuff
|
|
||||||
* @returns {object}
|
|
||||||
*/
|
|
||||||
export default function (config, stuff): HTPasswd {
|
|
||||||
return new HTPasswd(config, stuff);
|
return new HTPasswd(config, stuff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export { HTPasswd, HTPasswdConfig };
|
||||||
|
|
|
@ -18,12 +18,12 @@ function getSSLAgent(rejectUnauthorized) {
|
||||||
return new https.Agent({ rejectUnauthorized });
|
return new https.Agent({ rejectUnauthorized });
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class ProxyAudit implements IPluginMiddleware<ConfigAudit> {
|
export default class ProxyAudit implements IPluginMiddleware<{}> {
|
||||||
public enabled: boolean;
|
public enabled: boolean;
|
||||||
public logger: Logger;
|
public logger: Logger;
|
||||||
public strict_ssl: boolean;
|
public strict_ssl: boolean;
|
||||||
|
|
||||||
public constructor(config: ConfigAudit, options: PluginOptions<ConfigAudit>) {
|
public constructor(config: ConfigAudit, options: PluginOptions<{}>) {
|
||||||
this.enabled = config.enabled || false;
|
this.enabled = config.enabled || false;
|
||||||
this.strict_ssl = config.strict_ssl !== undefined ? config.strict_ssl : true;
|
this.strict_ssl = config.strict_ssl !== undefined ? config.strict_ssl : true;
|
||||||
this.logger = options.logger;
|
this.logger = options.logger;
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
"@verdaccio/store": "workspace:5.0.0-alpha.4",
|
"@verdaccio/store": "workspace:5.0.0-alpha.4",
|
||||||
"@verdaccio/utils": "workspace:5.0.0-alpha.3",
|
"@verdaccio/utils": "workspace:5.0.0-alpha.3",
|
||||||
"@verdaccio/web": "workspace:5.0.0-alpha.4",
|
"@verdaccio/web": "workspace:5.0.0-alpha.4",
|
||||||
|
"verdaccio-audit": "workspace:10.0.0-alpha.3",
|
||||||
"compression": "1.7.4",
|
"compression": "1.7.4",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"express": "4.17.1",
|
"express": "4.17.1",
|
||||||
|
|
|
@ -20,6 +20,8 @@ import { IAuth, IBasicAuth } from '@verdaccio/auth';
|
||||||
import { IStorageHandler } from '@verdaccio/store';
|
import { IStorageHandler } from '@verdaccio/store';
|
||||||
import { setup, logger } from '@verdaccio/logger';
|
import { setup, logger } from '@verdaccio/logger';
|
||||||
import { log, final, errorReportingMiddleware } from '@verdaccio/middleware';
|
import { log, final, errorReportingMiddleware } from '@verdaccio/middleware';
|
||||||
|
import AuditMiddleware from 'verdaccio-audit';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
Config as IConfig,
|
Config as IConfig,
|
||||||
IPluginStorageFilter,
|
IPluginStorageFilter,
|
||||||
|
@ -81,6 +83,16 @@ const defineAPI = function (config: IConfig, storage: IStorageHandler): any {
|
||||||
return plugin.register_middlewares;
|
return plugin.register_middlewares;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (_.isEmpty(plugins)) {
|
||||||
|
plugins.push(
|
||||||
|
new AuditMiddleware(
|
||||||
|
{ ...config, enabled: true, strict_ssl: true },
|
||||||
|
{ config, logger: logger }
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
plugins.forEach((plugin: IPluginMiddleware<IConfig>) => {
|
plugins.forEach((plugin: IPluginMiddleware<IConfig>) => {
|
||||||
plugin.register_middlewares(app, auth, storage);
|
plugin.register_middlewares(app, auth, storage);
|
||||||
});
|
});
|
||||||
|
|
|
@ -45,6 +45,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../mock"
|
"path": "../mock"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../plugins/audit"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
3
packages/standalone/bin/verdaccio
Executable file
3
packages/standalone/bin/verdaccio
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
require('@verdaccio/cli');
|
1
packages/standalone/build.js
Normal file
1
packages/standalone/build.js
Normal file
|
@ -0,0 +1 @@
|
||||||
|
require('@verdaccio/cli');
|
64
packages/standalone/package.json
Normal file
64
packages/standalone/package.json
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
"name": "@verdaccio/cli-standalone",
|
||||||
|
"version": "5.0.0-alpha.3",
|
||||||
|
"description": "standalone verdaccio registry with no dependencies",
|
||||||
|
"main": "dist/bundle.js",
|
||||||
|
"bin": {
|
||||||
|
"verdaccio": "./dist/bundle.js"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/verdaccio"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"dist"
|
||||||
|
],
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rimraf ./dist",
|
||||||
|
"lint": "eslint . --ext .js,.ts",
|
||||||
|
"build:web": "ts-node ./scripts/web.ts",
|
||||||
|
"build": "pnpm run clean && webpack --progress && pnpm run build:web",
|
||||||
|
"build:stats": "webpack --json > stats.json",
|
||||||
|
"build:size": "webpack --json | webpack-bundle-size-analyzer"
|
||||||
|
},
|
||||||
|
"author": {
|
||||||
|
"name": "Juan Picado",
|
||||||
|
"email": "juanpicado19@gmail.com"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://github.com/verdaccio/verdaccio"
|
||||||
|
},
|
||||||
|
"homepage": "https://verdaccio.org",
|
||||||
|
"devDependencies": {
|
||||||
|
"@verdaccio/cli": "workspace:5.0.0-alpha.4",
|
||||||
|
"@verdaccio/ui-theme": "workspace:5.0.0-alpha.4",
|
||||||
|
"fs-extra": "9.0.1",
|
||||||
|
"webpack": "^5.11.1",
|
||||||
|
"webpack-cli": "^4.3.1",
|
||||||
|
"webpack-bundle-analyzer": "3.8.0",
|
||||||
|
"webpack-bundle-size-analyzer": "3.1.0"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"standalone",
|
||||||
|
"private",
|
||||||
|
"package",
|
||||||
|
"repository",
|
||||||
|
"registry",
|
||||||
|
"enterprise",
|
||||||
|
"modules",
|
||||||
|
"proxy",
|
||||||
|
"server",
|
||||||
|
"verdaccio"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10",
|
||||||
|
"npm": ">=6"
|
||||||
|
},
|
||||||
|
"preferGlobal": true,
|
||||||
|
"collective": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/verdaccio",
|
||||||
|
"logo": "https://opencollective.com/verdaccio/logo.txt"
|
||||||
|
}
|
||||||
|
}
|
7
packages/standalone/scripts/web.ts
Normal file
7
packages/standalone/scripts/web.ts
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const fse = require('fs-extra');
|
||||||
|
const uiTheme = require('@verdaccio/ui-theme');
|
||||||
|
fse.copySync(uiTheme(), path.join(__dirname, '../dist/static'));
|
||||||
|
// eslint-disable-next-line no-console
|
||||||
|
console.log('theme files copied');
|
39
packages/standalone/webpack.config.js
Normal file
39
packages/standalone/webpack.config.js
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
/* eslint-disable max-len */
|
||||||
|
const path = require('path');
|
||||||
|
const webpack = require('webpack');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entry: './build.js',
|
||||||
|
mode: 'development',
|
||||||
|
output: {
|
||||||
|
path: path.resolve(__dirname, 'dist'),
|
||||||
|
filename: 'bundle.js',
|
||||||
|
},
|
||||||
|
devtool: 'nosources-source-map',
|
||||||
|
plugins: [
|
||||||
|
// esprima is only needed for parsing !!js/function, which isn't part of the FAILSAFE_SCHEMA.
|
||||||
|
// Unfortunately, js-yaml declares it as a hard dependency and requires the entire module,
|
||||||
|
// which causes webpack to add 0.13 MB of unused code to the bundle.
|
||||||
|
// Fortunately, js-yaml wraps the require call inside a try / catch block, so we can just ignore it.
|
||||||
|
// Reference: https://github.com/nodeca/js-yaml/blob/34e5072f43fd36b08aaaad433da73c10d47c41e5/lib/js-yaml/type/js/function.js#L15
|
||||||
|
new webpack.IgnorePlugin({
|
||||||
|
resourceRegExp: /^esprima$/,
|
||||||
|
contextRegExp: /js-yaml/,
|
||||||
|
}),
|
||||||
|
new webpack.BannerPlugin({
|
||||||
|
entryOnly: true,
|
||||||
|
banner: `#!/usr/bin/env node\n/* eslint-disable */`,
|
||||||
|
raw: true,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
target: 'node',
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
['verdaccio-htpasswd']: path.resolve(__dirname, '../core//htpasswd/build/index.js'),
|
||||||
|
},
|
||||||
|
fallback: {
|
||||||
|
// jsdom -> canvas is not required for the purpose of backend
|
||||||
|
canvas: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
177
pnpm-lock.yaml
177
pnpm-lock.yaml
|
@ -264,6 +264,7 @@ importers:
|
||||||
express: 4.17.1
|
express: 4.17.1
|
||||||
jsonwebtoken: 8.5.1
|
jsonwebtoken: 8.5.1
|
||||||
lodash: 4.17.15
|
lodash: 4.17.15
|
||||||
|
verdaccio-htpasswd: link:../core/htpasswd
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/types': link:../core/types
|
'@verdaccio/types': link:../core/types
|
||||||
|
@ -280,6 +281,7 @@ importers:
|
||||||
express: 4.17.1
|
express: 4.17.1
|
||||||
jsonwebtoken: 8.5.1
|
jsonwebtoken: 8.5.1
|
||||||
lodash: 4.17.15
|
lodash: 4.17.15
|
||||||
|
verdaccio-htpasswd: workspace:10.0.0-alpha.4
|
||||||
packages/cli:
|
packages/cli:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/config': link:../config
|
'@verdaccio/config': link:../config
|
||||||
|
@ -830,6 +832,7 @@ importers:
|
||||||
express: 4.17.1
|
express: 4.17.1
|
||||||
express-rate-limit: 5.2.3
|
express-rate-limit: 5.2.3
|
||||||
lodash: 4.17.15
|
lodash: 4.17.15
|
||||||
|
verdaccio-audit: link:../plugins/audit
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@verdaccio/mock': link:../mock
|
'@verdaccio/mock': link:../mock
|
||||||
'@verdaccio/proxy': link:../proxy
|
'@verdaccio/proxy': link:../proxy
|
||||||
|
@ -855,6 +858,24 @@ importers:
|
||||||
http-errors: 1.7.3
|
http-errors: 1.7.3
|
||||||
lodash: 4.17.15
|
lodash: 4.17.15
|
||||||
request: 2.87.0
|
request: 2.87.0
|
||||||
|
verdaccio-audit: workspace:10.0.0-alpha.3
|
||||||
|
packages/standalone:
|
||||||
|
devDependencies:
|
||||||
|
'@verdaccio/cli': link:../cli
|
||||||
|
'@verdaccio/ui-theme': link:../plugins/ui-theme
|
||||||
|
fs-extra: 9.0.1
|
||||||
|
webpack: 5.11.1_webpack-cli@4.3.1
|
||||||
|
webpack-bundle-analyzer: 3.8.0
|
||||||
|
webpack-bundle-size-analyzer: 3.1.0
|
||||||
|
webpack-cli: 4.3.1_aff9e91a092f024e9b4b3234c48fc17b
|
||||||
|
specifiers:
|
||||||
|
'@verdaccio/cli': workspace:5.0.0-alpha.4
|
||||||
|
'@verdaccio/ui-theme': workspace:5.0.0-alpha.4
|
||||||
|
fs-extra: 9.0.1
|
||||||
|
webpack: ^5.11.1
|
||||||
|
webpack-bundle-analyzer: 3.8.0
|
||||||
|
webpack-bundle-size-analyzer: 3.1.0
|
||||||
|
webpack-cli: ^4.3.1
|
||||||
packages/store:
|
packages/store:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@verdaccio/commons-api': link:../core/commons-api
|
'@verdaccio/commons-api': link:../core/commons-api
|
||||||
|
@ -4621,6 +4642,12 @@ packages:
|
||||||
node: '>=4'
|
node: '>=4'
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==
|
integrity: sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==
|
||||||
|
/@discoveryjs/json-ext/0.5.2:
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10.0.0'
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==
|
||||||
/@emotion/babel-plugin-jsx-pragmatic/0.1.5:
|
/@emotion/babel-plugin-jsx-pragmatic/0.1.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/plugin-syntax-jsx': 7.10.4
|
'@babel/plugin-syntax-jsx': 7.10.4
|
||||||
|
@ -7700,6 +7727,15 @@ packages:
|
||||||
webpack-cli: 4.x.x
|
webpack-cli: 4.x.x
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ==
|
integrity: sha512-uNWSdaYHc+f3LdIZNwhdhkjjLDDl3jP2+XBqAq9H8DjrJUvlOKdP8TNruy1yEaDfgpAIgbSAN7pye4FEHg9tYQ==
|
||||||
|
/@webpack-cli/info/1.2.1_webpack-cli@4.3.1:
|
||||||
|
dependencies:
|
||||||
|
envinfo: 7.7.3
|
||||||
|
webpack-cli: 4.3.1_aff9e91a092f024e9b4b3234c48fc17b
|
||||||
|
dev: true
|
||||||
|
peerDependencies:
|
||||||
|
webpack-cli: 4.x.x
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-fLnDML5HZ5AEKzHul8xLAksoKN2cibu6MgonkUj8R9V7bbeVRkd1XbGEGWrAUNYHbX1jcqCsDEpBviE5StPMzQ==
|
||||||
/@webpack-cli/serve/1.1.0_1efd886f95227e17a6880613935bfc0a:
|
/@webpack-cli/serve/1.1.0_1efd886f95227e17a6880613935bfc0a:
|
||||||
dependencies:
|
dependencies:
|
||||||
webpack-cli: 4.2.0_d5d0320a6c0de9bbc2cde368ca95d2bf
|
webpack-cli: 4.2.0_d5d0320a6c0de9bbc2cde368ca95d2bf
|
||||||
|
@ -7713,6 +7749,18 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg==
|
integrity: sha512-7RfnMXCpJ/NThrhq4gYQYILB18xWyoQcBey81oIyVbmgbc6m5ZHHyFK+DyH7pLHJf0p14MxL4mTsoPAgBSTpIg==
|
||||||
|
/@webpack-cli/serve/1.2.1_webpack-cli@4.3.1:
|
||||||
|
dependencies:
|
||||||
|
webpack-cli: 4.3.1_aff9e91a092f024e9b4b3234c48fc17b
|
||||||
|
dev: true
|
||||||
|
peerDependencies:
|
||||||
|
webpack-cli: 4.x.x
|
||||||
|
webpack-dev-server: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
webpack-dev-server:
|
||||||
|
optional: true
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-Zj1z6AyS+vqV6Hfi7ngCjFGdHV5EwZNIHo6QfFTNe9PyW+zBU1zJ9BiOW1pmUEq950RC4+Dym6flyA/61/vhyw==
|
||||||
/@xtuc/ieee754/1.2.0:
|
/@xtuc/ieee754/1.2.0:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
||||||
|
@ -8429,7 +8477,6 @@ packages:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=
|
||||||
/at-least-node/1.0.0:
|
/at-least-node/1.0.0:
|
||||||
dev: false
|
|
||||||
engines:
|
engines:
|
||||||
node: '>= 4.0.0'
|
node: '>= 4.0.0'
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -13069,6 +13116,22 @@ packages:
|
||||||
node: '>=10'
|
node: '>=10'
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
|
integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==
|
||||||
|
/execa/5.0.0:
|
||||||
|
dependencies:
|
||||||
|
cross-spawn: 7.0.3
|
||||||
|
get-stream: 6.0.0
|
||||||
|
human-signals: 2.1.0
|
||||||
|
is-stream: 2.0.0
|
||||||
|
merge-stream: 2.0.0
|
||||||
|
npm-run-path: 4.0.1
|
||||||
|
onetime: 5.1.2
|
||||||
|
signal-exit: 3.0.3
|
||||||
|
strip-final-newline: 2.0.0
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10'
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==
|
||||||
/execall/2.0.0:
|
/execall/2.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
clone-regexp: 2.2.0
|
clone-regexp: 2.2.0
|
||||||
|
@ -13737,7 +13800,7 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
asynckit: 0.4.0
|
asynckit: 0.4.0
|
||||||
combined-stream: 1.0.8
|
combined-stream: 1.0.8
|
||||||
mime-types: 2.1.27
|
mime-types: 2.1.28
|
||||||
engines:
|
engines:
|
||||||
node: '>= 0.12'
|
node: '>= 0.12'
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -13846,7 +13909,6 @@ packages:
|
||||||
graceful-fs: 4.2.4
|
graceful-fs: 4.2.4
|
||||||
jsonfile: 6.0.1
|
jsonfile: 6.0.1
|
||||||
universalify: 1.0.0
|
universalify: 1.0.0
|
||||||
dev: false
|
|
||||||
engines:
|
engines:
|
||||||
node: '>=10'
|
node: '>=10'
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -14794,6 +14856,12 @@ packages:
|
||||||
node: '>=8'
|
node: '>=8'
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
|
integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
|
||||||
|
/get-stream/6.0.0:
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10'
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
|
||||||
/get-value/2.0.6:
|
/get-value/2.0.6:
|
||||||
engines:
|
engines:
|
||||||
node: '>=0.10.0'
|
node: '>=0.10.0'
|
||||||
|
@ -16004,6 +16072,12 @@ packages:
|
||||||
node: '>=8.12.0'
|
node: '>=8.12.0'
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
|
||||||
|
/human-signals/2.1.0:
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10.17.0'
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||||
/humanize/0.0.9:
|
/humanize/0.0.9:
|
||||||
dev: true
|
dev: true
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -17836,7 +17910,6 @@ packages:
|
||||||
/jsonfile/6.0.1:
|
/jsonfile/6.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
universalify: 1.0.0
|
universalify: 1.0.0
|
||||||
dev: false
|
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
graceful-fs: 4.2.4
|
graceful-fs: 4.2.4
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -25396,6 +25469,22 @@ packages:
|
||||||
webpack: ^5.1.0
|
webpack: ^5.1.0
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==
|
integrity: sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==
|
||||||
|
/terser-webpack-plugin/5.0.3_webpack@5.11.1:
|
||||||
|
dependencies:
|
||||||
|
jest-worker: 26.6.2
|
||||||
|
p-limit: 3.0.2
|
||||||
|
schema-utils: 3.0.0
|
||||||
|
serialize-javascript: 5.0.1
|
||||||
|
source-map: 0.6.1
|
||||||
|
terser: 5.5.1
|
||||||
|
webpack: 5.11.1_webpack-cli@4.3.1
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>= 10.13.0'
|
||||||
|
peerDependencies:
|
||||||
|
webpack: ^5.1.0
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==
|
||||||
/terser/4.8.0:
|
/terser/4.8.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: 2.20.3
|
commander: 2.20.3
|
||||||
|
@ -26207,7 +26296,6 @@ packages:
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
|
integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
|
||||||
/universalify/1.0.0:
|
/universalify/1.0.0:
|
||||||
dev: false
|
|
||||||
engines:
|
engines:
|
||||||
node: '>= 10.0.0'
|
node: '>= 10.0.0'
|
||||||
resolution:
|
resolution:
|
||||||
|
@ -26836,6 +26924,47 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA==
|
integrity: sha512-EIl3k88vaF4fSxWSgtAQR+VwicfLMTZ9amQtqS4o+TDPW9HGaEpbFBbAZ4A3ZOT5SOnMxNOzROsSTPiE8tBJPA==
|
||||||
|
/webpack-cli/4.3.1_aff9e91a092f024e9b4b3234c48fc17b:
|
||||||
|
dependencies:
|
||||||
|
'@discoveryjs/json-ext': 0.5.2
|
||||||
|
'@webpack-cli/info': 1.2.1_webpack-cli@4.3.1
|
||||||
|
'@webpack-cli/serve': 1.2.1_webpack-cli@4.3.1
|
||||||
|
colorette: 1.2.1
|
||||||
|
commander: 6.2.0
|
||||||
|
enquirer: 2.3.6
|
||||||
|
execa: 5.0.0
|
||||||
|
fastest-levenshtein: 1.0.12
|
||||||
|
import-local: 3.0.2
|
||||||
|
interpret: 2.2.0
|
||||||
|
rechoir: 0.7.0
|
||||||
|
v8-compile-cache: 2.2.0
|
||||||
|
webpack: 5.11.1_webpack-cli@4.3.1
|
||||||
|
webpack-bundle-analyzer: 3.8.0
|
||||||
|
webpack-merge: 4.2.2
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10.13.0'
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
'@webpack-cli/generators': '*'
|
||||||
|
'@webpack-cli/init': '*'
|
||||||
|
'@webpack-cli/migrate': '*'
|
||||||
|
webpack: 4.x.x || 5.x.x
|
||||||
|
webpack-bundle-analyzer: '*'
|
||||||
|
webpack-dev-server: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@webpack-cli/generators':
|
||||||
|
optional: true
|
||||||
|
'@webpack-cli/init':
|
||||||
|
optional: true
|
||||||
|
'@webpack-cli/migrate':
|
||||||
|
optional: true
|
||||||
|
webpack-bundle-analyzer:
|
||||||
|
optional: true
|
||||||
|
webpack-dev-server:
|
||||||
|
optional: true
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-/F4+9QNZM/qKzzL9/06Am8NXIkGV+/NqQ62Dx7DSqudxxpAgBqYn6V7+zp+0Y7JuWksKUbczRY3wMTd+7Uj6OA==
|
||||||
/webpack-dev-middleware/3.7.2_webpack@4.43.0:
|
/webpack-dev-middleware/3.7.2_webpack@4.43.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
memory-fs: 0.4.1
|
memory-fs: 0.4.1
|
||||||
|
@ -27090,6 +27219,44 @@ packages:
|
||||||
optional: true
|
optional: true
|
||||||
resolution:
|
resolution:
|
||||||
integrity: sha512-mHu4iM2mW7d/8R91VPPNtUCNd1D8k51TTb4e0XjylapIR6WEmW8XUTBZq8TqmShj9XYxVXJn6AzKlWnrlty6DA==
|
integrity: sha512-mHu4iM2mW7d/8R91VPPNtUCNd1D8k51TTb4e0XjylapIR6WEmW8XUTBZq8TqmShj9XYxVXJn6AzKlWnrlty6DA==
|
||||||
|
/webpack/5.11.1_webpack-cli@4.3.1:
|
||||||
|
dependencies:
|
||||||
|
'@types/eslint-scope': 3.7.0
|
||||||
|
'@types/estree': 0.0.45
|
||||||
|
'@webassemblyjs/ast': 1.9.1
|
||||||
|
'@webassemblyjs/helper-module-context': 1.9.1
|
||||||
|
'@webassemblyjs/wasm-edit': 1.9.1
|
||||||
|
'@webassemblyjs/wasm-parser': 1.9.1
|
||||||
|
acorn: 8.0.4
|
||||||
|
browserslist: 4.14.7
|
||||||
|
chrome-trace-event: 1.0.2
|
||||||
|
enhanced-resolve: 5.4.1
|
||||||
|
eslint-scope: 5.1.1
|
||||||
|
events: 3.2.0
|
||||||
|
glob-to-regexp: 0.4.1
|
||||||
|
graceful-fs: 4.2.4
|
||||||
|
json-parse-better-errors: 1.0.2
|
||||||
|
loader-runner: 4.1.0
|
||||||
|
mime-types: 2.1.27
|
||||||
|
neo-async: 2.6.2
|
||||||
|
pkg-dir: 5.0.0
|
||||||
|
schema-utils: 3.0.0
|
||||||
|
tapable: 2.2.0
|
||||||
|
terser-webpack-plugin: 5.0.3_webpack@5.11.1
|
||||||
|
watchpack: 2.1.0
|
||||||
|
webpack-cli: 4.3.1_aff9e91a092f024e9b4b3234c48fc17b
|
||||||
|
webpack-sources: 2.2.0
|
||||||
|
dev: true
|
||||||
|
engines:
|
||||||
|
node: '>=10.13.0'
|
||||||
|
hasBin: true
|
||||||
|
peerDependencies:
|
||||||
|
webpack-cli: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
webpack-cli:
|
||||||
|
optional: true
|
||||||
|
resolution:
|
||||||
|
integrity: sha512-tNUIdAmYJv+nupRs/U/gqmADm6fgrf5xE+rSlSsf2PgsGO7j2WG7ccU6AWNlOJlHFl+HnmXlBmHIkiLf+XA9mQ==
|
||||||
/websocket-driver/0.6.5:
|
/websocket-driver/0.6.5:
|
||||||
dependencies:
|
dependencies:
|
||||||
websocket-extensions: 0.1.4
|
websocket-extensions: 0.1.4
|
||||||
|
|
Loading…
Reference in a new issue