@verdaccio/middleware 7.0.0-next.2 → 7.0.0-next.3

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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @verdaccio/middleware
2
2
 
3
+ ## 7.0.0-next.3
4
+
5
+ ### Major Changes
6
+
7
+ - e7ebccb61: update major dependencies, remove old nodejs support
8
+
9
+ ### Minor Changes
10
+
11
+ - daceb6d87: restore legacy support
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [daceb6d87]
16
+ - Updated dependencies [e7ebccb61]
17
+ - @verdaccio/config@7.0.0-next.3
18
+ - @verdaccio/core@7.0.0-next.3
19
+ - @verdaccio/url@12.0.0-next.3
20
+ - @verdaccio/utils@7.0.0-next.3
21
+
3
22
  ## 7.0.0-next.2
4
23
 
5
24
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { $NextFunctionVer, $RequestExtend, $ResponseExtend } from '../types';
2
2
  export declare const LOG_STATUS_MESSAGE = "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}'";
3
- export declare const LOG_VERDACCIO_ERROR: string;
4
- export declare const LOG_VERDACCIO_BYTES: string;
3
+ export declare const LOG_VERDACCIO_ERROR = "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}', error: @{!error}";
4
+ export declare const LOG_VERDACCIO_BYTES = "@{status}, user: @{user}(@{remoteIP}), req: '@{request.method} @{request.url}', bytes: @{bytes.in}/@{bytes.out}";
5
5
  export declare const log: (logger: any) => (req: $RequestExtend, res: $ResponseExtend, next: $NextFunctionVer) => void;
@@ -42,28 +42,29 @@ function resolveLogo(config, req) {
42
42
  }
43
43
  }
