@verdaccio/tarball 13.0.0-next-8.1 → 13.0.0-next-8.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/.babelrc CHANGED
@@ -5,7 +5,7 @@
5
5
  "@babel/env",
6
6
  {
7
7
  "targets": {
8
- "node": 12
8
+ "node": 18
9
9
  }
10
10
  }
11
11
  ],
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Change Log
2
2
 
3
+ ## 13.0.0-next-8.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 5cfbc14: fix(api): add logging when requesting tarball
8
+ - @verdaccio/core@8.0.0-next-8.3
9
+ - @verdaccio/url@13.0.0-next-8.3
10
+ - @verdaccio/utils@8.1.0-next-8.3
11
+
12
+ ## 13.0.0-next-8.2
13
+
14
+ ### Minor Changes
15
+
16
+ - 6a8154c: feat: update logger pino to latest
17
+
18
+ ### Patch Changes
19
+
20
+ - Updated dependencies [6a8154c]
21
+ - @verdaccio/core@8.0.0-next-8.2
22
+ - @verdaccio/url@13.0.0-next-8.2
23
+ - @verdaccio/utils@7.1.0-next-8.2
24
+
3
25
  ## 13.0.0-next-8.1
4
26
 
5
27
  ### Patch Changes
@@ -20,8 +20,7 @@ function extractTarballFromUrl(url) {
20
20
  * @return {String} a parsed url
21
21
  */
22
22
  function getLocalRegistryTarballUri(uri, pkgName, requestOptions, urlPrefix) {
23
- var _requestOptions$heade;
24
- const currentHost = requestOptions === null || requestOptions === void 0 || (_requestOptions$heade = requestOptions.headers) === null || _requestOptions$heade === void 0 ? void 0 : _requestOptions$heade.host;
23
+ const currentHost = requestOptions?.headers?.host;
25
24
  if (!currentHost) {
26
25
  return uri;
27
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getLocalRegistryTarballUri.js","names":["_debug","_interopRequireDefault","require","_url","_url2","e","__esModule","default","debug","buildDebug","extractTarballFromUrl","url","URL","parse","pathname","replace","getLocalRegistryTarballUri","uri","pkgName","requestOptions","urlPrefix","_requestOptions$heade","currentHost","headers","host","tarballName","domainRegistry","getPublicUrl"],"sources":["../src/getLocalRegistryTarballUri.ts"],"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"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,KAAK,GAAG,IAAAC,cAAU,EAAC,oBAAoB,CAAC;AAEvC,SAASC,qBAAqBA,CAACC,GAAW,EAAU;EACzD;EACA,OAAOC,YAAG,CAACC,KAAK,CAACF,GAAG,CAAC,CAACG,QAAQ,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,0BAA0BA,CACxCC,GAAW,EACXC,OAAe,EACfC,cAA8B,EAC9BC,SAAwB,EAChB;EAAA,IAAAC,qBAAA;EACR,MAAMC,WAAW,GAAGH,cAAc,aAAdA,cAAc,gBAAAE,qBAAA,GAAdF,cAAc,CAAEI,OAAO,cAAAF,qBAAA,uBAAvBA,qBAAA,CAAyBG,IAAI;EAEjD,IAAI,CAACF,WAAW,EAAE;IAChB,OAAOL,GAAG;EACZ;EACA,MAAMQ,WAAW,GAAGf,qBAAqB,CAACO,GAAG,CAAC;EAC9CT,KAAK,CAAC,iBAAiB,EAAEiB,WAAW,CAAC;EACrC;EACA,MAAMC,cAAc,GAAG,IAAAC,kBAAY,EAACP,SAAS,IAAI,EAAE,EAAED,cAAc,CAAC;EAEpE,OAAO,GAAGO,cAAc,GAAGR,OAAO,MAAMO,WAAW,EAAE;AACvD","ignoreList":[]}
1
+ {"version":3,"file":"getLocalRegistryTarballUri.js","names":["_debug","_interopRequireDefault","require","_url","_url2","e","__esModule","default","debug","buildDebug","extractTarballFromUrl","url","URL","parse","pathname","replace","getLocalRegistryTarballUri","uri","pkgName","requestOptions","urlPrefix","currentHost","headers","host","tarballName","domainRegistry","getPublicUrl"],"sources":["../src/getLocalRegistryTarballUri.ts"],"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"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AAA8C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,KAAK,GAAG,IAAAC,cAAU,EAAC,oBAAoB,CAAC;AAEvC,SAASC,qBAAqBA,CAACC,GAAW,EAAU;EACzD;EACA,OAAOC,YAAG,CAACC,KAAK,CAACF,GAAG,CAAC,CAACG,QAAQ,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,0BAA0BA,CACxCC,GAAW,EACXC,OAAe,EACfC,cAA8B,EAC9BC,SAAwB,EAChB;EACR,MAAMC,WAAW,GAAGF,cAAc,EAAEG,OAAO,EAAEC,IAAI;EAEjD,IAAI,CAACF,WAAW,EAAE;IAChB,OAAOJ,GAAG;EACZ;EACA,MAAMO,WAAW,GAAGd,qBAAqB,CAACO,GAAG,CAAC;EAC9CT,KAAK,CAAC,iBAAiB,EAAEgB,WAAW,CAAC;EACrC;EACA,MAAMC,cAAc,GAAG,IAAAC,kBAAY,EAACN,SAAS,IAAI,EAAE,EAAED,cAAc,CAAC;EAEpE,OAAO,GAAGM,cAAc,GAAGP,OAAO,MAAMM,WAAW,EAAE;AACvD","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/tarball",
3
- "version": "13.0.0-next-8.1",
3
+ "version": "13.0.0-next-8.3",
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": ">=14"
22
+ "node": ">=18"
23
23
  },
24
24
  "repository": {
25
25
  "type": "https",
@@ -33,16 +33,16 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@verdaccio/core": "8.0.0-next-8.1",
37
- "@verdaccio/url": "13.0.0-next-8.1",
38
- "@verdaccio/utils": "7.0.1-next-8.1",
36
+ "@verdaccio/core": "8.0.0-next-8.3",
37
+ "@verdaccio/url": "13.0.0-next-8.3",
38
+ "@verdaccio/utils": "8.1.0-next-8.3",
39
39
  "debug": "4.3.7",
40
40
  "gunzip-maybe": "^1.4.2",
41
41
  "lodash": "4.17.21",
42
42
  "tar-stream": "^3.1.7"
43
43
  },
44
44
  "devDependencies": {
45
- "@verdaccio/types": "13.0.0-next-8.0",
45
+ "@verdaccio/types": "13.0.0-next-8.1",
46
46
  "node-mocks-http": "1.14.1"
47
47
  },
48
48
  "funding": {
@@ -78,3 +78,41 @@ describe('convertDistRemoteToLocalTarballUrls', () => {
78
78
  );
79
79
  });
80
80
  });
