@verdaccio/middleware 8.0.5 → 8.1.0

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.
Files changed (119) hide show
  1. package/build/_virtual/_rolldown/runtime.js +23 -0
  2. package/build/index.js +62 -229
  3. package/build/index.mjs +23 -0
  4. package/build/middlewares/allow.js +42 -50
  5. package/build/middlewares/allow.js.map +1 -1
  6. package/build/middlewares/allow.mjs +44 -0
  7. package/build/middlewares/allow.mjs.map +1 -0
  8. package/build/middlewares/antiLoop.js +21 -40
  9. package/build/middlewares/antiLoop.js.map +1 -1
  10. package/build/middlewares/antiLoop.mjs +25 -0
  11. package/build/middlewares/antiLoop.mjs.map +1 -0
  12. package/build/middlewares/api_urls.js +66 -59
  13. package/build/middlewares/api_urls.js.map +1 -1
  14. package/build/middlewares/api_urls.mjs +59 -0
  15. package/build/middlewares/api_urls.mjs.map +1 -0
  16. package/build/middlewares/body-parser.js +24 -32
  17. package/build/middlewares/body-parser.js.map +1 -1
  18. package/build/middlewares/body-parser.mjs +28 -0
  19. package/build/middlewares/body-parser.mjs.map +1 -0
  20. package/build/middlewares/encode-pkg.js +20 -36
  21. package/build/middlewares/encode-pkg.js.map +1 -1
  22. package/build/middlewares/encode-pkg.mjs +22 -0
  23. package/build/middlewares/encode-pkg.mjs.map +1 -0
  24. package/build/middlewares/error.js +53 -71
  25. package/build/middlewares/error.js.map +1 -1
  26. package/build/middlewares/error.mjs +53 -0
  27. package/build/middlewares/error.mjs.map +1 -0
  28. package/build/middlewares/final.js +46 -57
  29. package/build/middlewares/final.js.map +1 -1
  30. package/build/middlewares/final.mjs +46 -0
  31. package/build/middlewares/final.mjs.map +1 -0
  32. package/build/middlewares/json.js +7 -11
  33. package/build/middlewares/json.js.map +1 -1
  34. package/build/middlewares/json.mjs +10 -0
  35. package/build/middlewares/json.mjs.map +1 -0
  36. package/build/middlewares/log.js +73 -95
  37. package/build/middlewares/log.js.map +1 -1
  38. package/build/middlewares/log.mjs +71 -0
  39. package/build/middlewares/log.mjs.map +1 -0
  40. package/build/middlewares/make-url-relative.js +26 -41
  41. package/build/middlewares/make-url-relative.js.map +1 -1
  42. package/build/middlewares/make-url-relative.mjs +28 -0
  43. package/build/middlewares/make-url-relative.mjs.map +1 -0
  44. package/build/middlewares/match.js +8 -13
  45. package/build/middlewares/match.js.map +1 -1
  46. package/build/middlewares/match.mjs +11 -0
  47. package/build/middlewares/match.mjs.map +1 -0
  48. package/build/middlewares/media.js +14 -19
  49. package/build/middlewares/media.js.map +1 -1
  50. package/build/middlewares/media.mjs +17 -0
  51. package/build/middlewares/media.mjs.map +1 -0
  52. package/build/middlewares/rate-limit.js +8 -10
  53. package/build/middlewares/rate-limit.js.map +1 -1
  54. package/build/middlewares/rate-limit.mjs +9 -0
  55. package/build/middlewares/rate-limit.mjs.map +1 -0
  56. package/build/middlewares/request-options.js +18 -27
  57. package/build/middlewares/request-options.js.map +1 -1
  58. package/build/middlewares/request-options.mjs +19 -0
  59. package/build/middlewares/request-options.mjs.map +1 -0
  60. package/build/middlewares/token-auth.js +90 -105
  61. package/build/middlewares/token-auth.js.map +1 -1
  62. package/build/middlewares/token-auth.mjs +100 -0
  63. package/build/middlewares/token-auth.mjs.map +1 -0
  64. package/build/middlewares/user-agent.js +10 -12
  65. package/build/middlewares/user-agent.js.map +1 -1
  66. package/build/middlewares/user-agent.mjs +13 -0
  67. package/build/middlewares/user-agent.mjs.map +1 -0
  68. package/build/middlewares/validation.js +10 -18
  69. package/build/middlewares/validation.js.map +1 -1
  70. package/build/middlewares/validation.mjs +14 -0
  71. package/build/middlewares/validation.mjs.map +1 -0
  72. package/build/middlewares/web/index.js +4 -35
  73. package/build/middlewares/web/index.mjs +4 -0
  74. package/build/middlewares/web/render-web.js +86 -115
  75. package/build/middlewares/web/render-web.js.map +1 -1
  76. package/build/middlewares/web/render-web.mjs +85 -0
  77. package/build/middlewares/web/render-web.mjs.map +1 -0
  78. package/build/middlewares/web/security.js +29 -41
  79. package/build/middlewares/web/security.js.map +1 -1
  80. package/build/middlewares/web/security.mjs +30 -0
  81. package/build/middlewares/web/security.mjs.map +1 -0
  82. package/build/middlewares/web/utils/manifest.js +17 -18
  83. package/build/middlewares/web/utils/manifest.js.map +1 -1
  84. package/build/middlewares/web/utils/manifest.mjs +21 -0
  85. package/build/middlewares/web/utils/manifest.mjs.map +1 -0
  86. package/build/middlewares/web/utils/renderHTML.js +46 -50
  87. package/build/middlewares/web/utils/renderHTML.js.map +1 -1
  88. package/build/middlewares/web/utils/renderHTML.mjs +48 -0
  89. package/build/middlewares/web/utils/renderHTML.mjs.map +1 -0
  90. package/build/middlewares/web/utils/template.js +19 -20
  91. package/build/middlewares/web/utils/template.js.map +1 -1
  92. package/build/middlewares/web/utils/template.mjs +33 -0
  93. package/build/middlewares/web/utils/template.mjs.map +1 -0
  94. package/build/middlewares/web/utils/ui-options.js +66 -82
  95. package/build/middlewares/web/utils/ui-options.js.map +1 -1
  96. package/build/middlewares/web/utils/ui-options.mjs +69 -0
  97. package/build/middlewares/web/utils/ui-options.mjs.map +1 -0
  98. package/build/middlewares/web/utils/web-utils.js +17 -18
  99. package/build/middlewares/web/utils/web-utils.js.map +1 -1
  100. package/build/middlewares/web/utils/web-utils.mjs +18 -0
  101. package/build/middlewares/web/utils/web-utils.mjs.map +1 -0
  102. package/build/middlewares/web/web-api.js +18 -27
  103. package/build/middlewares/web/web-api.js.map +1 -1
  104. package/build/middlewares/web/web-api.mjs +19 -0
  105. package/build/middlewares/web/web-api.mjs.map +1 -0
  106. package/build/middlewares/web/web-middleware.d.ts +1 -1
  107. package/build/middlewares/web/web-middleware.js +16 -23
  108. package/build/middlewares/web/web-middleware.js.map +1 -1
  109. package/build/middlewares/web/web-middleware.mjs +16 -0
  110. package/build/middlewares/web/web-middleware.mjs.map +1 -0
  111. package/build/middlewares/web/web-urls.js +28 -29
  112. package/build/middlewares/web/web-urls.js.map +1 -1
  113. package/build/middlewares/web/web-urls.mjs +32 -0
  114. package/build/middlewares/web/web-urls.mjs.map +1 -0
  115. package/package.json +47 -34
  116. package/build/index.js.map +0 -1
  117. package/build/middlewares/web/index.js.map +0 -1
  118. package/build/types.js +0 -6
  119. package/build/types.js.map +0 -1
