@verdaccio/test-helper 5.0.0-next-9.32 → 5.0.0-next-9.34
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 +30 -0
- package/package.json +8 -8
- package/src/actions.ts +0 -27
- package/src/addNewVersion.ts +0 -60
- package/src/generateLocalPackageMetadata.ts +0 -67
- package/src/generatePackageMetadata.ts +0 -73
- package/src/generatePublishNewVersionManifest.ts +0 -76
- package/src/generateRemotePackageMetadata.ts +0 -86
- package/src/generateUnPublishPackageMetadata.ts +0 -89
- package/src/getDeprecatedPackageMetadata.ts +0 -19
- package/src/index.ts +0 -9
- package/src/initializeServer.ts +0 -67
- package/src/types.ts +0 -3
- package/src/utils.ts +0 -8
- package/types/patch.d.ts +0 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 5.0.0-next-9.34
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [950fd9f]
|
|
8
|
+
- Updated dependencies [73c78e3]
|
|
9
|
+
- @verdaccio/middleware@9.0.0-next-9.33
|
|
10
|
+
- @verdaccio/config@9.0.0-next-9.33
|
|
11
|
+
- @verdaccio/logger@9.0.0-next-9.33
|
|
12
|
+
- @verdaccio/auth@9.0.0-next-9.33
|
|
13
|
+
- @verdaccio/core@9.0.0-next-9.33
|
|
14
|
+
|
|
15
|
+
## 5.0.0-next-9.33
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [107c4d3]
|
|
20
|
+
- Updated dependencies [34cd0fb]
|
|
21
|
+
- Updated dependencies [59f1350]
|
|
22
|
+
- Updated dependencies [f3f8976]
|
|
23
|
+
- Updated dependencies [89a7362]
|
|
24
|
+
- Updated dependencies [cbfcfd2]
|
|
25
|
+
- Updated dependencies [a4e2da0]
|
|
26
|
+
- Updated dependencies [107c4d3]
|
|
27
|
+
- @verdaccio/logger@9.0.0-next-9.32
|
|
28
|
+
- @verdaccio/config@9.0.0-next-9.32
|
|
29
|
+
- @verdaccio/core@9.0.0-next-9.32
|
|
30
|
+
- @verdaccio/auth@9.0.0-next-9.32
|
|
31
|
+
- @verdaccio/middleware@9.0.0-next-9.32
|
|
32
|
+
|
|
3
33
|
## 5.0.0-next-9.32
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/test-helper",
|
|
3
|
-
"version": "5.0.0-next-9.
|
|
3
|
+
"version": "5.0.0-next-9.34",
|
|
4
4
|
"description": "Verdaccio Test Helpers",
|
|
5
5
|
"author": "Juan Picado <juanpicado19@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,20 +20,20 @@
|
|
|
20
20
|
"url": "https://opencollective.com/verdaccio"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@verdaccio/auth": "9.0.0-next-9.
|
|
24
|
-
"@verdaccio/config": "9.0.0-next-9.
|
|
25
|
-
"@verdaccio/core": "9.0.0-next-9.
|
|
26
|
-
"@verdaccio/logger": "9.0.0-next-9.
|
|
27
|
-
"@verdaccio/middleware": "9.0.0-next-9.
|
|
23
|
+
"@verdaccio/auth": "9.0.0-next-9.33",
|
|
24
|
+
"@verdaccio/config": "9.0.0-next-9.33",
|
|
25
|
+
"@verdaccio/core": "9.0.0-next-9.33",
|
|
26
|
+
"@verdaccio/logger": "9.0.0-next-9.33",
|
|
27
|
+
"@verdaccio/middleware": "9.0.0-next-9.33",
|
|
28
28
|
"debug": "4.4.3",
|
|
29
29
|
"express": "5.2.1",
|
|
30
30
|
"supertest": "7.1.4"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@verdaccio/types": "14.0.0-next-9.
|
|
33
|
+
"@verdaccio/types": "14.0.0-next-9.16",
|
|
34
34
|
"rimraf": "6.1.3",
|
|
35
35
|
"vite": "8.2.2",
|
|
36
|
-
"vitest": "4.1.
|
|
36
|
+
"vitest": "4.1.11"
|
|
37
37
|
},
|
|
38
38
|
"module": "./build/index.mjs",
|
|
39
39
|
"exports": {
|
package/src/actions.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import buildDebug from 'debug';
|
|
2
|
-
import supertest from 'supertest';
|
|
3
|
-
|
|
4
|
-
import { HEADERS, HEADER_TYPE } from '@verdaccio/core';
|
|
5
|
-
import type { Manifest } from '@verdaccio/types';
|
|
6
|
-
|
|
7
|
-
import { generatePackageMetadata } from './generatePackageMetadata';
|
|
8
|
-
|
|
9
|
-
const debug = buildDebug('verdaccio:tools:helpers:actions');
|
|
10
|
-
|
|
11
|
-
export function publishVersion(app: any, pkgName, version, metadata: Partial<Manifest> = {}): any {
|
|
12
|
-
debug('publishVersion %s : %s : %s', pkgName, version, JSON.stringify(metadata, null, 2));
|
|
13
|
-
const pkgMetadata = { ...generatePackageMetadata(pkgName, version), ...metadata };
|
|
14
|
-
// sync metadata readme to version of package
|
|
15
|
-
pkgMetadata.versions[version].readme = metadata.readme ? (metadata.readme as string) : '';
|
|
16
|
-
debug('metadata %s', JSON.stringify(pkgMetadata, null, 2));
|
|
17
|
-
return (
|
|
18
|
-
supertest(app)
|
|
19
|
-
.put(`/${encodeURIComponent(pkgName)}`)
|
|
20
|
-
// @ts-ignore ignore content-type mismatch
|
|
21
|
-
.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
|
|
22
|
-
.send(JSON.stringify(pkgMetadata))
|
|
23
|
-
.set('accept', HEADERS.GZIP)
|
|
24
|
-
.set(HEADER_TYPE.ACCEPT_ENCODING, HEADERS.JSON)
|
|
25
|
-
.set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
|
|
26
|
-
);
|
|
27
|
-
}
|
package/src/addNewVersion.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import type { Manifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
import { getTarball } from './utils';
|
|
4
|
-
|
|
5
|
-
export function addNewVersion(
|
|
6
|
-
manifest: Manifest,
|
|
7
|
-
version: string,
|
|
8
|
-
isRemote: boolean = true,
|
|
9
|
-
domain: string = 'http://localhost:5555'
|
|
10
|
-
): Manifest {
|
|
11
|
-
const currentVersions = Object.keys(manifest.versions);
|
|
12
|
-
if (currentVersions.includes(version)) {
|
|
13
|
-
throw new Error(`Version ${version} already exists`);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const newManifest = { ...manifest };
|
|
17
|
-
newManifest.versions[version] = {
|
|
18
|
-
name: manifest.name,
|
|
19
|
-
version,
|
|
20
|
-
description: manifest.description ?? '',
|
|
21
|
-
readme: '',
|
|
22
|
-
main: 'index.js',
|
|
23
|
-
scripts: { test: 'echo "Error: no test specified" && exit 1' },
|
|
24
|
-
keywords: [],
|
|
25
|
-
author: { name: 'User NPM', email: 'user@domain.com' },
|
|
26
|
-
license: 'ISC',
|
|
27
|
-
dependencies: { verdaccio: '^2.7.2' },
|
|
28
|
-
readmeFilename: 'README.md',
|
|
29
|
-
_id: `${manifest.name}@${version}`,
|
|
30
|
-
_npmVersion: '5.5.1',
|
|
31
|
-
_npmUser: { name: 'foo' },
|
|
32
|
-
dist: {
|
|
33
|
-
integrity: 'sha512-6gHiERpiDgtb3hjqpQHoPoH4g==',
|
|
34
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9',
|
|
35
|
-
tarball: `${domain}/${manifest.name}/-/${getTarball(manifest.name)}-${version}.tgz`,
|
|
36
|
-
},
|
|
37
|
-
contributors: [],
|
|
38
|
-
};
|
|
39
|
-
// update the latest with the new version
|
|
40
|
-
newManifest['dist-tags'] = { latest: version };
|
|
41
|
-
// add new version does not need attachments
|
|
42
|
-
if (isRemote) {
|
|
43
|
-
newManifest._distfiles = {
|
|
44
|
-
...newManifest._distfiles,
|
|
45
|
-
[`${getTarball(manifest.name)}-${version}.tgz`]: {
|
|
46
|
-
sha: '2c03764f651a9f016ca0b7620421457b619151b9',
|
|
47
|
-
url: `${domain}/${manifest.name}/-/${getTarball(manifest.name)}-${version}.tgz`,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
} else {
|
|
51
|
-
newManifest._attachments = {
|
|
52
|
-
...newManifest._attachments,
|
|
53
|
-
[`${getTarball(manifest.name)}-${version}.tgz`]: {
|
|
54
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
55
|
-
version: version,
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
return newManifest;
|
|
60
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { GenericBody, Manifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
import { getTarball } from './utils';
|
|
4
|
-
|
|
5
|
-
export function generateLocalPackageMetadata(
|
|
6
|
-
pkgName: string,
|
|
7
|
-
version = '1.0.0',
|
|
8
|
-
domain: string = 'http://localhost:5555',
|
|
9
|
-
time?: GenericBody
|
|
10
|
-
): Manifest {
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
return {
|
|
13
|
-
_id: pkgName,
|
|
14
|
-
name: pkgName,
|
|
15
|
-
description: '',
|
|
16
|
-
'dist-tags': { ['latest']: version },
|
|
17
|
-
versions: {
|
|
18
|
-
[version]: {
|
|
19
|
-
name: pkgName,
|
|
20
|
-
version: version,
|
|
21
|
-
description: 'package generated',
|
|
22
|
-
main: 'index.js',
|
|
23
|
-
scripts: {
|
|
24
|
-
test: 'echo "Error: no test specified" && exit 1',
|
|
25
|
-
},
|
|
26
|
-
keywords: [],
|
|
27
|
-
author: {
|
|
28
|
-
name: 'User NPM',
|
|
29
|
-
email: 'user@domain.com',
|
|
30
|
-
},
|
|
31
|
-
license: 'ISC',
|
|
32
|
-
dependencies: {
|
|
33
|
-
verdaccio: '^2.7.2',
|
|
34
|
-
},
|
|
35
|
-
readme: '# test',
|
|
36
|
-
readmeFilename: 'README.md',
|
|
37
|
-
_id: `${pkgName}@${version}`,
|
|
38
|
-
_npmVersion: '5.5.1',
|
|
39
|
-
_npmUser: {
|
|
40
|
-
name: 'foo',
|
|
41
|
-
},
|
|
42
|
-
dist: {
|
|
43
|
-
integrity:
|
|
44
|
-
'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cm' +
|
|
45
|
-
'E6dUBf+XoPoH4g==',
|
|
46
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
47
|
-
tarball: `${domain}/${pkgName}\/-\/${getTarball(pkgName)}-${version}.tgz`,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
time: time ?? {
|
|
52
|
-
modified: new Date().toISOString(),
|
|
53
|
-
created: new Date().toISOString(),
|
|
54
|
-
[version]: new Date().toISOString(),
|
|
55
|
-
},
|
|
56
|
-
readme: '# test',
|
|
57
|
-
_attachments: {
|
|
58
|
-
[`${getTarball(pkgName)}-${version}.tgz`]: {
|
|
59
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
60
|
-
version: version,
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
_uplinks: {},
|
|
64
|
-
_distfiles: {},
|
|
65
|
-
_rev: '',
|
|
66
|
-
};
|
|
67
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { Manifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
import type { DistTags } from './types';
|
|
4
|
-
import { getTarball } from './utils';
|
|
5
|
-
|
|
6
|
-
export function generatePackageMetadata(
|
|
7
|
-
pkgName: string,
|
|
8
|
-
version = '1.0.0',
|
|
9
|
-
distTags: DistTags = { ['latest']: version }
|
|
10
|
-
): Manifest {
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
return {
|
|
13
|
-
_id: pkgName,
|
|
14
|
-
name: pkgName,
|
|
15
|
-
'dist-tags': {
|
|
16
|
-
...distTags,
|
|
17
|
-
},
|
|
18
|
-
versions: {
|
|
19
|
-
[version]: {
|
|
20
|
-
name: pkgName,
|
|
21
|
-
version: version,
|
|
22
|
-
description: 'package generated',
|
|
23
|
-
main: 'index.js',
|
|
24
|
-
scripts: {
|
|
25
|
-
test: 'echo "Error: no test specified" && exit 1',
|
|
26
|
-
},
|
|
27
|
-
keywords: [],
|
|
28
|
-
author: {
|
|
29
|
-
name: 'User NPM',
|
|
30
|
-
email: 'user@domain.com',
|
|
31
|
-
},
|
|
32
|
-
license: 'ISC',
|
|
33
|
-
dependencies: {
|
|
34
|
-
verdaccio: '^2.7.2',
|
|
35
|
-
},
|
|
36
|
-
readme: '# test',
|
|
37
|
-
readmeFilename: 'README.md',
|
|
38
|
-
_id: `${pkgName}@${version}`,
|
|
39
|
-
_npmVersion: '5.5.1',
|
|
40
|
-
_npmUser: {
|
|
41
|
-
name: 'foo',
|
|
42
|
-
},
|
|
43
|
-
dist: {
|
|
44
|
-
integrity:
|
|
45
|
-
'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cm' +
|
|
46
|
-
'E6dUBf+XoPoH4g==',
|
|
47
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
48
|
-
tarball: `http:\/\/localhost:5555\/${pkgName}\/-\/${getTarball(pkgName)}-${version}.tgz`,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
readme: '# test',
|
|
53
|
-
_attachments: {
|
|
54
|
-
[`${getTarball(pkgName)}-${version}.tgz`]: {
|
|
55
|
-
content_type: 'application/octet-stream',
|
|
56
|
-
data:
|
|
57
|
-
'H4sIAAAAAAAAE+2W32vbMBDH85y/QnjQp9qxLEeBMsbGlocNBmN7bFdQ5WuqxJaEpGQdo//79KPeQsnI' +
|
|
58
|
-
'w5KUDX/9IOvurLuz/DHSjK/YAiY6jcXSKjk6sMqypHWNdtmD6hlBI0wqQmo8nVbVqMR4OsNoVB66kF1a' +
|
|
59
|
-
'W8eML+Vv10m9oF/jP6IfY4QyyTrILlD2eqkcm+gVzpdrJrPz4NuAsULJ4MZFWdBkbcByI7R79CRjx0Sc' +
|
|
60
|
-
'CdnAvf+SkjUFWu8IubzBgXUhDPidQlfZ3BhlLpBUKDiQ1cDFrYDmKkNnZwjuhUM4808+xNVW8P2bMk1Y' +
|
|
61
|
-
'7vJrtLC1u1MmLPjBF40+Cc4ahV6GDmI/DWygVRpMwVX3KtXUCg7Sxp7ff3nbt6TBFy65gK1iffsN41yo' +
|
|
62
|
-
'EHtdFbOiisWMH8bPvXUH0SP3k+KG3UBr+DFy7OGfEJr4x5iWVeS/pLQe+D+FIv/agIWI6GX66kFuIhT+' +
|
|
63
|
-
'1gDjrp/4d7WAvAwEJPh0u14IufWkM0zaW2W6nLfM2lybgJ4LTJ0/jWiAK8OcMjt8MW3OlfQppcuhhQ6k' +
|
|
64
|
-
'+2OgkK2Q8DssFPi/IHpU9fz3/+xj5NjDf8QFE39VmE4JDfzPCBn4P4X6/f88f/Pu47zomiPk2Lv/dOv8' +
|
|
65
|
-
'h+P/34/D/p9CL+Kp67mrGDRo0KBBp9ZPsETQegASAAA=+2W32vbMBDH85y',
|
|
66
|
-
length: 512,
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
_uplinks: {},
|
|
70
|
-
_distfiles: {},
|
|
71
|
-
_rev: '',
|
|
72
|
-
};
|
|
73
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { Manifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
export interface DistTags {
|
|
4
|
-
[key: string]: string;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Generate package metadata for a published package.
|
|
9
|
-
* This is the shape that a package manager would send to the registry. *
|
|
10
|
-
* @export
|
|
11
|
-
* @param {string} pkgName
|
|
12
|
-
* @param {string} [version='1.0.0']
|
|
13
|
-
* @param {DistTags} [distTags={ ['latest']: version }]
|
|
14
|
-
* @param {string} [description='package generated']
|
|
15
|
-
* @param {string} [readme='# test']
|
|
16
|
-
* @return {*} {Manifest}
|
|
17
|
-
*/
|
|
18
|
-
export function generatePublishNewVersionManifest(
|
|
19
|
-
pkgName: string,
|
|
20
|
-
version = '1.0.0',
|
|
21
|
-
distTags: DistTags = { ['latest']: version },
|
|
22
|
-
description = 'package generated',
|
|
23
|
-
readme = '# test'
|
|
24
|
-
): Manifest {
|
|
25
|
-
// @ts-ignore
|
|
26
|
-
return {
|
|
27
|
-
_id: pkgName,
|
|
28
|
-
description,
|
|
29
|
-
'dist-tags': {
|
|
30
|
-
...distTags,
|
|
31
|
-
},
|
|
32
|
-
versions: {
|
|
33
|
-
[version]: {
|
|
34
|
-
name: pkgName,
|
|
35
|
-
version: version,
|
|
36
|
-
description,
|
|
37
|
-
main: 'index.js',
|
|
38
|
-
scripts: {
|
|
39
|
-
test: 'echo "Error: no test specified" && exit 1',
|
|
40
|
-
},
|
|
41
|
-
keywords: [],
|
|
42
|
-
author: {
|
|
43
|
-
name: 'User NPM',
|
|
44
|
-
email: 'user@domain.com',
|
|
45
|
-
},
|
|
46
|
-
license: 'ISC',
|
|
47
|
-
dependencies: {
|
|
48
|
-
verdaccio: '^2.7.2',
|
|
49
|
-
},
|
|
50
|
-
readme: '# test',
|
|
51
|
-
readmeFilename: 'README.md',
|
|
52
|
-
_id: `${pkgName}@${version}`,
|
|
53
|
-
_npmVersion: '5.5.1',
|
|
54
|
-
_npmUser: {
|
|
55
|
-
name: 'foo',
|
|
56
|
-
},
|
|
57
|
-
dist: {
|
|
58
|
-
integrity:
|
|
59
|
-
'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cm' +
|
|
60
|
-
'E6dUBf+XoPoH4g==',
|
|
61
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
62
|
-
tarball: `http:\/\/localhost:5555\/${pkgName}\/-\/${pkgName}-${version}.tgz`,
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
access: null,
|
|
67
|
-
readme,
|
|
68
|
-
_attachments: {
|
|
69
|
-
[`${pkgName}-${version}.tgz`]: {
|
|
70
|
-
content_type: 'application/octet-stream',
|
|
71
|
-
data: 'H4sIAAAAAAAC/+2SP0/DMBDFM+dTnDx0QsFpEyN1RQzMjBQiyzlat8Q2tgOtUL8754R/A2OFBMpvOee9i++dZCfVTq7x3I212AZrshPDORdVBT/piWpeQ7aoBS9LITj10aGuLqhmv0AfovQU5QRLEvBZ/wivOQAzskO2pOq6JmKIjfPNnAt2lsxn9EFbk/yy4AUf1RaD8trFd2cUO6mHL21a3NNTGtWxMZCRhpGQRqQ2VBsLK3blvfVLMBaSAcGh0g8a2xWD2QxwryOUjP48Drft8PBifZuuu70bFNnHjfVfKR61QhOGha5vLj/iOqRQRmn8FmT71KM/pMb7RSFotTQlP+bZxMTExP/nDZZA1xkACAAA',
|
|
72
|
-
length: 276,
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import type { FullRemoteManifest, GenericBody, Version, Versions } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
import { getTarball } from './utils';
|
|
4
|
-
|
|
5
|
-
export function generateRemotePackageMetadata(
|
|
6
|
-
pkgName: string,
|
|
7
|
-
version = '1.0.0',
|
|
8
|
-
domain: string = 'http://localhost:5555',
|
|
9
|
-
versions: string[] = []
|
|
10
|
-
): FullRemoteManifest {
|
|
11
|
-
// @ts-ignore
|
|
12
|
-
const generateVersion = (version: string): Version => {
|
|
13
|
-
const metadata = {
|
|
14
|
-
name: pkgName,
|
|
15
|
-
version: version,
|
|
16
|
-
description: 'package generated',
|
|
17
|
-
main: 'index.js',
|
|
18
|
-
scripts: {
|
|
19
|
-
test: 'echo "Error: no test specified" && exit 1',
|
|
20
|
-
},
|
|
21
|
-
keywords: [],
|
|
22
|
-
author: {
|
|
23
|
-
name: 'User NPM',
|
|
24
|
-
email: 'user@domain.com',
|
|
25
|
-
},
|
|
26
|
-
license: 'ISC',
|
|
27
|
-
dependencies: {
|
|
28
|
-
verdaccio: '^2.7.2',
|
|
29
|
-
},
|
|
30
|
-
readme: '# test',
|
|
31
|
-
readmeFilename: 'README.md',
|
|
32
|
-
_id: `${pkgName}@${version}`,
|
|
33
|
-
_npmVersion: '5.5.1',
|
|
34
|
-
_npmUser: {
|
|
35
|
-
name: 'foo',
|
|
36
|
-
},
|
|
37
|
-
dist: {
|
|
38
|
-
integrity:
|
|
39
|
-
'sha512-6gHiERpiDgtb3hjqpQH5/i7zRmvYi9pmCjQf2ZMy3QEa9wVk9RgdZaPWUt7ZOnWUPFjcr9cm' +
|
|
40
|
-
'E6dUBf+XoPoH4g==',
|
|
41
|
-
shasum: '2c03764f651a9f016ca0b7620421457b619151b9', // pragma: allowlist secret
|
|
42
|
-
tarball: `${domain}\/${pkgName}\/-\/${getTarball(pkgName)}-${version}.tgz`,
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
return metadata;
|
|
47
|
-
};
|
|
48
|
-
const mappedVersions: Versions = versions.reduce((acc, v) => {
|
|
49
|
-
acc[v] = generateVersion(v);
|
|
50
|
-
return acc;
|
|
51
|
-
}, {});
|
|
52
|
-
|
|
53
|
-
const mappedTimes: GenericBody = versions.reduce((acc, v) => {
|
|
54
|
-
const date = new Date(Date.now());
|
|
55
|
-
acc[v] = date.toISOString();
|
|
56
|
-
return acc;
|
|
57
|
-
}, {});
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
_id: pkgName,
|
|
61
|
-
name: pkgName,
|
|
62
|
-
description: '',
|
|
63
|
-
'dist-tags': { ['latest']: version },
|
|
64
|
-
versions: {
|
|
65
|
-
[version]: generateVersion(version),
|
|
66
|
-
...mappedVersions,
|
|
67
|
-
},
|
|
68
|
-
time: {
|
|
69
|
-
modified: '2019-06-13T06:44:45.747Z',
|
|
70
|
-
created: '2019-06-13T06:44:45.747Z',
|
|
71
|
-
[version]: '2019-06-13T06:44:45.747Z',
|
|
72
|
-
...mappedTimes,
|
|
73
|
-
},
|
|
74
|
-
maintainers: [
|
|
75
|
-
{
|
|
76
|
-
name: 'foo',
|
|
77
|
-
email: 'foo@foo.com',
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
author: {
|
|
81
|
-
name: 'foo',
|
|
82
|
-
},
|
|
83
|
-
readme: '# test',
|
|
84
|
-
_rev: '12-c8fe8a9c79fa57a87347a0213e6f2548',
|
|
85
|
-
};
|
|
86
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import type { UnPublishManifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
export function generateUnPublishPackageMetadata(
|
|
4
|
-
pkgName: string,
|
|
5
|
-
versions: string[] = ['1.0.0'],
|
|
6
|
-
distTags,
|
|
7
|
-
rev: string
|
|
8
|
-
): UnPublishManifest {
|
|
9
|
-
const versionsData = versions.reduce((acc, version) => {
|
|
10
|
-
acc[version] = {
|
|
11
|
-
name: pkgName,
|
|
12
|
-
version: version,
|
|
13
|
-
main: 'index.js',
|
|
14
|
-
scripts: {
|
|
15
|
-
test: 'echo "Error: no test specified" && exit 1',
|
|
16
|
-
},
|
|
17
|
-
author: {
|
|
18
|
-
name: 'Verdaccio Maintainers',
|
|
19
|
-
email: 'verdaccio.npm@gmail.com',
|
|
20
|
-
},
|
|
21
|
-
repository: {
|
|
22
|
-
type: 'git',
|
|
23
|
-
url: 'https://github.com/verdaccio/verdaccio.git',
|
|
24
|
-
},
|
|
25
|
-
homepage: 'https://verdaccio.org',
|
|
26
|
-
funding: {
|
|
27
|
-
type: 'opencollective',
|
|
28
|
-
url: 'https://opencollective.com/verdaccio',
|
|
29
|
-
},
|
|
30
|
-
keywords: [],
|
|
31
|
-
license: 'ISC',
|
|
32
|
-
dependencies: {
|
|
33
|
-
'@verdaccio/logger-7': '^6.0.0-6-next.3',
|
|
34
|
-
},
|
|
35
|
-
bugs: {
|
|
36
|
-
url: 'https://github.com/verdaccio/verdaccio/issues',
|
|
37
|
-
},
|
|
38
|
-
devDependencies: {},
|
|
39
|
-
_id: `${pkgName}@${version}`,
|
|
40
|
-
_nodeVersion: '20.10.0',
|
|
41
|
-
_npmVersion: '10.9.0',
|
|
42
|
-
dist: {
|
|
43
|
-
integrity:
|
|
44
|
-
'sha512-qc+palHxTF5tUhtAHGikwmv7EqhybOZ3cHUvGQZ9H2a8C7VXQ0e4ZVYS7qpNvYmG3m3khfMzsmx/R96BcxaPfw==',
|
|
45
|
-
shasum: '4ece00c13d4a99722275afb6270d44ca158aaaa0',
|
|
46
|
-
tarball: `http://localhost:8000/${pkgName}/-/${pkgName}-${version}.tgz`,
|
|
47
|
-
fileCount: 3,
|
|
48
|
-
unpackedSize: 6488666,
|
|
49
|
-
},
|
|
50
|
-
contributors: [],
|
|
51
|
-
maintainers: [
|
|
52
|
-
{
|
|
53
|
-
name: 'test',
|
|
54
|
-
email: '',
|
|
55
|
-
},
|
|
56
|
-
],
|
|
57
|
-
};
|
|
58
|
-
return acc;
|
|
59
|
-
}, {});
|
|
60
|
-
|
|
61
|
-
const timeData = versions.reduce(
|
|
62
|
-
(acc, version) => {
|
|
63
|
-
const now = new Date().toISOString();
|
|
64
|
-
acc[version] = now;
|
|
65
|
-
return acc;
|
|
66
|
-
},
|
|
67
|
-
{} as Record<string, string>
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
_id: pkgName,
|
|
72
|
-
name: pkgName,
|
|
73
|
-
'dist-tags': { ...distTags },
|
|
74
|
-
versions: versionsData,
|
|
75
|
-
time: {
|
|
76
|
-
created: new Date().toISOString(),
|
|
77
|
-
modified: new Date().toISOString(),
|
|
78
|
-
...timeData,
|
|
79
|
-
},
|
|
80
|
-
maintainers: [
|
|
81
|
-
{
|
|
82
|
-
name: 'test',
|
|
83
|
-
email: '',
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
readme: 'ERROR: No README data found!',
|
|
87
|
-
_rev: rev,
|
|
88
|
-
};
|
|
89
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Manifest } from '@verdaccio/types';
|
|
2
|
-
|
|
3
|
-
import { generatePackageMetadata } from './generatePackageMetadata';
|
|
4
|
-
import type { DistTags } from './types';
|
|
5
|
-
|
|
6
|
-
export function getDeprecatedPackageMetadata(
|
|
7
|
-
pkgName: string,
|
|
8
|
-
version = '1.0.0',
|
|
9
|
-
distTags: DistTags = { ['latest']: version },
|
|
10
|
-
deprecated = 'default deprecated message',
|
|
11
|
-
rev = 'rev-foo'
|
|
12
|
-
): Manifest {
|
|
13
|
-
const manifest = generatePackageMetadata(pkgName, version, distTags);
|
|
14
|
-
// deprecated message requires empty attachments
|
|
15
|
-
manifest._attachments = {};
|
|
16
|
-
manifest._rev = rev;
|
|
17
|
-
manifest.versions[version].deprecated = deprecated;
|
|
18
|
-
return manifest;
|
|
19
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { generatePackageMetadata } from './generatePackageMetadata';
|
|
2
|
-
export { getDeprecatedPackageMetadata } from './getDeprecatedPackageMetadata';
|
|
3
|
-
export { generateLocalPackageMetadata } from './generateLocalPackageMetadata';
|
|
4
|
-
export { generateRemotePackageMetadata } from './generateRemotePackageMetadata';
|
|
5
|
-
export { addNewVersion } from './addNewVersion';
|
|
6
|
-
export { generatePublishNewVersionManifest } from './generatePublishNewVersionManifest';
|
|
7
|
-
export { initializeServer } from './initializeServer';
|
|
8
|
-
export { publishVersion } from './actions';
|
|
9
|
-
export { generateUnPublishPackageMetadata } from './generateUnPublishPackageMetadata';
|
package/src/initializeServer.ts
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import buildDebug from 'debug';
|
|
2
|
-
import type { Application } from 'express';
|
|
3
|
-
import express from 'express';
|
|
4
|
-
import os from 'node:os';
|
|
5
|
-
import path from 'node:path';
|
|
6
|
-
|
|
7
|
-
import { Auth } from '@verdaccio/auth';
|
|
8
|
-
import { Config } from '@verdaccio/config';
|
|
9
|
-
import { cryptoUtils, errorUtils } from '@verdaccio/core';
|
|
10
|
-
import { setup } from '@verdaccio/logger';
|
|
11
|
-
import { errorReportingMiddleware, final, handleError } from '@verdaccio/middleware';
|
|
12
|
-
|
|
13
|
-
const debug = buildDebug('verdaccio:tools:helpers:server');
|
|
14
|
-
|
|
15
|
-
export async function initializeServer(
|
|
16
|
-
configObject,
|
|
17
|
-
routesMiddleware: any[] = [],
|
|
18
|
-
Storage
|
|
19
|
-
): Promise<Application> {
|
|
20
|
-
const app = express();
|
|
21
|
-
const logger = await setup(configObject.log ?? {});
|
|
22
|
-
const config = new Config(configObject);
|
|
23
|
-
// mirror the real server wiring so tests can exercise `trust proxy`-dependent
|
|
24
|
-
// behavior (e.g. generated token CIDR enforcement against X-Forwarded-For)
|
|
25
|
-
if (config.server?.trustProxy) {
|
|
26
|
-
app.set('trust proxy', config.server.trustProxy);
|
|
27
|
-
}
|
|
28
|
-
config.storage = path.join(os.tmpdir(), '/storage', cryptoUtils.generateRandomHexString());
|
|
29
|
-
// httpass would get path.basename() for configPath thus we need to create a dummy folder
|
|
30
|
-
// to avoid conflics
|
|
31
|
-
config.configPath = config.storage;
|
|
32
|
-
debug('storage: %s', config.storage);
|
|
33
|
-
|
|
34
|
-
const storage = new Storage(config, logger);
|
|
35
|
-
await storage.init(config, []);
|
|
36
|
-
const auth: Auth = new Auth(config, logger);
|
|
37
|
-
await auth.init();
|
|
38
|
-
// TODO: this might not be need it, used in apiEndpoints
|
|
39
|
-
app.use(express.json({ strict: false, limit: '10mb' }));
|
|
40
|
-
// @ts-ignore
|
|
41
|
-
app.use(errorReportingMiddleware(logger));
|
|
42
|
-
for (const route of routesMiddleware) {
|
|
43
|
-
if (route.async) {
|
|
44
|
-
const middleware = await route.routes(config, auth, storage, logger);
|
|
45
|
-
app.use(middleware);
|
|
46
|
-
} else {
|
|
47
|
-
app.use(route(config, auth, storage, logger));
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// catch 404
|
|
52
|
-
app.get('/{*any}', function (req, res, next) {
|
|
53
|
-
next(errorUtils.getNotFound('resource not found'));
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
// @ts-ignore
|
|
57
|
-
app.use(handleError(logger));
|
|
58
|
-
// @ts-ignore
|
|
59
|
-
app.use(final);
|
|
60
|
-
|
|
61
|
-
app.use(function (request, response) {
|
|
62
|
-
response.status(590);
|
|
63
|
-
response.json({ error: 'cannot handle this' });
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
return app;
|
|
67
|
-
}
|
package/src/types.ts
DELETED
package/src/utils.ts
DELETED
package/types/patch.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare module 'jest-matcher-utils';
|
|
2
|
-
declare module 'pretty-format' {
|
|
3
|
-
export type Plugin = any;
|
|
4
|
-
}
|
|
5
|
-
declare module '@jest/schemas' {
|
|
6
|
-
export type SnapshotFormat = any;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
declare module 'ms';
|
|
10
|
-
|
|
11
|
-
declare module '@jest/expect-utils';
|
|
12
|
-
declare module 'jest';
|
|
13
|
-
declare module 'expect' {
|
|
14
|
-
export type MatcherState = any;
|
|
15
|
-
export type MatcherUtils = any;
|
|
16
|
-
export type Tester = any;
|
|
17
|
-
export type EqualsFunction = any;
|
|
18
|
-
}
|