@verdaccio/node-api 8.0.0-next-8.19 → 8.0.0-next-8.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/server.js CHANGED
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.createServerFactory = createServerFactory;
7
7
  exports.initServer = initServer;
8
8
  exports.runServer = runServer;
9
- var _constants = _interopRequireDefault(require("constants"));
10
9
  var _debug = _interopRequireDefault(require("debug"));
11
- var _lodash = _interopRequireWildcard(require("lodash"));
10
+ var _lodash = require("lodash");
11
+ var _nodeConstants = _interopRequireDefault(require("node:constants"));
12
12
  var _nodeFs = _interopRequireDefault(require("node:fs"));
13
13
  var _nodeHttp = _interopRequireDefault(require("node:http"));
14
14
  var _nodeHttps = _interopRequireDefault(require("node:https"));
@@ -18,9 +18,7 @@ var _core = require("@verdaccio/core");
18
18
  var _logger = require("@verdaccio/logger");
19
19
  var _server = _interopRequireDefault(require("@verdaccio/server"));
20
20
  var _serverFastify = _interopRequireDefault(require("@verdaccio/server-fastify"));
21
- var _cliUtils = require("./cli-utils");
22
21
  var _experiments = require("./experiments");
23
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
24
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
23
  /* eslint-disable */
26
24
 