@@ -0,0 +1,33 @@
1
+ import { getManifestValue } from "./manifest.mjs";
2
+ import buildDebug from "debug";
3
+ //#region src/middlewares/web/utils/template.ts
4
+ var debug = buildDebug("verdaccio:web:render:template");
5
+ function renderTemplate(template, manifest) {
6
+ debug("template %o", template);
7
+ debug("manifest %o", manifest);
8
+ return `
9
+ <!DOCTYPE html>
10
+ <html lang="en-us">
11
+ <head>
12
+ <meta charset="utf-8">
13
+ <base href="${template?.options.base}">
14
+ <title>${template?.options?.title ?? ""}</title>
15
+ <link rel="icon" href="${template?.options.base}-/static/favicon.ico">
16
+ <meta name="viewport" content="width=device-width, initial-scale=1">
17
+ <script src="${template?.options.base}-/static/ui-options.js"><\/script>
18
+ ${template.manifest.css?.length ? getManifestValue(template.manifest.css, manifest, template?.options.base).map((item) => `<link rel="stylesheet" href="${item}">`).join("\n ") : ""}
19
+ ${template?.metaScripts ? template.metaScripts.join("") : ""}
20
+ </head>
21
+ <body class="body">
22
+ ${template?.scriptsBodyBefore ? template.scriptsBodyBefore.join("") : ""}
23
+ <div id="root"></div>
24
+ ${getManifestValue(template.manifest.js, manifest, template?.options.base).map((item) => `<script type="module" src="${item}"><\/script>`).join(`\n `)}
25
+ ${template?.scriptsBodyAfter ? template.scriptsBodyAfter.join("") : ""}
26
+ </body>
27
+ </html>
28
+ `;
29
+ }
30
+ //#endregion
31
+ export { renderTemplate as default };
32
+
33
+ //# sourceMappingURL=template.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.mjs","names":[],"sources":["../../../../src/middlewares/web/utils/template.ts"],"sourcesContent":["import buildDebug from 'debug';\n\nimport type { TemplateUIOptions } from '@verdaccio/types';\n\nimport type { Manifest } from './manifest';\nimport { getManifestValue } from './manifest';\n\nconst debug = buildDebug('verdaccio:web:render:template');\n\nexport type Template = {\n manifest: Manifest;\n options: TemplateUIOptions;\n metaScripts?: string[];\n scriptsBodyAfter?: string[];\n scriptsBodyBefore?: string[];\n};\n\nexport interface AssetManifest {\n [key: string]: string;\n}\n\nexport default function renderTemplate(template: Template, manifest: AssetManifest) {\n debug('template %o', template);\n debug('manifest %o', manifest);\n\n return `\n <!DOCTYPE html>\n <html lang=\"en-us\">\n <head>\n <meta charset=\"utf-8\">\n <base href=\"${template?.options.base}\">\n <title>${template?.options?.title ?? ''}</title>\n <link rel=\"icon\" href=\"${template?.options.base}-/static/favicon.ico\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <script src=\"${template?.options.base}-/static/ui-options.js\"></script>\n ${\n template.manifest.css?.length\n ? getManifestValue(template.manifest.css, manifest, template?.options.base)\n .map((item) => `<link rel=\"stylesheet\" href=\"${item}\">`)\n .join('\\n ')\n : ''\n }\n ${template?.metaScripts ? template.metaScripts.join('') : ''}\n </head>\n <body class=\"body\">\n ${template?.scriptsBodyBefore ? template.scriptsBodyBefore.join('') : ''}\n <div id=\"root\"></div>\n ${getManifestValue(template.manifest.js, manifest, template?.options.base)\n .map((item) => `<script type=\"module\" src=\"${item}\"></script>`)\n .join(`\\n `)}\n ${template?.scriptsBodyAfter ? template.scriptsBodyAfter.join('') : ''}\n </body>\n </html>\n `;\n}\n"],"mappings":";;;AAOA,IAAM,QAAQ,WAAW,+BAA+B;AAcxD,SAAwB,eAAe,UAAoB,UAAyB;CAClF,MAAM,eAAe,QAAQ;CAC7B,MAAM,eAAe,QAAQ;CAE7B,OAAO;;;;;sBAKa,UAAU,QAAQ,KAAK;iBAC5B,UAAU,SAAS,SAAS,GAAG;iCACf,UAAU,QAAQ,KAAK;;uBAEjC,UAAU,QAAQ,KAAK;UAEpC,SAAS,SAAS,KAAK,SACnB,iBAAiB,SAAS,SAAS,KAAK,UAAU,UAAU,QAAQ,IAAI,EACrE,KAAK,SAAS,gCAAgC,KAAK,GAAG,EACtD,KAAK,YAAY,IACpB,GACL;UACC,UAAU,cAAc,SAAS,YAAY,KAAK,EAAE,IAAI,GAAG;;;UAG3D,UAAU,oBAAoB,SAAS,kBAAkB,KAAK,EAAE,IAAI,GAAG;;UAEvE,iBAAiB,SAAS,SAAS,IAAI,UAAU,UAAU,QAAQ,IAAI,EACtE,KAAK,SAAS,8BAA8B,KAAK,aAAY,EAC7D,KAAK,YAAY,EAAE;UACpB,UAAU,mBAAmB,SAAS,iBAAiB,KAAK,EAAE,IAAI,GAAG;;;;AAI/E"}
@@ -1,87 +1,71 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getUIOptions = getUIOptions;
7
- var _nodePath = _interopRequireDefault(require("node:path"));
8
- var _nodeUrl = require("node:url");
9
- var _config = require("@verdaccio/config");
10
- var _url = require("@verdaccio/url");
11
- var _webUtils = require("./web-utils");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const DEFAULT_LANGUAGE = 'en-US';
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
2
+ const require_web_utils = require("./web-utils.js");
3
+ let node_url = require("node:url");
4
+ let _verdaccio_config = require("@verdaccio/config");
5
+ let node_path = require("node:path");
6
+ node_path = require_runtime.__toESM(node_path);
7
+ let _verdaccio_url = require("@verdaccio/url");
8
+ //#region src/middlewares/web/utils/ui-options.ts
9
+ var DEFAULT_LANGUAGE = "en-US";
14
10
  function resolveLogo(logo, url_prefix, requestOptions) {
15
- if (typeof logo !== 'string') {
16
- return '';
17
- }
18
- const isLocalFile = logo && !(0, _url.isURLhasValidProtocol)(logo);
19
- if (isLocalFile) {
20
- return `${(0, _url.getPublicUrl)(url_prefix, requestOptions)}-/static/${_nodePath.default.basename(logo)}`;
21
- } else if ((0, _url.isURLhasValidProtocol)(logo)) {
22
- return logo;
23
- } else {
24
- return '';
25
- }
11
+ if (typeof logo !== "string") return "";
12
+ if (logo && !(0, _verdaccio_url.isURLhasValidProtocol)(logo)) return `${(0, _verdaccio_url.getPublicUrl)(url_prefix, requestOptions)}-/static/${node_path.default.basename(logo)}`;
13
+ else if ((0, _verdaccio_url.isURLhasValidProtocol)(logo)) return logo;
14
+ else return "";
26
15
  }
