verdaccio-memory 10.0.1 → 11.0.0-6-next.7

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 ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../../.babelrc"
3
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,328 @@
1
+ # Change Log
2
+
3
+ ## 11.0.0-6-next.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [6c1eb021]
8
+ - @verdaccio/core@6.0.0-6-next.3
9
+
10
+ ## 11.0.0-6-next.6
11
+
12
+ ### Major Changes
13
+
14
+ - 794af76c: Remove Node 12 support
15
+
16
+ - We need move to the new `undici` and does not support Node.js 12
17
+
18
+ ### Minor Changes
19
+
20
+ - 154b2ecd: refactor: remove @verdaccio/commons-api in favor @verdaccio/core and remove duplications
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [794af76c]
25
+ - Updated dependencies [154b2ecd]
26
+ - @verdaccio/core@6.0.0-6-next.2
27
+ - @verdaccio/streams@11.0.0-6-next.5
28
+
29
+ ## 11.0.0-6-next.5
30
+
31
+ ### Major Changes
32
+
33
+ - 459b6fa7: refactor: search v1 endpoint and local-database
34
+
35
+ - refactor search `api v1` endpoint, improve performance
36
+ - remove usage of `async` dependency https://github.com/verdaccio/verdaccio/issues/1225
37
+ - refactor method storage class
38
+ - create new module `core` to reduce the ammount of modules with utilities
39
+ - use `undici` instead `node-fetch`
40
+ - use `fastify` instead `express` for functional test
41
+
42
+ ### Breaking changes
43
+
44
+ - plugin storage API changes
45
+ - remove old search endpoint (return 404)
46
+ - filter local private packages at plugin level
47
+
48
+ The storage api changes for methods `get`, `add`, `remove` as promise base. The `search` methods also changes and recieves a `query` object that contains all query params from the client.
49
+
50
+ ```ts
51
+ export interface IPluginStorage<T> extends IPlugin {
52
+ add(name: string): Promise<void>;
53
+ remove(name: string): Promise<void>;
54
+ get(): Promise<any>;
55
+ init(): Promise<void>;
56
+ getSecret(): Promise<string>;
57
+ setSecret(secret: string): Promise<any>;
58
+ getPackageStorage(packageInfo: string): IPackageStorage;
59
+ search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]>;
60
+ saveToken(token: Token): Promise<any>;
61
+ deleteToken(user: string, tokenKey: string): Promise<any>;
62
+ readTokens(filter: TokenFilter): Promise<Token[]>;
63
+ }
64
+ ```
65
+
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies [459b6fa7]
69
+ - @verdaccio/commons-api@11.0.0-6-next.4
70
+ - @verdaccio/streams@11.0.0-6-next.4
71
+
72
+ ## 11.0.0-6-next.4
73
+
74
+ ### Major Changes
75
+
76
+ - cb2281a5: # async storage plugin bootstrap
77
+
78
+ Gives a storage plugin the ability to perform asynchronous tasks on initialization
79
+
80
+ ## Breaking change
81
+
82
+ Plugin must have an init method in which asynchronous tasks can be executed
83
+
84
+ ```js
85
+ public async init(): Promise<void> {
86
+ this.data = await this._fetchLocalPackages();
87
+ this._sync();
88
+ }
89
+ ```
90
+
91
+ ## 10.0.0-alpha.3
92
+
93
+ ### Patch Changes
94
+
95
+ - fecbb9be: chore: add release step to private regisry on merge changeset pr
96
+ - Updated dependencies [fecbb9be]
97
+ - @verdaccio/commons-api@10.0.0-alpha.3
98
+ - @verdaccio/streams@10.0.0-alpha.3
99
+
100
+ ## 10.0.0-alpha.2
101
+
102
+ ### Minor Changes
103
+
104
+ - 54c58d1e: feat: add server rate limit protection to all request
105
+
106
+ To modify custom values, use the server settings property.
107
+
108
+ ```markdown
109
+ server:
110
+
111
+ ## https://www.npmjs.com/package/express-rate-limit#configuration-options
112
+
113
+ rateLimit:
114
+ windowMs: 1000
115
+ max: 10000
116
+ ```
117
+
118
+ The values are intended to be high, if you want to improve security of your server consider
119
+ using different values.
120
+
121
+ ### Patch Changes
122
+
123
+ - Updated dependencies [54c58d1e]
124
+ - @verdaccio/commons-api@10.0.0-alpha.2
125
+ - @verdaccio/streams@10.0.0-alpha.2
126
+
127
+ ## 10.0.0-alpha.1
128
+
129
+ ### Major Changes
130
+
131
+ - d87fa026: feat!: experiments config renamed to flags
132
+
133
+ - The `experiments` configuration is renamed to `flags`. The functionality is exactly the same.
134
+
135
+ ```js
136
+ flags: token: false;
137
+ search: false;
138
+ ```
139
+
140
+ - The `self_path` property from the config file is being removed in favor of `config_file` full path.
141
+ - Refactor `config` module, better types and utilities
142
+
143
+ ### Patch Changes
144
+
145
+ - Updated dependencies [d87fa026]
146
+ - Updated dependencies [da1ee9c8]
147
+ - Updated dependencies [26b494cb]
148
+ - Updated dependencies [b57b4338]
149
+ - Updated dependencies [31af0164]
150
+ - @verdaccio/commons-api@10.0.0-alpha.1
151
+ - @verdaccio/streams@10.0.0-alpha.1
152
+
153
+ All notable changes to this project will be documented in this file.
154
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
155
+
156
+ ## [9.7.2](https://github.com/verdaccio/monorepo/compare/v9.7.1...v9.7.2) (2020-07-20)
157
+
158
+ **Note:** Version bump only for package verdaccio-memory
159
+
160
+ ## [9.7.1](https://github.com/verdaccio/monorepo/compare/v9.7.0...v9.7.1) (2020-07-10)
161
+
162
+ **Note:** Version bump only for package verdaccio-memory
163
+
164
+ # [9.7.0](https://github.com/verdaccio/monorepo/compare/v9.6.1...v9.7.0) (2020-06-24)
165
+
166
+ **Note:** Version bump only for package verdaccio-memory
167
+
168
+ ## [9.6.1](https://github.com/verdaccio/monorepo/compare/v9.6.0...v9.6.1) (2020-06-07)
169
+
170
+ ### Bug Fixes
171
+
172
+ - **verdaccio-memory:** race condition on save a package ([#365](https://github.com/verdaccio/monorepo/issues/365)) ([70c1fb1](https://github.com/verdaccio/monorepo/commit/70c1fb1271e9e6af8577a81f8bf94d21d80e8d6b))
173
+
174
+ # [9.5.0](https://github.com/verdaccio/monorepo/compare/v9.4.1...v9.5.0) (2020-05-02)
175
+
176
+ **Note:** Version bump only for package verdaccio-memory
177
+
178
+ # [9.4.0](https://github.com/verdaccio/monorepo/compare/v9.3.4...v9.4.0) (2020-03-21)
179
+
180
+ **Note:** Version bump only for package verdaccio-memory
181
+
182
+ ## [9.3.2](https://github.com/verdaccio/monorepo/compare/v9.3.1...v9.3.2) (2020-03-08)
183
+
184
+ **Note:** Version bump only for package verdaccio-memory
185
+
186
+ ## [9.3.1](https://github.com/verdaccio/monorepo/compare/v9.3.0...v9.3.1) (2020-02-23)
187
+
188
+ **Note:** Version bump only for package verdaccio-memory
189
+
190
+ # [9.3.0](https://github.com/verdaccio/monorepo/compare/v9.2.0...v9.3.0) (2020-01-29)
191
+
192
+ **Note:** Version bump only for package verdaccio-memory
193
+
194
+ # [9.0.0](https://github.com/verdaccio/monorepo/compare/v8.5.3...v9.0.0) (2020-01-07)
195
+
196
+ **Note:** Version bump only for package verdaccio-memory
197
+
198
+ ## [8.5.2](https://github.com/verdaccio/monorepo/compare/v8.5.1...v8.5.2) (2019-12-25)
199
+
200
+ ### Bug Fixes
201
+
202
+ - add types for storage handler ([#307](https://github.com/verdaccio/monorepo/issues/307)) ([c35746e](https://github.com/verdaccio/monorepo/commit/c35746ebba071900db172608dedff66a7d27c23d))
203
+
204
+ ## [8.5.1](https://github.com/verdaccio/monorepo/compare/v8.5.0...v8.5.1) (2019-12-24)
205
+
206
+ **Note:** Version bump only for package verdaccio-memory
207
+
208
+ # [8.5.0](https://github.com/verdaccio/monorepo/compare/v8.4.2...v8.5.0) (2019-12-22)
209
+
210
+ **Note:** Version bump only for package verdaccio-memory
211
+
212
+ ## [8.4.2](https://github.com/verdaccio/monorepo/compare/v8.4.1...v8.4.2) (2019-11-23)
213
+
214
+ **Note:** Version bump only for package verdaccio-memory
215
+
216
+ ## [8.4.1](https://github.com/verdaccio/monorepo/compare/v8.4.0...v8.4.1) (2019-11-22)
217
+
218
+ **Note:** Version bump only for package verdaccio-memory
219
+
220
+ # [8.4.0](https://github.com/verdaccio/monorepo/compare/v8.3.0...v8.4.0) (2019-11-22)
221
+
222
+ **Note:** Version bump only for package verdaccio-memory
223
+
224
+ # [8.3.0](https://github.com/verdaccio/monorepo/compare/v8.2.0...v8.3.0) (2019-10-27)
225
+
226
+ **Note:** Version bump only for package verdaccio-memory
227
+
228
+ # [8.2.0](https://github.com/verdaccio/monorepo/compare/v8.2.0-next.0...v8.2.0) (2019-10-23)
229
+
230
+ **Note:** Version bump only for package verdaccio-memory
231
+
232
+ # [8.2.0-next.0](https://github.com/verdaccio/monorepo/compare/v8.1.4...v8.2.0-next.0) (2019-10-08)
233
+
234
+ ### Bug Fixes
235
+
236
+ - fixed lint errors ([5e677f7](https://github.com/verdaccio/monorepo/commit/5e677f7))
237
+ - fs.exists with other fileSystem alternatives ([#159](https://github.com/verdaccio/monorepo/issues/159)) ([f94e325](https://github.com/verdaccio/monorepo/commit/f94e325))
238
+
239
+ ## [8.1.2](https://github.com/verdaccio/monorepo/compare/v8.1.1...v8.1.2) (2019-09-29)
240
+
241
+ **Note:** Version bump only for package verdaccio-memory
242
+
243
+ ## [8.1.1](https://github.com/verdaccio/monorepo/compare/v8.1.0...v8.1.1) (2019-09-26)
244
+
245
+ **Note:** Version bump only for package verdaccio-memory
246
+
247
+ # [8.1.0](https://github.com/verdaccio/monorepo/compare/v8.0.1-next.1...v8.1.0) (2019-09-07)
248
+
249
+ ### Features
250
+
251
+ - **verdaccio-memory:** update @verdaccio/types and add new required methods ([eba5077](https://github.com/verdaccio/monorepo/commit/eba5077))
252
+
253
+ ## [8.0.1-next.1](https://github.com/verdaccio/monorepo/compare/v8.0.1-next.0...v8.0.1-next.1) (2019-08-29)
254
+
255
+ **Note:** Version bump only for package verdaccio-memory
256
+
257
+ ## [8.0.1-next.0](https://github.com/verdaccio/monorepo/compare/v8.0.0...v8.0.1-next.0) (2019-08-29)
258
+
259
+ **Note:** Version bump only for package verdaccio-memory
260
+
261
+ # [8.0.0](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.4...v8.0.0) (2019-08-22)
262
+
263
+ **Note:** Version bump only for package verdaccio-memory
264
+
265
+ # [8.0.0-next.4](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.3...v8.0.0-next.4) (2019-08-18)
266
+
267
+ **Note:** Version bump only for package verdaccio-memory
268
+
269
+ # [8.0.0-next.2](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.1...v8.0.0-next.2) (2019-08-03)
270
+
271
+ **Note:** Version bump only for package verdaccio-memory
272
+
273
+ # [8.0.0-next.1](https://github.com/verdaccio/monorepo/compare/v8.0.0-next.0...v8.0.0-next.1) (2019-08-01)
274
+
275
+ **Note:** Version bump only for package verdaccio-memory
276
+
277
+ # [8.0.0-next.0](https://github.com/verdaccio/monorepo/compare/v2.0.0...v8.0.0-next.0) (2019-08-01)
278
+
279
+ ### Bug Fixes
280
+
281
+ - issue on package not found ([944e1a5](https://github.com/verdaccio/monorepo/commit/944e1a5))
282
+ - missing params ([9979160](https://github.com/verdaccio/monorepo/commit/9979160))
283
+ - read tarball stream ([bc4bbbb](https://github.com/verdaccio/monorepo/commit/bc4bbbb))
284
+ - update new plugin types flow ([d2e2319](https://github.com/verdaccio/monorepo/commit/d2e2319))
285
+
286
+ ### Features
287
+
288
+ - add getSecret support ([0d047f4](https://github.com/verdaccio/monorepo/commit/0d047f4))
289
+ - add limit feature ([9e2fa5c](https://github.com/verdaccio/monorepo/commit/9e2fa5c))
290
+ - drop node v6 ([d0ae9ba](https://github.com/verdaccio/monorepo/commit/d0ae9ba))
291
+ - local database method are async ([f55302b](https://github.com/verdaccio/monorepo/commit/f55302b))
292
+ - migrate to typescript ([c01df36](https://github.com/verdaccio/monorepo/commit/c01df36))
293
+ - node 6 as minimum ([ed81731](https://github.com/verdaccio/monorepo/commit/ed81731))
294
+ - update secret to async ([9bcab19](https://github.com/verdaccio/monorepo/commit/9bcab19))
295
+
296
+ # Change Log
297
+
298
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
299
+
300
+ # [2.0.0](https://github.com/verdaccio/verdaccio-memory/compare/v2.0.0-beta.0...v2.0.0) (2019-03-29)
301
+
302
+ ### Features
303
+
304
+ - drop node v6 ([227fe18](https://github.com/verdaccio/verdaccio-memory/commit/227fe18))
305
+
306
+ <a name="2.0.0-beta.0"></a>
307
+
308
+ # [2.0.0-beta.0](https://github.com/verdaccio/verdaccio-memory/compare/v1.0.3...v2.0.0-beta.0) (2019-01-27)
309
+
310
+ ### Bug Fixes
311
+
312
+ - **deps:** update dependency http-errors to v1.7.0 ([0067759](https://github.com/verdaccio/verdaccio-memory/commit/0067759))
313
+
314
+ ### Features
315
+
316
+ - migrate to typescript ([c7a8507](https://github.com/verdaccio/verdaccio-memory/commit/c7a8507))
317
+
318
+ <a name="1.0.3"></a>
319
+
320
+ ## [1.0.3](https://github.com/verdaccio/verdaccio-memory/compare/v1.0.2...v1.0.3) (2018-07-15)
321
+
322
+ ### Bug Fixes
323
+
324
+ - update new plugin types flow ([b0c5398](https://github.com/verdaccio/verdaccio-memory/commit/b0c5398))
325
+
326
+ <a name="1.0.2"></a>
327
+
328
+ ## [1.0.2](https://github.com/verdaccio/verdaccio-memory/compare/v1.0.1...v1.0.2) (2018-07-15)
package/README.md CHANGED
@@ -9,7 +9,6 @@
9
9
  ![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)
10
10
  [![node](https://img.shields.io/node/v/verdaccio-memory/latest.svg)](https://www.npmjs.com/package/verdaccio-memory)
11
11
 
12
-
13
12
  A memory based **storage plugin**.
14
13
 
15
14
  ```
@@ -18,7 +17,7 @@ A memory based **storage plugin**.
18
17
 
19
18
  ### Requirements
20
19
 
21
- >`verdaccio@3.0.0` or `verdaccio@4.x`
20
+ > `verdaccio@3.0.0` or `verdaccio@4.x`
22
21
 
23
22
  ```
24
23
  npm install -g verdaccio
File without changes
File without changes
File without changes
@@ -1,4 +1,4 @@
1
- import { Logger, Callback, Config, IPluginStorage, Token, TokenFilter, PluginOptions } from '@verdaccio/types';
1
+ import { Logger, Callback, Config, IPluginStorage, Token, PluginOptions } from '@verdaccio/types';
2
2
  import MemoryHandler, { DataHandler } from './memory-handler';
3
3
  export declare type ConfigMemory = Config & {
4
4
  limit?: number;
@@ -15,16 +15,17 @@ declare class LocalMemory implements IPluginStorage<ConfigMemory> {
15
15
  private data;
16
16
  config: ConfigMemory;
17
17
  constructor(config: ConfigMemory, options: PluginOptions<ConfigMemory>);
18
+ init(): Promise<void>;
18
19
  getSecret(): Promise<string>;
19
20
  setSecret(secret: string): Promise<string | null>;
20
- add(name: string, cb: Callback): void;
21
- search(onPackage: Callback, onEnd: Callback, validateName: Function): void;
22
- remove(name: string, cb: Callback): void;
23
- get(cb: Callback): void;
21
+ add(name: string): Promise<void>;
22
+ search(onPackage: Callback, onEnd: Callback): void;
23
+ remove(name: string): Promise<void>;
24
+ get(): Promise<any>;
24
25
  getPackageStorage(packageInfo: string): MemoryHandler;
25
26
  private _createEmtpyDatabase;
26
- saveToken(token: Token): Promise<void>;
27
+ saveToken(): Promise<void>;
27
28
  deleteToken(user: string, tokenKey: string): Promise<void>;
28
- readTokens(filter: TokenFilter): Promise<Token[]>;
29
+ readTokens(): Promise<Token[]>;
29
30
  }
30
31
  export default LocalMemory;
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _commonsApi = require("@verdaccio/commons-api");
8
+ var _core = require("@verdaccio/core");
9
+
10
+ var _debug = _interopRequireDefault(require("debug"));
9
11
 
10
12
  var _memoryHandler = _interopRequireDefault(require("./memory-handler"));
11
13
 
@@ -13,6 +15,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
15
 
14
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
17
 
18
+ const debug = (0, _debug.default)('verdaccio:plugin:storage:local-memory');
16
19
  const DEFAULT_LIMIT = 1000;
17
20
 
18
21
  class LocalMemory {
@@ -32,6 +35,11 @@ class LocalMemory {
32
35
  this.logger = options.logger;
33
36
  this.data = this._createEmtpyDatabase();
34
37
  this.path = '/';
38
+ debug('start plugin');
39
+ }
40
+
41
+ init() {
42
+ return Promise.resolve();
35
43
  }
36
44
 
37
45
  getSecret() {
@@ -45,46 +53,53 @@ class LocalMemory {
45
53
  });
46
54
  }
47
55
 
48
- add(name, cb) {
49
- const {
50
- list
51
- } = this.data;
52
-
53
- if (list.length < this.limit) {
54
- if (list.indexOf(name) === -1) {
55
- list.push(name);
56
+ async add(name) {
57
+ return new Promise((resolve, reject) => {
58
+ const {
59
+ list
60
+ } = this.data;
61
+
62
+ if (list.length < this.limit) {
63
+ if (list.indexOf(name) === -1) {
64
+ list.push(name);
65
+ }
66
+
67
+ resolve();
68
+ } else {
69
+ this.logger.info({
70
+ limit: this.limit
71
+ }, 'Storage memory has reached limit of @{limit} packages');
72
+ reject(new Error('Storage memory has reached limit of limit packages'));
56
73
  }
57
-
58
- cb(null);
59
- } else {
60
- this.logger.info({
61
- limit: this.limit
62
- }, 'Storage memory has reached limit of @{limit} packages');
63
- cb(new Error('Storage memory has reached limit of limit packages'));
64
- }
74
+ });
65
75
  } // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
76
 
67
77
 
68
- search(onPackage, onEnd, validateName) {
78
+ search(onPackage, onEnd) {
69
79
  this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');
70
80
  onEnd();
71
81
  }
72
82
 
73
- remove(name, cb) {
74
- const {
75
- list
76
- } = this.data;
77
- const item = list.indexOf(name);
83
+ async remove(name) {
84
+ return new Promise(resolve => {
85
+ const {
86
+ list
87
+ } = this.data;
88
+ const item = list.indexOf(name);
78
89
 
79
- if (item !== -1) {
80
- list.splice(item, 1);
81
- }
90
+ if (item !== -1) {
91
+ list.splice(item, 1);
92
+ }
82
93
 
83
- cb(null);
94
+ return resolve();
95
+ });
84
96
  }
85
97
 
86
- get(cb) {
87
- cb(null, this.data.list);
98
+ async get() {
99
+ var _this$data, _this$data$list, _this$data2;
100
+
101
+ debug('data list length %o', (_this$data = this.data) === null || _this$data === void 0 ? void 0 : (_this$data$list = _this$data.list) === null || _this$data$list === void 0 ? void 0 : _this$data$list.length);
102
+ return Promise.resolve((_this$data2 = this.data) === null || _this$data2 === void 0 ? void 0 : _this$data2.list);
88
103
  }
89
104
 
90
105
  getPackageStorage(packageInfo) {
@@ -102,9 +117,9 @@ class LocalMemory {
102
117
  return emptyDatabase;
103
118
  }
104
119
 
105
- saveToken(token) {
120
+ saveToken() {
106
121
  this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');
107
- return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
122
+ return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
108
123
  }
109
124
 
110
125
  deleteToken(user, tokenKey) {
@@ -112,12 +127,12 @@ class LocalMemory {
112
127
  tokenKey,
113
128
  user
114
129
  }, '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}');
115
- return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
130
+ return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
116
131
  }
117
132
 
118
- readTokens(filter) {
133
+ readTokens() {
119
134
  this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');
120
- return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
135
+ return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
121
136
  }
122
137
 
123
138
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/local-memory.ts"],"names":["debug","DEFAULT_LIMIT","LocalMemory","constructor","config","options","limit","logger","data","_createEmtpyDatabase","path","init","Promise","resolve","getSecret","secret","setSecret","add","name","reject","list","length","indexOf","push","info","Error","search","onPackage","onEnd","warn","remove","item","splice","get","getPackageStorage","packageInfo","MemoryHandler","files","emptyDatabase","saveToken","errorUtils","getServiceUnavailable","deleteToken","user","tokenKey","readTokens"],"mappings":"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","sourcesContent":["import { errorUtils } from '@verdaccio/core';\nimport { Logger, Callback, Config, IPluginStorage, Token, PluginOptions } from '@verdaccio/types';\nimport buildDebug from 'debug';\n\nimport MemoryHandler, { DataHandler } from './memory-handler';\n\nexport type ConfigMemory = Config & { limit?: number };\nexport interface MemoryLocalStorage {\n secret: string;\n list: string[];\n files: DataHandler;\n}\n\nconst debug = buildDebug('verdaccio:plugin:storage:local-memory');\n\nconst DEFAULT_LIMIT = 1000;\nclass LocalMemory implements IPluginStorage<ConfigMemory> {\n private path: string;\n private limit: number;\n public logger: Logger;\n private data: MemoryLocalStorage;\n public config: ConfigMemory;\n\n public constructor(config: ConfigMemory, options: PluginOptions<ConfigMemory>) {\n this.config = config;\n this.limit = config.limit || DEFAULT_LIMIT;\n this.logger = options.logger;\n this.data = this._createEmtpyDatabase();\n this.path = '/';\n debug('start plugin');\n }\n\n public init() {\n return Promise.resolve();\n }\n\n public getSecret(): Promise<string> {\n return Promise.resolve(this.data.secret);\n }\n\n public setSecret(secret: string): Promise<string | null> {\n return new Promise((resolve): void => {\n this.data.secret = secret;\n resolve(null);\n });\n }\n\n async add(name: string): Promise<void> {\n return new Promise((resolve, reject): void => {\n const { list } = this.data;\n\n if (list.length < this.limit) {\n if (list.indexOf(name) === -1) {\n list.push(name);\n }\n resolve();\n } else {\n this.logger.info(\n { limit: this.limit },\n 'Storage memory has reached limit of @{limit} packages'\n );\n reject(new Error('Storage memory has reached limit of limit packages'));\n }\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public search(onPackage: Callback, onEnd: Callback): void {\n this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');\n onEnd();\n }\n\n async remove(name: string): Promise<void> {\n return new Promise((resolve): void => {\n const { list } = this.data;\n const item = list.indexOf(name);\n\n if (item !== -1) {\n list.splice(item, 1);\n }\n\n return resolve();\n });\n }\n\n async get(): Promise<any> {\n debug('data list length %o', this.data?.list?.length);\n return Promise.resolve(this.data?.list);\n }\n\n public getPackageStorage(packageInfo: string): MemoryHandler {\n return new MemoryHandler(packageInfo, this.data.files, this.logger);\n }\n\n private _createEmtpyDatabase(): MemoryLocalStorage {\n const list: string[] = [];\n const files = {};\n const emptyDatabase = {\n list,\n files,\n secret: '',\n };\n\n return emptyDatabase;\n }\n\n public saveToken(): Promise<void> {\n this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public deleteToken(user: string, tokenKey: string): Promise<void> {\n this.logger.warn(\n { tokenKey, user },\n '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}'\n );\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public readTokens(): Promise<Token[]> {\n this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n}\n\nexport default LocalMemory;\n"],"file":"local-memory.js"}
@@ -1,4 +1,4 @@
1
- import { Callback, Logger, IPackageStorageManager, IUploadTarball, IReadTarball, CallbackAction, StorageUpdateCallback, StorageWriteCallback, PackageTransformer, Package, ReadPackageCallback } from '@verdaccio/types';
1
+ import { Logger, IPackageStorageManager, IUploadTarball, IReadTarball, CallbackAction, StorageUpdateCallback, StorageWriteCallback, PackageTransformer, Package, ReadPackageCallback } from '@verdaccio/types';
2
2
  export declare type DataHandler = {
3
3
  [key: string]: string;
4
4
  };
@@ -9,8 +9,8 @@ declare class MemoryHandler implements IPackageStorageManager {
9
9
  logger: Logger;
10
10
  constructor(packageName: string, data: DataHandler, logger: Logger);
11
11
  updatePackage(pkgFileName: string, updateHandler: StorageUpdateCallback, onWrite: StorageWriteCallback, transformPackage: PackageTransformer, onEnd: CallbackAction): void;
12
- deletePackage(pkgName: string, callback: Callback): void;
13
- removePackage(callback: CallbackAction): void;
12
+ deletePackage(pkgName: string): Promise<void>;
13
+ removePackage(): Promise<void>;
14
14
  createPackage(name: string, value: Package, cb: CallbackAction): void;
15
15
  savePackage(name: string, value: Package, cb: CallbackAction): void;
16
16
  readPackage(name: string, cb: ReadPackageCallback): void;