@verdaccio/tarball 11.0.0-6-next.7 → 11.0.0-6-next.11

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,85 @@
1
1
  # Change Log
2
2
 
3
+ ## 11.0.0-6-next.11
4
+
5
+ ### Major Changes
6
+
7
+ - a828271d: refactor: download manifest endpoint and integrate fastify
8
+
9
+ Much simpler API for fetching a package
10
+
11
+ ```
12
+ const manifest = await storage.getPackageNext({
13
+ name,
14
+ uplinksLook: true,
15
+ req,
16
+ version: queryVersion,
17
+ requestOptions,
18
+ });
19
+ ```
20
+
21
+ > not perfect, the `req` still is being passed to the proxy (this has to be refactored at proxy package) and then removed from here, in proxy we pass the request instance to the `request` library.
22
+
23
+ ### Details
24
+
25
+ - `async/await` sugar for getPackage()
26
+ - Improve and reuse code between current implementation and new fastify endpoint (add scaffolding for request manifest)
27
+ - Improve performance
28
+ - Add new tests
29
+
30
+ ### Breaking changes
31
+
32
+ All storage plugins will stop to work since the storage uses `getPackageNext` method which is Promise based, I won't replace this now because will force me to update all plugins, I'll follow up in another PR. Currently will throw http 500
33
+
34
+ ### Minor Changes
35
+
36
+ - 24b9be02: refactor: improve docker image build with strict dependencies and prod build
37
+
38
+ ### Patch Changes
39
+
40
+ - Updated dependencies [a828271d]
41
+ - Updated dependencies [24b9be02]
42
+ - Updated dependencies [b13a3fef]
43
+ - @verdaccio/utils@6.0.0-6-next.10
44
+ - @verdaccio/core@6.0.0-6-next.4
45
+ - @verdaccio/url@11.0.0-6-next.8
46
+
47
+ ## 11.0.0-6-next.10
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [f86c31ed]
52
+ - @verdaccio/utils@6.0.0-6-next.9
53
+
54
+ ## 11.0.0-6-next.9
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [6c1eb021]
59
+ - @verdaccio/core@6.0.0-6-next.3
60
+ - @verdaccio/url@11.0.0-6-next.7
61
+ - @verdaccio/utils@6.0.0-6-next.8
62
+
63
+ ## 11.0.0-6-next.8
64
+
65
+ ### Major Changes
66
+
67
+ - 794af76c: Remove Node 12 support
68
+
69
+ - We need move to the new `undici` and does not support Node.js 12
70
+
71
+ ### Minor Changes
72
+
73
+ - 154b2ecd: refactor: remove @verdaccio/commons-api in favor @verdaccio/core and remove duplications
74
+
75
+ ### Patch Changes
76
+
77
+ - Updated dependencies [794af76c]
78
+ - Updated dependencies [154b2ecd]
79
+ - @verdaccio/core@6.0.0-6-next.2
80
+ - @verdaccio/url@11.0.0-6-next.6
81
+ - @verdaccio/utils@6.0.0-6-next.7
82
+
3
83
  ## 11.0.0-6-next.7
4
84
 
5
85
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { Package } from '@verdaccio/types';
2
- import { Request } from 'express';
2
+ import { RequestOptions } from '@verdaccio/url';
3
3
  /**
4
4
  * Iterate a packages's versions and filter each original tarball url.
5
5
  * @param {*} pkg
@@ -7,4 +7,4 @@ import { Request } from 'express';
7
7
  * @param {*} config
8
8
  * @return {String} a filtered package
9
9
  */
10
- export declare function convertDistRemoteToLocalTarballUrls(pkg: Package, req: Request, urlPrefix: string | void): Package;
10
+ export declare function convertDistRemoteToLocalTarballUrls(pkg: Package, request: RequestOptions, urlPrefix: string | void): Package;
@@ -18,13 +18,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
18
18
  * @param {*} config
19
19
  * @return {String} a filtered package
20
20
  */