27
16
  function getUIOptions(config, requestOptions, res) {
28
- const {
29
- url_prefix
30
- } = config;
31
- const base = (0, _url.getPublicUrl)(config?.url_prefix, requestOptions);
32
- const basename = _nodeUrl.URL.canParse(base) ? new _nodeUrl.URL(base).pathname : base;
33
- const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;
34
- const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;
35
- const darkMode = config?.web?.darkMode ?? false;
36
- const title = config?.web?.title ?? _config.WEB_TITLE;
37
- const login = (0, _webUtils.hasLogin)(config);
38
- const scope = config?.web?.scope ?? '';
39
- const favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);
40
- const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);
41
- const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);
42
- const pkgManagers = config?.web?.pkgManagers ?? ['yarn', 'pnpm', 'npm'];
43
- const version = res.locals.app_version ?? '';
44
- const flags = {
45
- ...config.flags,
46
- // legacy from 5.x
47
- ...config.experiments
48
- };
49
- const primaryColor = (0, _webUtils.validatePrimaryColor)(config?.web?.primary_color ?? config?.web?.primaryColor) ?? '#4b5e40';
50
- const {
51
- showInfo,
52
- showSettings,
53
- showThemeSwitch,
54
- showFooter,
55
- showSearch,
56
- showDownloadTarball,
57
- showRaw,
58
- showUplinks
59
- } = Object.assign({}, config?.web);
60
- return {
61
- showInfo,
62
- showSettings,
63
- showThemeSwitch,
64
- showFooter,
65
- showSearch,
66
- showDownloadTarball,
67
- showRaw,
68
- showUplinks,
69
- darkMode,
70
- url_prefix,
71
- basename,
72
- base,
73
- primaryColor,
74
- version,
75
- logo,
76
- logoDark,
77
- favicon,
78
- flags,
79
- login,
80
- pkgManagers,
81
- title,
82
- scope,
83
- language,
84
- hideDeprecatedVersions
85
- };
17
+ const { url_prefix } = config;
18
+ const base = (0, _verdaccio_url.getPublicUrl)(config?.url_prefix, requestOptions);
19
+ const basename = node_url.URL.canParse(base) ? new node_url.URL(base).pathname : base;
20
+ const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;
21
+ const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;
22
+ const darkMode = config?.web?.darkMode ?? false;
23
+ const title = config?.web?.title ?? _verdaccio_config.WEB_TITLE;
24
+ const login = require_web_utils.hasLogin(config);
25
+ const scope = config?.web?.scope ?? "";
26
+ const favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);
27
+ const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);
28
+ const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);
29
+ const pkgManagers = config?.web?.pkgManagers ?? [
30
+ "yarn",
31
+ "pnpm",
32
+ "npm"
33
+ ];
34
+ const version = res.locals.app_version ?? "";
35
+ const flags = {
36
+ ...config.flags,
37
+ ...config.experiments
38
+ };
39
+ const primaryColor = require_web_utils.validatePrimaryColor(config?.web?.primary_color ?? config?.web?.primaryColor) ?? "#4b5e40";
40
+ const { showInfo, showSettings, showThemeSwitch, showFooter, showSearch, showDownloadTarball, showRaw, showUplinks } = Object.assign({}, config?.web);
41
+ return {
42
+ showInfo,
43
+ showSettings,
44
+ showThemeSwitch,
45
+ showFooter,
46
+ showSearch,
47
+ showDownloadTarball,
48
+ showRaw,
49
+ showUplinks,
50
+ darkMode,
51
+ url_prefix,
52
+ basename,
53
+ base,
54
+ primaryColor,
55
+ version,
56
+ logo,
57
+ logoDark,
58
+ favicon,
59
+ flags,
60
+ login,
61
+ pkgManagers,
62
+ title,
63
+ scope,
64
+ language,
65
+ hideDeprecatedVersions
66
+ };
86
67
  }
