@verdaccio/local-storage 11.0.0-6-next.44 → 11.0.0-6-next.46

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.
@@ -17,13 +17,12 @@ var _fs = require("./fs");
17
17
  var _localFs = _interopRequireWildcard(require("./local-fs"));
18
18
  var _pkgUtils = require("./pkg-utils");
19
19
  var _utils2 = require("./utils");
20
+ var _process$env$VERDACCI; // import LRU from 'lru-cache';
20
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
- // import LRU from 'lru-cache';
24
-
25
24
  const TOKEN_DB_NAME = '.token-db.json';
26
- const DB_NAME = process.env.VERDACCIO_STORAGE_NAME ?? _core.fileUtils.Files.DatabaseName;
25
+ const DB_NAME = (_process$env$VERDACCI = process.env.VERDACCIO_STORAGE_NAME) !== null && _process$env$VERDACCI !== void 0 ? _process$env$VERDACCI : _core.fileUtils.Files.DatabaseName;
27
26
  const debug = (0, _debug.default)('verdaccio:plugin:local-storage');
28
27
  const ERROR_DB_LOCKED = 'Database is locked, please check error message printed during startup to prevent data loss';
29
28
  exports.ERROR_DB_LOCKED = ERROR_DB_LOCKED;
@@ -1 +1 @@
1
- {"version":3,"file":"local-database.js","names":["_debug","_interopRequireDefault","require","_lodash","_lowdb","_FileAsync","_Memory","_path","_core","_utils","_dirUtils","_fs","_localFs","_interopRequireWildcard","_pkgUtils","_utils2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TOKEN_DB_NAME","DB_NAME","process","env","VERDACCIO_STORAGE_NAME","fileUtils","Files","DatabaseName","debug","buildDebug","ERROR_DB_LOCKED","exports","LocalDatabase","pluginUtils","Plugin","constructor","config","logger","tokenDb","locked","data","undefined","configPath","path","_dbGenPath","storages","_getCustomPackageLocalStorages","info","init","fetchLocalPackages","_sync","getSecret","Error","Promise","resolve","secret","setSecret","add","name","list","indexOf","push","getStoragePath","storage","TypeError","storagePath","isAbsolute","normalize","join","getBaseConfigPath","dirname","filterByQuery","results","query","filter","item","_item$name","match","text","getScore","_pkg","final","detail","maintenance","popularity","quality","search","packagesOnStorage","searchOnStorage","length","isPrivate","includes","score","package","verdaccioPrivate","verdaccioPkgCached","remove","pkgName","splice","err","error","errorUtils","getInternalError","totalItems","getPackageStorage","packageName","packageAccess","getMatchedPackagesSpec","packages","packagePath","_getLocalStoragePath","_","isString","packageStoragePath","config_path","LocalDriver","clean","Map","keys","map","pkg","folderName","mkdirPromise","recursive","writeFilePromise","JSON","stringify","globalConfigStorage","isNil","loadPrivatePackages","warn","code","noSuchFile","message","getTokenDb","adapter","NODE_ENV","FileMemory","pathDb","FileAsync","low","saveToken","token","db","userData","user","value","write","getState","deleteToken","tokenKey","userTokens","remainingTokens","readTokens","tokens","_default"],"sources":["../src/local-database.ts"],"sourcesContent":["// import LRU from 'lru-cache';\nimport buildDebug from 'debug';\nimport _ from 'lodash';\nimport low from 'lowdb';\nimport FileAsync from 'lowdb/adapters/FileAsync';\nimport FileMemory from 'lowdb/adapters/Memory';\nimport path from 'path';\n\nimport { errorUtils, fileUtils, pluginUtils, searchUtils } from '@verdaccio/core';\nimport { Config, Logger, Token, TokenFilter } from '@verdaccio/types';\nimport { getMatchedPackagesSpec } from '@verdaccio/utils';\n\nimport { searchOnStorage } from './dir-utils';\nimport { mkdirPromise, writeFilePromise } from './fs';\nimport LocalDriver, { noSuchFile } from './local-fs';\nimport { LocalStorage, loadPrivatePackages } from './pkg-utils';\nimport { _dbGenPath } from './utils';\n\nconst TOKEN_DB_NAME = '.token-db.json';\nconst DB_NAME = process.env.VERDACCIO_STORAGE_NAME ?? fileUtils.Files.DatabaseName;\n\nconst debug = buildDebug('verdaccio:plugin:local-storage');\n\nexport const ERROR_DB_LOCKED =\n 'Database is locked, please check error message printed during startup to prevent data loss';\n\ntype Storage = pluginUtils.Storage<{}>;\n\nclass LocalDatabase extends pluginUtils.Plugin<{}> implements Storage {\n private readonly path: string;\n private readonly logger: Logger;\n public readonly config: Config;\n public readonly storages: Map<string, string>;\n public data: LocalStorage | undefined;\n public locked: boolean;\n public tokenDb: low.LowdbAsync<any> | null;\n\n public constructor(config: Config, logger: Logger) {\n // TODO: fix double config\n super(config, { config, logger });\n this.tokenDb = null;\n this.config = config;\n this.logger = logger;\n this.locked = false;\n this.data = undefined;\n debug('config path %o', config.configPath);\n this.path = _dbGenPath(DB_NAME, config);\n this.storages = this._getCustomPackageLocalStorages();\n this.logger.info({ path: this.path }, 'local storage path @{path}');\n debug('plugin storage path %o', this.path);\n }\n\n public async init(): Promise<void> {\n debug('plugin init');\n this.data = await this.fetchLocalPackages();\n debug('local packages loaded');\n await this._sync();\n }\n\n public async getSecret(): Promise<string> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n return Promise.resolve(this.data.secret);\n }\n\n public async setSecret(secret: string): Promise<void> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n } else {\n this.data.secret = secret;\n }\n\n await this._sync();\n }\n\n public async add(name: string): Promise<void> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n if (this.data.list.indexOf(name) === -1) {\n this.data.list.push(name);\n debug('the private package %s has been added', name);\n await this._sync();\n } else {\n debug('the private package %s already exist on database', name);\n return Promise.resolve();\n }\n }\n\n /**\n * The field storage could be absolute or relative.\n * If relative, it will be resolved against the config path.\n * If absolute, it will be returned as is.\n **/\n private getStoragePath() {\n const { storage } = this.config;\n if (typeof storage !== 'string') {\n throw new TypeError('storage field is mandatory');\n }\n\n const storagePath = path.isAbsolute(storage)\n ? storage\n : path.normalize(path.join(this.getBaseConfigPath(), storage));\n debug('storage path %o', storagePath);\n return storagePath;\n }\n\n private getBaseConfigPath(): string {\n return path.dirname(this.config.configPath);\n }\n\n /**\n * Filter and only match those values that the query define.\n **/\n public async filterByQuery(results: searchUtils.SearchItemPkg[], query: searchUtils.SearchQuery) {\n // FUTURE: apply new filters, keyword, version, ...\n return results.filter((item: searchUtils.SearchItemPkg) => {\n return item?.name?.match(query.text) !== null;\n }) as searchUtils.SearchItemPkg[];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public async getScore(_pkg: searchUtils.SearchItemPkg): Promise<searchUtils.Score> {\n // TODO: there is no particular reason to predefined scores\n // could be improved by using\n return Promise.resolve({\n final: 1,\n detail: {\n maintenance: 0,\n popularity: 1,\n quality: 1,\n },\n });\n }\n\n public async search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]> {\n const results: searchUtils.SearchItem[] = [];\n const storagePath = this.getStoragePath();\n const packagesOnStorage = await this.filterByQuery(\n await searchOnStorage(storagePath, this.storages),\n query\n );\n debug('packages found %o', packagesOnStorage.length);\n for (let storage of packagesOnStorage) {\n // check if package is listed on the cache private database\n const isPrivate = (this.data as LocalStorage).list.includes(storage.name);\n const score = await this.getScore(storage);\n results.push({\n package: storage,\n verdaccioPrivate: isPrivate,\n verdaccioPkgCached: !isPrivate,\n score,\n });\n }\n return results;\n }\n\n public async remove(name: string): Promise<void> {\n try {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n const data = await this.get();\n\n const pkgName = data.indexOf(name);\n if (pkgName !== -1) {\n this.data.list.splice(pkgName, 1);\n debug('remove package %o has been removed', name);\n }\n await this._sync();\n } catch (err) {\n this.logger.error({ err }, 'remove the private package has failed @{err}');\n throw errorUtils.getInternalError('error remove private package');\n }\n }\n\n public async get(): Promise<any> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n const { list } = this.data;\n const totalItems = list?.length;\n debug('get full list of packages (%o) has been fetched', totalItems);\n return Promise.resolve(list);\n }\n\n public getPackageStorage(packageName: string): pluginUtils.StorageHandler {\n const packageAccess = getMatchedPackagesSpec(packageName, this.config.packages);\n\n const packagePath: string = this._getLocalStoragePath(\n packageAccess ? packageAccess.storage : undefined\n );\n debug('storage path selected: ', packagePath);\n if (_.isString(packagePath) === false) {\n debug('the package %o has no storage defined ', packageName);\n throw errorUtils.getInternalError('storage not found or implemented');\n }\n\n const packageStoragePath: string = path.join(\n // FIXME: use getBaseStoragePath instead\n path.resolve(path.dirname(this.config.config_path || ''), packagePath),\n packageName\n );\n\n debug('storage absolute path: ', packageStoragePath);\n\n return new LocalDriver(packageStoragePath, this.logger);\n }\n\n public async clean(): Promise<void> {\n await this._sync();\n }\n\n private _getCustomPackageLocalStorages(): Map<string, string> {\n const storages = new Map<string, string>();\n const { packages } = this.config;\n\n if (packages) {\n Object.keys(packages || {}).map((pkg) => {\n const { storage } = packages[pkg];\n if (typeof storage === 'string') {\n const storagePath = path.join(this.getStoragePath(), storage);\n debug('add custom storage for %s on %s', storage, storagePath);\n storages.set(storage, storagePath);\n }\n });\n }\n\n return storages;\n }\n\n private async _sync(): Promise<null> {\n debug('sync database started');\n\n if (this.locked) {\n this.logger.error(ERROR_DB_LOCKED);\n throw new Error(ERROR_DB_LOCKED);\n }\n // Uses sync to prevent ugly race condition\n try {\n const folderName = path.dirname(this.path);\n debug('creating folder %o', folderName);\n await mkdirPromise(folderName, { recursive: true });\n debug('creating folder %o created succeed', folderName);\n } catch (err) {\n this.logger.error({ err }, 'sync create folder has failed with error: @{err}');\n throw err;\n }\n\n try {\n await writeFilePromise(this.path, JSON.stringify(this.data));\n debug('sync write succeeded');\n\n return null;\n } catch (err: any) {\n this.logger.error({ err }, 'sync database file failed: @{err}');\n throw err;\n }\n }\n\n private _getLocalStoragePath(storage: string | void): string {\n const globalConfigStorage = this.getStoragePath();\n if (_.isNil(globalConfigStorage)) {\n this.logger.error('property storage in config.yaml is required for using this plugin');\n throw new Error('property storage in config.yaml is required for using this plugin');\n } else {\n if (typeof storage === 'string') {\n return path.join(globalConfigStorage as string, storage as string);\n }\n\n return globalConfigStorage as string;\n }\n }\n\n private async fetchLocalPackages(): Promise<LocalStorage> {\n try {\n return await loadPrivatePackages(this.path, this.logger);\n } catch (err: any) {\n // readFileSync is platform specific, macOS, Linux and Windows thrown an error\n // Only recreate if file not found to prevent data loss\n this.logger.warn(\n { path: this.path },\n 'no private database found, recreating new one on @{path}'\n );\n if (err.code !== noSuchFile) {\n this.locked = true;\n this.logger.error(\n 'Failed to read package database file, please check the error printed below:\\n',\n `File Path: ${this.path}\\n\\n ${err.message}`\n );\n }\n // if no database is found we set empty placeholders\n return { list: [], secret: '' };\n }\n }\n\n private async getTokenDb(): Promise<low.LowdbAsync<any>> {\n if (!this.tokenDb) {\n debug('token database is not defined');\n let adapter;\n if (process.env.NODE_ENV === 'test') {\n debug('token memory adapter');\n adapter = new FileMemory('');\n } else {\n debug('token async adapter');\n const pathDb = _dbGenPath(TOKEN_DB_NAME, this.config);\n adapter = new FileAsync(pathDb);\n }\n debug('token bd generated');\n this.tokenDb = await low(adapter);\n }\n\n return this.tokenDb;\n }\n\n public async saveToken(token: Token): Promise<void> {\n debug('token key %o', token.key);\n const db = await this.getTokenDb();\n const userData = await db.get(token.user).value();\n debug('user data %o', userData);\n if (_.isNil(userData)) {\n await db.set(token.user, [token]).write();\n debug('token user %o new database', token.user);\n } else {\n // types does not match with valid implementation\n // @ts-ignore\n await db.get(token.user).push(token).write();\n }\n debug('data %o', await db.getState());\n debug('token saved %o', token.user);\n }\n\n public async deleteToken(user: string, tokenKey: string): Promise<void> {\n const db = await this.getTokenDb();\n const userTokens = await db.get(user).value();\n if (_.isNil(userTokens)) {\n throw new Error('user not found');\n }\n debug('tokens %o - %o', userTokens, userTokens.length);\n const remainingTokens = userTokens.filter(({ key }) => {\n debug('key %o', key);\n return key !== tokenKey;\n });\n await db.set(user, remainingTokens).write();\n debug('removed tokens key %o', tokenKey);\n }\n\n public async readTokens(filter: TokenFilter): Promise<Token[]> {\n const { user } = filter;\n debug('read tokens with %o', user);\n const db = await this.getTokenDb();\n const tokens = await db.get(user).value();\n return tokens || [];\n }\n}\n\nexport default LocalDatabase;\n"],"mappings":"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"}
1
+ {"version":3,"file":"local-database.js","names":["_debug","_interopRequireDefault","require","_lodash","_lowdb","_FileAsync","_Memory","_path","_core","_utils","_dirUtils","_fs","_localFs","_interopRequireWildcard","_pkgUtils","_utils2","_process$env$VERDACCI","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TOKEN_DB_NAME","DB_NAME","process","env","VERDACCIO_STORAGE_NAME","fileUtils","Files","DatabaseName","debug","buildDebug","ERROR_DB_LOCKED","exports","LocalDatabase","pluginUtils","Plugin","constructor","config","logger","tokenDb","locked","data","undefined","configPath","path","_dbGenPath","storages","_getCustomPackageLocalStorages","info","init","fetchLocalPackages","_sync","getSecret","Error","Promise","resolve","secret","setSecret","add","name","list","indexOf","push","getStoragePath","storage","TypeError","storagePath","isAbsolute","normalize","join","getBaseConfigPath","dirname","filterByQuery","results","query","filter","item","_item$name","match","text","getScore","_pkg","final","detail","maintenance","popularity","quality","search","packagesOnStorage","searchOnStorage","length","isPrivate","includes","score","package","verdaccioPrivate","verdaccioPkgCached","remove","pkgName","splice","err","error","errorUtils","getInternalError","totalItems","getPackageStorage","packageName","packageAccess","getMatchedPackagesSpec","packages","packagePath","_getLocalStoragePath","_","isString","packageStoragePath","config_path","LocalDriver","clean","Map","keys","map","pkg","folderName","mkdirPromise","recursive","writeFilePromise","JSON","stringify","globalConfigStorage","isNil","loadPrivatePackages","warn","code","noSuchFile","message","getTokenDb","adapter","NODE_ENV","FileMemory","pathDb","FileAsync","low","saveToken","token","db","userData","user","value","write","getState","deleteToken","tokenKey","userTokens","remainingTokens","readTokens","tokens","_default"],"sources":["../src/local-database.ts"],"sourcesContent":["// import LRU from 'lru-cache';\nimport buildDebug from 'debug';\nimport _ from 'lodash';\nimport low from 'lowdb';\nimport FileAsync from 'lowdb/adapters/FileAsync';\nimport FileMemory from 'lowdb/adapters/Memory';\nimport path from 'path';\n\nimport { errorUtils, fileUtils, pluginUtils, searchUtils } from '@verdaccio/core';\nimport { Config, Logger, Token, TokenFilter } from '@verdaccio/types';\nimport { getMatchedPackagesSpec } from '@verdaccio/utils';\n\nimport { searchOnStorage } from './dir-utils';\nimport { mkdirPromise, writeFilePromise } from './fs';\nimport LocalDriver, { noSuchFile } from './local-fs';\nimport { LocalStorage, loadPrivatePackages } from './pkg-utils';\nimport { _dbGenPath } from './utils';\n\nconst TOKEN_DB_NAME = '.token-db.json';\nconst DB_NAME = process.env.VERDACCIO_STORAGE_NAME ?? fileUtils.Files.DatabaseName;\n\nconst debug = buildDebug('verdaccio:plugin:local-storage');\n\nexport const ERROR_DB_LOCKED =\n 'Database is locked, please check error message printed during startup to prevent data loss';\n\ntype Storage = pluginUtils.Storage<{}>;\n\nclass LocalDatabase extends pluginUtils.Plugin<{}> implements Storage {\n private readonly path: string;\n private readonly logger: Logger;\n public readonly config: Config;\n public readonly storages: Map<string, string>;\n public data: LocalStorage | undefined;\n public locked: boolean;\n public tokenDb: low.LowdbAsync<any> | null;\n\n public constructor(config: Config, logger: Logger) {\n // TODO: fix double config\n super(config, { config, logger });\n this.tokenDb = null;\n this.config = config;\n this.logger = logger;\n this.locked = false;\n this.data = undefined;\n debug('config path %o', config.configPath);\n this.path = _dbGenPath(DB_NAME, config);\n this.storages = this._getCustomPackageLocalStorages();\n this.logger.info({ path: this.path }, 'local storage path @{path}');\n debug('plugin storage path %o', this.path);\n }\n\n public async init(): Promise<void> {\n debug('plugin init');\n this.data = await this.fetchLocalPackages();\n debug('local packages loaded');\n await this._sync();\n }\n\n public async getSecret(): Promise<string> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n return Promise.resolve(this.data.secret);\n }\n\n public async setSecret(secret: string): Promise<void> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n } else {\n this.data.secret = secret;\n }\n\n await this._sync();\n }\n\n public async add(name: string): Promise<void> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n if (this.data.list.indexOf(name) === -1) {\n this.data.list.push(name);\n debug('the private package %s has been added', name);\n await this._sync();\n } else {\n debug('the private package %s already exist on database', name);\n return Promise.resolve();\n }\n }\n\n /**\n * The field storage could be absolute or relative.\n * If relative, it will be resolved against the config path.\n * If absolute, it will be returned as is.\n **/\n private getStoragePath() {\n const { storage } = this.config;\n if (typeof storage !== 'string') {\n throw new TypeError('storage field is mandatory');\n }\n\n const storagePath = path.isAbsolute(storage)\n ? storage\n : path.normalize(path.join(this.getBaseConfigPath(), storage));\n debug('storage path %o', storagePath);\n return storagePath;\n }\n\n private getBaseConfigPath(): string {\n return path.dirname(this.config.configPath);\n }\n\n /**\n * Filter and only match those values that the query define.\n **/\n public async filterByQuery(results: searchUtils.SearchItemPkg[], query: searchUtils.SearchQuery) {\n // FUTURE: apply new filters, keyword, version, ...\n return results.filter((item: searchUtils.SearchItemPkg) => {\n return item?.name?.match(query.text) !== null;\n }) as searchUtils.SearchItemPkg[];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public async getScore(_pkg: searchUtils.SearchItemPkg): Promise<searchUtils.Score> {\n // TODO: there is no particular reason to predefined scores\n // could be improved by using\n return Promise.resolve({\n final: 1,\n detail: {\n maintenance: 0,\n popularity: 1,\n quality: 1,\n },\n });\n }\n\n public async search(query: searchUtils.SearchQuery): Promise<searchUtils.SearchItem[]> {\n const results: searchUtils.SearchItem[] = [];\n const storagePath = this.getStoragePath();\n const packagesOnStorage = await this.filterByQuery(\n await searchOnStorage(storagePath, this.storages),\n query\n );\n debug('packages found %o', packagesOnStorage.length);\n for (let storage of packagesOnStorage) {\n // check if package is listed on the cache private database\n const isPrivate = (this.data as LocalStorage).list.includes(storage.name);\n const score = await this.getScore(storage);\n results.push({\n package: storage,\n verdaccioPrivate: isPrivate,\n verdaccioPkgCached: !isPrivate,\n score,\n });\n }\n return results;\n }\n\n public async remove(name: string): Promise<void> {\n try {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n const data = await this.get();\n\n const pkgName = data.indexOf(name);\n if (pkgName !== -1) {\n this.data.list.splice(pkgName, 1);\n debug('remove package %o has been removed', name);\n }\n await this._sync();\n } catch (err) {\n this.logger.error({ err }, 'remove the private package has failed @{err}');\n throw errorUtils.getInternalError('error remove private package');\n }\n }\n\n public async get(): Promise<any> {\n if (typeof this.data === 'undefined') {\n throw Error('no data secret available');\n }\n\n const { list } = this.data;\n const totalItems = list?.length;\n debug('get full list of packages (%o) has been fetched', totalItems);\n return Promise.resolve(list);\n }\n\n public getPackageStorage(packageName: string): pluginUtils.StorageHandler {\n const packageAccess = getMatchedPackagesSpec(packageName, this.config.packages);\n\n const packagePath: string = this._getLocalStoragePath(\n packageAccess ? packageAccess.storage : undefined\n );\n debug('storage path selected: ', packagePath);\n if (_.isString(packagePath) === false) {\n debug('the package %o has no storage defined ', packageName);\n throw errorUtils.getInternalError('storage not found or implemented');\n }\n\n const packageStoragePath: string = path.join(\n // FIXME: use getBaseStoragePath instead\n path.resolve(path.dirname(this.config.config_path || ''), packagePath),\n packageName\n );\n\n debug('storage absolute path: ', packageStoragePath);\n\n return new LocalDriver(packageStoragePath, this.logger);\n }\n\n public async clean(): Promise<void> {\n await this._sync();\n }\n\n private _getCustomPackageLocalStorages(): Map<string, string> {\n const storages = new Map<string, string>();\n const { packages } = this.config;\n\n if (packages) {\n Object.keys(packages || {}).map((pkg) => {\n const { storage } = packages[pkg];\n if (typeof storage === 'string') {\n const storagePath = path.join(this.getStoragePath(), storage);\n debug('add custom storage for %s on %s', storage, storagePath);\n storages.set(storage, storagePath);\n }\n });\n }\n\n return storages;\n }\n\n private async _sync(): Promise<null> {\n debug('sync database started');\n\n if (this.locked) {\n this.logger.error(ERROR_DB_LOCKED);\n throw new Error(ERROR_DB_LOCKED);\n }\n // Uses sync to prevent ugly race condition\n try {\n const folderName = path.dirname(this.path);\n debug('creating folder %o', folderName);\n await mkdirPromise(folderName, { recursive: true });\n debug('creating folder %o created succeed', folderName);\n } catch (err) {\n this.logger.error({ err }, 'sync create folder has failed with error: @{err}');\n throw err;\n }\n\n try {\n await writeFilePromise(this.path, JSON.stringify(this.data));\n debug('sync write succeeded');\n\n return null;\n } catch (err: any) {\n this.logger.error({ err }, 'sync database file failed: @{err}');\n throw err;\n }\n }\n\n private _getLocalStoragePath(storage: string | void): string {\n const globalConfigStorage = this.getStoragePath();\n if (_.isNil(globalConfigStorage)) {\n this.logger.error('property storage in config.yaml is required for using this plugin');\n throw new Error('property storage in config.yaml is required for using this plugin');\n } else {\n if (typeof storage === 'string') {\n return path.join(globalConfigStorage as string, storage as string);\n }\n\n return globalConfigStorage as string;\n }\n }\n\n private async fetchLocalPackages(): Promise<LocalStorage> {\n try {\n return await loadPrivatePackages(this.path, this.logger);\n } catch (err: any) {\n // readFileSync is platform specific, macOS, Linux and Windows thrown an error\n // Only recreate if file not found to prevent data loss\n this.logger.warn(\n { path: this.path },\n 'no private database found, recreating new one on @{path}'\n );\n if (err.code !== noSuchFile) {\n this.locked = true;\n this.logger.error(\n 'Failed to read package database file, please check the error printed below:\\n',\n `File Path: ${this.path}\\n\\n ${err.message}`\n );\n }\n // if no database is found we set empty placeholders\n return { list: [], secret: '' };\n }\n }\n\n private async getTokenDb(): Promise<low.LowdbAsync<any>> {\n if (!this.tokenDb) {\n debug('token database is not defined');\n let adapter;\n if (process.env.NODE_ENV === 'test') {\n debug('token memory adapter');\n adapter = new FileMemory('');\n } else {\n debug('token async adapter');\n const pathDb = _dbGenPath(TOKEN_DB_NAME, this.config);\n adapter = new FileAsync(pathDb);\n }\n debug('token bd generated');\n this.tokenDb = await low(adapter);\n }\n\n return this.tokenDb;\n }\n\n public async saveToken(token: Token): Promise<void> {\n debug('token key %o', token.key);\n const db = await this.getTokenDb();\n const userData = await db.get(token.user).value();\n debug('user data %o', userData);\n if (_.isNil(userData)) {\n await db.set(token.user, [token]).write();\n debug('token user %o new database', token.user);\n } else {\n // types does not match with valid implementation\n // @ts-ignore\n await db.get(token.user).push(token).write();\n }\n debug('data %o', await db.getState());\n debug('token saved %o', token.user);\n }\n\n public async deleteToken(user: string, tokenKey: string): Promise<void> {\n const db = await this.getTokenDb();\n const userTokens = await db.get(user).value();\n if (_.isNil(userTokens)) {\n throw new Error('user not found');\n }\n debug('tokens %o - %o', userTokens, userTokens.length);\n const remainingTokens = userTokens.filter(({ key }) => {\n debug('key %o', key);\n return key !== tokenKey;\n });\n await db.set(user, remainingTokens).write();\n debug('removed tokens key %o', tokenKey);\n }\n\n public async readTokens(filter: TokenFilter): Promise<Token[]> {\n const { user } = filter;\n debug('read tokens with %o', user);\n const db = await this.getTokenDb();\n const tokens = await db.get(user).value();\n return tokens || [];\n }\n}\n\nexport default LocalDatabase;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/local-storage",
3
- "version": "11.0.0-6-next.44",
3
+ "version": "11.0.0-6-next.46",
4
4
  "description": "Local storage implementation",
5
5
  "keywords": [
6
6
  "private",
@@ -37,9 +37,9 @@
37
37
  "npm": ">=7"
38
38
  },
39
39
  "dependencies": {
40
- "@verdaccio/core": "6.0.0-6-next.74",
40
+ "@verdaccio/core": "6.0.0-6-next.76",
41
41
  "@verdaccio/file-locking": "11.0.0-6-next.7",
42
- "@verdaccio/utils": "6.0.0-6-next.42",
42
+ "@verdaccio/utils": "6.0.0-6-next.44",
43
43
  "core-js": "3.30.2",
44
44
  "debug": "4.3.4",
45
45
  "globby": "11.1.0",
@@ -52,8 +52,8 @@
52
52
  "devDependencies": {
53
53
  "@types/minimatch": "3.0.5",
54
54
  "@verdaccio/types": "11.0.0-6-next.25",
55
- "@verdaccio/config": "6.0.0-6-next.74",
56
- "@verdaccio/logger": "6.0.0-6-next.42",
55
+ "@verdaccio/config": "6.0.0-6-next.76",
56
+ "@verdaccio/logger": "6.0.0-6-next.44",
57
57
  "@verdaccio/test-helper": "2.0.0-6-next.8",
58
58
  "minimatch": "3.1.2"
59
59
  },