81
+
82
+ describe('convertDistRemoteToLocalTarballUrls - scoped', () => {
83
+ const fakeHost = 'fake.com';
84
+ const buildURI = (host, version) => `http://${host}/@org/npm_test/-/npm_test-${version}.tgz`;
85
+ const cloneMetadata = (pkg = metadata) => Object.assign({}, pkg);
86
+ const metadata: any = {
87
+ name: '@org/npm_test',
88
+ versions: {
89
+ '1.0.0': {
90
+ dist: {
91
+ tarball: 'http://registry.org/@org/npm_test/-/npm_test-1.0.0.tgz',
92
+ },
93
+ },
94
+ '1.0.1': {
95
+ dist: {
96
+ tarball: 'http://registry.org/@org/npm_test/-/npm_test-1.0.1.tgz',
97
+ },
98
+ },
99
+ },
100
+ };
101
+ test('should build a URI for dist tarball based on new domain', () => {
102
+ const req = httpMocks.createRequest({
103
+ method: 'GET',
104
+ headers: {
105
+ host: fakeHost,
106
+ [HEADERS.FORWARDED_PROTO]: 'http',
107
+ },
108
+ url: '/',
109
+ });
110
+ const convertDist = convertDistRemoteToLocalTarballUrls(cloneMetadata(), {
111
+ host: req.hostname,
112
+ headers: req.headers as any,
113
+ protocol: req.protocol,
114
+ });
115
+ expect(convertDist.versions['1.0.0'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.0'));
116
+ expect(convertDist.versions['1.0.1'].dist.tarball).toEqual(buildURI(fakeHost, '1.0.1'));
117
+ });
118
+ });
@@ -21,6 +21,11 @@ describe('extractTarballFromUrl', () => {
21
21
  tarball: 'https://localhost/npm_test-1.0.2.tgz',
22
22
  },
23
23
  },
24
+ '1.0.3': {
25
+ dist: {
26
+ tarball: 'http://registry.org/@org/npm_test/-/npm_test-1.0.3.tgz',
27
+ },
28
+ },
24
29
  },
25
30
  };
26
31
 
@@ -34,5 +39,8 @@ describe('extractTarballFromUrl', () => {
34
39
  expect(extractTarballFromUrl(metadata.versions['1.0.2'].dist.tarball)).toEqual(
35
40
  'npm_test-1.0.2.tgz'
36
41
  );
42
+ expect(extractTarballFromUrl(metadata.versions['1.0.3'].dist.tarball)).toEqual(
43
+ 'npm_test-1.0.3.tgz'
44
+ );
37
45
  });
38
46
  });