21
- function convertDistRemoteToLocalTarballUrls(pkg, req, urlPrefix) {
21
+ function convertDistRemoteToLocalTarballUrls(pkg, request, urlPrefix) {
22
22
  for (const ver in pkg.versions) {
23
23
  if (Object.prototype.hasOwnProperty.call(pkg.versions, ver)) {
24
24
  const distName = pkg.versions[ver].dist;
25
25
 
26
26
  if (_lodash.default.isNull(distName) === false && _lodash.default.isNull(distName.tarball) === false) {
27
- distName.tarball = (0, _getLocalRegistryTarballUri.getLocalRegistryTarballUri)(distName.tarball, pkg.name, req, urlPrefix);
27
+ distName.tarball = (0, _getLocalRegistryTarballUri.getLocalRegistryTarballUri)(distName.tarball, pkg.name, request, urlPrefix);
28
28
  }
29
29
  }
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/convertDistRemoteToLocalTarballUrls.ts"],"names":["convertDistRemoteToLocalTarballUrls","pkg","req","urlPrefix","ver","versions","Object","prototype","hasOwnProperty","call","distName","dist","_","isNull","tarball","name"],"mappings":";;;;;;;AAEA;;AAEA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mCAAT,CACLC,GADK,EAELC,GAFK,EAGLC,SAHK,EAII;AACT,OAAK,MAAMC,GAAX,IAAkBH,GAAG,CAACI,QAAtB,EAAgC;AAC9B,QAAIC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,GAAG,CAACI,QAAzC,EAAmDD,GAAnD,CAAJ,EAA6D;AAC3D,YAAMM,QAAQ,GAAGT,GAAG,CAACI,QAAJ,CAAaD,GAAb,EAAkBO,IAAnC;;AAEA,UAAIC,gBAAEC,MAAF,CAASH,QAAT,MAAuB,KAAvB,IAAgCE,gBAAEC,MAAF,CAASH,QAAQ,CAACI,OAAlB,MAA+B,KAAnE,EAA0E;AACxEJ,QAAAA,QAAQ,CAACI,OAAT,GAAmB,4DAA2BJ,QAAQ,CAACI,OAApC,EAA6Cb,GAAG,CAACc,IAAjD,EAAuDb,GAAvD,EAA4DC,SAA5D,CAAnB;AACD;AACF;AACF;;AACD,SAAOF,GAAP;AACD","sourcesContent":["import { Package } from '@verdaccio/types';\nimport { Request } from 'express';\nimport _ from 'lodash';\n\nimport { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';\n\n/**\n * Iterate a packages's versions and filter each original tarball url.\n * @param {*} pkg\n * @param {*} req\n * @param {*} config\n * @return {String} a filtered package\n */\nexport function convertDistRemoteToLocalTarballUrls(\n pkg: Package,\n req: Request,\n urlPrefix: string | void\n): Package {\n for (const ver in pkg.versions) {\n if (Object.prototype.hasOwnProperty.call(pkg.versions, ver)) {\n const distName = pkg.versions[ver].dist;\n\n if (_.isNull(distName) === false && _.isNull(distName.tarball) === false) {\n distName.tarball = getLocalRegistryTarballUri(distName.tarball, pkg.name, req, urlPrefix);\n }\n }\n }\n return pkg;\n}\n"],"file":"convertDistRemoteToLocalTarballUrls.js"}
1
+ {"version":3,"sources":["../src/convertDistRemoteToLocalTarballUrls.ts"],"names":["convertDistRemoteToLocalTarballUrls","pkg","request","urlPrefix","ver","versions","Object","prototype","hasOwnProperty","call","distName","dist","_","isNull","tarball","name"],"mappings":";;;;;;;AAAA;;AAKA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mCAAT,CACLC,GADK,EAELC,OAFK,EAGLC,SAHK,EAII;AACT,OAAK,MAAMC,GAAX,IAAkBH,GAAG,CAACI,QAAtB,EAAgC;AAC9B,QAAIC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCR,GAAG,CAACI,QAAzC,EAAmDD,GAAnD,CAAJ,EAA6D;AAC3D,YAAMM,QAAQ,GAAGT,GAAG,CAACI,QAAJ,CAAaD,GAAb,EAAkBO,IAAnC;;AAEA,UAAIC,gBAAEC,MAAF,CAASH,QAAT,MAAuB,KAAvB,IAAgCE,gBAAEC,MAAF,CAASH,QAAQ,CAACI,OAAlB,MAA+B,KAAnE,EAA0E;AACxEJ,QAAAA,QAAQ,CAACI,OAAT,GAAmB,4DACjBJ,QAAQ,CAACI,OADQ,EAEjBb,GAAG,CAACc,IAFa,EAGjBb,OAHiB,EAIjBC,SAJiB,CAAnB;AAMD;AACF;AACF;;AACD,SAAOF,GAAP;AACD","sourcesContent":["import _ from 'lodash';\n\nimport { Package } from '@verdaccio/types';\nimport { RequestOptions } from '@verdaccio/url';\n\nimport { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';\n\n/**\n * Iterate a packages's versions and filter each original tarball url.\n * @param {*} pkg\n * @param {*} req\n * @param {*} config\n * @return {String} a filtered package\n */\nexport function convertDistRemoteToLocalTarballUrls(\n pkg: Package,\n request: RequestOptions,\n urlPrefix: string | void\n): Package {\n for (const ver in pkg.versions) {\n if (Object.prototype.hasOwnProperty.call(pkg.versions, ver)) {\n const distName = pkg.versions[ver].dist;\n\n if (_.isNull(distName) === false && _.isNull(distName.tarball) === false) {\n distName.tarball = getLocalRegistryTarballUri(\n distName.tarball,\n pkg.name,\n request,\n urlPrefix\n );\n }\n }\n }\n return pkg;\n}\n"],"file":"convertDistRemoteToLocalTarballUrls.js"}
@@ -1,7 +1,8 @@
1
- import { Request } from 'express';
1
+ import { RequestOptions } from '@verdaccio/url';
2
+ export declare function extractTarballFromUrl(url: string): string;
2
3
  /**
3
4
  * Filter a tarball url.
4
5
  * @param {*} uri
5
6
  * @return {String} a parsed url
6
7
  */
7
- export declare function getLocalRegistryTarballUri(uri: string, pkgName: string, req: Request, urlPrefix: string | void): string;
8
+ export declare function getLocalRegistryTarballUri(uri: string, pkgName: string, requestOptions: RequestOptions, urlPrefix: string | void): string;
@@ -3,12 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.extractTarballFromUrl = extractTarballFromUrl;
6
7
  exports.getLocalRegistryTarballUri = getLocalRegistryTarballUri;
7
8
 
8
- var _url = _interopRequireDefault(require("url"));
9
-
10
9
  var _debug = _interopRequireDefault(require("debug"));
11
10
 
11
+ var _url = _interopRequireDefault(require("url"));
12
+
12
13
  var _url2 = require("@verdaccio/url");
13
14
 
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -26,8 +27,10 @@ function extractTarballFromUrl(url) {
26
27
  */
27
28
 
28
29
 
29
- function getLocalRegistryTarballUri(uri, pkgName, req, urlPrefix) {
30
- const currentHost = req.headers.host;
30
+ function getLocalRegistryTarballUri(uri, pkgName, requestOptions, urlPrefix) {
31
+ var _requestOptions$heade;
32
+
33
+ const currentHost = requestOptions === null || requestOptions === void 0 ? void 0 : (_requestOptions$heade = requestOptions.headers) === null || _requestOptions$heade === void 0 ? void 0 : _requestOptions$heade.host;
31
34
 
32
35
  if (!currentHost) {
33
36
  return uri;
@@ -36,7 +39,7 @@ function getLocalRegistryTarballUri(uri, pkgName, req, urlPrefix) {
36
39
  const tarballName = extractTarballFromUrl(uri);
37
40
  debug('tarball name %o', tarballName); // header only set with proxy that setup with HTTPS
38
41
 
39
- const domainRegistry = (0, _url2.getPublicUrl)(urlPrefix || '', req);
42
+ const domainRegistry = (0, _url2.getPublicUrl)(urlPrefix || '', requestOptions);
40
43
  return `${domainRegistry}${pkgName}/-/${tarballName}`;
41
44
  }
42
45
  //# sourceMappingURL=getLocalRegistryTarballUri.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/getLocalRegistryTarballUri.ts"],"names":["debug","extractTarballFromUrl","url","URL","parse","pathname","replace","getLocalRegistryTarballUri","uri","pkgName","req","urlPrefix","currentHost","headers","host","tarballName","domainRegistry"],"mappings":";;;;;;;AAAA;;AAEA;;AAEA;;;;AAEA,MAAMA,KAAK,GAAG,oBAAW,oBAAX,CAAd;;AAEA,SAASC,qBAAT,CAA+BC,GAA/B,EAAoD;AAClD;AACA,SAAOC,aAAIC,KAAJ,CAAUF,GAAV,EAAeG,QAAf,CAAwBC,OAAxB,CAAgC,OAAhC,EAAyC,EAAzC,CAAP;AACD;AACD;AACA;AACA;AACA;AACA;;;AACO,SAASC,0BAAT,CACLC,GADK,EAELC,OAFK,EAGLC,GAHK,EAILC,SAJK,EAKG;AACR,QAAMC,WAAW,GAAGF,GAAG,CAACG,OAAJ,CAAYC,IAAhC;;AAEA,MAAI,CAACF,WAAL,EAAkB;AAChB,WAAOJ,GAAP;AACD;;AACD,QAAMO,WAAW,GAAGd,qBAAqB,CAACO,GAAD,CAAzC;AACAR,EAAAA,KAAK,CAAC,iBAAD,EAAoBe,WAApB,CAAL,CAPQ,CAQR;;AACA,QAAMC,cAAc,GAAG,wBAAaL,SAAS,IAAI,EAA1B,EAA8BD,GAA9B,CAAvB;AAEA,SAAQ,GAAEM,cAAe,GAAEP,OAAQ,MAAKM,WAAY,EAApD;AACD","sourcesContent":["import URL from 'url';\nimport { Request } from 'express';\nimport buildDebug from 'debug';\n\nimport { getPublicUrl } from '@verdaccio/url';\n\nconst debug = buildDebug('verdaccio:core:url');\n\nfunction extractTarballFromUrl(url: string): string {\n // @ts-ignore\n return URL.parse(url).pathname.replace(/^.*\\//, '');\n}\n/**\n * Filter a tarball url.\n * @param {*} uri\n * @return {String} a parsed url\n */\nexport function getLocalRegistryTarballUri(\n uri: string,\n pkgName: string,\n req: Request,\n urlPrefix: string | void\n): string {\n const currentHost = req.headers.host;\n\n if (!currentHost) {\n return uri;\n }\n const tarballName = extractTarballFromUrl(uri);\n debug('tarball name %o', tarballName);\n // header only set with proxy that setup with HTTPS\n const domainRegistry = getPublicUrl(urlPrefix || '', req);\n\n return `${domainRegistry}${pkgName}/-/${tarballName}`;\n}\n"],"file":"getLocalRegistryTarballUri.js"}
1
+ {"version":3,"sources":["../src/getLocalRegistryTarballUri.ts"],"names":["debug","extractTarballFromUrl","url","URL","parse","pathname","replace","getLocalRegistryTarballUri","uri","pkgName","requestOptions","urlPrefix","currentHost","headers","host","tarballName","domainRegistry"],"mappings":";;;;;;;;AAAA;;AACA;;AAGA;;;;AAEA,MAAMA,KAAK,GAAG,oBAAW,oBAAX,CAAd;;AAEO,SAASC,qBAAT,CAA+BC,GAA/B,EAAoD;AACzD;AACA,SAAOC,aAAIC,KAAJ,CAAUF,GAAV,EAAeG,QAAf,CAAwBC,OAAxB,CAAgC,OAAhC,EAAyC,EAAzC,CAAP;AACD;AACD;AACA;AACA;AACA;AACA;;;AACO,SAASC,0BAAT,CACLC,GADK,EAELC,OAFK,EAGLC,cAHK,EAILC,SAJK,EAKG;AAAA;;AACR,QAAMC,WAAW,GAAGF,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,OAAnB,0DAAG,sBAAyBC,IAA7C;;AAEA,MAAI,CAACF,WAAL,EAAkB;AAChB,WAAOJ,GAAP;AACD;;AACD,QAAMO,WAAW,GAAGd,qBAAqB,CAACO,GAAD,CAAzC;AACAR,EAAAA,KAAK,CAAC,iBAAD,EAAoBe,WAApB,CAAL,CAPQ,CAQR;;AACA,QAAMC,cAAc,GAAG,wBAAaL,SAAS,IAAI,EAA1B,EAA8BD,cAA9B,CAAvB;AAEA,SAAQ,GAAEM,cAAe,GAAEP,OAAQ,MAAKM,WAAY,EAApD;AACD","sourcesContent":["import buildDebug from 'debug';\nimport URL from 'url';\n\nimport { RequestOptions } from '@verdaccio/url';\nimport { getPublicUrl } from '@verdaccio/url';\n\nconst debug = buildDebug('verdaccio:core:url');\n\nexport function extractTarballFromUrl(url: string): string {\n // @ts-ignore\n return URL.parse(url).pathname.replace(/^.*\\//, '');\n}\n/**\n * Filter a tarball url.\n * @param {*} uri\n * @return {String} a parsed url\n */\nexport function getLocalRegistryTarballUri(\n uri: string,\n pkgName: string,\n requestOptions: RequestOptions,\n urlPrefix: string | void\n): string {\n const currentHost = requestOptions?.headers?.host;\n\n if (!currentHost) {\n return uri;\n }\n const tarballName = extractTarballFromUrl(uri);\n debug('tarball name %o', tarballName);\n // header only set with proxy that setup with HTTPS\n const domainRegistry = getPublicUrl(urlPrefix || '', requestOptions);\n\n return `${domainRegistry}${pkgName}/-/${tarballName}`;\n}\n"],"file":"getLocalRegistryTarballUri.js"}
package/build/index.d.ts CHANGED
@@ -1,2 +1,4 @@
1
+ import { RequestOptions } from '@verdaccio/url';
1
2
  export { convertDistRemoteToLocalTarballUrls } from './convertDistRemoteToLocalTarballUrls';
2
3
  export { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';
4
+ export { RequestOptions };
package/build/index.js CHANGED
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "RequestOptions", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _url.RequestOptions;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "convertDistRemoteToLocalTarballUrls", {
7
13
  enumerable: true,
8
14
  get: function () {
@@ -16,6 +22,8 @@ Object.defineProperty(exports, "getLocalRegistryTarballUri", {
16
22
  }
17
23
  });
18
24
 
25
+ var _url = require("@verdaccio/url");
26
+
19
27
  var _convertDistRemoteToLocalTarballUrls = require("./convertDistRemoteToLocalTarballUrls");
20
28
 
21
29
  var _getLocalRegistryTarballUri = require("./getLocalRegistryTarballUri");
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { convertDistRemoteToLocalTarballUrls } from './convertDistRemoteToLocalTarballUrls';\nexport { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA","sourcesContent":["import { RequestOptions } from '@verdaccio/url';\n\nexport { convertDistRemoteToLocalTarballUrls } from './convertDistRemoteToLocalTarballUrls';\nexport { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';\n\nexport { RequestOptions };\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/tarball",
3
- "version": "11.0.0-6-next.7",
3
+ "version": "11.0.0-6-next.11",
4
4
  "description": "tarball utilities resolver",
5
5
  "keywords": [
6
6
  "private",
@@ -19,7 +19,7 @@
19
19
  "license": "MIT",
20
20
  "homepage": "https://verdaccio.org",
21
21
  "engines": {
22
- "node": ">=10",
22
+ "node": ">=14",
23
23
  "npm": ">=6"
24
24
  },
25
25
  "repository": {
@@ -34,14 +34,14 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@verdaccio/commons-api": "11.0.0-6-next.4",
38
- "@verdaccio/url": "11.0.0-6-next.5",
39
- "@verdaccio/utils": "6.0.0-6-next.6",
37
+ "debug": "4.3.3",
38
+ "@verdaccio/core": "6.0.0-6-next.4",
39
+ "@verdaccio/url": "11.0.0-6-next.8",
40
+ "@verdaccio/utils": "6.0.0-6-next.10",
40
41
  "lodash": "4.17.21"
41
42
  },
42
43
  "devDependencies": {
43
- "@verdaccio/types": "11.0.0-6-next.8",
44
- "express": "4.17.1",
44
+ "@verdaccio/types": "11.0.0-6-next.10",
45
45
  "node-mocks-http": "1.10.1"
46
46
  },
47
47
  "funding": {
@@ -1,7 +1,8 @@
1
- import { Package } from '@verdaccio/types';
2
- import { Request } from 'express';
3
1
  import _ from 'lodash';
4
2
 
3
+ import { Package } from '@verdaccio/types';
4
+ import { RequestOptions } from '@verdaccio/url';
5
+
5
6
  import { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';
6
7
 
7
8
  /**
@@ -13,7 +14,7 @@ import { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';
13
14
  */
14
15
  export function convertDistRemoteToLocalTarballUrls(
15
16
  pkg: Package,
16
- req: Request,
17
+ request: RequestOptions,
17
18
  urlPrefix: string | void
18
19
  ): Package {
19
20
  for (const ver in pkg.versions) {
@@ -21,7 +22,12 @@ export function convertDistRemoteToLocalTarballUrls(
21
22
  const distName = pkg.versions[ver].dist;
22
23
 
23
24
  if (_.isNull(distName) === false && _.isNull(distName.tarball) === false) {
24
- distName.tarball = getLocalRegistryTarballUri(distName.tarball, pkg.name, req, urlPrefix);
25
+ distName.tarball = getLocalRegistryTarballUri(
26
+ distName.tarball,
27
+ pkg.name,
28
+ request,
29
+ urlPrefix
30
+ );
25
31
  }
26
32
  }
27
33
  }
@@ -1,12 +1,12 @@
1
- import URL from 'url';
2
- import { Request } from 'express';
3
1
  import buildDebug from 'debug';
2
+ import URL from 'url';
4
3
 
4
+ import { RequestOptions } from '@verdaccio/url';
5
5
  import { getPublicUrl } from '@verdaccio/url';
6
6
 
7
7
  const debug = buildDebug('verdaccio:core:url');
8
8
 
9
- function extractTarballFromUrl(url: string): string {
9
+ export function extractTarballFromUrl(url: string): string {
10
10
  // @ts-ignore
11
11
  return URL.parse(url).pathname.replace(/^.*\//, '');
12
12
  }
@@ -18,10 +18,10 @@ function extractTarballFromUrl(url: string): string {
18
18
  export function getLocalRegistryTarballUri(
19
19
  uri: string,
20
20
  pkgName: string,
21
- req: Request,
21
+ requestOptions: RequestOptions,
22
22
  urlPrefix: string | void
23
23
  ): string {
24
- const currentHost = req.headers.host;
24
+ const currentHost = requestOptions?.headers?.host;
25
25
 
26
26
  if (!currentHost) {
27
27
  return uri;
@@ -29,7 +29,7 @@ export function getLocalRegistryTarballUri(
29
29
  const tarballName = extractTarballFromUrl(uri);
30
30
  debug('tarball name %o', tarballName);
31
31
  // header only set with proxy that setup with HTTPS
32
- const domainRegistry = getPublicUrl(urlPrefix || '', req);
32
+ const domainRegistry = getPublicUrl(urlPrefix || '', requestOptions);
33
33
 
34
34
  return `${domainRegistry}${pkgName}/-/${tarballName}`;
35
35
  }
package/src/index.ts CHANGED
@@ -1,2 +1,6 @@
1
+ import { RequestOptions } from '@verdaccio/url';
2
+
1
3
  export { convertDistRemoteToLocalTarballUrls } from './convertDistRemoteToLocalTarballUrls';
2
4
  export { getLocalRegistryTarballUri } from './getLocalRegistryTarballUri';
5
+
6
+ export { RequestOptions };
@@ -1,5 +1,7 @@
1
1
  import * as httpMocks from 'node-mocks-http';
2
- import { HEADERS } from '@verdaccio/commons-api';
2
+
3
+ import { HEADERS } from '@verdaccio/core';
4
+
3
5
  import { convertDistRemoteToLocalTarballUrls } from '../src';
4
6
 
5
7
  describe('convertDistRemoteToLocalTarballUrls', () => {
@@ -30,7 +32,11 @@ describe('convertDistRemoteToLocalTarballUrls', () => {
30
32
  },
31
33
  url: '/',
32
34
  });
33
- const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), req);
35
+ const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), {
36
+ host: req.hostname,
37
+ headers: req.headers as any,
38
+ protocol: req.protocol,
39
+ });
34
40
  expect(convertDist.versions['1.0.0'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.0'));
35
41
  expect(convertDist.versions['1.0.1'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.1'));
36
42
  });
@@ -43,7 +49,11 @@ describe('convertDistRemoteToLocalTarballUrls', () => {
43
49
  },
44
50
  url: '/',
45
51
  });
46
- const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), req);
52
+ const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), {
53
+ host: req.hostname,
54
+ headers: req.headers as any,
55
+ protocol: req.protocol,
56
+ });
47
57
  expect(convertDist.versions['1.0.0'].dist.tarball).toEqual(
48
58
  convertDist.versions['1.0.0'].dist.tarball
49
59
  );
@@ -57,7 +67,11 @@ describe('convertDistRemoteToLocalTarballUrls', () => {
57
67
  },
58
68
  url: '/',
59
69
  });
60
- const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), req);
70
+ const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), {
71
+ host: req.hostname,
72
+ headers: req.headers as any,
73
+ protocol: req.protocol,
74
+ });
61
75
  expect(convertDist.versions['1.0.0'].dist.tarball).toEqual(
62
76
  convertDist.versions['1.0.0'].dist.tarball
63
77
  );
package/tsconfig.json CHANGED
@@ -11,10 +11,10 @@
11
11
  "path": "../../utils"
12
12
  },
13
13
  {
14
- "path": "../commons-api"
14
+ "path": "../url"
15
15
  },
16
16
  {
17
- "path": "../url"
17
+ "path": "../core"
18
18
  }
19
19
  ]
20
20
  }