@verdaccio/web 8.1.0-next-8.12 → 8.1.0-next-8.13

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.
@@ -1,90 +0,0 @@
1
- import path from 'path';
2
- import supertest from 'supertest';
3
- import { afterEach, describe, expect, test, vi } from 'vitest';
4
-
5
- import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
6
- import { setup } from '@verdaccio/logger';
7
-
8
- import { initializeServer } from './helper';
9
-
10
- setup({});
11
-
12
- const mockManifest = vi.fn();
13
- vi.mock('@verdaccio/ui-theme', () => mockManifest());
14
-
15
- describe('test web server', () => {
16
- afterEach(() => {
17
- vi.clearAllMocks();
18
- mockManifest.mockClear();
19
- });
20
-
21
- test('should OK to package api', async () => {
22
- mockManifest.mockReturnValue(() => ({
23
- staticPath: path.join(__dirname, 'static'),
24
- manifestFiles: {
25
- js: ['runtime.js', 'vendors.js', 'main.js'],
26
- },
27
- manifest: require('./partials/manifest/manifest.json'),
28
- }));
29
- const response = await supertest(await initializeServer('default-test.yaml'))
30
- .get('/-/verdaccio/data/packages')
31
- .set('Accept', HEADERS.JSON_CHARSET)
32
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
33
- .expect(HTTP_STATUS.OK);
34
- expect(response.body).toEqual([]);
35
- });
36
-
37
- test('should allow anonymous user to access package api when login is disabled', async () => {
38
- mockManifest.mockReturnValue(() => ({
39
- staticPath: path.join(__dirname, 'static'),
40
- manifestFiles: {
41
- js: ['runtime.js', 'vendors.js', 'main.js'],
42
- },
43
- manifest: require('./partials/manifest/manifest.json'),
44
- }));
45
-
46
- const response = await supertest(await initializeServer('login-disabled.yaml'))
47
- .get('/-/verdaccio/data/packages')
48
- .set('Accept', HEADERS.JSON_CHARSET)
49
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
50
- .expect(HTTP_STATUS.OK);
51
-
52
- expect(response.body).toEqual([]);
53
- });
54
-
55
- test('should allow authenticated user to access package api', async () => {
56
- mockManifest.mockReturnValue(() => ({
57
- staticPath: path.join(__dirname, 'static'),
58
- manifestFiles: {
59
- js: ['runtime.js', 'vendors.js', 'main.js'],
60
- },
61
- manifest: require('./partials/manifest/manifest.json'),
62
- }));
63
-
64
- const api = supertest(await initializeServer('default-test.yaml'));
65
-
66
- // First login to get the token
67
- const loginRes = await api
68
- .post('/-/verdaccio/sec/login')
69
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
70
- .send(
71
- JSON.stringify({
72
- username: 'test',
73
- password: 'test',
74
- })
75
- )
76
- .expect(HTTP_STATUS.OK);
77
-
78
- expect(loginRes.body.token).toBeDefined();
79
-
80
- // Then access the packages API with the token
81
- const response = await api
82
- .get('/-/verdaccio/data/packages')
83
- .set('Accept', HEADERS.JSON_CHARSET)
84
- .set(HEADER_TYPE.AUTHORIZATION, `Bearer ${loginRes.body.token}`)
85
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
86
- .expect(HTTP_STATUS.OK);
87
-
88
- expect(response.body).toEqual([]);
89
- });
90
- });
@@ -1,105 +0,0 @@
1
- import path from 'path';
2
- import supertest from 'supertest';
3
- import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest';
4
-
5
- import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
6
- import { setup } from '@verdaccio/logger';
7
- import { publishVersion } from '@verdaccio/test-helper';
8
-
9
- import { NOT_README_FOUND } from '../src/api/readme';
10
- import { initializeServer } from './helper';
11
-
12
- setup({});
13
-
14
- const mockManifest = vi.fn();
15
- vi.mock('@verdaccio/ui-theme', () => mockManifest());
16
-
17
- describe('readme api', () => {
18
- beforeAll(() => {
19
- mockManifest.mockReturnValue(() => ({
20
- staticPath: path.join(__dirname, 'static'),
21
- manifestFiles: {
22
- js: ['runtime.js', 'vendors.js', 'main.js'],
23
- },
24
- manifest: require('./partials/manifest/manifest.json'),
25
- }));
26
- });
27
-
28
- afterEach(() => {
29
- vi.clearAllMocks();
30
- mockManifest.mockClear();
31
- });
32
-
33
- test('should fetch readme scoped package', async () => {
34
- const app = await initializeServer('default-test.yaml');
35
- await publishVersion(app, '@scope/pk1-test', '1.0.0', { readme: 'my readme scoped' });
36
- const response = await supertest(app)
37
- .get('/-/verdaccio/data/package/readme/@scope/pk1-test')
38
- .set('Accept', HEADERS.TEXT_PLAIN)
39
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
40
- .expect(HTTP_STATUS.OK);
41
- expect(response.text).toMatch('my readme scoped');
42
- }, 70000);
43
-
44
- test('should fetch readme scoped package with not found message', async () => {
45
- const app = await initializeServer('default-test.yaml');
46
- await publishVersion(app, '@scope/pk1-test', '1.0.0', { readme: null });
47
- const response = await supertest(app)
48
- .get('/-/verdaccio/data/package/readme/@scope/pk1-test')
49
- .set('Accept', HEADERS.TEXT_PLAIN)
50
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
51
- .expect(HTTP_STATUS.OK);
52
- expect(response.text).toMatch(NOT_README_FOUND);
53
- });
54
-
55
- test('should fetch readme a package', async () => {
56
- const app = await initializeServer('default-test.yaml');
57
- await publishVersion(app, 'pk1-test', '1.0.0', { readme: 'my readme' });
58
- const response = await supertest(app)
59
- .get('/-/verdaccio/data/package/readme/pk1-test')
60
- .set('Accept', HEADERS.TEXT_PLAIN)
61
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
62
- .expect(HTTP_STATUS.OK);
63
- expect(response.text).toMatch('my readme');
64
- });
65
-
66
- test('should fetch readme a package with not found message', async () => {
67
- const app = await initializeServer('default-test.yaml');
68
- await publishVersion(app, 'pk1-test', '1.0.0', { readme: null });
69
- const response = await supertest(app)
70
- .get('/-/verdaccio/data/package/readme/pk1-test')
71
- .set('Accept', HEADERS.TEXT_PLAIN)
72
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
73
- .expect(HTTP_STATUS.OK);
74
- expect(response.text).toMatch(NOT_README_FOUND);
75
- });
76
-
77
- test('should fetch readme with keeping all readmes (latest)', async () => {
78
- const app = await initializeServer('keep-all-readmes.yaml');
79
- await publishVersion(app, 'pk1-test', '1.0.0', { readme: 'my readme' });
80
- const response = await supertest(app)
81
- .get('/-/verdaccio/data/package/readme/pk1-test')
82
- .set('Accept', HEADERS.TEXT_PLAIN)
83
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
84
- .expect(HTTP_STATUS.OK);
85
- expect(response.text).toMatch('my readme');
86
- });
87
-
88
- test('should fetch readme with keeping all readmes (version)', async () => {
89
- const app = await initializeServer('keep-all-readmes.yaml');
90
- await publishVersion(app, 'pk1-test', '1.0.0', { readme: 'my readme' });
91
- await publishVersion(app, 'pk1-test', '1.2.0', { readme: 'my new readme' });
92
- const response = await supertest(app)
93
- .get('/-/verdaccio/data/package/readme/pk1-test')
94
- .set('Accept', HEADERS.TEXT_PLAIN)
95
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
96
- .expect(HTTP_STATUS.OK);
97
- expect(response.text).toMatch('my new readme');
98
- const response2 = await supertest(app)
99
- .get('/-/verdaccio/data/package/readme/pk1-test?v=1.0.0')
100
- .set('Accept', HEADERS.TEXT_PLAIN)
101
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.TEXT_PLAIN_UTF8)
102
- .expect(HTTP_STATUS.OK);
103
- expect(response2.text).toMatch('my readme');
104
- });
105
- });
@@ -1,68 +0,0 @@
1
- import path from 'path';
2
- import supertest from 'supertest';
3
- import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest';
4
-
5
- import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
6
- import { setup } from '@verdaccio/logger';
7
- import { publishVersion } from '@verdaccio/test-helper';
8
-
9
- import { initializeServer } from './helper';
10
-
11
- setup({});
12
-
13
- const mockManifest = vi.fn();
14
- vi.mock('@verdaccio/ui-theme', () => mockManifest());
15
-
16
- describe('test web server', () => {
17
- beforeAll(() => {
18
- mockManifest.mockReturnValue(() => ({
19
- staticPath: path.join(__dirname, 'static'),
20
- manifestFiles: {
21
- js: ['runtime.js', 'vendors.js', 'main.js'],
22
- },
23
- manifest: require('./partials/manifest/manifest.json'),
24
- }));
25
- });
26
-
27
- afterEach(() => {
28
- Date.now = vi.fn(() => new Date(Date.UTC(2017, 1, 14)).valueOf());
29
- vi.clearAllMocks();
30
- mockManifest.mockClear();
31
- });
32
-
33
- test('should find results to search api', async () => {
34
- const app = await initializeServer('default-test.yaml');
35
- await publishVersion(app, 'foo', '1.0.0');
36
- const response = await supertest(app)
37
- .get('/-/verdaccio/data/search/foo')
38
- .set('Accept', HEADERS.JSON_CHARSET)
39
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
40
- .expect(HTTP_STATUS.OK);
41
- expect(response.body).toHaveLength(1);
42
- // FUTURE: we can improve here matching the right outcome
43
- });
44
-
45
- test('should found no results to search', async () => {
46
- const response = await supertest(await initializeServer('default-test.yaml'))
47
- .get('/-/verdaccio/data/search/notFound')
48
- .set('Accept', HEADERS.JSON_CHARSET)
49
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
50
- .expect(HTTP_STATUS.OK);
51
- expect(response.body).toHaveLength(0);
52
- });
53
-
54
- // TODO: need a way to make this fail
55
- test.skip('should fail search api', async () => {
56
- const response = await supertest(await initializeServer('default-test.yaml'))
57
- .get('/-/verdaccio/data/search/thisWillFail')
58
- .set('Accept', HEADERS.JSON_CHARSET)
59
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
60
- .expect(HTTP_STATUS.OK);
61
- expect(response.body).toHaveLength(3);
62
- });
63
-
64
- test.todo('search abort request');
65
- // maybe these could be done in storage package to avoid have specifics on this level
66
- test.todo('search allow request permissions');
67
- test.todo('search query params, pagination etc');
68
- });
@@ -1,51 +0,0 @@
1
- import path from 'path';
2
- import supertest from 'supertest';
3
- import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest';
4
-
5
- import { HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
6
- import { setup } from '@verdaccio/logger';
7
- import { publishVersion } from '@verdaccio/test-helper';
8
-
9
- import { initializeServer } from './helper';
10
-
11
- setup({});
12
-
13
- const mockManifest = vi.fn();
14
- vi.mock('@verdaccio/ui-theme', () => mockManifest());
15
-
16
- describe('sidebar api', () => {
17
- beforeAll(() => {
18
- mockManifest.mockReturnValue(() => ({
19
- staticPath: path.join(__dirname, 'static'),
20
- manifestFiles: {
21
- js: ['runtime.js', 'vendors.js', 'main.js'],
22
- },
23
- manifest: require('./partials/manifest/manifest.json'),
24
- }));
25
- });
26
-
27
- afterEach(() => {
28
- vi.clearAllMocks();
29
- mockManifest.mockClear();
30
- });
31
-
32
- test('should display sidebar info scoped package', async () => {
33
- const app = await initializeServer('default-test.yaml');
34
- await publishVersion(app, '@scope/pk1-test', '1.0.0', { readme: 'my readme scoped' });
35
- const response = await supertest(app)
36
- .get('/-/verdaccio/data/sidebar/@scope/pk1-test')
37
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
38
- .expect(HTTP_STATUS.OK);
39
- expect(response.text).toMatch('@scope/pk1-test');
40
- });
41
-
42
- test('should display sidebar info package', async () => {
43
- const app = await initializeServer('default-test.yaml');
44
- await publishVersion(app, 'pk2-test', '1.0.0', { readme: 'my readme scoped' });
45
- const response = await supertest(app)
46
- .get('/-/verdaccio/data/sidebar/pk2-test')
47
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
48
- .expect(HTTP_STATUS.OK);
49
- expect(response.text).toMatch('pk2-test');
50
- });
51
- });
@@ -1,256 +0,0 @@
1
- import path from 'path';
2
- import supertest from 'supertest';
3
- import { afterEach, beforeAll, describe, expect, test, vi } from 'vitest';
4
-
5
- import { API_ERROR, HEADERS, HEADER_TYPE, HTTP_STATUS } from '@verdaccio/core';
6
- import { setup } from '@verdaccio/logger';
7
-
8
- import { initializeServer } from './helper';
9
-
10
- setup({});
11
-
12
- const mockManifest = vi.fn();
13
- vi.mock('@verdaccio/ui-theme', () => mockManifest());
14
-
15
- describe('test web server', () => {
16
- beforeAll(() => {
17
- mockManifest.mockReturnValue(() => ({
18
- staticPath: path.join(__dirname, 'static'),
19
- manifestFiles: {
20
- js: ['runtime.js', 'vendors.js', 'main.js'],
21
- },
22
- manifest: require('./partials/manifest/manifest.json'),
23
- }));
24
- });
25
-
26
- afterEach(() => {
27
- vi.clearAllMocks();
28
- mockManifest.mockClear();
29
- });
30
-
31
- test('should get 401', async () => {
32
- return supertest(await initializeServer('default-test.yaml'))
33
- .post('/-/verdaccio/sec/login')
34
- .send(
35
- JSON.stringify({
36
- username: 'test',
37
- password: 'password1',
38
- })
39
- )
40
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
41
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
42
- .expect(HTTP_STATUS.UNAUTHORIZED)
43
- .then((response) => {
44
- expect(response.body.error).toEqual(API_ERROR.BAD_USERNAME_PASSWORD);
45
- });
46
- });
47
-
48
- test('should log in', async () => {
49
- return supertest(await initializeServer('default-test.yaml'))
50
- .post('/-/verdaccio/sec/login')
51
- .send(
52
- JSON.stringify({
53
- username: 'test',
54
- password: 'test',
55
- })
56
- )
57
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
58
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
59
- .expect(HEADERS.CACHE_CONTROL, 'no-cache, no-store')
60
- .expect(HTTP_STATUS.OK)
61
- .then((res) => {
62
- expect(res.body.error).toBeUndefined();
63
- expect(res.body.token).toBeDefined();
64
- expect(res.body.token).toBeTruthy();
65
- expect(res.body.username).toMatch('test');
66
- });
67
- });
68
-
69
- test('log in should be disabled', async () => {
70
- return supertest(await initializeServer('login-disabled.yaml'))
71
- .post('/-/verdaccio/sec/login')
72
- .send(
73
- JSON.stringify({
74
- username: 'test',
75
- password: 'test',
76
- })
77
- )
78
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
79
- .expect(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON_CHARSET)
80
- .expect(HTTP_STATUS.CANNOT_HANDLE, JSON.stringify({ error: 'cannot handle this' }));
81
- });
82
-
83
- test('should change password', async () => {
84
- const oldPass = 'test';
85
- const newPass = 'new-pass';
86
-
87
- const api = supertest(await initializeServer('default-test.yaml'));
88
-
89
- // Login with the old password.
90
- const loginRes = await api
91
- .post('/-/verdaccio/sec/login')
92
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
93
- .send(
94
- JSON.stringify({
95
- username: 'test',
96
- password: oldPass,
97
- })
98
- )
99
- .expect(HTTP_STATUS.OK);
100
-
101
- // Change the password.
102
- await api
103
- .put('/-/verdaccio/sec/reset_password')
104
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
105
- .set(HEADER_TYPE.AUTHORIZATION, `Bearer ${loginRes.body.token}`)
106
- .send(
107
- JSON.stringify({
108
- password: {
109
- old: oldPass,
110
- new: newPass,
111
- },
112
- })
113
- )
114
- .expect(HTTP_STATUS.OK);
115
-
116
- // Verify that you cannot login with the old password.
117
- await api
118
- .post('/-/verdaccio/sec/login')
119
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
120
- .send(
121
- JSON.stringify({
122
- username: 'test',
123
- password: oldPass,
124
- })
125
- )
126
- .expect(HTTP_STATUS.UNAUTHORIZED);
127
-
128
- // Verify that you can login with the new password.
129
- await api
130
- .post('/-/verdaccio/sec/login')
131
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
132
- .send(
133
- JSON.stringify({
134
- username: 'test',
135
- password: newPass,
136
- })
137
- )
138
- .expect(HTTP_STATUS.OK);
139
- });
140
-
141
- test('should not change to invalid password', async () => {
142
- const oldPass = 'test';
143
- const newPass = '12'; // Invalid password: Too short.
144
-
145
- const api = supertest(await initializeServer('default-test.yaml'));
146
-
147
- // Login with the old password.
148
- const loginRes = await api
149
- .post('/-/verdaccio/sec/login')
150
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
151
- .send(
152
- JSON.stringify({
153
- username: 'test',
154
- password: oldPass,
155
- })
156
- )
157
- .expect(HTTP_STATUS.OK);
158
-
159
- // Try changing to an invalid password.
160
- await api
161
- .put('/-/verdaccio/sec/reset_password')
162
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
163
- .set(HEADER_TYPE.AUTHORIZATION, `Bearer ${loginRes.body.token}`)
164
- .send(
165
- JSON.stringify({
166
- password: {
167
- old: oldPass,
168
- new: newPass,
169
- },
170
- })
171
- )
172
- .expect(HTTP_STATUS.BAD_REQUEST);
173
-
174
- // Verify that you cannot login with the new (invalid) password.
175
- await api
176
- .post('/-/verdaccio/sec/login')
177
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
178
- .send(
179
- JSON.stringify({
180
- username: 'test',
181
- password: newPass,
182
- })
183
- )
184
- .expect(HTTP_STATUS.UNAUTHORIZED);
185
-
186
- // Verify that you can still login with the old password.
187
- await api
188
- .post('/-/verdaccio/sec/login')
189
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
190
- .send(
191
- JSON.stringify({
192
- username: 'test',
193
- password: oldPass,
194
- })
195
- )
196
- .expect(HTTP_STATUS.OK);
197
- });
198
-
199
- test('should not change password if flag is disabled', async () => {
200
- const oldPass = 'test';
201
- const newPass = 'new-pass';
202
-
203
- const api = supertest(await initializeServer('change-password-disabled.yaml'));
204
-
205
- // Login with the old password.
206
- const loginRes = await api
207
- .post('/-/verdaccio/sec/login')
208
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
209
- .send(
210
- JSON.stringify({
211
- username: 'test',
212
- password: oldPass,
213
- })
214
- )
215
- .expect(HTTP_STATUS.OK);
216
-
217
- // Try changing the password.
218
- await api
219
- .put('/-/verdaccio/sec/reset_password')
220
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
221
- .set(HEADER_TYPE.AUTHORIZATION, `Bearer ${loginRes.body.token}`)
222
- .send(
223
- JSON.stringify({
224
- password: {
225
- old: oldPass,
226
- new: newPass,
227
- },
228
- })
229
- )
230
- .expect(HTTP_STATUS.CANNOT_HANDLE);
231
-
232
- // Verify that you cannot login with the new (rejected) password.
233
- await api
234
- .post('/-/verdaccio/sec/login')
235
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
236
- .send(
237
- JSON.stringify({
238
- username: 'test',
239
- password: newPass,
240
- })
241
- )
242
- .expect(HTTP_STATUS.UNAUTHORIZED);
243
-
244
- // Verify that you can still login with the old password.
245
- await api
246
- .post('/-/verdaccio/sec/login')
247
- .set(HEADER_TYPE.CONTENT_TYPE, HEADERS.JSON)
248
- .send(
249
- JSON.stringify({
250
- username: 'test',
251
- password: oldPass,
252
- })
253
- )
254
- .expect(HTTP_STATUS.OK);
255
- });
256
- });
@@ -1,28 +0,0 @@
1
- auth:
2
- auth-memory:
3
- users:
4
- test:
5
- name: test
6
- password: test
7
-
8
- web:
9
- title: verdaccio
10
-
11
- publish:
12
- allow_offline: false
13
-
14
- uplinks:
15
-
16
- log: { type: stdout, format: pretty, level: trace }
17
-
18
- packages:
19
- '@*/*':
20
- access: $anonymous
21
- publish: $anonymous
22
- '**':
23
- access: $anonymous
24
- publish: $anonymous
25
- _debug: true
26
-
27
- flags:
28
- changePassword: false
@@ -1,28 +0,0 @@
1
- auth:
2
- auth-memory:
3
- users:
4
- test:
5
- name: test
6
- password: test
7
-
8
- web:
9
- title: verdaccio
10
-
11
- publish:
12
- allow_offline: false
13
-
14
- uplinks:
15
-
16
- log: { type: stdout, format: pretty, level: trace }
17
-
18
- packages:
19
- '@*/*':
20
- access: $anonymous
21
- publish: $anonymous
22
- '**':
23
- access: $anonymous
24
- publish: $anonymous
25
- _debug: true
26
-
27
- flags:
28
- changePassword: true
@@ -1,29 +0,0 @@
1
- auth:
2
- auth-memory:
3
- users:
4
- test:
5
- name: test
6
- password: test
7
-
8
- web:
9
- title: verdaccio
10
-
11
- publish:
12
- allow_offline: false
13
- keep_readmes: all
14
-
15
- uplinks:
16
-
17
- log: { type: stdout, format: pretty, level: trace }
18
-
19
- packages:
20
- '@*/*':
21
- access: $anonymous
22
- publish: $anonymous
23
- '**':
24
- access: $anonymous
25
- publish: $anonymous
26
- _debug: true
27
-
28
- flags:
29
- changePassword: true
@@ -1,29 +0,0 @@
1
- auth:
2
- auth-memory:
3
- users:
4
- test:
5
- name: test
6
- password: test
7
-
8
- web:
9
- title: verdaccio
10
- login: false
11
-
12
- publish:
13
- allow_offline: false
14
-
15
- uplinks:
16
-
17
- log: { type: stdout, format: pretty, level: trace }
18
-
19
- packages:
20
- '@*/*':
21
- access: $anonymous
22
- publish: $anonymous
23
- '**':
24
- access: $anonymous
25
- publish: $anonymous
26
- _debug: true
27
-
28
- flags:
29
- changePassword: true