68
+ //#endregion
69
+ exports.getUIOptions = getUIOptions;
70
+
87
71
  //# sourceMappingURL=ui-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-options.js","names":["_nodePath","_interopRequireDefault","require","_nodeUrl","_config","_url","_webUtils","e","__esModule","default","DEFAULT_LANGUAGE","resolveLogo","logo","url_prefix","requestOptions","isLocalFile","isURLhasValidProtocol","getPublicUrl","path","basename","getUIOptions","config","res","base","URL","canParse","pathname","language","i18n","web","hideDeprecatedVersions","darkMode","title","WEB_TITLE","login","hasLogin","scope","favicon","logoDark","pkgManagers","version","locals","app_version","flags","experiments","primaryColor","validatePrimaryColor","primary_color","showInfo","showSettings","showThemeSwitch","showFooter","showSearch","showDownloadTarball","showRaw","showUplinks","Object","assign"],"sources":["../../../../src/middlewares/web/utils/ui-options.ts"],"sourcesContent":["import type { Response } from 'express';\nimport path from 'node:path';\nimport { URL } from 'node:url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport type { ConfigYaml, TemplateUIOptions } from '@verdaccio/types';\nimport { type RequestOptions, getPublicUrl, isURLhasValidProtocol } from '@verdaccio/url';\n\nimport { hasLogin, validatePrimaryColor } from './web-utils';\n\nconst DEFAULT_LANGUAGE = 'en-US';\n\nfunction resolveLogo(\n logo: string | undefined,\n url_prefix: string | undefined,\n requestOptions: RequestOptions\n) {\n if (typeof logo !== 'string') {\n return '';\n }\n const isLocalFile = logo && !isURLhasValidProtocol(logo);\n\n if (isLocalFile) {\n return `${getPublicUrl(url_prefix, requestOptions)}-/static/${path.basename(logo)}`;\n } else if (isURLhasValidProtocol(logo)) {\n return logo;\n } else {\n return '';\n }\n}\n\nexport function getUIOptions(\n config: ConfigYaml,\n requestOptions: RequestOptions,\n res: Response\n): TemplateUIOptions {\n const { url_prefix } = config;\n const base = getPublicUrl(config?.url_prefix, requestOptions);\n const basename = URL.canParse(base) ? new URL(base).pathname : base;\n const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;\n const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;\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 favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);\n const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);\n const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);\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 showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n } = Object.assign({}, config?.web);\n\n return {\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logo,\n logoDark,\n favicon,\n flags,\n login,\n pkgManagers,\n title,\n scope,\n language,\n hideDeprecatedVersions,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ui-options.js","names":[],"sources":["../../../../src/middlewares/web/utils/ui-options.ts"],"sourcesContent":["import type { Response } from 'express';\nimport path from 'node:path';\nimport { URL } from 'node:url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport type { ConfigYaml, TemplateUIOptions } from '@verdaccio/types';\nimport { type RequestOptions, getPublicUrl, isURLhasValidProtocol } from '@verdaccio/url';\n\nimport { hasLogin, validatePrimaryColor } from './web-utils';\n\nconst DEFAULT_LANGUAGE = 'en-US';\n\nfunction resolveLogo(\n logo: string | undefined,\n url_prefix: string | undefined,\n requestOptions: RequestOptions\n) {\n if (typeof logo !== 'string') {\n return '';\n }\n const isLocalFile = logo && !isURLhasValidProtocol(logo);\n\n if (isLocalFile) {\n return `${getPublicUrl(url_prefix, requestOptions)}-/static/${path.basename(logo)}`;\n } else if (isURLhasValidProtocol(logo)) {\n return logo;\n } else {\n return '';\n }\n}\n\nexport function getUIOptions(\n config: ConfigYaml,\n requestOptions: RequestOptions,\n res: Response\n): TemplateUIOptions {\n const { url_prefix } = config;\n const base = getPublicUrl(config?.url_prefix, requestOptions);\n const basename = URL.canParse(base) ? new URL(base).pathname : base;\n const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;\n const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;\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 favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);\n const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);\n const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);\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 showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n } = Object.assign({}, config?.web);\n\n return {\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logo,\n logoDark,\n favicon,\n flags,\n login,\n pkgManagers,\n title,\n scope,\n language,\n hideDeprecatedVersions,\n };\n}\n"],"mappings":";;;;;;;;AAUA,IAAM,mBAAmB;AAEzB,SAAS,YACP,MACA,YACA,gBACA;CACA,IAAI,OAAO,SAAS,UAClB,OAAO;CAIT,IAFoB,QAAQ,EAAA,GAAA,eAAA,uBAAuB,IAAI,GAGrD,OAAO,IAAA,GAAA,eAAA,cAAgB,YAAY,cAAc,EAAE,WAAW,UAAA,QAAK,SAAS,IAAI;MAC3E,KAAA,GAAA,eAAA,uBAA0B,IAAI,GACnC,OAAO;MAEP,OAAO;AAEX;AAEA,SAAgB,aACd,QACA,gBACA,KACmB;CACnB,MAAM,EAAE,eAAe;CACvB,MAAM,QAAA,GAAA,eAAA,cAAoB,QAAQ,YAAY,cAAc;CAC5D,MAAM,WAAW,SAAA,IAAI,SAAS,IAAI,IAAI,IAAI,SAAA,IAAI,IAAI,EAAE,WAAW;CAC/D,MAAM,WAAW,QAAQ,MAAM,OAAO;CACtC,MAAM,yBAAyB,QAAQ,KAAK,0BAA0B;CACtE,MAAM,WAAW,QAAQ,KAAK,YAAY;CAC1C,MAAM,QAAQ,QAAQ,KAAK,SAAS,kBAAA;CACpC,MAAM,QAAQ,kBAAA,SAAS,MAAM;CAC7B,MAAM,QAAQ,QAAQ,KAAK,SAAS;CACpC,MAAM,UAAU,YAAY,QAAQ,KAAK,SAAS,QAAQ,YAAY,cAAc;CACpF,MAAM,OAAO,YAAY,QAAQ,KAAK,MAAM,QAAQ,YAAY,cAAc;CAC9E,MAAM,WAAW,YAAY,QAAQ,KAAK,UAAU,QAAQ,YAAY,cAAc;CACtF,MAAM,cAAc,QAAQ,KAAK,eAAe;EAAC;EAAQ;EAAQ;CAAK;CACtE,MAAM,UAAU,IAAI,OAAO,eAAe;CAC1C,MAAM,QAAQ;EACZ,GAAG,OAAO;EAEV,GAAG,OAAO;CACZ;CACA,MAAM,eACJ,kBAAA,qBAAqB,QAAQ,KAAK,iBAAiB,QAAQ,KAAK,YAAY,KAAK;CACnF,MAAM,EACJ,UACA,cACA,iBACA,YACA,YACA,qBACA,SACA,gBACE,OAAO,OAAO,CAAC,GAAG,QAAQ,GAAG;CAEjC,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -0,0 +1,69 @@