44
44
  function renderHTML(config, manifest, manifestFiles, req, res) {
45
- var _config$i18n$web, _config$i18n, _config$web7, _config$web8, _config$web$darkMode, _config$web9, _config$web$title, _config$web10, _config$web$scope, _config$web11, _config$web$pkgManage, _config$web12, _res$locals$app_versi, _validatePrimaryColor, _config$web$primary_c, _config$web13, _config$web14;
45
+ var _config$i18n$web, _config$i18n, _config$web$hideDepre, _config$web7, _config$web8, _config$web9, _config$web$darkMode, _config$web10, _config$web$title, _config$web11, _config$web$scope, _config$web12, _config$web$pkgManage, _config$web13, _res$locals$app_versi, _validatePrimaryColor, _config$web$primary_c, _config$web14, _config$web15;
46
46
  const {
47
47
  url_prefix
48
48
  } = config;
49
49
  const base = (0, _url2.getPublicUrl)(config === null || config === void 0 ? void 0 : config.url_prefix, req);
50
50
  const basename = new _url.URL(base).pathname;
51
51
  const language = (_config$i18n$web = config === null || config === void 0 ? void 0 : (_config$i18n = config.i18n) === null || _config$i18n === void 0 ? void 0 : _config$i18n.web) !== null && _config$i18n$web !== void 0 ? _config$i18n$web : DEFAULT_LANGUAGE;
52
+ const hideDeprecatedVersions = (_config$web$hideDepre = config === null || config === void 0 ? void 0 : (_config$web7 = config.web) === null || _config$web7 === void 0 ? void 0 : _config$web7.hideDeprecatedVersions) !== null && _config$web$hideDepre !== void 0 ? _config$web$hideDepre : false;
52
53
  // @ts-ignore
53
- const needHtmlCache = [undefined, null].includes(config === null || config === void 0 ? void 0 : (_config$web7 = config.web) === null || _config$web7 === void 0 ? void 0 : _config$web7.html_cache) ? true : config === null || config === void 0 ? void 0 : (_config$web8 = config.web) === null || _config$web8 === void 0 ? void 0 : _config$web8.html_cache;
54
- const darkMode = (_config$web$darkMode = config === null || config === void 0 ? void 0 : (_config$web9 = config.web) === null || _config$web9 === void 0 ? void 0 : _config$web9.darkMode) !== null && _config$web$darkMode !== void 0 ? _config$web$darkMode : false;
55
- const title = (_config$web$title = config === null || config === void 0 ? void 0 : (_config$web10 = config.web) === null || _config$web10 === void 0 ? void 0 : _config$web10.title) !== null && _config$web$title !== void 0 ? _config$web$title : _config.WEB_TITLE;
54
+ const needHtmlCache = [undefined, null].includes(config === null || config === void 0 ? void 0 : (_config$web8 = config.web) === null || _config$web8 === void 0 ? void 0 : _config$web8.html_cache) ? true : config === null || config === void 0 ? void 0 : (_config$web9 = config.web) === null || _config$web9 === void 0 ? void 0 : _config$web9.html_cache;
55
+ const darkMode = (_config$web$darkMode = config === null || config === void 0 ? void 0 : (_config$web10 = config.web) === null || _config$web10 === void 0 ? void 0 : _config$web10.darkMode) !== null && _config$web$darkMode !== void 0 ? _config$web$darkMode : false;
56
+ const title = (_config$web$title = config === null || config === void 0 ? void 0 : (_config$web11 = config.web) === null || _config$web11 === void 0 ? void 0 : _config$web11.title) !== null && _config$web$title !== void 0 ? _config$web$title : _config.WEB_TITLE;
56
57
  const login = (0, _webUtils.hasLogin)(config);
57
- const scope = (_config$web$scope = config === null || config === void 0 ? void 0 : (_config$web11 = config.web) === null || _config$web11 === void 0 ? void 0 : _config$web11.scope) !== null && _config$web$scope !== void 0 ? _config$web$scope : '';
58
+ const scope = (_config$web$scope = config === null || config === void 0 ? void 0 : (_config$web12 = config.web) === null || _config$web12 === void 0 ? void 0 : _config$web12.scope) !== null && _config$web$scope !== void 0 ? _config$web$scope : '';
58
59
  const logo = resolveLogo(config, req);
59
- const pkgManagers = (_config$web$pkgManage = config === null || config === void 0 ? void 0 : (_config$web12 = config.web) === null || _config$web12 === void 0 ? void 0 : _config$web12.pkgManagers) !== null && _config$web$pkgManage !== void 0 ? _config$web$pkgManage : ['yarn', 'pnpm', 'npm'];
60
+ const pkgManagers = (_config$web$pkgManage = config === null || config === void 0 ? void 0 : (_config$web13 = config.web) === null || _config$web13 === void 0 ? void 0 : _config$web13.pkgManagers) !== null && _config$web$pkgManage !== void 0 ? _config$web$pkgManage : ['yarn', 'pnpm', 'npm'];
60
61
  const version = (_res$locals$app_versi = res.locals.app_version) !== null && _res$locals$app_versi !== void 0 ? _res$locals$app_versi : '';
61
62
  const flags = {
62
63
  ...config.flags,
63
64
  // legacy from 5.x
64
65
  ...config.experiments
65
66
  };
66
- const primaryColor = (_validatePrimaryColor = (0, _webUtils.validatePrimaryColor)((_config$web$primary_c = config === null || config === void 0 ? void 0 : (_config$web13 = config.web) === null || _config$web13 === void 0 ? void 0 : _config$web13.primary_color) !== null && _config$web$primary_c !== void 0 ? _config$web$primary_c : config === null || config === void 0 ? void 0 : (_config$web14 = config.web) === null || _config$web14 === void 0 ? void 0 : _config$web14.primaryColor)) !== null && _validatePrimaryColor !== void 0 ? _validatePrimaryColor : '#4b5e40';
67
+ const primaryColor = (_validatePrimaryColor = (0, _webUtils.validatePrimaryColor)((_config$web$primary_c = config === null || config === void 0 ? void 0 : (_config$web14 = config.web) === null || _config$web14 === void 0 ? void 0 : _config$web14.primary_color) !== null && _config$web$primary_c !== void 0 ? _config$web$primary_c : config === null || config === void 0 ? void 0 : (_config$web15 = config.web) === null || _config$web15 === void 0 ? void 0 : _config$web15.primaryColor)) !== null && _validatePrimaryColor !== void 0 ? _validatePrimaryColor : '#4b5e40';
67
68
  const {
68
69
  scriptsBodyAfter,
69
70
  metaScripts,
@@ -98,7 +99,8 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
98
99
  pkgManagers,
99
100
  title,
100
101
  scope,
101
- language
102
+ language,
103
+ hideDeprecatedVersions
102
104
  };
103
105
  let webPage;
104
106
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"renderHTML.js","names":["_debug","_interopRequireDefault","require","_lruCache","_path","_url","_config","_core","_url2","_template","_webUtils","obj","__esModule","default","DEFAULT_LANGUAGE","cache","LRU","max","ttl","debug","buildDebug","defaultManifestFiles","js","ico","resolveLogo","config","req","_config$web","_config$web2","_config$web3","_config$web5","web","logo","isLocalFile","isURLhasValidProtocol","_config$web4","getPublicUrl","url_prefix","path","basename","_config$web6","renderHTML","manifest","manifestFiles","res","_config$i18n$web","_config$i18n","_config$web7","_config$web8","_config$web$darkMode","_config$web9","_config$web$title","_config$web10","_config$web$scope","_config$web11","_config$web$pkgManage","_config$web12","_res$locals$app_versi","_validatePrimaryColor","_config$web$primary_c","_config$web13","_config$web14","base","URL","pathname","language","i18n","needHtmlCache","undefined","includes","html_cache","darkMode","title","WEB_TITLE","login","hasLogin","scope","pkgManagers","version","locals","app_version","flags","experiments","primaryColor","validatePrimaryColor","primary_color","scriptsBodyAfter","metaScripts","scriptsbodyBefore","showInfo","showSettings","showThemeSwitch","showFooter","showSearch","showDownloadTarball","Object","assign","bodyBefore","options","webPage","get","renderTemplate","set","error","Error","stack","setHeader","HEADERS","TEXT_HTML","send"],"sources":["../../../../src/middlewares/web/utils/renderHTML.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport LRU from 'lru-cache';\nimport path from 'path';\nimport { URL } from 'url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport { HEADERS } from '@verdaccio/core';\nimport { ConfigYaml, TemplateUIOptions } from '@verdaccio/types';\nimport { isURLhasValidProtocol } from '@verdaccio/url';\nimport { getPublicUrl } from '@verdaccio/url';\n\nimport renderTemplate from './template';\nimport { hasLogin, validatePrimaryColor } from './web-utils';\n\nconst DEFAULT_LANGUAGE = 'es-US';\nconst cache = new LRU({ max: 500, ttl: 1000 * 60 * 60 });\n\nconst debug = buildDebug('verdaccio:web:render');\n\nconst defaultManifestFiles = {\n js: ['runtime.js', 'vendors.js', 'main.js'],\n ico: 'favicon.ico',\n};\n\nexport function resolveLogo(config: ConfigYaml, req) {\n if (typeof config?.web?.logo !== 'string') {\n return '';\n }\n const isLocalFile = config?.web?.logo && !isURLhasValidProtocol(config?.web?.logo);\n\n if (isLocalFile) {\n return `${getPublicUrl(config?.url_prefix, req)}-/static/${path.basename(config?.web?.logo)}`;\n } else if (isURLhasValidProtocol(config?.web?.logo)) {\n return config?.web?.logo;\n } else {\n return '';\n }\n}\n\nexport default function renderHTML(config: ConfigYaml, manifest, manifestFiles, req, res) {\n const { url_prefix } = config;\n const base = getPublicUrl(config?.url_prefix, req);\n const basename = new URL(base).pathname;\n const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;\n // @ts-ignore\n const needHtmlCache = [undefined, null].includes(config?.web?.html_cache)\n ? true\n : config?.web?.html_cache;\n const darkMode = config?.web?.darkMode ?? false;\n const title = config?.web?.title ?? WEB_TITLE;\n const login = hasLogin(config);\n const scope = config?.web?.scope ?? '';\n const logo = resolveLogo(config, req);\n const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];\n const version = res.locals.app_version ?? '';\n const flags = {\n ...config.flags,\n // legacy from 5.x\n ...config.experiments,\n };\n const primaryColor =\n validatePrimaryColor(config?.web?.primary_color ?? config?.web?.primaryColor) ?? '#4b5e40';\n const {\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n } = Object.assign(\n {},\n {\n scriptsBodyAfter: [],\n bodyBefore: [],\n metaScripts: [],\n },\n config?.web\n );\n const options: TemplateUIOptions = {\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logo,\n flags,\n login,\n pkgManagers,\n title,\n scope,\n language,\n };\n\n let webPage;\n\n try {\n webPage = cache.get('template');\n if (!webPage) {\n webPage = renderTemplate(\n {\n manifest: manifestFiles ?? defaultManifestFiles,\n options,\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n },\n manifest\n );\n\n if (needHtmlCache) {\n cache.set('template', webPage);\n debug('set template cache');\n }\n } else {\n debug('reuse template cache');\n }\n } catch (error: any) {\n throw new Error(`theme could not be load, stack ${error.stack}`);\n }\n res.setHeader('Content-Type', HEADERS.TEXT_HTML);\n res.send(webPage);\n debug('web rendered');\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"renderHTML.js","names":["_debug","_interopRequireDefault","require","_lruCache","_path","_url","_config","_core","_url2","_template","_webUtils","obj","__esModule","default","DEFAULT_LANGUAGE","cache","LRU","max","ttl","debug","buildDebug","defaultManifestFiles","js","ico","resolveLogo","config","req","_config$web","_config$web2","_config$web3","_config$web5","web","logo","isLocalFile","isURLhasValidProtocol","_config$web4","getPublicUrl","url_prefix","path","basename","_config$web6","renderHTML","manifest","manifestFiles","res","_config$i18n$web","_config$i18n","_config$web$hideDepre","_config$web7","_config$web8","_config$web9","_config$web$darkMode","_config$web10","_config$web$title","_config$web11","_config$web$scope","_config$web12","_config$web$pkgManage","_config$web13","_res$locals$app_versi","_validatePrimaryColor","_config$web$primary_c","_config$web14","_config$web15","base","URL","pathname","language","i18n","hideDeprecatedVersions","needHtmlCache","undefined","includes","html_cache","darkMode","title","WEB_TITLE","login","hasLogin","scope","pkgManagers","version","locals","app_version","flags","experiments","primaryColor","validatePrimaryColor","primary_color","scriptsBodyAfter","metaScripts","scriptsbodyBefore","showInfo","showSettings","showThemeSwitch","showFooter","showSearch","showDownloadTarball","Object","assign","bodyBefore","options","webPage","get","renderTemplate","set","error","Error","stack","setHeader","HEADERS","TEXT_HTML","send"],"sources":["../../../../src/middlewares/web/utils/renderHTML.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport LRU from 'lru-cache';\nimport path from 'path';\nimport { URL } from 'url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport { HEADERS } from '@verdaccio/core';\nimport { ConfigYaml, TemplateUIOptions } from '@verdaccio/types';\nimport { isURLhasValidProtocol } from '@verdaccio/url';\nimport { getPublicUrl } from '@verdaccio/url';\n\nimport renderTemplate from './template';\nimport { hasLogin, validatePrimaryColor } from './web-utils';\n\nconst DEFAULT_LANGUAGE = 'es-US';\nconst cache = new LRU({ max: 500, ttl: 1000 * 60 * 60 });\n\nconst debug = buildDebug('verdaccio:web:render');\n\nconst defaultManifestFiles = {\n js: ['runtime.js', 'vendors.js', 'main.js'],\n ico: 'favicon.ico',\n};\n\nexport function resolveLogo(config: ConfigYaml, req) {\n if (typeof config?.web?.logo !== 'string') {\n return '';\n }\n const isLocalFile = config?.web?.logo && !isURLhasValidProtocol(config?.web?.logo);\n\n if (isLocalFile) {\n return `${getPublicUrl(config?.url_prefix, req)}-/static/${path.basename(config?.web?.logo)}`;\n } else if (isURLhasValidProtocol(config?.web?.logo)) {\n return config?.web?.logo;\n } else {\n return '';\n }\n}\n\nexport default function renderHTML(config: ConfigYaml, manifest, manifestFiles, req, res) {\n const { url_prefix } = config;\n const base = getPublicUrl(config?.url_prefix, req);\n const basename = new URL(base).pathname;\n const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;\n const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;\n // @ts-ignore\n const needHtmlCache = [undefined, null].includes(config?.web?.html_cache)\n ? true\n : config?.web?.html_cache;\n const darkMode = config?.web?.darkMode ?? false;\n const title = config?.web?.title ?? WEB_TITLE;\n const login = hasLogin(config);\n const scope = config?.web?.scope ?? '';\n const logo = resolveLogo(config, req);\n const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];\n const version = res.locals.app_version ?? '';\n const flags = {\n ...config.flags,\n // legacy from 5.x\n ...config.experiments,\n };\n const primaryColor =\n validatePrimaryColor(config?.web?.primary_color ?? config?.web?.primaryColor) ?? '#4b5e40';\n const {\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n } = Object.assign(\n {},\n {\n scriptsBodyAfter: [],\n bodyBefore: [],\n metaScripts: [],\n },\n config?.web\n );\n const options: TemplateUIOptions = {\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logo,\n flags,\n login,\n pkgManagers,\n title,\n scope,\n language,\n hideDeprecatedVersions,\n };\n\n let webPage;\n\n try {\n webPage = cache.get('template');\n if (!webPage) {\n webPage = renderTemplate(\n {\n manifest: manifestFiles ?? defaultManifestFiles,\n options,\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n },\n manifest\n );\n\n if (needHtmlCache) {\n cache.set('template', webPage);\n debug('set template cache');\n }\n } else {\n debug('reuse template cache');\n }\n } catch (error: any) {\n throw new Error(`theme could not be load, stack ${error.stack}`);\n }\n res.setHeader('Content-Type', HEADERS.TEXT_HTML);\n res.send(webPage);\n debug('web rendered');\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/middleware",
3
- "version": "7.0.0-next.2",
3
+ "version": "7.0.0-next.3",
4
4
  "description": "express middleware utils",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -29,10 +29,10 @@
29
29
  "node": ">=12"
30
30
  },
31
31
  "dependencies": {
32
- "@verdaccio/core": "7.0.0-next.2",
33
- "@verdaccio/utils": "7.0.0-next.2",
34
- "@verdaccio/config": "7.0.0-next.2",
35
- "@verdaccio/url": "12.0.0-next.2",
32
+ "@verdaccio/core": "7.0.0-next.3",
33
+ "@verdaccio/utils": "7.0.0-next.3",
34
+ "@verdaccio/config": "7.0.0-next.3",
35
+ "@verdaccio/url": "12.0.0-next.3",
36
36
  "debug": "4.3.4",
37
37
  "lru-cache": "7.18.3",
38
38
  "express": "4.18.2",
@@ -45,7 +45,7 @@
45
45
  "url": "https://opencollective.com/verdaccio"
46
46
  },
47
47
  "devDependencies": {
48
- "@verdaccio/logger": "7.0.0-next.2",
48
+ "@verdaccio/logger": "7.0.0-next.3",
49
49
  "body-parser": "1.20.2",
50
50
  "supertest": "6.3.3"
51
51
  },
@@ -42,6 +42,7 @@ export default function renderHTML(config: ConfigYaml, manifest, manifestFiles,
42
42
  const base = getPublicUrl(config?.url_prefix, req);
43
43
  const basename = new URL(base).pathname;
44
44
  const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;
45
+ const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;
45
46
  // @ts-ignore
46
47
  const needHtmlCache = [undefined, null].includes(config?.web?.html_cache)
47
48
  ? true
@@ -99,6 +100,7 @@ export default function renderHTML(config: ConfigYaml, manifest, manifestFiles,
99
100
  title,
100
101
  scope,
101
102
  language,
103
+ hideDeprecatedVersions,
102
104
  };
103
105
 
104
106
  let webPage;