verdaccio-memory 10.1.0 → 10.3.0

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/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["LocalMemory"],"mappings":";;;;;;;;;;;;;AAAA;;;;eAIeA,oB","sourcesContent":["import LocalMemory from './local-memory';\n\nexport { LocalMemory };\n\nexport default LocalMemory;\n"],"file":"index.js"}
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 +1 @@
1
- {"version":3,"sources":["../src/local-memory.ts"],"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","deleteToken","user","tokenKey","readTokens","filter"],"mappings":"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","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"],"file":"local-memory.js"}
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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"}
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _path = _interopRequireDefault(require("path"));
9
+
8
10
  var _commonsApi = require("@verdaccio/commons-api");
9
11
 
10
12
  var _memoryFs = _interopRequireDefault(require("memory-fs"));
@@ -33,7 +35,7 @@ class MemoryHandler {
33
35
  this.data = data;
34
36
  this.name = packageName;
35
37
  this.logger = logger;
36
- this.path = '/';
38
+ this.path = `/${packageName}`;
37
39
  }
38
40
 
39
41
  updatePackage(pkgFileName, updateHandler, onWrite, transformPackage, onEnd) {
@@ -97,43 +99,49 @@ class MemoryHandler {
97
99
 
98
100
  writeTarball(name) {
99
101
  const uploadStream = new _streams.UploadTarball({});
100
- const temporalName = `/${name}`;
102
+ const temporalName = `${this.path}/${name}`;
101
103
  process.nextTick(function () {
102
- fs.stat(temporalName, function (fileError, stats) {
103
- if (!fileError && stats) {
104
- return uploadStream.emit('error', (0, _commonsApi.getConflict)());
104
+ fs.mkdirp(_path.default.dirname(temporalName), function (mkdirpError) {
105
+ if (mkdirpError) {
106
+ return uploadStream.emit('error', mkdirpError);
105
107
  }
106
108
 
107
- try {
108
- const file = fs.createWriteStream(temporalName);
109
- uploadStream.pipe(file);
109
+ fs.stat(temporalName, function (fileError, stats) {
110
+ if (!fileError && stats) {
111
+ return uploadStream.emit('error', (0, _commonsApi.getConflict)());
112
+ }
110
113
 
111
- uploadStream.done = function () {
112
- const onEnd = function () {
113
- uploadStream.emit('success');
114
- };
114
+ try {
115
+ const file = fs.createWriteStream(temporalName);
116
+ uploadStream.pipe(file);
115
117
 
116
- uploadStream.on('end', onEnd);
117
- };
118
+ uploadStream.done = function () {
119
+ const onEnd = function () {
120
+ uploadStream.emit('success');
121
+ };
118
122
 
119
- uploadStream.abort = function () {
120
- uploadStream.emit('error', (0, _commonsApi.getBadRequest)('transmision aborted'));
121
- file.end();
122
- };
123
+ uploadStream.on('end', onEnd);
124
+ };
123
125
 
124
- uploadStream.emit('open');
125
- return;
126
- } catch (err) {
127
- uploadStream.emit('error', err);
128
- return;
129
- }
126
+ uploadStream.abort = function () {
127
+ uploadStream.emit('error', (0, _commonsApi.getBadRequest)('transmision aborted'));
128
+ file.end();
129
+ };
130
+
131
+ uploadStream.emit('open');
132
+ return;
133
+ } catch (err) {
134
+ uploadStream.emit('error', err);
135
+ return;
136
+ }
137
+ });
130
138
  });
131
139
  });
132
140
  return uploadStream;
133
141
  }
134
142
 
135
143
  readTarball(name) {
136
- const pathName = `/${name}`;
144
+ const pathName = `${this.path}/${name}`;
137
145
  const readTarballStream = new _streams.ReadTarball({});
138
146
  process.nextTick(function () {
139
147
  fs.stat(pathName, function (fileError, stats) {
@@ -143,7 +151,8 @@ class MemoryHandler {
143
151
 
144
152
  try {
145
153
  const readStream = fs.createReadStream(pathName);
146
- const contentLength = fs.data[name] && fs.data[name].length || 0;
154
+ const pathMeta = fs.meta(pathName);
155
+ const contentLength = pathMeta && pathMeta.length || 0;
147
156
  readTarballStream.emit('content-length', contentLength);
148
157
  readTarballStream.emit('open');
149
158
  readStream.pipe(readTarballStream);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/memory-handler.ts"],"names":["fs","MemoryFileSystem","MemoryHandler","constructor","packageName","data","logger","name","path","updatePackage","pkgFileName","updateHandler","onWrite","transformPackage","onEnd","json","_getStorage","pkg","err","deletePackage","pkgName","callback","removePackage","createPackage","value","cb","savePackage","message","readPackage","isJson","writeTarball","uploadStream","UploadTarball","temporalName","process","nextTick","stat","fileError","stats","emit","file","createWriteStream","pipe","done","on","abort","end","readTarball","pathName","readTarballStream","ReadTarball","readStream","createReadStream","contentLength","length","error","destroy"],"mappings":"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","sourcesContent":["import { VerdaccioError, getBadRequest, getInternalError, getConflict, getNotFound } 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 = '/';\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) {\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 = `/${name}`;\n\n process.nextTick(function() {\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 return uploadStream;\n }\n\n public readTarball(name: string): IReadTarball {\n const pathName = `/${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 contentLength: number = (fs.data[name] && fs.data[name].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"],"file":"memory-handler.js"}
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":"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"}
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["stringifyPackage","pkg","JSON","stringify","parsePackage","parse"],"mappings":";;;;;;;;AAEO,SAASA,gBAAT,CAA0BC,GAA1B,EAAwC;AAC7C,SAAOC,IAAI,CAACC,SAAL,CAAeF,GAAf,EAAoB,IAApB,EAA0B,IAA1B,CAAP;AACD;;AAEM,SAASG,YAAT,CAAsBH,GAAtB,EAAmC;AACxC,SAAOC,IAAI,CAACG,KAAL,CAAWJ,GAAX,CAAP;AACD","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"],"file":"utils.js"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "verdaccio-memory",
3
- "version": "10.1.0",
3
+ "version": "10.3.0",
4
4
  "description": "Storage implementation in memory",
5
5
  "keywords": [
6
6
  "verdaccio",
@@ -28,12 +28,12 @@
28
28
  "node": ">=8"
29
29
  },
30
30
  "dependencies": {
31
- "@verdaccio/commons-api": "10.1.0",
32
- "@verdaccio/streams": "10.1.0",
31
+ "@verdaccio/commons-api": "10.2.0",
32
+ "@verdaccio/streams": "10.2.0",
33
33
  "memory-fs": "0.5.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@verdaccio/types": "10.1.0"
36
+ "@verdaccio/types": "10.5.0"
37
37
  },
38
38
  "funding": {
39
39
  "type": "opencollective",
@@ -47,5 +47,6 @@
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
- }
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"
51
52
  }