1
+ import { hasLogin, validatePrimaryColor } from "./web-utils.mjs";
2
+ import { URL } from "node:url";
3
+ import { WEB_TITLE } from "@verdaccio/config";
4
+ import path from "node:path";
5
+ import { getPublicUrl, isURLhasValidProtocol } from "@verdaccio/url";
6
+ //#region src/middlewares/web/utils/ui-options.ts
7
+ var DEFAULT_LANGUAGE = "en-US";
8
+ function resolveLogo(logo, url_prefix, requestOptions) {
9
+ if (typeof logo !== "string") return "";
10
+ if (logo && !isURLhasValidProtocol(logo)) return `${getPublicUrl(url_prefix, requestOptions)}-/static/${path.basename(logo)}`;
11
+ else if (isURLhasValidProtocol(logo)) return logo;
12
+ else return "";
13
+ }
14
+ function getUIOptions(config, requestOptions, res) {
15
+ const { url_prefix } = config;
16
+ const base = getPublicUrl(config?.url_prefix, requestOptions);
17
+ const basename = URL.canParse(base) ? new URL(base).pathname : base;
18
+ const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;
19
+ const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;
20
+ const darkMode = config?.web?.darkMode ?? false;
21
+ const title = config?.web?.title ?? WEB_TITLE;
22
+ const login = hasLogin(config);
23
+ const scope = config?.web?.scope ?? "";
24
+ const favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);
25
+ const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);
26
+ const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);
27
+ const pkgManagers = config?.web?.pkgManagers ?? [
28
+ "yarn",
29
+ "pnpm",
30
+ "npm"
31
+ ];
32
+ const version = res.locals.app_version ?? "";
33
+ const flags = {
34
+ ...config.flags,
35
+ ...config.experiments
36
+ };
37
+ const primaryColor = validatePrimaryColor(config?.web?.primary_color ?? config?.web?.primaryColor) ?? "#4b5e40";
38
+ const { showInfo, showSettings, showThemeSwitch, showFooter, showSearch, showDownloadTarball, showRaw, showUplinks } = Object.assign({}, config?.web);
39
+ return {
40
+ showInfo,
41
+ showSettings,
42
+ showThemeSwitch,
43
+ showFooter,
44
+ showSearch,
45
+ showDownloadTarball,
46
+ showRaw,
47
+ showUplinks,
48
+ darkMode,
49
+ url_prefix,
50
+ basename,
51
+ base,
52
+ primaryColor,
53
+ version,
54
+ logo,
55
+ logoDark,
56
+ favicon,
57
+ flags,
58
+ login,
59
+ pkgManagers,
60
+ title,
61
+ scope,
62
+ language,
63
+ hideDeprecatedVersions
64
+ };
65
+ }
66
+ //#endregion
67
+ export { getUIOptions };
68
+
69
+ //# sourceMappingURL=ui-options.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-options.mjs","names":[],"sources":["../../../../src/middlewares/web/utils/ui-options.ts"],"sourcesContent":["import type { Response } from 'express';\nimport path from 'node:path';\nimport { URL } from 'node:url';\n\nimport { WEB_TITLE } from '@verdaccio/config';\nimport type { ConfigYaml, TemplateUIOptions } from '@verdaccio/types';\nimport { type RequestOptions, getPublicUrl, isURLhasValidProtocol } from '@verdaccio/url';\n\nimport { hasLogin, validatePrimaryColor } from './web-utils';\n\nconst DEFAULT_LANGUAGE = 'en-US';\n\nfunction resolveLogo(\n logo: string | undefined,\n url_prefix: string | undefined,\n requestOptions: RequestOptions\n) {\n if (typeof logo !== 'string') {\n return '';\n }\n const isLocalFile = logo && !isURLhasValidProtocol(logo);\n\n if (isLocalFile) {\n return `${getPublicUrl(url_prefix, requestOptions)}-/static/${path.basename(logo)}`;\n } else if (isURLhasValidProtocol(logo)) {\n return logo;\n } else {\n return '';\n }\n}\n\nexport function getUIOptions(\n config: ConfigYaml,\n requestOptions: RequestOptions,\n res: Response\n): TemplateUIOptions {\n const { url_prefix } = config;\n const base = getPublicUrl(config?.url_prefix, requestOptions);\n const basename = URL.canParse(base) ? new URL(base).pathname : base;\n const language = config?.i18n?.web ?? DEFAULT_LANGUAGE;\n const hideDeprecatedVersions = config?.web?.hideDeprecatedVersions ?? false;\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 favicon = resolveLogo(config?.web?.favicon, config?.url_prefix, requestOptions);\n const logo = resolveLogo(config?.web?.logo, config?.url_prefix, requestOptions);\n const logoDark = resolveLogo(config?.web?.logoDark, config?.url_prefix, requestOptions);\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 showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n } = Object.assign({}, config?.web);\n\n return {\n showInfo,\n showSettings,\n showThemeSwitch,\n showFooter,\n showSearch,\n showDownloadTarball,\n showRaw,\n showUplinks,\n darkMode,\n url_prefix,\n basename,\n base,\n primaryColor,\n version,\n logo,\n logoDark,\n favicon,\n flags,\n login,\n pkgManagers,\n title,\n scope,\n language,\n hideDeprecatedVersions,\n };\n}\n"],"mappings":";;;;;;AAUA,IAAM,mBAAmB;AAEzB,SAAS,YACP,MACA,YACA,gBACA;CACA,IAAI,OAAO,SAAS,UAClB,OAAO;CAIT,IAFoB,QAAQ,CAAC,sBAAsB,IAAI,GAGrD,OAAO,GAAG,aAAa,YAAY,cAAc,EAAE,WAAW,KAAK,SAAS,IAAI;MAC3E,IAAI,sBAAsB,IAAI,GACnC,OAAO;MAEP,OAAO;AAEX;AAEA,SAAgB,aACd,QACA,gBACA,KACmB;CACnB,MAAM,EAAE,eAAe;CACvB,MAAM,OAAO,aAAa,QAAQ,YAAY,cAAc;CAC5D,MAAM,WAAW,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,WAAW;CAC/D,MAAM,WAAW,QAAQ,MAAM,OAAO;CACtC,MAAM,yBAAyB,QAAQ,KAAK,0BAA0B;CACtE,MAAM,WAAW,QAAQ,KAAK,YAAY;CAC1C,MAAM,QAAQ,QAAQ,KAAK,SAAS;CACpC,MAAM,QAAQ,SAAS,MAAM;CAC7B,MAAM,QAAQ,QAAQ,KAAK,SAAS;CACpC,MAAM,UAAU,YAAY,QAAQ,KAAK,SAAS,QAAQ,YAAY,cAAc;CACpF,MAAM,OAAO,YAAY,QAAQ,KAAK,MAAM,QAAQ,YAAY,cAAc;CAC9E,MAAM,WAAW,YAAY,QAAQ,KAAK,UAAU,QAAQ,YAAY,cAAc;CACtF,MAAM,cAAc,QAAQ,KAAK,eAAe;EAAC;EAAQ;EAAQ;CAAK;CACtE,MAAM,UAAU,IAAI,OAAO,eAAe;CAC1C,MAAM,QAAQ;EACZ,GAAG,OAAO;EAEV,GAAG,OAAO;CACZ;CACA,MAAM,eACJ,qBAAqB,QAAQ,KAAK,iBAAiB,QAAQ,KAAK,YAAY,KAAK;CACnF,MAAM,EACJ,UACA,cACA,iBACA,YACA,YACA,qBACA,SACA,gBACE,OAAO,OAAO,CAAC,GAAG,QAAQ,GAAG;CAEjC,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
@@ -1,23 +1,22 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.hasLogin = hasLogin;
7
- exports.validatePrimaryColor = validatePrimaryColor;
8
- var _debug = _interopRequireDefault(require("debug"));
9
- var _lodash = _interopRequireDefault(require("lodash"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- const debug = (0, _debug.default)('verdaccio:web:middlwares');
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
2
+ let debug = require("debug");
3
+ debug = require_runtime.__toESM(debug);
4
+ let lodash = require("lodash");
5
+ lodash = require_runtime.__toESM(lodash);
6
+ //#region src/middlewares/web/utils/web-utils.ts
7
+ var debug$1 = (0, debug.default)("verdaccio:web:middlwares");
12
8
  function validatePrimaryColor(primaryColor) {
13
- const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(primaryColor);
14
- if (!isHex) {
15
- debug('invalid primary color %o', primaryColor);
16
- return;
17
- }
18
- return primaryColor;
9
+ if (!/^#([0-9A-F]{3}){1,2}$/i.test(primaryColor)) {
10
+ debug$1("invalid primary color %o", primaryColor);
11
+ return;
12
+ }
13
+ return primaryColor;
19
14
  }
20
15
  function hasLogin(config) {
21
- return _lodash.default.isNil(config?.web?.login) || config?.web?.login === true;
16
+ return lodash.default.isNil(config?.web?.login) || config?.web?.login === true;
22
17
  }
18
+ //#endregion
19
+ exports.hasLogin = hasLogin;
20
+ exports.validatePrimaryColor = validatePrimaryColor;
21
+
23
22
  //# sourceMappingURL=web-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-utils.js","names":["_debug","_interopRequireDefault","require","_lodash","e","__esModule","default","debug","buildDebug","validatePrimaryColor","primaryColor","isHex","test","hasLogin","config","_","isNil","web","login"],"sources":["../../../../src/middlewares/web/utils/web-utils.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\n\nconst debug = buildDebug('verdaccio:web:middlwares');\n\nexport function validatePrimaryColor(primaryColor) {\n const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(primaryColor);\n if (!isHex) {\n debug('invalid primary color %o', primaryColor);\n return;\n }\n\n return primaryColor;\n}\n\nexport function hasLogin(config: any) {\n return _.isNil(config?.web?.login) || config?.web?.login === true;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAuB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEvB,MAAMG,KAAK,GAAG,IAAAC,cAAU,EAAC,0BAA0B,CAAC;AAE7C,SAASC,oBAAoBA,CAACC,YAAY,EAAE;EACjD,MAAMC,KAAK,GAAG,wBAAwB,CAACC,IAAI,CAACF,YAAY,CAAC;EACzD,IAAI,CAACC,KAAK,EAAE;IACVJ,KAAK,CAAC,0BAA0B,EAAEG,YAAY,CAAC;IAC/C;EACF;EAEA,OAAOA,YAAY;AACrB;AAEO,SAASG,QAAQA,CAACC,MAAW,EAAE;EACpC,OAAOC,eAAC,CAACC,KAAK,CAACF,MAAM,EAAEG,GAAG,EAAEC,KAAK,CAAC,IAAIJ,MAAM,EAAEG,GAAG,EAAEC,KAAK,KAAK,IAAI;AACnE","ignoreList":[]}
1
+ {"version":3,"file":"web-utils.js","names":[],"sources":["../../../../src/middlewares/web/utils/web-utils.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\n\nconst debug = buildDebug('verdaccio:web:middlwares');\n\nexport function validatePrimaryColor(primaryColor) {\n const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(primaryColor);\n if (!isHex) {\n debug('invalid primary color %o', primaryColor);\n return;\n }\n\n return primaryColor;\n}\n\nexport function hasLogin(config: any) {\n return _.isNil(config?.web?.login) || config?.web?.login === true;\n}\n"],"mappings":";;;;;;AAGA,IAAM,WAAA,GAAA,MAAA,SAAmB,0BAA0B;AAEnD,SAAgB,qBAAqB,cAAc;CAEjD,IAAI,CADU,yBAAyB,KAAK,YACvC,GAAO;EACV,QAAM,4BAA4B,YAAY;EAC9C;CACF;CAEA,OAAO;AACT;AAEA,SAAgB,SAAS,QAAa;CACpC,OAAO,OAAA,QAAE,MAAM,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,UAAU;AAC/D"}
@@ -0,0 +1,18 @@
1
+ import buildDebug from "debug";
2
+ import _ from "lodash";
3
+ //#region src/middlewares/web/utils/web-utils.ts
4
+ var debug = buildDebug("verdaccio:web:middlwares");
5
+ function validatePrimaryColor(primaryColor) {
6
+ if (!/^#([0-9A-F]{3}){1,2}$/i.test(primaryColor)) {
7
+ debug("invalid primary color %o", primaryColor);
8
+ return;
9
+ }
10
+ return primaryColor;
11
+ }
12
+ function hasLogin(config) {
13
+ return _.isNil(config?.web?.login) || config?.web?.login === true;
14
+ }
15
+ //#endregion
16
+ export { hasLogin, validatePrimaryColor };
17
+
18
+ //# sourceMappingURL=web-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-utils.mjs","names":[],"sources":["../../../../src/middlewares/web/utils/web-utils.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport _ from 'lodash';\n\nconst debug = buildDebug('verdaccio:web:middlwares');\n\nexport function validatePrimaryColor(primaryColor) {\n const isHex = /^#([0-9A-F]{3}){1,2}$/i.test(primaryColor);\n if (!isHex) {\n debug('invalid primary color %o', primaryColor);\n return;\n }\n\n return primaryColor;\n}\n\nexport function hasLogin(config: any) {\n return _.isNil(config?.web?.login) || config?.web?.login === true;\n}\n"],"mappings":";;;AAGA,IAAM,QAAQ,WAAW,0BAA0B;AAEnD,SAAgB,qBAAqB,cAAc;CAEjD,IAAI,CADU,yBAAyB,KAAK,YACvC,GAAO;EACV,MAAM,4BAA4B,YAAY;EAC9C;CACF;CAEA,OAAO;AACT;AAEA,SAAgB,SAAS,QAAa;CACpC,OAAO,EAAE,MAAM,QAAQ,KAAK,KAAK,KAAK,QAAQ,KAAK,UAAU;AAC/D"}
@@ -1,30 +1,21 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.webAPIMiddleware = webAPIMiddleware;
7
- var _express = _interopRequireWildcard(require("express"));
8
- var _validation = require("../validation");
9
- var _security = require("./security");
10
- 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); }
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
2
+ const require_validation = require("../validation.js");
3
+ const require_security = require("./security.js");
4
+ let express = require("express");
5
+ express = require_runtime.__toESM(express);
6
+ //#region src/middlewares/web/web-api.ts
11
7
  function webAPIMiddleware(tokenMiddleware, webEndpointsApi) {
12
- const route = (0, _express.Router)();
13
- // validate all of these params as a package name
14
- // this might be too harsh, so ask if it causes trouble=
15
- route.param('package', _validation.validatePackage);
16
- route.param('filename', _validation.validateName);
17
- route.param('version', _validation.validateName);
18
- route.use(_express.default.urlencoded({
19
- extended: false
20
- }));
21
- route.use(_security.setSecurityWebHeaders);
22
- if (typeof tokenMiddleware === 'function') {
23
- route.use(tokenMiddleware);
24
- }
25
- if (typeof webEndpointsApi === 'function') {
26
- route.use(webEndpointsApi);
27
- }
28
- return route;
8
+ const route = (0, express.Router)();
9
+ route.param("package", require_validation.validatePackage);
10
+ route.param("filename", require_validation.validateName);
11
+ route.param("version", require_validation.validateName);
12
+ route.use(express.default.urlencoded({ extended: false }));
13
+ route.use(require_security.setSecurityWebHeaders);
14
+ if (typeof tokenMiddleware === "function") route.use(tokenMiddleware);
15
+ if (typeof webEndpointsApi === "function") route.use(webEndpointsApi);
16
+ return route;
29
17
  }
