@verdaccio/web 6.0.0-6-next.27 → 6.0.0-6-next.28

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,26 @@
1
1
  # @verdaccio/web
2
2
 
3
+ ## 6.0.0-6-next.28
4
+
5
+ ### Minor Changes
6
+
7
+ - d08fe29d: feat(web): add a config item to web,let the developer can select whet……her enable the html cache
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [d43894e8]
12
+ - Updated dependencies [d08fe29d]
13
+ - @verdaccio/config@6.0.0-6-next.14
14
+ - @verdaccio/auth@6.0.0-6-next.22
15
+ - @verdaccio/loaders@6.0.0-6-next.12
16
+ - @verdaccio/store@6.0.0-6-next.22
17
+ - @verdaccio/core@6.0.0-6-next.5
18
+ - @verdaccio/readme@11.0.0-6-next.4
19
+ - @verdaccio/tarball@11.0.0-6-next.12
20
+ - @verdaccio/url@11.0.0-6-next.9
21
+ - @verdaccio/logger@6.0.0-6-next.11
22
+ - @verdaccio/middleware@6.0.0-6-next.22
23
+
3
24
  ## 6.0.0-6-next.27
4
25
 
5
26
  ### Major Changes
@@ -37,7 +37,7 @@ const defaultManifestFiles = {
37
37
  };
38
38
 
