verdaccio-memory 10.3.0 → 10.3.2

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/README.md CHANGED
@@ -18,7 +18,7 @@ A memory based **storage plugin**.
18
18
 
19
19
  ### Requirements
20
20
 
21
- >`verdaccio@3.0.0` or `verdaccio@4.x`
21
+ >`verdaccio@3.0.0`, `verdaccio@4.x`, `verdaccio@5.x`
22
22
 
23
23
  ```
24
24
  npm install -g verdaccio
package/lib/index.js CHANGED
@@ -10,11 +10,8 @@ Object.defineProperty(exports, "LocalMemory", {
10
10
  }
11
11
  });
12
12
  exports.default = void 0;
13
-
14
13
  var _localMemory = _interopRequireDefault(require("./local-memory"));
15
-
16
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
15
  var _default = _localMemory.default;
19
16
  exports.default = _default;
20
17
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LocalMemory"],"sources":["../src/index.ts"],"sourcesContent":["import LocalMemory from './local-memory';\n\nexport { LocalMemory };\n\nexport default LocalMemory;\n"],"mappings":";;;;;;;;;;;;;AAAA;;;;eAIeA,oB"}
1
+ {"version":3,"file":"index.js","names":["_localMemory","_interopRequireDefault","require","obj","__esModule","default","_default","LocalMemory","exports"],"sources":["../src/index.ts"],"sourcesContent":["import LocalMemory from './local-memory';\n\nexport { LocalMemory };\n\nexport default LocalMemory;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAyC,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,IAAAG,QAAA,GAI1BC,oBAAW;AAAAC,OAAA,CAAAH,OAAA,GAAAC,QAAA"}
@@ -1,4 +1,4 @@
1
- import { Logger, Callback, Config, IPluginStorage, Token, TokenFilter, PluginOptions } from '@verdaccio/types';
1
+ import { Logger, Callback, Config, IPluginStorage, Token, TokenFilter, PluginOptions } from '@verdaccio/legacy-types';
2
2
  import MemoryHandler, { DataHandler } from './memory-handler';
3
3
  export declare type ConfigMemory = Config & {
4
4
  limit?: number;
@@ -4,57 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _commonsApi = require("@verdaccio/commons-api");
9
-
10
8
  var _memoryHandler = _interopRequireDefault(require("./memory-handler"));
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- 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
-
16
10
  const DEFAULT_LIMIT = 1000;
17
-
18
11
  class LocalMemory {
19
12
  constructor(config, options) {
20
- _defineProperty(this, "path", void 0);
21
-
22
- _defineProperty(this, "limit", void 0);
23
-
24
- _defineProperty(this, "logger", void 0);
25
-
26
- _defineProperty(this, "data", void 0);
27
-
28
- _defineProperty(this, "config", void 0);
29
-
30
13
  this.config = config;
31
14
  this.limit = config.limit || DEFAULT_LIMIT;
32
15
  this.logger = options.logger;
33
16
  this.data = this._createEmtpyDatabase();
34
17
  this.path = '/';
35
18
  }
36
-
37
19
  getSecret() {
38
20
  return Promise.resolve(this.data.secret);
39
21
  }
40
-
41
22
  setSecret(secret) {
42
23
  return new Promise(resolve => {
43
24
  this.data.secret = secret;
44
25
  resolve(null);
45
26
  });
46
27
  }
47
-
48
28
  add(name, cb) {
49
29
  const {
50
30
  list
51
31
  } = this.data;
52
-
53
32
  if (list.length < this.limit) {
54
33
  if (list.indexOf(name) === -1) {
55
34
  list.push(name);
56
35
  }
57
-
58
36
  cb(null);
59
37
  } else {
60
38
  this.logger.info({
@@ -62,35 +40,29 @@ class LocalMemory {
62
40
  }, 'Storage memory has reached limit of @{limit} packages');
63
41
  cb(new Error('Storage memory has reached limit of limit packages'));
64
42
  }
65
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars
66
-
43
+ }
67
44
 
45
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
68
46
  search(onPackage, onEnd, validateName) {
69
47
  this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');
70
48
  onEnd();
71
49
  }
72
-
73
50
  remove(name, cb) {
74
51
  const {
75
52
  list
76
53
  } = this.data;
77
54
  const item = list.indexOf(name);
78
-
79
55
  if (item !== -1) {
80
56
  list.splice(item, 1);
81
57
  }
82
-
83
58
  cb(null);
84
59
  }
85
-
86
60
  get(cb) {
87
61
  cb(null, this.data.list);
88
62
  }
89
-
90
63
  getPackageStorage(packageInfo) {
91
64
  return new _memoryHandler.default(packageInfo, this.data.files, this.logger);
92
65
  }
93
-
94
66
  _createEmtpyDatabase() {
95
67
  const list = [];
96
68
  const files = {};
@@ -101,12 +73,10 @@ class LocalMemory {
101
73
  };
102
74
  return emptyDatabase;
103
75
  }
104
-
105
76
  saveToken(token) {
106
77
  this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');
107
78
  return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
108
79
  }
109
-
110
80
  deleteToken(user, tokenKey) {
111
81
  this.logger.warn({
112
82
  tokenKey,
@@ -114,14 +84,11 @@ class LocalMemory {
114
84
  }, '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}');
115
85
  return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
116
86
  }
117
-
118
87
  readTokens(filter) {
119
88
  this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');
120
89
  return Promise.reject((0, _commonsApi.getServiceUnavailable)('method not implemented'));
121
90
  }
122
-
123
91
  }
124
-
125
92
  var _default = LocalMemory;
126
93
  exports.default = _default;
127
94
  //# sourceMappingURL=local-memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-memory.js","names":["DEFAULT_LIMIT","LocalMemory","constructor","config","options","limit","logger","data","_createEmtpyDatabase","path","getSecret","Promise","resolve","secret","setSecret","add","name","cb","list","length","indexOf","push","info","Error","search","onPackage","onEnd","validateName","warn","remove","item","splice","get","getPackageStorage","packageInfo","MemoryHandler","files","emptyDatabase","saveToken","token","reject","getServiceUnavailable","deleteToken","user","tokenKey","readTokens","filter"],"sources":["../src/local-memory.ts"],"sourcesContent":["import { getServiceUnavailable } from '@verdaccio/commons-api';\nimport { Logger, Callback, Config, IPluginStorage, Token, TokenFilter, PluginOptions } from '@verdaccio/types';\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 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 }\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 public add(name: string, cb: Callback): 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 cb(null);\n } else {\n this.logger.info({ limit: this.limit }, 'Storage memory has reached limit of @{limit} packages');\n cb(new Error('Storage memory has reached limit of limit packages'));\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public search(onPackage: Callback, onEnd: Callback, validateName: Function): void {\n this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');\n onEnd();\n }\n\n public remove(name: string, cb: Callback): 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 cb(null);\n }\n\n public get(cb: Callback): void {\n cb(null, 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(token: Token): Promise<void> {\n this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');\n\n return Promise.reject(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(getServiceUnavailable('method not implemented'));\n }\n\n public readTokens(filter: TokenFilter): Promise<Token[]> {\n this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');\n\n return Promise.reject(getServiceUnavailable('method not implemented'));\n }\n}\n\nexport default LocalMemory;\n"],"mappings":"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"}
1
+ {"version":3,"file":"local-memory.js","names":["_commonsApi","require","_memoryHandler","_interopRequireDefault","obj","__esModule","default","DEFAULT_LIMIT","LocalMemory","constructor","config","options","limit","logger","data","_createEmtpyDatabase","path","getSecret","Promise","resolve","secret","setSecret","add","name","cb","list","length","indexOf","push","info","Error","search","onPackage","onEnd","validateName","warn","remove","item","splice","get","getPackageStorage","packageInfo","MemoryHandler","files","emptyDatabase","saveToken","token","reject","getServiceUnavailable","deleteToken","user","tokenKey","readTokens","filter","_default","exports"],"sources":["../src/local-memory.ts"],"sourcesContent":["import { getServiceUnavailable } from '@verdaccio/commons-api';\nimport { Logger, Callback, Config, IPluginStorage, Token, TokenFilter, PluginOptions } from '@verdaccio/legacy-types';\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 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 }\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 public add(name: string, cb: Callback): 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 cb(null);\n } else {\n this.logger.info({ limit: this.limit }, 'Storage memory has reached limit of @{limit} packages');\n cb(new Error('Storage memory has reached limit of limit packages'));\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public search(onPackage: Callback, onEnd: Callback, validateName: Function): void {\n this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');\n onEnd();\n }\n\n public remove(name: string, cb: Callback): 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 cb(null);\n }\n\n public get(cb: Callback): void {\n cb(null, 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(token: Token): Promise<void> {\n this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');\n\n return Promise.reject(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(getServiceUnavailable('method not implemented'));\n }\n\n public readTokens(filter: TokenFilter): Promise<Token[]> {\n this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');\n\n return Promise.reject(getServiceUnavailable('method not implemented'));\n }\n}\n\nexport default LocalMemory;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Callback, Logger, IPackageStorageManager, IUploadTarball, IReadTarball, CallbackAction, StorageUpdateCallback, StorageWriteCallback, PackageTransformer, Package, ReadPackageCallback } from '@verdaccio/types';
1
+ import { Callback, Logger, IPackageStorageManager, IUploadTarball, IReadTarball, CallbackAction, StorageUpdateCallback, StorageWriteCallback, PackageTransformer, Package, ReadPackageCallback } from '@verdaccio/legacy-types';
2
2
  export declare type DataHandler = {
3
3
  [key: string]: string;
4
4
  };
@@ -4,56 +4,33 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _commonsApi = require("@verdaccio/commons-api");
11
-
12
9
  var _memoryFs = _interopRequireDefault(require("memory-fs"));
13
-
14
10
  var _streams = require("@verdaccio/streams");
15
-
16
11
  var _utils = require("./utils");
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- 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; }
21
-
22
13
  const fs = new _memoryFs.default();
23
-
24
14
  class MemoryHandler {
25
15
  constructor(packageName, data, logger) {
26
- _defineProperty(this, "data", void 0);
27
-
28
- _defineProperty(this, "name", void 0);
29
-
30
- _defineProperty(this, "path", void 0);
31
-
32
- _defineProperty(this, "logger", void 0);
33
-
34
16
  // this is not need it
35
17
  this.data = data;
36
18
  this.name = packageName;
37
19
  this.logger = logger;
38
20
  this.path = `/${packageName}`;
39
21
  }
40
-
41
22
  updatePackage(pkgFileName, updateHandler, onWrite, transformPackage, onEnd) {
42
23
  const json = this._getStorage(pkgFileName);
43
-
44
24
  let pkg;
45
-
46
25
  try {
47
26
  pkg = (0, _utils.parsePackage)(json);
48
27
  } catch (err) {
49
28
  return onEnd(err);
50
29
  }
51
-
52
30
  updateHandler(pkg, err => {
53
31
  if (err) {
54
32
  return onEnd(err);
55
33
  }
56
-
57
34
  try {
58
35
  onWrite(pkgFileName, transformPackage(pkg), onEnd);
59
36
  } catch (err) {
@@ -61,20 +38,16 @@ class MemoryHandler {
61
38
  }
62
39
  });
63
40
  }
64
-
65
41
  deletePackage(pkgName, callback) {
66
42
  delete this.data[pkgName];
67
43
  return callback(null);
68
44
  }
69
-
70
45
  removePackage(callback) {
71
46
  return callback(null);
72
47
  }
73
-
74
48
  createPackage(name, value, cb) {
75
49
  this.savePackage(name, value, cb);
76
50
  }
77
-
78
51
  savePackage(name, value, cb) {
79
52
  try {
80
53
  const json = (0, _utils.stringifyPackage)(value);
@@ -84,19 +57,15 @@ class MemoryHandler {
84
57
  return cb((0, _commonsApi.getInternalError)(err.message));
85
58
  }
86
59
  }
87
-
88
60
  readPackage(name, cb) {
89
61
  const json = this._getStorage(name);
90
-
91
62
  const isJson = typeof json === 'undefined';
92
-
93
63
  try {
94
64
  return cb(isJson ? (0, _commonsApi.getNotFound)() : null, (0, _utils.parsePackage)(json));
95
65
  } catch (err) {
96
66
  return cb((0, _commonsApi.getNotFound)());
97
67
  }
98
68
  }
99
-
100
69
  writeTarball(name) {
101
70
  const uploadStream = new _streams.UploadTarball({});
102
71
  const temporalName = `${this.path}/${name}`;
@@ -105,29 +74,23 @@ class MemoryHandler {
105
74
  if (mkdirpError) {
106
75
  return uploadStream.emit('error', mkdirpError);
107
76
  }
108
-
109
77
  fs.stat(temporalName, function (fileError, stats) {
110
78
  if (!fileError && stats) {
111
79
  return uploadStream.emit('error', (0, _commonsApi.getConflict)());
112
80
  }
113
-
114
81
  try {
115
82
  const file = fs.createWriteStream(temporalName);
116
83
  uploadStream.pipe(file);
117
-
118
84
  uploadStream.done = function () {
119
85
  const onEnd = function () {
120
86
  uploadStream.emit('success');
121
87
  };
122
-
123
88
  uploadStream.on('end', onEnd);
124
89
  };
125
-
126
90
  uploadStream.abort = function () {
127
91
  uploadStream.emit('error', (0, _commonsApi.getBadRequest)('transmision aborted'));
128
92
  file.end();
129
93
  };
130
-
131
94
  uploadStream.emit('open');
132
95
  return;
133
96
  } catch (err) {
@@ -139,7 +102,6 @@ class MemoryHandler {
139
102
  });
140
103
  return uploadStream;
141
104
  }
142
-
143
105
  readTarball(name) {
144
106
  const pathName = `${this.path}/${name}`;
145
107
  const readTarballStream = new _streams.ReadTarball({});
@@ -148,7 +110,6 @@ class MemoryHandler {
148
110
  if (fileError && !stats) {
149
111
  return readTarballStream.emit('error', (0, _commonsApi.getNotFound)());
150
112
  }
151
-
152
113
  try {
153
114
  const readStream = fs.createReadStream(pathName);
154
115
  const pathMeta = fs.meta(pathName);
@@ -159,11 +120,9 @@ class MemoryHandler {
159
120
  readStream.on('error', error => {
160
121
  readTarballStream.emit('error', error);
161
122
  });
162
-
163
123
  readTarballStream.abort = function () {
164
124
  readStream.destroy((0, _commonsApi.getBadRequest)('read has been aborted'));
165
125
  };
166
-
167
126
  return;
168
127
  } catch (err) {
169
128
  readTarballStream.emit('error', err);
@@ -173,13 +132,10 @@ class MemoryHandler {
173
132
  });
174
133
  return readTarballStream;
175
134
  }
176
-
177
135
  _getStorage(name = '') {
178
136
  return this.data[name];
179
137
  }
180
-
181
138
  }
182
-
183
139
  var _default = MemoryHandler;
184
140
  exports.default = _default;
185
141
  //# sourceMappingURL=memory-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-handler.js","names":["fs","MemoryFileSystem","MemoryHandler","constructor","packageName","data","logger","name","path","updatePackage","pkgFileName","updateHandler","onWrite","transformPackage","onEnd","json","_getStorage","pkg","parsePackage","err","getInternalError","deletePackage","pkgName","callback","removePackage","createPackage","value","cb","savePackage","stringifyPackage","message","readPackage","isJson","getNotFound","writeTarball","uploadStream","UploadTarball","temporalName","process","nextTick","mkdirp","dirname","mkdirpError","emit","stat","fileError","stats","getConflict","file","createWriteStream","pipe","done","on","abort","getBadRequest","end","readTarball","pathName","readTarballStream","ReadTarball","readStream","createReadStream","pathMeta","meta","contentLength","length","error","destroy"],"sources":["../src/memory-handler.ts"],"sourcesContent":["import path from 'path';\nimport {\n VerdaccioError,\n getBadRequest,\n getInternalError,\n getConflict,\n getNotFound,\n} from '@verdaccio/commons-api';\nimport MemoryFileSystem from 'memory-fs';\nimport { UploadTarball, ReadTarball } from '@verdaccio/streams';\nimport {\n Callback,\n Logger,\n IPackageStorageManager,\n IUploadTarball,\n IReadTarball,\n CallbackAction,\n StorageUpdateCallback,\n StorageWriteCallback,\n PackageTransformer,\n Package,\n ReadPackageCallback,\n} from '@verdaccio/types';\n\nimport { parsePackage, stringifyPackage } from './utils';\n\nconst fs = new MemoryFileSystem();\n\nexport type DataHandler = {\n [key: string]: string;\n};\n\nclass MemoryHandler implements IPackageStorageManager {\n private data: DataHandler;\n private name: string;\n private path: string;\n public logger: Logger;\n\n public constructor(packageName: string, data: DataHandler, logger: Logger) {\n // this is not need it\n this.data = data;\n this.name = packageName;\n this.logger = logger;\n this.path = `/${packageName}`;\n }\n\n public updatePackage(\n pkgFileName: string,\n updateHandler: StorageUpdateCallback,\n onWrite: StorageWriteCallback,\n transformPackage: PackageTransformer,\n onEnd: CallbackAction\n ): void {\n const json: string = this._getStorage(pkgFileName);\n let pkg: Package;\n\n try {\n pkg = parsePackage(json) as Package;\n } catch (err) {\n return onEnd(err);\n }\n\n updateHandler(pkg, (err: VerdaccioError) => {\n if (err) {\n return onEnd(err);\n }\n try {\n onWrite(pkgFileName, transformPackage(pkg), onEnd);\n } catch (err) {\n return onEnd(getInternalError('error on parse the metadata'));\n }\n });\n }\n\n public deletePackage(pkgName: string, callback: Callback): void {\n delete this.data[pkgName];\n return callback(null);\n }\n\n public removePackage(callback: CallbackAction): void {\n return callback(null);\n }\n\n public createPackage(name: string, value: Package, cb: CallbackAction): void {\n this.savePackage(name, value, cb);\n }\n\n public savePackage(name: string, value: Package, cb: CallbackAction): void {\n try {\n const json: string = stringifyPackage(value);\n\n this.data[name] = json;\n return cb(null);\n } catch (err: any) {\n return cb(getInternalError(err.message));\n }\n }\n\n public readPackage(name: string, cb: ReadPackageCallback): void {\n const json = this._getStorage(name);\n const isJson = typeof json === 'undefined';\n\n try {\n return cb(isJson ? getNotFound() : null, parsePackage(json));\n } catch (err) {\n return cb(getNotFound());\n }\n }\n\n public writeTarball(name: string): IUploadTarball {\n const uploadStream: IUploadTarball = new UploadTarball({});\n const temporalName = `${this.path}/${name}`;\n\n process.nextTick(function () {\n fs.mkdirp(path.dirname(temporalName), function (mkdirpError) {\n if (mkdirpError) {\n return uploadStream.emit('error', mkdirpError);\n }\n fs.stat(temporalName, function (fileError, stats) {\n if (!fileError && stats) {\n return uploadStream.emit('error', getConflict());\n }\n\n try {\n const file = fs.createWriteStream(temporalName);\n\n uploadStream.pipe(file);\n\n uploadStream.done = function (): void {\n const onEnd = function (): void {\n uploadStream.emit('success');\n };\n\n uploadStream.on('end', onEnd);\n };\n\n uploadStream.abort = function (): void {\n uploadStream.emit('error', getBadRequest('transmision aborted'));\n file.end();\n };\n\n uploadStream.emit('open');\n return;\n } catch (err) {\n uploadStream.emit('error', err);\n return;\n }\n });\n });\n });\n\n return uploadStream;\n }\n\n public readTarball(name: string): IReadTarball {\n const pathName = `${this.path}/${name}`;\n\n const readTarballStream: IReadTarball = new ReadTarball({});\n\n process.nextTick(function () {\n fs.stat(pathName, function (fileError, stats) {\n if (fileError && !stats) {\n return readTarballStream.emit('error', getNotFound());\n }\n\n try {\n const readStream = fs.createReadStream(pathName);\n\n const pathMeta = fs.meta(pathName);\n const contentLength: number = (pathMeta && pathMeta.length) || 0;\n readTarballStream.emit('content-length', contentLength);\n readTarballStream.emit('open');\n readStream.pipe(readTarballStream);\n readStream.on('error', (error: VerdaccioError) => {\n readTarballStream.emit('error', error);\n });\n\n readTarballStream.abort = function (): void {\n readStream.destroy(getBadRequest('read has been aborted'));\n };\n return;\n } catch (err) {\n readTarballStream.emit('error', err);\n return;\n }\n });\n });\n\n return readTarballStream;\n }\n\n private _getStorage(name = ''): string {\n return this.data[name];\n }\n}\n\nexport default MemoryHandler;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAOA;;AACA;;AAeA;;;;;;AAEA,MAAMA,EAAE,GAAG,IAAIC,iBAAJ,EAAX;;AAMA,MAAMC,aAAN,CAAsD;EAM7CC,WAAW,CAACC,WAAD,EAAsBC,IAAtB,EAAyCC,MAAzC,EAAyD;IAAA;;IAAA;;IAAA;;IAAA;;IACzE;IACA,KAAKD,IAAL,GAAYA,IAAZ;IACA,KAAKE,IAAL,GAAYH,WAAZ;IACA,KAAKE,MAAL,GAAcA,MAAd;IACA,KAAKE,IAAL,GAAa,IAAGJ,WAAY,EAA5B;EACD;;EAEMK,aAAa,CAClBC,WADkB,EAElBC,aAFkB,EAGlBC,OAHkB,EAIlBC,gBAJkB,EAKlBC,KALkB,EAMZ;IACN,MAAMC,IAAY,GAAG,KAAKC,WAAL,CAAiBN,WAAjB,CAArB;;IACA,IAAIO,GAAJ;;IAEA,IAAI;MACFA,GAAG,GAAG,IAAAC,mBAAA,EAAaH,IAAb,CAAN;IACD,CAFD,CAEE,OAAOI,GAAP,EAAY;MACZ,OAAOL,KAAK,CAACK,GAAD,CAAZ;IACD;;IAEDR,aAAa,CAACM,GAAD,EAAOE,GAAD,IAAyB;MAC1C,IAAIA,GAAJ,EAAS;QACP,OAAOL,KAAK,CAACK,GAAD,CAAZ;MACD;;MACD,IAAI;QACFP,OAAO,CAACF,WAAD,EAAcG,gBAAgB,CAACI,GAAD,CAA9B,EAAqCH,KAArC,CAAP;MACD,CAFD,CAEE,OAAOK,GAAP,EAAY;QACZ,OAAOL,KAAK,CAAC,IAAAM,4BAAA,EAAiB,6BAAjB,CAAD,CAAZ;MACD;IACF,CATY,CAAb;EAUD;;EAEMC,aAAa,CAACC,OAAD,EAAkBC,QAAlB,EAA4C;IAC9D,OAAO,KAAKlB,IAAL,CAAUiB,OAAV,CAAP;IACA,OAAOC,QAAQ,CAAC,IAAD,CAAf;EACD;;EAEMC,aAAa,CAACD,QAAD,EAAiC;IACnD,OAAOA,QAAQ,CAAC,IAAD,CAAf;EACD;;EAEME,aAAa,CAAClB,IAAD,EAAemB,KAAf,EAA+BC,EAA/B,EAAyD;IAC3E,KAAKC,WAAL,CAAiBrB,IAAjB,EAAuBmB,KAAvB,EAA8BC,EAA9B;EACD;;EAEMC,WAAW,CAACrB,IAAD,EAAemB,KAAf,EAA+BC,EAA/B,EAAyD;IACzE,IAAI;MACF,MAAMZ,IAAY,GAAG,IAAAc,uBAAA,EAAiBH,KAAjB,CAArB;MAEA,KAAKrB,IAAL,CAAUE,IAAV,IAAkBQ,IAAlB;MACA,OAAOY,EAAE,CAAC,IAAD,CAAT;IACD,CALD,CAKE,OAAOR,GAAP,EAAiB;MACjB,OAAOQ,EAAE,CAAC,IAAAP,4BAAA,EAAiBD,GAAG,CAACW,OAArB,CAAD,CAAT;IACD;EACF;;EAEMC,WAAW,CAACxB,IAAD,EAAeoB,EAAf,EAA8C;IAC9D,MAAMZ,IAAI,GAAG,KAAKC,WAAL,CAAiBT,IAAjB,CAAb;;IACA,MAAMyB,MAAM,GAAG,OAAOjB,IAAP,KAAgB,WAA/B;;IAEA,IAAI;MACF,OAAOY,EAAE,CAACK,MAAM,GAAG,IAAAC,uBAAA,GAAH,GAAmB,IAA1B,EAAgC,IAAAf,mBAAA,EAAaH,IAAb,CAAhC,CAAT;IACD,CAFD,CAEE,OAAOI,GAAP,EAAY;MACZ,OAAOQ,EAAE,CAAC,IAAAM,uBAAA,GAAD,CAAT;IACD;EACF;;EAEMC,YAAY,CAAC3B,IAAD,EAA+B;IAChD,MAAM4B,YAA4B,GAAG,IAAIC,sBAAJ,CAAkB,EAAlB,CAArC;IACA,MAAMC,YAAY,GAAI,GAAE,KAAK7B,IAAK,IAAGD,IAAK,EAA1C;IAEA+B,OAAO,CAACC,QAAR,CAAiB,YAAY;MAC3BvC,EAAE,CAACwC,MAAH,CAAUhC,aAAA,CAAKiC,OAAL,CAAaJ,YAAb,CAAV,EAAsC,UAAUK,WAAV,EAAuB;QAC3D,IAAIA,WAAJ,EAAiB;UACf,OAAOP,YAAY,CAACQ,IAAb,CAAkB,OAAlB,EAA2BD,WAA3B,CAAP;QACD;;QACD1C,EAAE,CAAC4C,IAAH,CAAQP,YAAR,EAAsB,UAAUQ,SAAV,EAAqBC,KAArB,EAA4B;UAChD,IAAI,CAACD,SAAD,IAAcC,KAAlB,EAAyB;YACvB,OAAOX,YAAY,CAACQ,IAAb,CAAkB,OAAlB,EAA2B,IAAAI,uBAAA,GAA3B,CAAP;UACD;;UAED,IAAI;YACF,MAAMC,IAAI,GAAGhD,EAAE,CAACiD,iBAAH,CAAqBZ,YAArB,CAAb;YAEAF,YAAY,CAACe,IAAb,CAAkBF,IAAlB;;YAEAb,YAAY,CAACgB,IAAb,GAAoB,YAAkB;cACpC,MAAMrC,KAAK,GAAG,YAAkB;gBAC9BqB,YAAY,CAACQ,IAAb,CAAkB,SAAlB;cACD,CAFD;;cAIAR,YAAY,CAACiB,EAAb,CAAgB,KAAhB,EAAuBtC,KAAvB;YACD,CAND;;YAQAqB,YAAY,CAACkB,KAAb,GAAqB,YAAkB;cACrClB,YAAY,CAACQ,IAAb,CAAkB,OAAlB,EAA2B,IAAAW,yBAAA,EAAc,qBAAd,CAA3B;cACAN,IAAI,CAACO,GAAL;YACD,CAHD;;YAKApB,YAAY,CAACQ,IAAb,CAAkB,MAAlB;YACA;UACD,CApBD,CAoBE,OAAOxB,GAAP,EAAY;YACZgB,YAAY,CAACQ,IAAb,CAAkB,OAAlB,EAA2BxB,GAA3B;YACA;UACD;QACF,CA7BD;MA8BD,CAlCD;IAmCD,CApCD;IAsCA,OAAOgB,YAAP;EACD;;EAEMqB,WAAW,CAACjD,IAAD,EAA6B;IAC7C,MAAMkD,QAAQ,GAAI,GAAE,KAAKjD,IAAK,IAAGD,IAAK,EAAtC;IAEA,MAAMmD,iBAA+B,GAAG,IAAIC,oBAAJ,CAAgB,EAAhB,CAAxC;IAEArB,OAAO,CAACC,QAAR,CAAiB,YAAY;MAC3BvC,EAAE,CAAC4C,IAAH,CAAQa,QAAR,EAAkB,UAAUZ,SAAV,EAAqBC,KAArB,EAA4B;QAC5C,IAAID,SAAS,IAAI,CAACC,KAAlB,EAAyB;UACvB,OAAOY,iBAAiB,CAACf,IAAlB,CAAuB,OAAvB,EAAgC,IAAAV,uBAAA,GAAhC,CAAP;QACD;;QAED,IAAI;UACF,MAAM2B,UAAU,GAAG5D,EAAE,CAAC6D,gBAAH,CAAoBJ,QAApB,CAAnB;UAEA,MAAMK,QAAQ,GAAG9D,EAAE,CAAC+D,IAAH,CAAQN,QAAR,CAAjB;UACA,MAAMO,aAAqB,GAAIF,QAAQ,IAAIA,QAAQ,CAACG,MAAtB,IAAiC,CAA/D;UACAP,iBAAiB,CAACf,IAAlB,CAAuB,gBAAvB,EAAyCqB,aAAzC;UACAN,iBAAiB,CAACf,IAAlB,CAAuB,MAAvB;UACAiB,UAAU,CAACV,IAAX,CAAgBQ,iBAAhB;UACAE,UAAU,CAACR,EAAX,CAAc,OAAd,EAAwBc,KAAD,IAA2B;YAChDR,iBAAiB,CAACf,IAAlB,CAAuB,OAAvB,EAAgCuB,KAAhC;UACD,CAFD;;UAIAR,iBAAiB,CAACL,KAAlB,GAA0B,YAAkB;YAC1CO,UAAU,CAACO,OAAX,CAAmB,IAAAb,yBAAA,EAAc,uBAAd,CAAnB;UACD,CAFD;;UAGA;QACD,CAhBD,CAgBE,OAAOnC,GAAP,EAAY;UACZuC,iBAAiB,CAACf,IAAlB,CAAuB,OAAvB,EAAgCxB,GAAhC;UACA;QACD;MACF,CAzBD;IA0BD,CA3BD;IA6BA,OAAOuC,iBAAP;EACD;;EAEO1C,WAAW,CAACT,IAAI,GAAG,EAAR,EAAoB;IACrC,OAAO,KAAKF,IAAL,CAAUE,IAAV,CAAP;EACD;;AAjKmD;;eAoKvCL,a"}
1
+ {"version":3,"file":"memory-handler.js","names":["_path","_interopRequireDefault","require","_commonsApi","_memoryFs","_streams","_utils","obj","__esModule","default","fs","MemoryFileSystem","MemoryHandler","constructor","packageName","data","logger","name","path","updatePackage","pkgFileName","updateHandler","onWrite","transformPackage","onEnd","json","_getStorage","pkg","parsePackage","err","getInternalError","deletePackage","pkgName","callback","removePackage","createPackage","value","cb","savePackage","stringifyPackage","message","readPackage","isJson","getNotFound","writeTarball","uploadStream","UploadTarball","temporalName","process","nextTick","mkdirp","dirname","mkdirpError","emit","stat","fileError","stats","getConflict","file","createWriteStream","pipe","done","on","abort","getBadRequest","end","readTarball","pathName","readTarballStream","ReadTarball","readStream","createReadStream","pathMeta","meta","contentLength","length","error","destroy","_default","exports"],"sources":["../src/memory-handler.ts"],"sourcesContent":["import path from 'path';\nimport {\n VerdaccioError,\n getBadRequest,\n getInternalError,\n getConflict,\n getNotFound,\n} from '@verdaccio/commons-api';\nimport MemoryFileSystem from 'memory-fs';\nimport { UploadTarball, ReadTarball } from '@verdaccio/streams';\nimport {\n Callback,\n Logger,\n IPackageStorageManager,\n IUploadTarball,\n IReadTarball,\n CallbackAction,\n StorageUpdateCallback,\n StorageWriteCallback,\n PackageTransformer,\n Package,\n ReadPackageCallback,\n} from '@verdaccio/legacy-types';\n\nimport { parsePackage, stringifyPackage } from './utils';\n\nconst fs = new MemoryFileSystem();\n\nexport type DataHandler = {\n [key: string]: string;\n};\n\nclass MemoryHandler implements IPackageStorageManager {\n private data: DataHandler;\n private name: string;\n private path: string;\n public logger: Logger;\n\n public constructor(packageName: string, data: DataHandler, logger: Logger) {\n // this is not need it\n this.data = data;\n this.name = packageName;\n this.logger = logger;\n this.path = `/${packageName}`;\n }\n\n public updatePackage(\n pkgFileName: string,\n updateHandler: StorageUpdateCallback,\n onWrite: StorageWriteCallback,\n transformPackage: PackageTransformer,\n onEnd: CallbackAction\n ): void {\n const json: string = this._getStorage(pkgFileName);\n let pkg: Package;\n\n try {\n pkg = parsePackage(json) as Package;\n } catch (err) {\n return onEnd(err);\n }\n\n updateHandler(pkg, (err: VerdaccioError) => {\n if (err) {\n return onEnd(err);\n }\n try {\n onWrite(pkgFileName, transformPackage(pkg), onEnd);\n } catch (err) {\n return onEnd(getInternalError('error on parse the metadata'));\n }\n });\n }\n\n public deletePackage(pkgName: string, callback: Callback): void {\n delete this.data[pkgName];\n return callback(null);\n }\n\n public removePackage(callback: CallbackAction): void {\n return callback(null);\n }\n\n public createPackage(name: string, value: Package, cb: CallbackAction): void {\n this.savePackage(name, value, cb);\n }\n\n public savePackage(name: string, value: Package, cb: CallbackAction): void {\n try {\n const json: string = stringifyPackage(value);\n\n this.data[name] = json;\n return cb(null);\n } catch (err: any) {\n return cb(getInternalError(err.message));\n }\n }\n\n public readPackage(name: string, cb: ReadPackageCallback): void {\n const json = this._getStorage(name);\n const isJson = typeof json === 'undefined';\n\n try {\n return cb(isJson ? getNotFound() : null, parsePackage(json));\n } catch (err) {\n return cb(getNotFound());\n }\n }\n\n public writeTarball(name: string): IUploadTarball {\n const uploadStream: IUploadTarball = new UploadTarball({});\n const temporalName = `${this.path}/${name}`;\n\n process.nextTick(function () {\n fs.mkdirp(path.dirname(temporalName), function (mkdirpError) {\n if (mkdirpError) {\n return uploadStream.emit('error', mkdirpError);\n }\n fs.stat(temporalName, function (fileError, stats) {\n if (!fileError && stats) {\n return uploadStream.emit('error', getConflict());\n }\n\n try {\n const file = fs.createWriteStream(temporalName);\n\n uploadStream.pipe(file);\n\n uploadStream.done = function (): void {\n const onEnd = function (): void {\n uploadStream.emit('success');\n };\n\n uploadStream.on('end', onEnd);\n };\n\n uploadStream.abort = function (): void {\n uploadStream.emit('error', getBadRequest('transmision aborted'));\n file.end();\n };\n\n uploadStream.emit('open');\n return;\n } catch (err) {\n uploadStream.emit('error', err);\n return;\n }\n });\n });\n });\n\n return uploadStream;\n }\n\n public readTarball(name: string): IReadTarball {\n const pathName = `${this.path}/${name}`;\n\n const readTarballStream: IReadTarball = new ReadTarball({});\n\n process.nextTick(function () {\n fs.stat(pathName, function (fileError, stats) {\n if (fileError && !stats) {\n return readTarballStream.emit('error', getNotFound());\n }\n\n try {\n const readStream = fs.createReadStream(pathName);\n\n const pathMeta = fs.meta(pathName);\n const contentLength: number = (pathMeta && pathMeta.length) || 0;\n readTarballStream.emit('content-length', contentLength);\n readTarballStream.emit('open');\n readStream.pipe(readTarballStream);\n readStream.on('error', (error: VerdaccioError) => {\n readTarballStream.emit('error', error);\n });\n\n readTarballStream.abort = function (): void {\n readStream.destroy(getBadRequest('read has been aborted'));\n };\n return;\n } catch (err) {\n readTarballStream.emit('error', err);\n return;\n }\n });\n });\n\n return readTarballStream;\n }\n\n private _getStorage(name = ''): string {\n return this.data[name];\n }\n}\n\nexport default MemoryHandler;\n"],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Package } from '@verdaccio/types';
1
+ import { Package } from '@verdaccio/legacy-types';
2
2
  export declare function stringifyPackage(pkg: Package): string;
3
3
  export declare function parsePackage(pkg: string): any;
package/lib/utils.js CHANGED
@@ -5,11 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.parsePackage = parsePackage;
7
7
  exports.stringifyPackage = stringifyPackage;
8
-
9
8
  function stringifyPackage(pkg) {
10
9
  return JSON.stringify(pkg, null, '\t');
11
10
  }
12
-
13
11
  function parsePackage(pkg) {
14
12
  return JSON.parse(pkg);
15
13
  }
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["stringifyPackage","pkg","JSON","stringify","parsePackage","parse"],"sources":["../src/utils.ts"],"sourcesContent":["import { Package } from '@verdaccio/types';\n\nexport function stringifyPackage(pkg: Package) {\n return JSON.stringify(pkg, null, '\\t');\n}\n\nexport function parsePackage(pkg: string) {\n return JSON.parse(pkg);\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,gBAAT,CAA0BC,GAA1B,EAAwC;EAC7C,OAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,EAAoB,IAApB,EAA0B,IAA1B,CAAP;AACD;;AAEM,SAASG,YAAT,CAAsBH,GAAtB,EAAmC;EACxC,OAAOC,IAAI,CAACG,KAAL,CAAWJ,GAAX,CAAP;AACD"}
1
+ {"version":3,"file":"utils.js","names":["stringifyPackage","pkg","JSON","stringify","parsePackage","parse"],"sources":["../src/utils.ts"],"sourcesContent":["import { Package } from '@verdaccio/legacy-types';\n\nexport function stringifyPackage(pkg: Package) {\n return JSON.stringify(pkg, null, '\\t');\n}\n\nexport function parsePackage(pkg: string) {\n return JSON.parse(pkg);\n}\n"],"mappings":";;;;;;;AAEO,SAASA,gBAAgBA,CAACC,GAAY,EAAE;EAC7C,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AACxC;AAEO,SAASG,YAAYA,CAACH,GAAW,EAAE;EACxC,OAAOC,IAAI,CAACG,KAAK,CAACJ,GAAG,CAAC;AACxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio-memory",
3
- "version": "10.3.0",
3
+ "version": "10.3.2",
4
4
  "description": "Storage implementation in memory",
5
5
  "keywords": [
6
6
  "verdaccio",
@@ -29,11 +29,11 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "@verdaccio/commons-api": "10.2.0",
32
- "@verdaccio/streams": "10.2.0",
32
+ "@verdaccio/streams": "10.2.1",
33
33
  "memory-fs": "0.5.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@verdaccio/types": "10.5.0"
36
+ "@verdaccio/legacy-types": "1.0.1"
37
37
  },
38
38
  "funding": {
39
39
  "type": "opencollective",
@@ -47,6 +47,5 @@
47
47
  "build:js": "babel src/ --out-dir lib/ --copy-files --extensions \".ts,.tsx\" --source-maps",
48
48
  "watch": "pnpm build:js -- --watch",
49
49
  "build": "pnpm run build:js && pnpm run build:types"
50
- },
51
- "readme": "# verdaccio-memory\n\n[![CircleCI](https://circleci.com/gh/verdaccio/verdaccio-memory.svg?style=svg)](https://circleci.com/gh/ayusharma/verdaccio-memory)\n[![codecov](https://codecov.io/gh/verdaccio/verdaccio-memory/branch/master/graph/badge.svg)](https://codecov.io/gh/verdaccio/verdaccio-memory)\n[![verdaccio (latest)](https://img.shields.io/npm/v/verdaccio-memory/latest.svg)](https://www.npmjs.com/package/verdaccio-memory)\n[![Known Vulnerabilities](https://snyk.io/test/github/verdaccio/verdaccio-memory/badge.svg?targetFile=package.json)](https://snyk.io/test/github/verdaccio/verdaccio-memory?targetFile=package.json)\n[![backers](https://opencollective.com/verdaccio/tiers/backer/badge.svg?label=Backer&color=brightgreen)](https://opencollective.com/verdaccio)\n[![discord](https://img.shields.io/discord/388674437219745793.svg)](http://chat.verdaccio.org/)\n![MIT](https://img.shields.io/github/license/mashape/apistatus.svg)\n[![node](https://img.shields.io/node/v/verdaccio-memory/latest.svg)](https://www.npmjs.com/package/verdaccio-memory)\n\n\nA memory based **storage plugin**.\n\n```\n npm install --global verdaccio-memory\n```\n\n### Requirements\n\n>`verdaccio@3.0.0` or `verdaccio@4.x`\n\n```\nnpm install -g verdaccio\n```\n\nComplete configuration example:\n\n```yaml\nstore:\n memory:\n limit: 1000\n```\n\nin `config.yaml`\n\nIf `store:` is present `storage:` fallback is being ignored.\n\n```yaml\nstorage: /Users/user/.local/share/verdaccio/storage\nauth:\n htpasswd:\n file: ./htpasswd\nstore:\n memory:\n limit: 1000\n```\n\n## Disclaimer\n\nThis plugin should not be use for production environments. It might be useful for testing or such places as CI where data does not need to be persisted.\n\n## License\n\n[MIT](http://www.opensource.org/licenses/mit-license.php)\n"
50
+ }
52
51
  }