18
+ //#endregion
19
+ exports.webAPIMiddleware = webAPIMiddleware;
20
+
30
21
  //# sourceMappingURL=web-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-api.js","names":["_express","_interopRequireWildcard","require","_validation","_security","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","webAPIMiddleware","tokenMiddleware","webEndpointsApi","route","Router","param","validatePackage","validateName","use","express","urlencoded","extended","setSecurityWebHeaders"],"sources":["../../../src/middlewares/web/web-api.ts"],"sourcesContent":["import type { RequestHandler } from 'express';\nimport express, { Router } from 'express';\n\nimport { validateName, validatePackage } from '../validation';\nimport { setSecurityWebHeaders } from './security';\n\nexport function webAPIMiddleware(\n tokenMiddleware: RequestHandler,\n webEndpointsApi: RequestHandler\n): Router {\n const route = Router();\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble=\n route.param('package', validatePackage);\n route.param('filename', validateName);\n route.param('version', validateName);\n route.use(express.urlencoded({ extended: false }));\n route.use(setSecurityWebHeaders);\n\n if (typeof tokenMiddleware === 'function') {\n route.use(tokenMiddleware);\n }\n\n if (typeof webEndpointsApi === 'function') {\n route.use(webEndpointsApi);\n }\n\n return route;\n}\n"],"mappings":";;;;;;AACA,IAAAA,QAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAAmD,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE5C,SAASkB,gBAAgBA,CAC9BC,eAA+B,EAC/BC,eAA+B,EACvB;EACR,MAAMC,KAAK,GAAG,IAAAC,eAAM,EAAC,CAAC;EACtB;EACA;EACAD,KAAK,CAACE,KAAK,CAAC,SAAS,EAAEC,2BAAe,CAAC;EACvCH,KAAK,CAACE,KAAK,CAAC,UAAU,EAAEE,wBAAY,CAAC;EACrCJ,KAAK,CAACE,KAAK,CAAC,SAAS,EAAEE,wBAAY,CAAC;EACpCJ,KAAK,CAACK,GAAG,CAACC,gBAAO,CAACC,UAAU,CAAC;IAAEC,QAAQ,EAAE;EAAM,CAAC,CAAC,CAAC;EAClDR,KAAK,CAACK,GAAG,CAACI,+BAAqB,CAAC;EAEhC,IAAI,OAAOX,eAAe,KAAK,UAAU,EAAE;IACzCE,KAAK,CAACK,GAAG,CAACP,eAAe,CAAC;EAC5B;EAEA,IAAI,OAAOC,eAAe,KAAK,UAAU,EAAE;IACzCC,KAAK,CAACK,GAAG,CAACN,eAAe,CAAC;EAC5B;EAEA,OAAOC,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"file":"web-api.js","names":[],"sources":["../../../src/middlewares/web/web-api.ts"],"sourcesContent":["import type { RequestHandler } from 'express';\nimport express, { Router } from 'express';\n\nimport { validateName, validatePackage } from '../validation';\nimport { setSecurityWebHeaders } from './security';\n\nexport function webAPIMiddleware(\n tokenMiddleware: RequestHandler,\n webEndpointsApi: RequestHandler\n): Router {\n const route = Router();\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble=\n route.param('package', validatePackage);\n route.param('filename', validateName);\n route.param('version', validateName);\n route.use(express.urlencoded({ extended: false }));\n route.use(setSecurityWebHeaders);\n\n if (typeof tokenMiddleware === 'function') {\n route.use(tokenMiddleware);\n }\n\n if (typeof webEndpointsApi === 'function') {\n route.use(webEndpointsApi);\n }\n\n return route;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,iBACd,iBACA,iBACQ;CACR,MAAM,SAAA,GAAA,QAAA,QAAe;CAGrB,MAAM,MAAM,WAAW,mBAAA,eAAe;CACtC,MAAM,MAAM,YAAY,mBAAA,YAAY;CACpC,MAAM,MAAM,WAAW,mBAAA,YAAY;CACnC,MAAM,IAAI,QAAA,QAAQ,WAAW,EAAE,UAAU,MAAM,CAAC,CAAC;CACjD,MAAM,IAAI,iBAAA,qBAAqB;CAE/B,IAAI,OAAO,oBAAoB,YAC7B,MAAM,IAAI,eAAe;CAG3B,IAAI,OAAO,oBAAoB,YAC7B,MAAM,IAAI,eAAe;CAG3B,OAAO;AACT"}