39
39
  function renderHTML(config, manifest, manifestFiles, req, res) {
40
- var _config$i18n, _config$web, _config$web2, _config$web3, _config$web4, _config$web5, _config$web6;
40
+ var _config$i18n, _config$web, _config$web2, _config$web3, _config$web4, _config$web5, _config$web6, _config$web7;
41
41
 
42
42
  const {
43
43
  url_prefix
@@ -45,16 +45,17 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
45
45
  const base = (0, _url2.getPublicUrl)(config === null || config === void 0 ? void 0 : config.url_prefix, req);
46
46
  const basename = new _url.URL(base).pathname;
47
47
  const language = (config === null || config === void 0 ? void 0 : (_config$i18n = config.i18n) === null || _config$i18n === void 0 ? void 0 : _config$i18n.web) ?? DEFAULT_LANGUAGE;
48
- const darkMode = (config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.darkMode) ?? false;
49
- const title = (config === null || config === void 0 ? void 0 : (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.title) ?? _config.WEB_TITLE;
48
+ const needHtmlCache = [undefined, null].includes(config === null || config === void 0 ? void 0 : (_config$web = config.web) === null || _config$web === void 0 ? void 0 : _config$web.html_cache) ? true : config.web.html_cache;
49
+ const darkMode = (config === null || config === void 0 ? void 0 : (_config$web2 = config.web) === null || _config$web2 === void 0 ? void 0 : _config$web2.darkMode) ?? false;
50
+ const title = (config === null || config === void 0 ? void 0 : (_config$web3 = config.web) === null || _config$web3 === void 0 ? void 0 : _config$web3.title) ?? _config.WEB_TITLE;
50
51
  const login = (0, _webUtils.hasLogin)(config);
51
- const scope = (config === null || config === void 0 ? void 0 : (_config$web3 = config.web) === null || _config$web3 === void 0 ? void 0 : _config$web3.scope) ?? '';
52
- const logoURI = (config === null || config === void 0 ? void 0 : (_config$web4 = config.web) === null || _config$web4 === void 0 ? void 0 : _config$web4.logo) ?? '';
53
- const pkgManagers = (config === null || config === void 0 ? void 0 : (_config$web5 = config.web) === null || _config$web5 === void 0 ? void 0 : _config$web5.pkgManagers) ?? ['yarn', 'pnpm', 'npm'];
52
+ const scope = (config === null || config === void 0 ? void 0 : (_config$web4 = config.web) === null || _config$web4 === void 0 ? void 0 : _config$web4.scope) ?? '';
53
+ const logoURI = (config === null || config === void 0 ? void 0 : (_config$web5 = config.web) === null || _config$web5 === void 0 ? void 0 : _config$web5.logo) ?? '';
54
+ const pkgManagers = (config === null || config === void 0 ? void 0 : (_config$web6 = config.web) === null || _config$web6 === void 0 ? void 0 : _config$web6.pkgManagers) ?? ['yarn', 'pnpm', 'npm'];
54
55
  const version = pkgJSON.version;
55
56
  const flags = { ...config.flags
56
57
  };
57
- const primaryColor = (0, _webUtils.validatePrimaryColor)(config === null || config === void 0 ? void 0 : (_config$web6 = config.web) === null || _config$web6 === void 0 ? void 0 : _config$web6.primary_color) ?? '#4b5e40';
58
+ const primaryColor = (0, _webUtils.validatePrimaryColor)(config === null || config === void 0 ? void 0 : (_config$web7 = config.web) === null || _config$web7 === void 0 ? void 0 : _config$web7.primary_color) ?? '#4b5e40';
58
59
  const {
59
60
  scriptsBodyAfter,
60
61
  metaScripts,
@@ -95,8 +96,11 @@ function renderHTML(config, manifest, manifestFiles, req, res) {
95
96
  scriptsbodyBefore
96
97
  }, manifest);
97
98
  debug('template :: %o', webPage);
98
- cache.set('template', webPage);
99
- debug('set template cache');
99
+
100
+ if (needHtmlCache) {
101
+ cache.set('template', webPage);
102
+ debug('set template cache');
103
+ }
100
104
  } else {
101
105
  debug('reuse template cache');
102
106
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/renderHTML.ts"],"names":["pkgJSON","require","DEFAULT_LANGUAGE","cache","LRU","max","maxAge","debug","defaultManifestFiles","js","ico","renderHTML","config","manifest","manifestFiles","req","res","url_prefix","base","basename","URL","pathname","language","i18n","web","darkMode","title","WEB_TITLE","login","scope","logoURI","logo","pkgManagers","version","flags","primaryColor","primary_color","scriptsBodyAfter","metaScripts","scriptsbodyBefore","Object","assign","bodyBefore","options","webPage","get","set","error","Error","stack","setHeader","HEADERS","TEXT_HTML","send"],"mappings":"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","sourcesContent":["import buildDebug from 'debug';\nimport LRU from 'lru-cache';\nimport { URL } from 'url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport { HEADERS } from '@verdaccio/core';\nimport { TemplateUIOptions } from '@verdaccio/types';\nimport { getPublicUrl } from '@verdaccio/url';\n\nimport renderTemplate from './template';\nimport { hasLogin, validatePrimaryColor } from './utils/web-utils';\n\nconst pkgJSON = require('../package.json');\nconst DEFAULT_LANGUAGE = 'es-US';\nconst cache = new LRU({ max: 500, maxAge: 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 default function renderHTML(config, 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 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 logoURI = config?.web?.logo ?? '';\n const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];\n const version = pkgJSON.version;\n const flags = {\n ...config.flags,\n };\n const primaryColor = validatePrimaryColor(config?.web?.primary_color) ?? '#4b5e40';\n const { scriptsBodyAfter, metaScripts, scriptsbodyBefore } = Object.assign(\n {},\n {\n scriptsBodyAfter: [],\n bodyBefore: [],\n metaScripts: [],\n },\n config?.web\n );\n const options: TemplateUIOptions = {\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logoURI,\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\n if (!webPage) {\n debug('web options %o', options);\n debug('web manifestFiles %o', manifestFiles);\n webPage = renderTemplate(\n {\n manifest: manifestFiles ?? defaultManifestFiles,\n options,\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n },\n manifest\n );\n debug('template :: %o', webPage);\n cache.set('template', webPage);\n debug('set template cache');\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('render web');\n}\n"],"file":"renderHTML.js"}
1
+ {"version":3,"sources":["../src/renderHTML.ts"],"names":["pkgJSON","require","DEFAULT_LANGUAGE","cache","LRU","max","maxAge","debug","defaultManifestFiles","js","ico","renderHTML","config","manifest","manifestFiles","req","res","url_prefix","base","basename","URL","pathname","language","i18n","web","needHtmlCache","undefined","includes","html_cache","darkMode","title","WEB_TITLE","login","scope","logoURI","logo","pkgManagers","version","flags","primaryColor","primary_color","scriptsBodyAfter","metaScripts","scriptsbodyBefore","Object","assign","bodyBefore","options","webPage","get","set","error","Error","stack","setHeader","HEADERS","TEXT_HTML","send"],"mappings":"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","sourcesContent":["import buildDebug from 'debug';\nimport LRU from 'lru-cache';\nimport { URL } from 'url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport { HEADERS } from '@verdaccio/core';\nimport { TemplateUIOptions } from '@verdaccio/types';\nimport { getPublicUrl } from '@verdaccio/url';\n\nimport renderTemplate from './template';\nimport { hasLogin, validatePrimaryColor } from './utils/web-utils';\n\nconst pkgJSON = require('../package.json');\nconst DEFAULT_LANGUAGE = 'es-US';\nconst cache = new LRU({ max: 500, maxAge: 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 default function renderHTML(config, 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 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 logoURI = config?.web?.logo ?? '';\n const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];\n const version = pkgJSON.version;\n const flags = {\n ...config.flags,\n };\n const primaryColor = validatePrimaryColor(config?.web?.primary_color) ?? '#4b5e40';\n const { scriptsBodyAfter, metaScripts, scriptsbodyBefore } = Object.assign(\n {},\n {\n scriptsBodyAfter: [],\n bodyBefore: [],\n metaScripts: [],\n },\n config?.web\n );\n const options: TemplateUIOptions = {\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logoURI,\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\n if (!webPage) {\n debug('web options %o', options);\n debug('web manifestFiles %o', manifestFiles);\n webPage = renderTemplate(\n {\n manifest: manifestFiles ?? defaultManifestFiles,\n options,\n scriptsBodyAfter,\n metaScripts,\n scriptsbodyBefore,\n },\n manifest\n );\n debug('template :: %o', webPage);\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('render web');\n}\n"],"file":"renderHTML.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/web",
3
- "version": "6.0.0-6-next.27",
3
+ "version": "6.0.0-6-next.28",
4
4
  "description": "web ui middleware",
5
5
  "main": "./build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -25,14 +25,14 @@
25
25
  },
26
26
  "license": "MIT",
27
27
  "dependencies": {
28
- "@verdaccio/auth": "6.0.0-6-next.21",
28
+ "@verdaccio/auth": "6.0.0-6-next.22",
29
29
  "@verdaccio/core": "6.0.0-6-next.5",
30
- "@verdaccio/config": "6.0.0-6-next.13",
30
+ "@verdaccio/config": "6.0.0-6-next.14",
31
31
  "@verdaccio/loaders": "6.0.0-6-next.12",
32
32
  "@verdaccio/logger": "6.0.0-6-next.11",
33
- "@verdaccio/middleware": "6.0.0-6-next.21",
33
+ "@verdaccio/middleware": "6.0.0-6-next.22",
34
34
  "@verdaccio/readme": "11.0.0-6-next.4",
35
- "@verdaccio/store": "6.0.0-6-next.21",
35
+ "@verdaccio/store": "6.0.0-6-next.22",
36
36
  "@verdaccio/tarball": "11.0.0-6-next.12",
37
37
  "@verdaccio/url": "11.0.0-6-next.9",
38
38
  "@verdaccio/utils": "6.0.0-6-next.11",
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "16.11.21",
47
- "@verdaccio/types": "11.0.0-6-next.11",
47
+ "@verdaccio/types": "11.0.0-6-next.12",
48
48
  "@verdaccio/test-helper": "1.1.0-6-next.0",
49
- "@verdaccio/api": "6.0.0-6-next.24",
49
+ "@verdaccio/api": "6.0.0-6-next.25",
50
50
  "node-html-parser": "4.1.5",
51
51
  "supertest": "6.2.2",
52
52
  "nock": "13.2.2",
package/src/renderHTML.ts CHANGED
@@ -26,6 +26,9 @@ export default function renderHTML(config, manifest, manifestFiles, req, res) {
26
26
  const base = getPublicUrl(config?.url_prefix, req);
27
27
  const basename = new URL(base).pathname;
28
28
  const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;
29
+ const needHtmlCache = [undefined, null].includes(config?.web?.html_cache)
30
+ ? true
31
+ : config.web.html_cache;
29
32
  const darkMode = config?.web?.darkMode ?? false;
30
33
  const title = config?.web?.title ?? WEB_TITLE;
31
34
  const login = hasLogin(config);
@@ -81,8 +84,10 @@ export default function renderHTML(config, manifest, manifestFiles, req, res) {
81
84
  manifest
82
85
  );
83
86
  debug('template :: %o', webPage);
84
- cache.set('template', webPage);
85
- debug('set template cache');
87
+ if (needHtmlCache) {
88
+ cache.set('template', webPage);
89
+ debug('set template cache');
90
+ }
86
91
  } else {
87
92
  debug('reuse template cache');
88
93
  }