@verdaccio/web 8.1.0-next-8.13 → 8.1.0-next-8.14

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/api/user.js CHANGED
@@ -50,7 +50,7 @@ function addUserAuthApi(auth, config) {
50
50
  const {
51
51
  name
52
52
  } = req.remote_user;
53
- if (_core.validatioUtils.validatePassword(password.new, config?.serverSettings?.passwordValidationRegex) === false) {
53
+ if (_core.validationUtils.validatePassword(password.new, config?.serverSettings?.passwordValidationRegex) === false) {
54
54
  return next(_core.errorUtils.getCode(_core.HTTP_STATUS.BAD_REQUEST, _core.APP_ERROR.PASSWORD_VALIDATION));
55
55
  }
56
56
  auth.changePassword(name, password.old, password.new, (err, isUpdated) => {
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_core","_middleware","e","__esModule","default","debug","buildDebug","addUserAuthApi","auth","config","route","Router","post","WebUrls","user_login","rateLimit","userRateLimit","req","res","next","username","password","body","authenticate","err","user","errorCode","message","HTTP_STATUS","UNAUTHORIZED","INTERNAL_ERROR","errorUtils","getCode","remote_user","jWTSignOptions","security","web","sign","set","HEADERS","CACHE_CONTROL","token","jwtEncrypt","name","flags","changePassword","put","reset_password","_","isNil","status","API_ERROR","MUST_BE_LOGGED","validatioUtils","validatePassword","new","serverSettings","passwordValidationRegex","BAD_REQUEST","APP_ERROR","PASSWORD_VALIDATION","old","isUpdated","ok","getInternalError","INTERNAL_SERVER_ERROR","_default","exports"],"sources":["../../src/api/user.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Request, Response, Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n API_ERROR,\n APP_ERROR,\n HEADERS,\n HTTP_STATUS,\n VerdaccioError,\n errorUtils,\n validatioUtils,\n} from '@verdaccio/core';\nimport { rateLimit } from '@verdaccio/middleware';\nimport { WebUrls } from '@verdaccio/middleware';\nimport { Config, JWTSignOptions, RemoteUser } from '@verdaccio/types';\n\nimport { $NextFunctionVer } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:user');\n\nfunction addUserAuthApi(auth: Auth, config: Config): Router {\n const route = Router(); /* eslint new-cap: 0 */\n route.post(\n WebUrls.user_login,\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n const { username, password } = req.body;\n debug('authenticate %o', username);\n auth.authenticate(\n username,\n password,\n async (err: VerdaccioError | null, user?: RemoteUser): Promise<void> => {\n if (err) {\n const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;\n debug('error authenticate %o', errorCode);\n next(errorUtils.getCode(errorCode, err.message));\n } else {\n req.remote_user = user as RemoteUser;\n const jWTSignOptions: JWTSignOptions = config.security.web.sign;\n res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');\n next({\n token: await auth.jwtEncrypt(user as RemoteUser, jWTSignOptions),\n username: req.remote_user.name,\n });\n }\n }\n );\n }\n );\n\n if (config?.flags?.changePassword === true) {\n route.put(\n WebUrls.reset_password,\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n if (_.isNil(req.remote_user.name)) {\n res.status(HTTP_STATUS.UNAUTHORIZED);\n return next({\n // FUTURE: update to a more meaningful message\n message: API_ERROR.MUST_BE_LOGGED,\n });\n }\n\n const { password } = req.body;\n const { name } = req.remote_user;\n\n if (\n validatioUtils.validatePassword(\n password.new,\n config?.serverSettings?.passwordValidationRegex\n ) === false\n ) {\n return next(errorUtils.getCode(HTTP_STATUS.BAD_REQUEST, APP_ERROR.PASSWORD_VALIDATION));\n }\n\n auth.changePassword(name as string, password.old, password.new, (err, isUpdated): void => {\n if (_.isNil(err) && isUpdated) {\n next({\n ok: true,\n });\n } else {\n return next(errorUtils.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR));\n }\n });\n }\n );\n }\n\n return route;\n}\n\nexport default addUserAuthApi;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"user.js","names":["_debug","_interopRequireDefault","require","_express","_lodash","_core","_middleware","e","__esModule","default","debug","buildDebug","addUserAuthApi","auth","config","route","Router","post","WebUrls","user_login","rateLimit","userRateLimit","req","res","next","username","password","body","authenticate","err","user","errorCode","message","HTTP_STATUS","UNAUTHORIZED","INTERNAL_ERROR","errorUtils","getCode","remote_user","jWTSignOptions","security","web","sign","set","HEADERS","CACHE_CONTROL","token","jwtEncrypt","name","flags","changePassword","put","reset_password","_","isNil","status","API_ERROR","MUST_BE_LOGGED","validationUtils","validatePassword","new","serverSettings","passwordValidationRegex","BAD_REQUEST","APP_ERROR","PASSWORD_VALIDATION","old","isUpdated","ok","getInternalError","INTERNAL_SERVER_ERROR","_default","exports"],"sources":["../../src/api/user.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport { Request, Response, Router } from 'express';\nimport _ from 'lodash';\n\nimport { Auth } from '@verdaccio/auth';\nimport {\n API_ERROR,\n APP_ERROR,\n HEADERS,\n HTTP_STATUS,\n VerdaccioError,\n errorUtils,\n validationUtils,\n} from '@verdaccio/core';\nimport { rateLimit } from '@verdaccio/middleware';\nimport { WebUrls } from '@verdaccio/middleware';\nimport { Config, JWTSignOptions, RemoteUser } from '@verdaccio/types';\n\nimport { $NextFunctionVer } from './package';\n\nconst debug = buildDebug('verdaccio:web:api:user');\n\nfunction addUserAuthApi(auth: Auth, config: Config): Router {\n const route = Router(); /* eslint new-cap: 0 */\n route.post(\n WebUrls.user_login,\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n const { username, password } = req.body;\n debug('authenticate %o', username);\n auth.authenticate(\n username,\n password,\n async (err: VerdaccioError | null, user?: RemoteUser): Promise<void> => {\n if (err) {\n const errorCode = err.message ? HTTP_STATUS.UNAUTHORIZED : HTTP_STATUS.INTERNAL_ERROR;\n debug('error authenticate %o', errorCode);\n next(errorUtils.getCode(errorCode, err.message));\n } else {\n req.remote_user = user as RemoteUser;\n const jWTSignOptions: JWTSignOptions = config.security.web.sign;\n res.set(HEADERS.CACHE_CONTROL, 'no-cache, no-store');\n next({\n token: await auth.jwtEncrypt(user as RemoteUser, jWTSignOptions),\n username: req.remote_user.name,\n });\n }\n }\n );\n }\n );\n\n if (config?.flags?.changePassword === true) {\n route.put(\n WebUrls.reset_password,\n rateLimit(config?.userRateLimit),\n function (req: Request, res: Response, next: $NextFunctionVer): void {\n if (_.isNil(req.remote_user.name)) {\n res.status(HTTP_STATUS.UNAUTHORIZED);\n return next({\n // FUTURE: update to a more meaningful message\n message: API_ERROR.MUST_BE_LOGGED,\n });\n }\n\n const { password } = req.body;\n const { name } = req.remote_user;\n\n if (\n validationUtils.validatePassword(\n password.new,\n config?.serverSettings?.passwordValidationRegex\n ) === false\n ) {\n return next(errorUtils.getCode(HTTP_STATUS.BAD_REQUEST, APP_ERROR.PASSWORD_VALIDATION));\n }\n\n auth.changePassword(name as string, password.old, password.new, (err, isUpdated): void => {\n if (_.isNil(err) && isUpdated) {\n next({\n ok: true,\n });\n } else {\n return next(errorUtils.getInternalError(API_ERROR.INTERNAL_SERVER_ERROR));\n }\n });\n }\n );\n }\n\n return route;\n}\n\nexport default addUserAuthApi;\n"],"mappings":"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","ignoreList":[]}
@@ -30,7 +30,7 @@ async function loadTheme(config) {
30
30
  - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.
31
31
  */
32
32
  return plugin.staticPath && plugin.manifest && plugin.manifestFiles;
33
- }, config?.serverSettings?.pluginPrefix ?? PLUGIN_UI_PREFIX, _core.PLUGIN_CATEGORY.THEME);
33
+ }, false, config?.serverSettings?.pluginPrefix ?? PLUGIN_UI_PREFIX, _core.PLUGIN_CATEGORY.THEME);
34
34
  if (plugin.length > 1) {
35
35
  _logger.logger.warn('multiple ui themes are not supported; only the first plugin is used');
36
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","names":["_express","_interopRequireDefault","require","_lodash","_core","_loaders","_logger","_middleware","_api","e","__esModule","default","PLUGIN_UI_PREFIX","exports","DEFAULT_PLUGIN_UI_THEME","loadTheme","config","_","isNil","theme","plugin","asyncLoadPlugin","logger","staticPath","manifest","manifestFiles","serverSettings","pluginPrefix","PLUGIN_CATEGORY","THEME","length","warn","head","_default","auth","storage","pluginOptions","web","info","name","pluginCategory","router","express","Router","use","webMiddleware","tokenMiddleware","webUIJWTmiddleware","webEndpointsApi"],"sources":["../src/middleware.ts"],"sourcesContent":["import express from 'express';\nimport _ from 'lodash';\n\nimport { PLUGIN_CATEGORY } from '@verdaccio/core';\nimport { asyncLoadPlugin } from '@verdaccio/loaders';\nimport { logger } from '@verdaccio/logger';\nimport { webMiddleware } from '@verdaccio/middleware';\n\nimport webEndpointsApi from './api';\n\nexport const PLUGIN_UI_PREFIX = 'verdaccio-theme';\nexport const DEFAULT_PLUGIN_UI_THEME = '@verdaccio/ui-theme';\n\nexport async function loadTheme(config: any) {\n if (_.isNil(config.theme) === false) {\n const plugin = await asyncLoadPlugin(\n config.theme,\n { config, logger },\n // TODO: add types { staticPath: string; manifest: unknown; manifestFiles: unknown }\n function (plugin: any) {\n /**\n *\n - `staticPath`: is the same data returned in Verdaccio 5.\n - `manifest`: A webpack manifest object.\n - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.\n */\n return plugin.staticPath && plugin.manifest && plugin.manifestFiles;\n },\n config?.serverSettings?.pluginPrefix ?? PLUGIN_UI_PREFIX,\n PLUGIN_CATEGORY.THEME\n );\n if (plugin.length > 1) {\n logger.warn('multiple ui themes are not supported; only the first plugin is used');\n }\n\n return _.head(plugin);\n }\n}\n\nexport default async (config, auth, storage, logger) => {\n let pluginOptions = await loadTheme(config);\n if (!pluginOptions) {\n pluginOptions = require(DEFAULT_PLUGIN_UI_THEME)(config.web);\n logger.info(\n { name: DEFAULT_PLUGIN_UI_THEME, pluginCategory: PLUGIN_CATEGORY.THEME },\n 'plugin @{name} successfully loaded (@{pluginCategory})'\n );\n }\n\n // eslint-disable-next-line new-cap\n const router = express.Router();\n // load application\n router.use(\n webMiddleware(\n config,\n {\n tokenMiddleware: auth.webUIJWTmiddleware(),\n webEndpointsApi: webEndpointsApi(auth, storage, config),\n },\n pluginOptions\n )\n );\n return router;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,iBAAiB;AAC1C,MAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,qBAAqB;AAErD,eAAeC,SAASA,CAACC,MAAW,EAAE;EAC3C,IAAIC,eAAC,CAACC,KAAK,CAACF,MAAM,CAACG,KAAK,CAAC,KAAK,KAAK,EAAE;IACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,wBAAe,EAClCL,MAAM,CAACG,KAAK,EACZ;MAAEH,MAAM;MAAEM,MAAM,EAANA;IAAO,CAAC;IAClB;IACA,UAAUF,MAAW,EAAE;MACrB;AACR;AACA;AACA;AACA;AACA;MACQ,OAAOA,MAAM,CAACG,UAAU,IAAIH,MAAM,CAACI,QAAQ,IAAIJ,MAAM,CAACK,aAAa;IACrE,CAAC,EACDT,MAAM,EAAEU,cAAc,EAAEC,YAAY,IAAIf,gBAAgB,EACxDgB,qBAAe,CAACC,KAClB,CAAC;IACD,IAAIT,MAAM,CAACU,MAAM,GAAG,CAAC,EAAE;MACrBR,cAAM,CAACS,IAAI,CAAC,qEAAqE,CAAC;IACpF;IAEA,OAAOd,eAAC,CAACe,IAAI,CAACZ,MAAM,CAAC;EACvB;AACF;AAAC,IAAAa,QAAA,GAEc,MAAAA,CAAOjB,MAAM,EAAEkB,IAAI,EAAEC,OAAO,EAAEb,MAAM,KAAK;EACtD,IAAIc,aAAa,GAAG,MAAMrB,SAAS,CAACC,MAAM,CAAC;EAC3C,IAAI,CAACoB,aAAa,EAAE;IAClBA,aAAa,GAAGlC,OAAO,CAACY,uBAAuB,CAAC,CAACE,MAAM,CAACqB,GAAG,CAAC;IAC5Df,MAAM,CAACgB,IAAI,CACT;MAAEC,IAAI,EAAEzB,uBAAuB;MAAE0B,cAAc,EAAEZ,qBAAe,CAACC;IAAM,CAAC,EACxE,wDACF,CAAC;EACH;;EAEA;EACA,MAAMY,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;EAC/B;EACAF,MAAM,CAACG,GAAG,CACR,IAAAC,yBAAa,EACX7B,MAAM,EACN;IACE8B,eAAe,EAAEZ,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAC1CC,eAAe,EAAE,IAAAA,YAAe,EAACd,IAAI,EAAEC,OAAO,EAAEnB,MAAM;EACxD,CAAC,EACDoB,aACF,CACF,CAAC;EACD,OAAOK,MAAM;AACf,CAAC;AAAA5B,OAAA,CAAAF,OAAA,GAAAsB,QAAA","ignoreList":[]}
1
+ {"version":3,"file":"middleware.js","names":["_express","_interopRequireDefault","require","_lodash","_core","_loaders","_logger","_middleware","_api","e","__esModule","default","PLUGIN_UI_PREFIX","exports","DEFAULT_PLUGIN_UI_THEME","loadTheme","config","_","isNil","theme","plugin","asyncLoadPlugin","logger","staticPath","manifest","manifestFiles","serverSettings","pluginPrefix","PLUGIN_CATEGORY","THEME","length","warn","head","_default","auth","storage","pluginOptions","web","info","name","pluginCategory","router","express","Router","use","webMiddleware","tokenMiddleware","webUIJWTmiddleware","webEndpointsApi"],"sources":["../src/middleware.ts"],"sourcesContent":["import express from 'express';\nimport _ from 'lodash';\n\nimport { PLUGIN_CATEGORY } from '@verdaccio/core';\nimport { asyncLoadPlugin } from '@verdaccio/loaders';\nimport { logger } from '@verdaccio/logger';\nimport { webMiddleware } from '@verdaccio/middleware';\n\nimport webEndpointsApi from './api';\n\nexport const PLUGIN_UI_PREFIX = 'verdaccio-theme';\nexport const DEFAULT_PLUGIN_UI_THEME = '@verdaccio/ui-theme';\n\nexport async function loadTheme(config: any) {\n if (_.isNil(config.theme) === false) {\n const plugin = await asyncLoadPlugin(\n config.theme,\n { config, logger },\n // TODO: add types { staticPath: string; manifest: unknown; manifestFiles: unknown }\n function (plugin: any) {\n /**\n *\n - `staticPath`: is the same data returned in Verdaccio 5.\n - `manifest`: A webpack manifest object.\n - `manifestFiles`: A object with one property `js` and the array (order matters) of the manifest id to be loaded in the template dynamically.\n */\n return plugin.staticPath && plugin.manifest && plugin.manifestFiles;\n },\n false,\n config?.serverSettings?.pluginPrefix ?? PLUGIN_UI_PREFIX,\n PLUGIN_CATEGORY.THEME\n );\n if (plugin.length > 1) {\n logger.warn('multiple ui themes are not supported; only the first plugin is used');\n }\n\n return _.head(plugin);\n }\n}\n\nexport default async (config, auth, storage, logger) => {\n let pluginOptions = await loadTheme(config);\n if (!pluginOptions) {\n pluginOptions = require(DEFAULT_PLUGIN_UI_THEME)(config.web);\n logger.info(\n { name: DEFAULT_PLUGIN_UI_THEME, pluginCategory: PLUGIN_CATEGORY.THEME },\n 'plugin @{name} successfully loaded (@{pluginCategory})'\n );\n }\n\n // eslint-disable-next-line new-cap\n const router = express.Router();\n // load application\n router.use(\n webMiddleware(\n config,\n {\n tokenMiddleware: auth.webUIJWTmiddleware(),\n webEndpointsApi: webEndpointsApi(auth, storage, config),\n },\n pluginOptions\n )\n );\n return router;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAEA,IAAAM,IAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAoC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,iBAAiB;AAC1C,MAAME,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAG,qBAAqB;AAErD,eAAeC,SAASA,CAACC,MAAW,EAAE;EAC3C,IAAIC,eAAC,CAACC,KAAK,CAACF,MAAM,CAACG,KAAK,CAAC,KAAK,KAAK,EAAE;IACnC,MAAMC,MAAM,GAAG,MAAM,IAAAC,wBAAe,EAClCL,MAAM,CAACG,KAAK,EACZ;MAAEH,MAAM;MAAEM,MAAM,EAANA;IAAO,CAAC;IAClB;IACA,UAAUF,MAAW,EAAE;MACrB;AACR;AACA;AACA;AACA;AACA;MACQ,OAAOA,MAAM,CAACG,UAAU,IAAIH,MAAM,CAACI,QAAQ,IAAIJ,MAAM,CAACK,aAAa;IACrE,CAAC,EACD,KAAK,EACLT,MAAM,EAAEU,cAAc,EAAEC,YAAY,IAAIf,gBAAgB,EACxDgB,qBAAe,CAACC,KAClB,CAAC;IACD,IAAIT,MAAM,CAACU,MAAM,GAAG,CAAC,EAAE;MACrBR,cAAM,CAACS,IAAI,CAAC,qEAAqE,CAAC;IACpF;IAEA,OAAOd,eAAC,CAACe,IAAI,CAACZ,MAAM,CAAC;EACvB;AACF;AAAC,IAAAa,QAAA,GAEc,MAAAA,CAAOjB,MAAM,EAAEkB,IAAI,EAAEC,OAAO,EAAEb,MAAM,KAAK;EACtD,IAAIc,aAAa,GAAG,MAAMrB,SAAS,CAACC,MAAM,CAAC;EAC3C,IAAI,CAACoB,aAAa,EAAE;IAClBA,aAAa,GAAGlC,OAAO,CAACY,uBAAuB,CAAC,CAACE,MAAM,CAACqB,GAAG,CAAC;IAC5Df,MAAM,CAACgB,IAAI,CACT;MAAEC,IAAI,EAAEzB,uBAAuB;MAAE0B,cAAc,EAAEZ,qBAAe,CAACC;IAAM,CAAC,EACxE,wDACF,CAAC;EACH;;EAEA;EACA,MAAMY,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;EAC/B;EACAF,MAAM,CAACG,GAAG,CACR,IAAAC,yBAAa,EACX7B,MAAM,EACN;IACE8B,eAAe,EAAEZ,IAAI,CAACa,kBAAkB,CAAC,CAAC;IAC1CC,eAAe,EAAE,IAAAA,YAAe,EAACd,IAAI,EAAEC,OAAO,EAAEnB,MAAM;EACxD,CAAC,EACDoB,aACF,CACF,CAAC;EACD,OAAOK,MAAM;AACf,CAAC;AAAA5B,OAAA,CAAAF,OAAA,GAAAsB,QAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/web",
3
- "version": "8.1.0-next-8.13",
3
+ "version": "8.1.0-next-8.14",
4
4
  "description": "Verdaccio Web Middleware",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -28,29 +28,29 @@
28
28
  },
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@verdaccio/auth": "8.0.0-next-8.13",
32
- "@verdaccio/config": "8.0.0-next-8.13",
33
- "@verdaccio/core": "8.0.0-next-8.13",
34
- "@verdaccio/loaders": "8.0.0-next-8.5",
35
- "@verdaccio/logger": "8.0.0-next-8.13",
36
- "@verdaccio/middleware": "8.0.0-next-8.13",
37
- "@verdaccio/store": "8.0.0-next-8.13",
38
- "@verdaccio/tarball": "13.0.0-next-8.13",
39
- "@verdaccio/url": "13.0.0-next-8.13",
40
- "@verdaccio/utils": "8.1.0-next-8.13",
31
+ "@verdaccio/auth": "8.0.0-next-8.14",
32
+ "@verdaccio/config": "8.0.0-next-8.14",
33
+ "@verdaccio/core": "8.0.0-next-8.14",
34
+ "@verdaccio/loaders": "8.0.0-next-8.6",
35
+ "@verdaccio/logger": "8.0.0-next-8.14",
36
+ "@verdaccio/middleware": "8.0.0-next-8.14",
37
+ "@verdaccio/store": "8.0.0-next-8.14",
38
+ "@verdaccio/tarball": "13.0.0-next-8.14",
39
+ "@verdaccio/url": "13.0.0-next-8.14",
40
+ "@verdaccio/utils": "8.1.0-next-8.14",
41
41
  "debug": "4.4.0",
42
42
  "express": "4.21.2",
43
43
  "lodash": "4.17.21"
44
44
  },
45
45
  "devDependencies": {
46
- "@verdaccio/api": "8.1.0-next-8.13",
46
+ "@verdaccio/api": "8.1.0-next-8.14",
47
47
  "@verdaccio/test-helper": "4.0.0-next-8.4",
48
- "@verdaccio/types": "13.0.0-next-8.4",
48
+ "@verdaccio/types": "13.0.0-next-8.5",
49
49
  "jsdom": "25.0.1",
50
50
  "node-html-parser": "4.1.5",
51
51
  "supertest": "7.0.0",
52
- "verdaccio-auth-memory": "13.0.0-next-8.13",
53
- "verdaccio-memory": "13.0.0-next-8.13"
52
+ "verdaccio-auth-memory": "13.0.0-next-8.14",
53
+ "verdaccio-memory": "13.0.0-next-8.14"
54
54
  },
55
55
  "funding": {
56
56
  "type": "opencollective",