@@ -0,0 +1,19 @@
1
+ import { validateName, validatePackage } from "../validation.mjs";
2
+ import { setSecurityWebHeaders } from "./security.mjs";
3
+ import express, { Router } from "express";
4
+ //#region src/middlewares/web/web-api.ts
5
+ function webAPIMiddleware(tokenMiddleware, webEndpointsApi) {
6
+ const route = Router();
7
+ route.param("package", validatePackage);
8
+ route.param("filename", validateName);
9
+ route.param("version", validateName);
10
+ route.use(express.urlencoded({ extended: false }));
11
+ route.use(setSecurityWebHeaders);
12
+ if (typeof tokenMiddleware === "function") route.use(tokenMiddleware);
13
+ if (typeof webEndpointsApi === "function") route.use(webEndpointsApi);
14
+ return route;
15
+ }
16
+ //#endregion
17
+ export { webAPIMiddleware };
18
+
19
+ //# sourceMappingURL=web-api.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-api.mjs","names":[],"sources":["../../../src/middlewares/web/web-api.ts"],"sourcesContent":["import type { RequestHandler } from 'express';\nimport express, { Router } from 'express';\n\nimport { validateName, validatePackage } from '../validation';\nimport { setSecurityWebHeaders } from './security';\n\nexport function webAPIMiddleware(\n tokenMiddleware: RequestHandler,\n webEndpointsApi: RequestHandler\n): Router {\n const route = Router();\n // validate all of these params as a package name\n // this might be too harsh, so ask if it causes trouble=\n route.param('package', validatePackage);\n route.param('filename', validateName);\n route.param('version', validateName);\n route.use(express.urlencoded({ extended: false }));\n route.use(setSecurityWebHeaders);\n\n if (typeof tokenMiddleware === 'function') {\n route.use(tokenMiddleware);\n }\n\n if (typeof webEndpointsApi === 'function') {\n route.use(webEndpointsApi);\n }\n\n return route;\n}\n"],"mappings":";;;;AAMA,SAAgB,iBACd,iBACA,iBACQ;CACR,MAAM,QAAQ,OAAO;CAGrB,MAAM,MAAM,WAAW,eAAe;CACtC,MAAM,MAAM,YAAY,YAAY;CACpC,MAAM,MAAM,WAAW,YAAY;CACnC,MAAM,IAAI,QAAQ,WAAW,EAAE,UAAU,MAAM,CAAC,CAAC;CACjD,MAAM,IAAI,qBAAqB;CAE/B,IAAI,OAAO,oBAAoB,YAC7B,MAAM,IAAI,eAAe;CAG3B,IAAI,OAAO,oBAAoB,YAC7B,MAAM,IAAI,eAAe;CAG3B,OAAO;AACT"}
@@ -1,2 +1,2 @@
1
- declare const _default: (config: any, middlewares: any, pluginOptions: any) => any;
2
1
  export default _default;