@@ -44,7 +42,7 @@ function createServerFactory(config, addr, app) {
44
42
  try {
45
43
  let httpsOptions = {
46
44
  // disable insecure SSLv2 and SSLv3
47
- secureOptions: _constants.default.SSL_OP_NO_SSLv2 | _constants.default.SSL_OP_NO_SSLv3
45
+ secureOptions: _nodeConstants.default.SSL_OP_NO_SSLv2 | _nodeConstants.default.SSL_OP_NO_SSLv3
48
46
  };
49
47
  const keyCertConfig = config.https;
50
48
  const pfxConfig = config.https;
@@ -121,9 +119,9 @@ function createServerFactory(config, addr, app) {
121
119
  */
122
120
  async function initServer(config, port, version, pkgName) {
123
121
  return new Promise(async (resolve, reject) => {
124
- // FIXME: get only the first match, the multiple address will be removed
125
- const [addr] = (0, _cliUtils.getListListenAddresses)(port, config.listen);
126
122
  const logger = (0, _logger.setup)(config?.log);
123
+ const combined = [port, config?.listen, _core.DEFAULT_PORT];
124
+ const addr = (0, _config.getListenAddress)(combined, logger);
127
125
  (0, _experiments.displayExperimentsInfoBox)(config.flags);
128
126
  let app;
129
127
  if (process.env.VERDACCIO_SERVER === 'fastify') {
@@ -197,19 +195,12 @@ async function initServer(config, port, version, pkgName) {
197
195
  * @param config
198
196
  */
199
197
  async function runServer(config) {
200
- let configurationParsed;
201
- if (config === undefined || typeof config === 'string') {
202
- const configPathLocation = (0, _config.findConfigFile)(config);
203
- configurationParsed = (0, _config.parseConfigFile)(configPathLocation);
204
- } else if (_lodash.default.isObject(config)) {
205
- configurationParsed = config;
206
- } else {
207
- throw new Error(_core.API_ERROR.CONFIG_BAD_FORMAT);
208
- }
198
+ const configurationParsed = (0, _config.getConfigParsed)(config);
209
199
  (0, _logger.setup)(configurationParsed.log);
210
200
  (0, _experiments.displayExperimentsInfoBox)(configurationParsed.flags);
211
201
  // FIXME: get only the first match, the multiple address will be removed
212
- const [addr] = (0, _cliUtils.getListListenAddresses)(undefined, configurationParsed.listen);
202
+ const combined = [configurationParsed?.listen, _core.DEFAULT_PORT];
203
+ const addr = (0, _config.getListenAddress)(combined, _logger.logger);
213
204
  const app = await (0, _server.default)(configurationParsed);
214
205
  return createServerFactory(configurationParsed, addr, app);
215
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","names":["_constants","_interopRequireDefault","require","_debug","_lodash","_interopRequireWildcard","_nodeFs","_nodeHttp","_nodeHttps","_nodeUrl","_config","_core","_logger","_server","_serverFastify","_cliUtils","_experiments","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","debug","buildDebug","unlinkAddressPath","addr","path","fs","existsSync","unlinkSync","createServerFactory","config","app","serverFactory","proto","httpsOptions","secureOptions","constants","SSL_OP_NO_SSLv2","SSL_OP_NO_SSLv3","keyCertConfig","https","pfxConfig","key","cert","pfx","Error","passphrase","assign","readFileSync","ca","createServer","err","message","http","printRoutes","layer","route","keys","methods","join","name","handle","stack","forEach","nestedLayer","_router","server","keepAliveTimeout","initServer","port","version","pkgName","Promise","resolve","reject","getListListenAddresses","listen","logger","setup","log","displayExperimentsInfoBox","flags","process","env","VERDACCIO_SERVER","fastifyServer","host","expressServer","isFunction","send","verdaccio_started","addressServer","url","format","protocol","pathname","hostname","info","on","exitCode","handleShutdownGracefully","close","exit","signal","once","runServer","configurationParsed","undefined","configPathLocation","findConfigFile","parseConfigFile","_","isObject","API_ERROR","CONFIG_BAD_FORMAT"],"sources":["../src/server.ts"],"sourcesContent":["/* eslint-disable */\nimport constants from 'constants';\nimport buildDebug from 'debug';\nimport _, { assign, isFunction } from 'lodash';\nimport fs from 'node:fs';\nimport http from 'node:http';\nimport https from 'node:https';\nimport url from 'node:url';\n\nimport { findConfigFile, parseConfigFile } from '@verdaccio/config';\nimport { API_ERROR } from '@verdaccio/core';\nimport { setup } from '@verdaccio/logger';\nimport expressServer from '@verdaccio/server';\nimport fastifyServer from '@verdaccio/server-fastify';\nimport { ConfigYaml, HttpsConfKeyCert, HttpsConfPfx } from '@verdaccio/types';\n\nimport { getListListenAddresses } from './cli-utils';\nimport { displayExperimentsInfoBox } from './experiments';\n\nconst debug = buildDebug('verdaccio:node-api');\n\nfunction unlinkAddressPath(addr) {\n if (addr.path && fs.existsSync(addr.path)) {\n fs.unlinkSync(addr.path);\n }\n}\n\n/**\n * Return a native HTTP/HTTPS server instance\n * @param config\n * @param addr\n * @param app\n */\nexport function createServerFactory(config: ConfigYaml, addr, app) {\n let serverFactory;\n if (addr.proto === 'https') {\n debug('https enabled');\n try {\n let httpsOptions = {\n // disable insecure SSLv2 and SSLv3\n secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3,\n };\n\n const keyCertConfig = config.https as HttpsConfKeyCert;\n const pfxConfig = config.https as HttpsConfPfx;\n\n // https must either have key and cert or a pfx and (optionally) a passphrase\n if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {\n // logHTTPSError(configPath);\n throw Error('bad format https configuration');\n }\n\n if (pfxConfig.pfx) {\n const { pfx, passphrase } = pfxConfig;\n httpsOptions = assign(httpsOptions, {\n pfx: fs.readFileSync(pfx),\n passphrase: passphrase || '',\n });\n } else {\n const { key, cert, ca } = keyCertConfig;\n httpsOptions = assign(httpsOptions, {\n key: fs.readFileSync(key),\n cert: fs.readFileSync(cert),\n ...(ca && {\n ca: fs.readFileSync(ca),\n }),\n });\n }\n // TODO: enable http2 as feature\n // if (config.server.http2) <-- check if force http2\n serverFactory = https.createServer(httpsOptions, app);\n } catch (err: any) {\n throw new Error(`cannot create https server: ${err.message}`);\n }\n } else {\n // http\n debug('http enabled');\n serverFactory = http.createServer(app);\n }\n\n // List of all routes registered in the app\n function printRoutes(layer) {\n if (layer.route) {\n debug('%s (%s)', layer.route.path, Object.keys(layer.route.methods).join(', '));\n } else if (layer.name === 'router') {\n layer.handle.stack.forEach((nestedLayer) => {\n printRoutes(nestedLayer);\n });\n }\n }\n\n debug('registered routes:');\n app._router.stack.forEach(printRoutes);\n\n if (\n config.server &&\n typeof config.server.keepAliveTimeout !== 'undefined' &&\n // @ts-ignore\n config.server.keepAliveTimeout !== 'null'\n ) {\n // library definition for node is not up to date (doesn't contain recent 8.0 changes)\n serverFactory.keepAliveTimeout = config.server.keepAliveTimeout * 1000;\n }\n // FIXE: I could not find the reason of this code.\n unlinkAddressPath(addr);\n\n return serverFactory;\n}\n\n/**\n * Start the server on the port defined\n * @param config\n * @param port\n * @param version\n * @param pkgName\n */\nexport async function initServer(\n config: ConfigYaml,\n port: string | void,\n version: string,\n pkgName: string\n): Promise<void> {\n return new Promise(async (resolve, reject) => {\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(port, config.listen);\n const logger = setup(config?.log as any);\n displayExperimentsInfoBox(config.flags);\n\n let app;\n if (process.env.VERDACCIO_SERVER === 'fastify') {\n app = await fastifyServer(config);\n app.listen({ port: addr.port, host: addr.host }, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n } else {\n app = await expressServer(config);\n const serverFactory = createServerFactory(config, addr, app);\n serverFactory\n .listen(addr.port || addr.path, addr.host, (): void => {\n // send a message for test\n if (isFunction(process.send)) {\n process.send({\n verdaccio_started: true,\n });\n }\n const addressServer = `${\n addr.path\n ? url.format({\n protocol: 'unix',\n pathname: addr.path,\n })\n : url.format({\n protocol: addr.proto,\n hostname: addr.host,\n port: addr.port,\n pathname: '/',\n })\n }`;\n logger.info({ addressServer }, 'http address: @{addressServer}');\n logger.info({ version }, 'version: @{version}');\n resolve();\n })\n .on('error', function (err): void {\n reject(err);\n process.exitCode = 1;\n });\n function handleShutdownGracefully() {\n logger.info('received shutdown signal - closing server gracefully...');\n serverFactory.close(() => {\n logger.info('server closed.');\n process.exit(0);\n });\n }\n\n for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {\n // Use once() so that receiving double signals exit the app.\n process.once(signal, handleShutdownGracefully);\n }\n }\n });\n}\n\n/**\n * Exposes a server factory to be instantiated programmatically.\n *\n ```ts\n const app = await runServer(); // default configuration\n const app = await runServer('./config/config.yaml');\n const app = await runServer({ configuration });\n app.listen(4000, (event) => {\n // do something\n });\n ```\n * @param config\n */\nexport async function runServer(config?: string | ConfigYaml): Promise<any> {\n let configurationParsed: ConfigYaml;\n if (config === undefined || typeof config === 'string') {\n const configPathLocation = findConfigFile(config);\n configurationParsed = parseConfigFile(configPathLocation);\n } else if (_.isObject(config)) {\n configurationParsed = config;\n } else {\n throw new Error(API_ERROR.CONFIG_BAD_FORMAT);\n }\n\n setup(configurationParsed.log as any);\n displayExperimentsInfoBox(configurationParsed.flags);\n // FIXME: get only the first match, the multiple address will be removed\n const [addr] = getListListenAddresses(undefined, configurationParsed.listen);\n const app = await expressServer(configurationParsed);\n return createServerFactory(configurationParsed, addr, app);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"server.js","names":["_debug","_interopRequireDefault","require","_lodash","_nodeConstants","_nodeFs","_nodeHttp","_nodeHttps","_nodeUrl","_config","_core","_logger","_server","_serverFastify","_experiments","e","__esModule","default","debug","buildDebug","unlinkAddressPath","addr","path","fs","existsSync","unlinkSync","createServerFactory","config","app","serverFactory","proto","httpsOptions","secureOptions","constants","SSL_OP_NO_SSLv2","SSL_OP_NO_SSLv3","keyCertConfig","https","pfxConfig","key","cert","pfx","Error","passphrase","assign","readFileSync","ca","createServer","err","message","http","printRoutes","layer","route","Object","keys","methods","join","name","handle","stack","forEach","nestedLayer","_router","server","keepAliveTimeout","initServer","port","version","pkgName","Promise","resolve","reject","logger","setup","log","combined","listen","DEFAULT_PORT","getListenAddress","displayExperimentsInfoBox","flags","process","env","VERDACCIO_SERVER","fastifyServer","host","expressServer","isFunction","send","verdaccio_started","addressServer","url","format","protocol","pathname","hostname","info","on","exitCode","handleShutdownGracefully","close","exit","signal","once","runServer","configurationParsed","getConfigParsed"],"sources":["../src/server.ts"],"sourcesContent":["/* eslint-disable */\nimport buildDebug from 'debug';\nimport _, { assign, isFunction } from 'lodash';\nimport constants from 'node:constants';\nimport fs from 'node:fs';\nimport http from 'node:http';\nimport https from 'node:https';\nimport url from 'node:url';\n\nimport { getConfigParsed, getListenAddress } from '@verdaccio/config';\nimport { DEFAULT_PORT } from '@verdaccio/core';\nimport { logger, setup } from '@verdaccio/logger';\nimport expressServer from '@verdaccio/server';\nimport fastifyServer from '@verdaccio/server-fastify';\nimport { ConfigYaml, HttpsConfKeyCert, HttpsConfPfx } from '@verdaccio/types';\n\nimport { displayExperimentsInfoBox } from './experiments';\n\nconst debug = buildDebug('verdaccio:node-api');\n\nfunction unlinkAddressPath(addr) {\n if (addr.path && fs.existsSync(addr.path)) {\n fs.unlinkSync(addr.path);\n }\n}\n\n/**\n * Return a native HTTP/HTTPS server instance\n * @param config\n * @param addr\n * @param app\n */\nexport function createServerFactory(config: ConfigYaml, addr, app) {\n let serverFactory;\n if (addr.proto === 'https') {\n debug('https enabled');\n try {\n let httpsOptions = {\n // disable insecure SSLv2 and SSLv3\n secureOptions: constants.SSL_OP_NO_SSLv2 | constants.SSL_OP_NO_SSLv3,\n };\n\n const keyCertConfig = config.https as HttpsConfKeyCert;\n const pfxConfig = config.https as HttpsConfPfx;\n\n // https must either have key and cert or a pfx and (optionally) a passphrase\n if (!((keyCertConfig.key && keyCertConfig.cert) || pfxConfig.pfx)) {\n // logHTTPSError(configPath);\n throw Error('bad format https configuration');\n }\n\n if (pfxConfig.pfx) {\n const { pfx, passphrase } = pfxConfig;\n httpsOptions = assign(httpsOptions, {\n pfx: fs.readFileSync(pfx),\n passphrase: passphrase || '',\n });\n } else {\n const { key, cert, ca } = keyCertConfig;\n httpsOptions = assign(httpsOptions, {\n key: fs.readFileSync(key),\n cert: fs.readFileSync(cert),\n ...(ca && {\n ca: fs.readFileSync(ca),\n }),\n });\n }\n // TODO: enable http2 as feature\n // if (config.server.http2) <-- check if force http2\n serverFactory = https.createServer(httpsOptions, app);\n } catch (err: any) {\n throw new Error(`cannot create https server: ${err.message}`);\n }\n } else {\n // http\n debug('http enabled');\n serverFactory = http.createServer(app);\n }\n\n // List of all routes registered in the app\n function printRoutes(layer) {\n if (layer.route) {\n debug('%s (%s)', layer.route.path, Object.keys(layer.route.methods).join(', '));\n } else if (layer.name === 'router') {\n layer.handle.stack.forEach((nestedLayer) => {\n printRoutes(nestedLayer);\n });\n }\n }\n\n debug('registered routes:');\n app._router.stack.forEach(printRoutes);\n\n if (\n config.server &&\n typeof config.server.keepAliveTimeout !== 'undefined' &&\n // @ts-ignore\n config.server.keepAliveTimeout !== 'null'\n ) {\n // library definition for node is not up to date (doesn't contain recent 8.0 changes)\n serverFactory.keepAliveTimeout = config.server.keepAliveTimeout * 1000;\n }\n // FIXE: I could not find the reason of this code.\n unlinkAddressPath(addr);\n\n return serverFactory;\n}\n\n/**\n * Start the server on the port defined\n * @param config\n * @param port\n * @param version\n * @param pkgName\n */\nexport async function initServer(\n config: ConfigYaml,\n port: string | void,\n version: string,\n pkgName: string\n): Promise<void> {\n return new Promise(async (resolve, reject) => {\n const logger = setup(config?.log as any);\n const combined: string | undefined | any[] = [port, config?.listen, DEFAULT_PORT];\n const addr = getListenAddress(combined, logger);\n displayExperimentsInfoBox(config.flags);\n\n let app;\n if (process.env.VERDACCIO_SERVER === 'fastify') {\n app = await fastifyServer(config);\n app.listen({ port: addr.port, host: addr.host }, (err) => {\n if (err) {\n reject(err);\n } else {\n resolve();\n }\n });\n } else {\n app = await expressServer(config);\n const serverFactory = createServerFactory(config, addr, app);\n serverFactory\n .listen(addr.port || addr.path, addr.host, (): void => {\n // send a message for test\n if (isFunction(process.send)) {\n process.send({\n verdaccio_started: true,\n });\n }\n const addressServer = `${\n addr.path\n ? url.format({\n protocol: 'unix',\n pathname: addr.path,\n })\n : url.format({\n protocol: addr.proto,\n hostname: addr.host,\n port: addr.port,\n pathname: '/',\n })\n }`;\n logger.info({ addressServer }, 'http address: @{addressServer}');\n logger.info({ version }, 'version: @{version}');\n resolve();\n })\n .on('error', function (err): void {\n reject(err);\n process.exitCode = 1;\n });\n function handleShutdownGracefully() {\n logger.info('received shutdown signal - closing server gracefully...');\n serverFactory.close(() => {\n logger.info('server closed.');\n process.exit(0);\n });\n }\n\n for (const signal of ['SIGINT', 'SIGTERM', 'SIGHUP']) {\n // Use once() so that receiving double signals exit the app.\n process.once(signal, handleShutdownGracefully);\n }\n }\n });\n}\n\n/**\n * Exposes a server factory to be instantiated programmatically.\n *\n ```ts\n const app = await runServer(); // default configuration\n const app = await runServer('./config/config.yaml');\n const app = await runServer({ configuration });\n app.listen(4000, (event) => {\n // do something\n });\n ```\n * @param config\n */\nexport async function runServer(config?: string | ConfigYaml): Promise<any> {\n const configurationParsed = getConfigParsed(config);\n setup(configurationParsed.log as any);\n displayExperimentsInfoBox(configurationParsed.flags);\n // FIXME: get only the first match, the multiple address will be removed\n const combined: string | undefined | any[] = [configurationParsed?.listen, DEFAULT_PORT];\n const addr = getListenAddress(combined, logger);\n const app = await expressServer(configurationParsed);\n return createServerFactory(configurationParsed, addr, app);\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,QAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,cAAA,GAAAZ,sBAAA,CAAAC,OAAA;AAGA,IAAAY,YAAA,GAAAZ,OAAA;AAA0D,SAAAD,uBAAAc,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhB1D;;AAkBA,MAAMG,KAAK,GAAG,IAAAC,cAAU,EAAC,oBAAoB,CAAC;AAE9C,SAASC,iBAAiBA,CAACC,IAAI,EAAE;EAC/B,IAAIA,IAAI,CAACC,IAAI,IAAIC,eAAE,CAACC,UAAU,CAACH,IAAI,CAACC,IAAI,CAAC,EAAE;IACzCC,eAAE,CAACE,UAAU,CAACJ,IAAI,CAACC,IAAI,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,mBAAmBA,CAACC,MAAkB,EAAEN,IAAI,EAAEO,GAAG,EAAE;EACjE,IAAIC,aAAa;EACjB,IAAIR,IAAI,CAACS,KAAK,KAAK,OAAO,EAAE;IAC1BZ,KAAK,CAAC,eAAe,CAAC;IACtB,IAAI;MACF,IAAIa,YAAY,GAAG;QACjB;QACAC,aAAa,EAAEC,sBAAS,CAACC,eAAe,GAAGD,sBAAS,CAACE;MACvD,CAAC;MAED,MAAMC,aAAa,GAAGT,MAAM,CAACU,KAAyB;MACtD,MAAMC,SAAS,GAAGX,MAAM,CAACU,KAAqB;;MAE9C;MACA,IAAI,EAAGD,aAAa,CAACG,GAAG,IAAIH,aAAa,CAACI,IAAI,IAAKF,SAAS,CAACG,GAAG,CAAC,EAAE;QACjE;QACA,MAAMC,KAAK,CAAC,gCAAgC,CAAC;MAC/C;MAEA,IAAIJ,SAAS,CAACG,GAAG,EAAE;QACjB,MAAM;UAAEA,GAAG;UAAEE;QAAW,CAAC,GAAGL,SAAS;QACrCP,YAAY,GAAG,IAAAa,cAAM,EAACb,YAAY,EAAE;UAClCU,GAAG,EAAElB,eAAE,CAACsB,YAAY,CAACJ,GAAG,CAAC;UACzBE,UAAU,EAAEA,UAAU,IAAI;QAC5B,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAM;UAAEJ,GAAG;UAAEC,IAAI;UAAEM;QAAG,CAAC,GAAGV,aAAa;QACvCL,YAAY,GAAG,IAAAa,cAAM,EAACb,YAAY,EAAE;UAClCQ,GAAG,EAAEhB,eAAE,CAACsB,YAAY,CAACN,GAAG,CAAC;UACzBC,IAAI,EAAEjB,eAAE,CAACsB,YAAY,CAACL,IAAI,CAAC;UAC3B,IAAIM,EAAE,IAAI;YACRA,EAAE,EAAEvB,eAAE,CAACsB,YAAY,CAACC,EAAE;UACxB,CAAC;QACH,CAAC,CAAC;MACJ;MACA;MACA;MACAjB,aAAa,GAAGQ,kBAAK,CAACU,YAAY,CAAChB,YAAY,EAAEH,GAAG,CAAC;IACvD,CAAC,CAAC,OAAOoB,GAAQ,EAAE;MACjB,MAAM,IAAIN,KAAK,CAAC,+BAA+BM,GAAG,CAACC,OAAO,EAAE,CAAC;IAC/D;EACF,CAAC,MAAM;IACL;IACA/B,KAAK,CAAC,cAAc,CAAC;IACrBW,aAAa,GAAGqB,iBAAI,CAACH,YAAY,CAACnB,GAAG,CAAC;EACxC;;EAEA;EACA,SAASuB,WAAWA,CAACC,KAAK,EAAE;IAC1B,IAAIA,KAAK,CAACC,KAAK,EAAE;MACfnC,KAAK,CAAC,SAAS,EAAEkC,KAAK,CAACC,KAAK,CAAC/B,IAAI,EAAEgC,MAAM,CAACC,IAAI,CAACH,KAAK,CAACC,KAAK,CAACG,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC,MAAM,IAAIL,KAAK,CAACM,IAAI,KAAK,QAAQ,EAAE;MAClCN,KAAK,CAACO,MAAM,CAACC,KAAK,CAACC,OAAO,CAAEC,WAAW,IAAK;QAC1CX,WAAW,CAACW,WAAW,CAAC;MAC1B,CAAC,CAAC;IACJ;EACF;EAEA5C,KAAK,CAAC,oBAAoB,CAAC;EAC3BU,GAAG,CAACmC,OAAO,CAACH,KAAK,CAACC,OAAO,CAACV,WAAW,CAAC;EAEtC,IACExB,MAAM,CAACqC,MAAM,IACb,OAAOrC,MAAM,CAACqC,MAAM,CAACC,gBAAgB,KAAK,WAAW;EACrD;EACAtC,MAAM,CAACqC,MAAM,CAACC,gBAAgB,KAAK,MAAM,EACzC;IACA;IACApC,aAAa,CAACoC,gBAAgB,GAAGtC,MAAM,CAACqC,MAAM,CAACC,gBAAgB,GAAG,IAAI;EACxE;EACA;EACA7C,iBAAiB,CAACC,IAAI,CAAC;EAEvB,OAAOQ,aAAa;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeqC,UAAUA,CAC9BvC,MAAkB,EAClBwC,IAAmB,EACnBC,OAAe,EACfC,OAAe,EACA;EACf,OAAO,IAAIC,OAAO,CAAC,OAAOC,OAAO,EAAEC,MAAM,KAAK;IAC5C,MAAMC,MAAM,GAAG,IAAAC,aAAK,EAAC/C,MAAM,EAAEgD,GAAU,CAAC;IACxC,MAAMC,QAAoC,GAAG,CAACT,IAAI,EAAExC,MAAM,EAAEkD,MAAM,EAAEC,kBAAY,CAAC;IACjF,MAAMzD,IAAI,GAAG,IAAA0D,wBAAgB,EAACH,QAAQ,EAAEH,MAAM,CAAC;IAC/C,IAAAO,sCAAyB,EAACrD,MAAM,CAACsD,KAAK,CAAC;IAEvC,IAAIrD,GAAG;IACP,IAAIsD,OAAO,CAACC,GAAG,CAACC,gBAAgB,KAAK,SAAS,EAAE;MAC9CxD,GAAG,GAAG,MAAM,IAAAyD,sBAAa,EAAC1D,MAAM,CAAC;MACjCC,GAAG,CAACiD,MAAM,CAAC;QAAEV,IAAI,EAAE9C,IAAI,CAAC8C,IAAI;QAAEmB,IAAI,EAAEjE,IAAI,CAACiE;MAAK,CAAC,EAAGtC,GAAG,IAAK;QACxD,IAAIA,GAAG,EAAE;UACPwB,MAAM,CAACxB,GAAG,CAAC;QACb,CAAC,MAAM;UACLuB,OAAO,CAAC,CAAC;QACX;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL3C,GAAG,GAAG,MAAM,IAAA2D,eAAa,EAAC5D,MAAM,CAAC;MACjC,MAAME,aAAa,GAAGH,mBAAmB,CAACC,MAAM,EAAEN,IAAI,EAAEO,GAAG,CAAC;MAC5DC,aAAa,CACVgD,MAAM,CAACxD,IAAI,CAAC8C,IAAI,IAAI9C,IAAI,CAACC,IAAI,EAAED,IAAI,CAACiE,IAAI,EAAE,MAAY;QACrD;QACA,IAAI,IAAAE,kBAAU,EAACN,OAAO,CAACO,IAAI,CAAC,EAAE;UAC5BP,OAAO,CAACO,IAAI,CAAC;YACXC,iBAAiB,EAAE;UACrB,CAAC,CAAC;QACJ;QACA,MAAMC,aAAa,GAAG,GACpBtE,IAAI,CAACC,IAAI,GACLsE,gBAAG,CAACC,MAAM,CAAC;UACTC,QAAQ,EAAE,MAAM;UAChBC,QAAQ,EAAE1E,IAAI,CAACC;QACjB,CAAC,CAAC,GACFsE,gBAAG,CAACC,MAAM,CAAC;UACTC,QAAQ,EAAEzE,IAAI,CAACS,KAAK;UACpBkE,QAAQ,EAAE3E,IAAI,CAACiE,IAAI;UACnBnB,IAAI,EAAE9C,IAAI,CAAC8C,IAAI;UACf4B,QAAQ,EAAE;QACZ,CAAC,CAAC,EACN;QACFtB,MAAM,CAACwB,IAAI,CAAC;UAAEN;QAAc,CAAC,EAAE,gCAAgC,CAAC;QAChElB,MAAM,CAACwB,IAAI,CAAC;UAAE7B;QAAQ,CAAC,EAAE,qBAAqB,CAAC;QAC/CG,OAAO,CAAC,CAAC;MACX,CAAC,CAAC,CACD2B,EAAE,CAAC,OAAO,EAAE,UAAUlD,GAAG,EAAQ;QAChCwB,MAAM,CAACxB,GAAG,CAAC;QACXkC,OAAO,CAACiB,QAAQ,GAAG,CAAC;MACtB,CAAC,CAAC;MACJ,SAASC,wBAAwBA,CAAA,EAAG;QAClC3B,MAAM,CAACwB,IAAI,CAAC,yDAAyD,CAAC;QACtEpE,aAAa,CAACwE,KAAK,CAAC,MAAM;UACxB5B,MAAM,CAACwB,IAAI,CAAC,gBAAgB,CAAC;UAC7Bf,OAAO,CAACoB,IAAI,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC;MACJ;MAEA,KAAK,MAAMC,MAAM,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;QACpD;QACArB,OAAO,CAACsB,IAAI,CAACD,MAAM,EAAEH,wBAAwB,CAAC;MAChD;IACF;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeK,SAASA,CAAC9E,MAA4B,EAAgB;EAC1E,MAAM+E,mBAAmB,GAAG,IAAAC,uBAAe,EAAChF,MAAM,CAAC;EACnD,IAAA+C,aAAK,EAACgC,mBAAmB,CAAC/B,GAAU,CAAC;EACrC,IAAAK,sCAAyB,EAAC0B,mBAAmB,CAACzB,KAAK,CAAC;EACpD;EACA,MAAML,QAAoC,GAAG,CAAC8B,mBAAmB,EAAE7B,MAAM,EAAEC,kBAAY,CAAC;EACxF,MAAMzD,IAAI,GAAG,IAAA0D,wBAAgB,EAACH,QAAQ,EAAEH,cAAM,CAAC;EAC/C,MAAM7C,GAAG,GAAG,MAAM,IAAA2D,eAAa,EAACmB,mBAAmB,CAAC;EACpD,OAAOhF,mBAAmB,CAACgF,mBAAmB,EAAErF,IAAI,EAAEO,GAAG,CAAC;AAC5D","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/node-api",
3
- "version": "8.0.0-next-8.19",
3
+ "version": "8.0.0-next-8.21",
4
4
  "description": "Verdaccio Node API",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -33,16 +33,16 @@
33
33
  },
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
- "@verdaccio/config": "8.0.0-next-8.19",
37
- "@verdaccio/core": "8.0.0-next-8.19",
38
- "@verdaccio/logger": "8.0.0-next-8.19",
39
- "@verdaccio/server": "8.0.0-next-8.19",
40
- "@verdaccio/server-fastify": "8.0.0-next-8.19",
36
+ "@verdaccio/config": "8.0.0-next-8.21",
37
+ "@verdaccio/core": "8.0.0-next-8.21",
38
+ "@verdaccio/logger": "8.0.0-next-8.21",
39
+ "@verdaccio/server": "8.0.0-next-8.21",
40
+ "@verdaccio/server-fastify": "8.0.0-next-8.21",
41
41
  "debug": "4.4.1",
42
42
  "lodash": "4.17.21"
43
43
  },
44
44
  "devDependencies": {
45
- "@verdaccio/types": "13.0.0-next-8.6",
45
+ "@verdaccio/types": "13.0.0-next-8.7",
46
46
  "selfsigned": "2.4.1",
47
47
  "supertest": "7.0.0",
48
48
  "vitest": "3.0.4"
@@ -1,30 +0,0 @@
1
- export declare const DEFAULT_PORT = "4873";
2
- export declare const DEFAULT_PROTOCOL = "http";
3
- export declare const DEFAULT_DOMAIN = "localhost";
4
- /**
5
- * Parse an internet address
6
- * Allow:
7
- - https:localhost:1234 - protocol + host + port
8
- - localhost:1234 - host + port
9
- - 1234 - port
10
- - http::1234 - protocol + port
11
- - https://localhost:443/ - full url + https
12
- - http://[::1]:443/ - ipv6
13
- - unix:/tmp/http.sock - unix sockets
14
- - https://unix:/tmp/http.sock - unix sockets (https)
15
- * @param {*} urlAddress the internet address definition
16
- * @return {Object|Null} literal object that represent the address parsed
17
- */
18
- export declare function parseAddress(urlAddress: any): any;
19
- /**
20
- * Retrieve all addresses defined in the config file.
21
- * Verdaccio is able to listen multiple ports
22
- * @param {String} argListen
23
- * @param {String} configListen
24
- * eg:
25
- * listen:
26
- - localhost:5555
27
- - localhost:5557
28
- @return {Array}
29
- */
30
- export declare function getListListenAddresses(argListen: string | void, configListen: any): any;
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DEFAULT_PROTOCOL = exports.DEFAULT_PORT = exports.DEFAULT_DOMAIN = void 0;
7
- exports.getListListenAddresses = getListListenAddresses;
8
- exports.parseAddress = parseAddress;
9
- var _core = require("@verdaccio/core");
10
- const DEFAULT_PORT = exports.DEFAULT_PORT = '4873';
11
- const DEFAULT_PROTOCOL = exports.DEFAULT_PROTOCOL = 'http';
12
- const DEFAULT_DOMAIN = exports.DEFAULT_DOMAIN = 'localhost';
13
- /**
14
- * Parse an internet address
15
- * Allow:
16
- - https:localhost:1234 - protocol + host + port
17
- - localhost:1234 - host + port
18
- - 1234 - port
19
- - http::1234 - protocol + port
20
- - https://localhost:443/ - full url + https
21
- - http://[::1]:443/ - ipv6
22
- - unix:/tmp/http.sock - unix sockets
23
- - https://unix:/tmp/http.sock - unix sockets (https)
24
- * @param {*} urlAddress the internet address definition
25
- * @return {Object|Null} literal object that represent the address parsed
26
- */
27
- function parseAddress(urlAddress) {
28
- //
29
- // TODO: refactor it to something more reasonable?
30
- //
31
- // protocol : // ( host )|( ipv6 ): port /
32
- let urlPattern = /^((https?):(\/\/)?)?((([^\/:]*)|\[([^\[\]]+)\]):)?(\d+)\/?$/.exec(urlAddress);
33
- if (urlPattern) {
34
- return {
35
- proto: urlPattern[2] || DEFAULT_PROTOCOL,
36
- host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN,
37
- port: urlPattern[8] || DEFAULT_PORT
38
- };
39
- }
40
- urlPattern = /^((https?):(\/\/)?)?unix:(.*)$/.exec(urlAddress);
41
- if (urlPattern) {
42
- return {
43
- proto: urlPattern[2] || DEFAULT_PROTOCOL,
44
- path: urlPattern[4]
45
- };
46
- }
47
- return null;
48
- }
49
-
50
- /**
51
- * Retrieve all addresses defined in the config file.
52
- * Verdaccio is able to listen multiple ports
53
- * @param {String} argListen
54
- * @param {String} configListen
55
- * eg:
56
- * listen:
57
- - localhost:5555
58
- - localhost:5557
59
- @return {Array}
60
- */
61
- function getListListenAddresses(argListen, configListen) {
62
- // command line || config file || default
63
- let addresses;
64
- if (argListen) {
65
- addresses = [argListen];
66
- } else if (Array.isArray(configListen)) {
67
- addresses = configListen;
68
- process.emitWarning('multiple addresses will be deprecated in the next major, only use one');
69
- } else if (configListen) {
70
- addresses = [configListen];
71
- } else {
72
- addresses = [DEFAULT_PORT];
73
- }
74
- addresses = addresses.map(function (addr) {
75
- const parsedAddr = parseAddress(addr);
76
- if (!parsedAddr) {
77
- _core.warningUtils.emit(_core.warningUtils.Codes.VERWAR004, addr);
78
- }
79
- return parsedAddr;
80
- }).filter(Boolean);
81
- return addresses;
82
- }
83
- //# sourceMappingURL=cli-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-utils.js","names":["_core","require","DEFAULT_PORT","exports","DEFAULT_PROTOCOL","DEFAULT_DOMAIN","parseAddress","urlAddress","urlPattern","exec","proto","host","port","path","getListListenAddresses","argListen","configListen","addresses","Array","isArray","process","emitWarning","map","addr","parsedAddr","warningUtils","emit","Codes","VERWAR004","filter","Boolean"],"sources":["../src/cli-utils.ts"],"sourcesContent":["import { warningUtils } from '@verdaccio/core';\n\nexport const DEFAULT_PORT = '4873';\nexport const DEFAULT_PROTOCOL = 'http';\nexport const DEFAULT_DOMAIN = 'localhost';\n/**\n * Parse an internet address\n * Allow:\n - https:localhost:1234 - protocol + host + port\n - localhost:1234 - host + port\n - 1234 - port\n - http::1234 - protocol + port\n - https://localhost:443/ - full url + https\n - http://[::1]:443/ - ipv6\n - unix:/tmp/http.sock - unix sockets\n - https://unix:/tmp/http.sock - unix sockets (https)\n * @param {*} urlAddress the internet address definition\n * @return {Object|Null} literal object that represent the address parsed\n */\nexport function parseAddress(urlAddress: any): any {\n //\n // TODO: refactor it to something more reasonable?\n //\n // protocol : // ( host )|( ipv6 ): port /\n let urlPattern = /^((https?):(\\/\\/)?)?((([^\\/:]*)|\\[([^\\[\\]]+)\\]):)?(\\d+)\\/?$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n host: urlPattern[6] || urlPattern[7] || DEFAULT_DOMAIN,\n port: urlPattern[8] || DEFAULT_PORT,\n };\n }\n\n urlPattern = /^((https?):(\\/\\/)?)?unix:(.*)$/.exec(urlAddress);\n\n if (urlPattern) {\n return {\n proto: urlPattern[2] || DEFAULT_PROTOCOL,\n path: urlPattern[4],\n };\n }\n\n return null;\n}\n\n/**\n * Retrieve all addresses defined in the config file.\n * Verdaccio is able to listen multiple ports\n * @param {String} argListen\n * @param {String} configListen\n * eg:\n * listen:\n - localhost:5555\n - localhost:5557\n @return {Array}\n */\nexport function getListListenAddresses(argListen: string | void, configListen: any): any {\n // command line || config file || default\n let addresses;\n if (argListen) {\n addresses = [argListen];\n } else if (Array.isArray(configListen)) {\n addresses = configListen;\n process.emitWarning('multiple addresses will be deprecated in the next major, only use one');\n } else if (configListen) {\n addresses = [configListen];\n } else {\n addresses = [DEFAULT_PORT];\n }\n addresses = addresses\n .map(function (addr): string {\n const parsedAddr = parseAddress(addr);\n\n if (!parsedAddr) {\n warningUtils.emit(warningUtils.Codes.VERWAR004, addr);\n }\n\n return parsedAddr;\n })\n .filter(Boolean);\n\n return addresses;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,MAAM;AAC3B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,MAAM;AAC/B,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAYA,CAACC,UAAe,EAAO;EACjD;EACA;EACA;EACA;EACA,IAAIC,UAAU,GAAG,6DAA6D,CAACC,IAAI,CAACF,UAAU,CAAC;EAE/F,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCO,IAAI,EAAEH,UAAU,CAAC,CAAC,CAAC,IAAIA,UAAU,CAAC,CAAC,CAAC,IAAIH,cAAc;MACtDO,IAAI,EAAEJ,UAAU,CAAC,CAAC,CAAC,IAAIN;IACzB,CAAC;EACH;EAEAM,UAAU,GAAG,gCAAgC,CAACC,IAAI,CAACF,UAAU,CAAC;EAE9D,IAAIC,UAAU,EAAE;IACd,OAAO;MACLE,KAAK,EAAEF,UAAU,CAAC,CAAC,CAAC,IAAIJ,gBAAgB;MACxCS,IAAI,EAAEL,UAAU,CAAC,CAAC;IACpB,CAAC;EACH;EAEA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,sBAAsBA,CAACC,SAAwB,EAAEC,YAAiB,EAAO;EACvF;EACA,IAAIC,SAAS;EACb,IAAIF,SAAS,EAAE;IACbE,SAAS,GAAG,CAACF,SAAS,CAAC;EACzB,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACH,YAAY,CAAC,EAAE;IACtCC,SAAS,GAAGD,YAAY;IACxBI,OAAO,CAACC,WAAW,CAAC,uEAAuE,CAAC;EAC9F,CAAC,MAAM,IAAIL,YAAY,EAAE;IACvBC,SAAS,GAAG,CAACD,YAAY,CAAC;EAC5B,CAAC,MAAM;IACLC,SAAS,GAAG,CAACf,YAAY,CAAC;EAC5B;EACAe,SAAS,GAAGA,SAAS,CAClBK,GAAG,CAAC,UAAUC,IAAI,EAAU;IAC3B,MAAMC,UAAU,GAAGlB,YAAY,CAACiB,IAAI,CAAC;IAErC,IAAI,CAACC,UAAU,EAAE;MACfC,kBAAY,CAACC,IAAI,CAACD,kBAAY,CAACE,KAAK,CAACC,SAAS,EAAEL,IAAI,CAAC;IACvD;IAEA,OAAOC,UAAU;EACnB,CAAC,CAAC,CACDK,MAAM,CAACC,OAAO,CAAC;EAElB,OAAOb,SAAS;AAClB","ignoreList":[]}