2
+ declare function _default(config: any, middlewares: any, pluginOptions: any): any;
@@ -1,25 +1,18 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _express = _interopRequireDefault(require("express"));
8
- var _renderWeb = require("./render-web");
9
- var _webApi = require("./web-api");
10
- var _webUrls = require("./web-urls");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- var _default = (config, middlewares, pluginOptions) => {
13
- const router = _express.default.Router();
14
- const {
15
- tokenMiddleware,
16
- webEndpointsApi
17
- } = middlewares;
18
- // render web
19
- router.use(_webUrls.WebUrlsNamespace.root, (0, _renderWeb.renderWebMiddleware)(config, tokenMiddleware, pluginOptions));
20
- // web endpoints: search, packages, readme, sidebar, etc
21
- router.use(_webUrls.WebUrlsNamespace.endpoints, (0, _webApi.webAPIMiddleware)(tokenMiddleware, webEndpointsApi));
22
- return router;
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.js");
2
+ const require_web_urls = require("./web-urls.js");
3
+ const require_render_web = require("./render-web.js");
4
+ const require_web_api = require("./web-api.js");
5
+ let express = require("express");
6
+ express = require_runtime.__toESM(express);
7
+ //#region src/middlewares/web/web-middleware.ts
8
+ var web_middleware_default = (config, middlewares, pluginOptions) => {
9
+ const router = express.default.Router();
10
+ const { tokenMiddleware, webEndpointsApi } = middlewares;
11
+ router.use(require_web_urls.WebUrlsNamespace.root, require_render_web.renderWebMiddleware(config, tokenMiddleware, pluginOptions));
12
+ router.use(require_web_urls.WebUrlsNamespace.endpoints, require_web_api.webAPIMiddleware(tokenMiddleware, webEndpointsApi));
13
+ return router;
23
14
  };
24
- exports.default = _default;
15
+ //#endregion
16
+ exports.default = web_middleware_default;
17
+
25
18
  //# sourceMappingURL=web-middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-middleware.js","names":["_express","_interopRequireDefault","require","_renderWeb","_webApi","_webUrls","e","__esModule","default","_default","config","middlewares","pluginOptions","router","express","Router","tokenMiddleware","webEndpointsApi","use","WebUrlsNamespace","root","renderWebMiddleware","endpoints","webAPIMiddleware","exports"],"sources":["../../../src/middlewares/web/web-middleware.ts"],"sourcesContent":["import express from 'express';\n\nimport { renderWebMiddleware } from './render-web';\nimport { webAPIMiddleware } from './web-api';\nimport { WebUrlsNamespace } from './web-urls';\n\nexport default (config, middlewares, pluginOptions): any => {\n const router = express.Router();\n const { tokenMiddleware, webEndpointsApi } = middlewares;\n // render web\n router.use(WebUrlsNamespace.root, renderWebMiddleware(config, tokenMiddleware, pluginOptions));\n // web endpoints: search, packages, readme, sidebar, etc\n router.use(WebUrlsNamespace.endpoints, webAPIMiddleware(tokenMiddleware, webEndpointsApi));\n return router;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA8C,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAE/BA,CAACC,MAAM,EAAEC,WAAW,EAAEC,aAAa,KAAU;EAC1D,MAAMC,MAAM,GAAGC,gBAAO,CAACC,MAAM,CAAC,CAAC;EAC/B,MAAM;IAAEC,eAAe;IAAEC;EAAgB,CAAC,GAAGN,WAAW;EACxD;EACAE,MAAM,CAACK,GAAG,CAACC,yBAAgB,CAACC,IAAI,EAAE,IAAAC,8BAAmB,EAACX,MAAM,EAAEM,eAAe,EAAEJ,aAAa,CAAC,CAAC;EAC9F;EACAC,MAAM,CAACK,GAAG,CAACC,yBAAgB,CAACG,SAAS,EAAE,IAAAC,wBAAgB,EAACP,eAAe,EAAEC,eAAe,CAAC,CAAC;EAC1F,OAAOJ,MAAM;AACf,CAAC;AAAAW,OAAA,CAAAhB,OAAA,GAAAC,QAAA","ignoreList":[]}
1
+ {"version":3,"file":"web-middleware.js","names":[],"sources":["../../../src/middlewares/web/web-middleware.ts"],"sourcesContent":["import express from 'express';\n\nimport { renderWebMiddleware } from './render-web';\nimport { webAPIMiddleware } from './web-api';\nimport { WebUrlsNamespace } from './web-urls';\n\nexport default (config, middlewares, pluginOptions): any => {\n const router = express.Router();\n const { tokenMiddleware, webEndpointsApi } = middlewares;\n // render web\n router.use(WebUrlsNamespace.root, renderWebMiddleware(config, tokenMiddleware, pluginOptions));\n // web endpoints: search, packages, readme, sidebar, etc\n router.use(WebUrlsNamespace.endpoints, webAPIMiddleware(tokenMiddleware, webEndpointsApi));\n return router;\n};\n"],"mappings":";;;;;;;AAMA,IAAA,0BAAgB,QAAQ,aAAa,kBAAuB;CAC1D,MAAM,SAAS,QAAA,QAAQ,OAAO;CAC9B,MAAM,EAAE,iBAAiB,oBAAoB;CAE7C,OAAO,IAAI,iBAAA,iBAAiB,MAAM,mBAAA,oBAAoB,QAAQ,iBAAiB,aAAa,CAAC;CAE7F,OAAO,IAAI,iBAAA,iBAAiB,WAAW,gBAAA,iBAAiB,iBAAiB,eAAe,CAAC;CACzF,OAAO;AACT"}
@@ -0,0 +1,16 @@
1
+ import { WebUrlsNamespace } from "./web-urls.mjs";
2
+ import { renderWebMiddleware } from "./render-web.mjs";
3
+ import { webAPIMiddleware } from "./web-api.mjs";
4
+ import express from "express";
5
+ //#region src/middlewares/web/web-middleware.ts
6
+ var web_middleware_default = (config, middlewares, pluginOptions) => {
7
+ const router = express.Router();
8
+ const { tokenMiddleware, webEndpointsApi } = middlewares;
9
+ router.use(WebUrlsNamespace.root, renderWebMiddleware(config, tokenMiddleware, pluginOptions));
10
+ router.use(WebUrlsNamespace.endpoints, webAPIMiddleware(tokenMiddleware, webEndpointsApi));
11
+ return router;
12
+ };
13
+ //#endregion
14
+ export { web_middleware_default as default };
15
+
16
+ //# sourceMappingURL=web-middleware.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-middleware.mjs","names":[],"sources":["../../../src/middlewares/web/web-middleware.ts"],"sourcesContent":["import express from 'express';\n\nimport { renderWebMiddleware } from './render-web';\nimport { webAPIMiddleware } from './web-api';\nimport { WebUrlsNamespace } from './web-urls';\n\nexport default (config, middlewares, pluginOptions): any => {\n const router = express.Router();\n const { tokenMiddleware, webEndpointsApi } = middlewares;\n // render web\n router.use(WebUrlsNamespace.root, renderWebMiddleware(config, tokenMiddleware, pluginOptions));\n // web endpoints: search, packages, readme, sidebar, etc\n router.use(WebUrlsNamespace.endpoints, webAPIMiddleware(tokenMiddleware, webEndpointsApi));\n return router;\n};\n"],"mappings":";;;;;AAMA,IAAA,0BAAgB,QAAQ,aAAa,kBAAuB;CAC1D,MAAM,SAAS,QAAQ,OAAO;CAC9B,MAAM,EAAE,iBAAiB,oBAAoB;CAE7C,OAAO,IAAI,iBAAiB,MAAM,oBAAoB,QAAQ,iBAAiB,aAAa,CAAC;CAE7F,OAAO,IAAI,iBAAiB,WAAW,iBAAiB,iBAAiB,eAAe,CAAC;CACzF,OAAO;AACT"}