@verdaccio/local-storage 13.0.0-next-8.13 → 13.0.0-next-8.14

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.
@@ -18,14 +18,13 @@ const debug = (0, _debug.default)('verdaccio:plugin:local-storage:utils');
18
18
  * @return a promise that resolves to an array of absolute paths
19
19
  */
20
20
  async function getFolders(storagePath, pattern = '*') {
21
- // @ts-ignore - check why this fails, types are correct
22
21
  const files = await (0, _globby.default)(pattern, {
23
22
  // @ts-ignore
24
23
  cwd: storagePath,
25
24
  expandDirectories: true,
26
25
  onlyDirectories: true,
27
26
  onlyFiles: false,
28
- // should not go deeper than the storage path (10 is reseaon for the storage))
27
+ // should not go deeper than the storage path (10 is reasonable for the storage)
29
28
  deep: 10,
30
29
  dot: false,
31
30
  followSymbolicLinks: true,
@@ -73,7 +72,7 @@ async function searchOnStorage(storagePath, storages) {
73
72
  // watch base path and ignore storage folders
74
73
  const basePathFolders = (await getFolders(storagePath, '*')).filter(storageFolder => !storageFolders.includes(storageFolder));
75
74
  for (let store of basePathFolders) {
76
- if (_core.validatioUtils.isPackageNameScoped(store)) {
75
+ if (_core.validationUtils.isPackageNameScoped(store)) {
77
76
  const scopedPackages = await getFolders((0, _path.join)(storagePath, store), '*');
78
77
  const listScoped = scopedPackages.map(scoped => ({
79
78
  name: `${store}/${scoped}`,
@@ -91,7 +90,7 @@ async function searchOnStorage(storagePath, storages) {
91
90
  for (const store of storageFolders) {
92
91
  const foldersOnStorage = await getFolders((0, _path.join)(storagePath, store), '*');
93
92
  for (let pkgName of foldersOnStorage) {
94
- if (_core.validatioUtils.isPackageNameScoped(pkgName)) {
93
+ if (_core.validationUtils.isPackageNameScoped(pkgName)) {
95
94
  const scopedPackages = await getFolders((0, _path.join)(storagePath, store, pkgName), '*');
96
95
  const listScoped = scopedPackages.map(scoped => ({
97
96
  name: `${pkgName}/${scoped}`,
@@ -1 +1 @@
1
- {"version":3,"file":"dir-utils.js","names":["_debug","_interopRequireDefault","require","_globby","_path","_core","e","__esModule","default","debug","buildDebug","getFolders","storagePath","pattern","files","globby","cwd","expandDirectories","onlyDirectories","onlyFiles","deep","dot","followSymbolicLinks","caseSensitiveMatch","unique","searchOnStorage","storages","matchedStorages","Array","from","storageFolders","keys","length","results","basePathFolders","filter","storageFolder","includes","store","validatioUtils","isPackageNameScoped","scopedPackages","join","listScoped","map","scoped","name","push","foldersOnStorage","pkgName"],"sources":["../src/dir-utils.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport globby from 'globby';\nimport { join } from 'path';\n\nimport { searchUtils, validatioUtils } from '@verdaccio/core';\n\nconst debug = buildDebug('verdaccio:plugin:local-storage:utils');\n\n/**\n * Retrieve a list of absolute paths to all folders in the given storage path\n * @param storagePath the base path of the storage\n * @return a promise that resolves to an array of absolute paths\n */\nexport async function getFolders(storagePath: string, pattern = '*'): Promise<string[]> {\n // @ts-ignore - check why this fails, types are correct\n const files = await globby(pattern, {\n // @ts-ignore\n cwd: storagePath,\n expandDirectories: true,\n onlyDirectories: true,\n onlyFiles: false,\n // should not go deeper than the storage path (10 is reseaon for the storage))\n deep: 10,\n dot: false,\n followSymbolicLinks: true,\n caseSensitiveMatch: true,\n unique: true,\n // FIXME: add here list of forbiden patterns\n // don't include scoped folders.\n // ignore: [`@*`],\n });\n return files;\n}\n\n/**\n * Search packages on the the storage. The storage could be\n * - storage\n * - pkg1\n * - @company\n * - pkg2 -> @scompany/pkg2\n * - storage1\n * - pkg2\n * - pkg3\n * - storage2\n * - @scope\n * - pkg4 > @scope/pkg4\n * The search return a data structure like:\n * [\n * {\n * name: 'pkg1', // package name could be @scope/pkg1\n * path: absolute/path/package/name\n * }\n * ]\n * @param {string} storagePath is the base path of the storage folder,\n * inside could be packages, storages and @scope packages.\n * @param {Set<string>} storages storages are defined peer package access pattern via `storage` property\n * @param query is the search query from the user via npm search command.\n * and are intended to organize packages in a tree structure.\n * @returns {Promise<searchUtils.SearchItemPkg[]>}\n */\nexport async function searchOnStorage(\n storagePath: string,\n storages: Map<string, string>\n): Promise<searchUtils.SearchItemPkg[]> {\n const matchedStorages = Array.from(storages);\n const storageFolders = Array.from(storages.keys());\n debug('search on %o', storagePath);\n debug('storage folders %o', matchedStorages.length);\n let results: searchUtils.SearchItemPkg[] = [];\n // watch base path and ignore storage folders\n const basePathFolders = (await getFolders(storagePath, '*')).filter(\n (storageFolder) => !storageFolders.includes(storageFolder)\n );\n\n for (let store of basePathFolders) {\n if (validatioUtils.isPackageNameScoped(store)) {\n const scopedPackages = await getFolders(join(storagePath, store), '*');\n const listScoped = scopedPackages.map((scoped) => ({\n name: `${store}/${scoped}`,\n scoped: store,\n }));\n results.push(...listScoped);\n } else {\n results.push({\n name: store,\n });\n }\n }\n\n // iterate each storage folder\n for (const store of storageFolders) {\n const foldersOnStorage = await getFolders(join(storagePath, store), '*');\n for (let pkgName of foldersOnStorage) {\n if (validatioUtils.isPackageNameScoped(pkgName)) {\n const scopedPackages = await getFolders(join(storagePath, store, pkgName), '*');\n const listScoped = scopedPackages.map((scoped) => ({\n name: `${pkgName}/${scoped}`,\n scoped: pkgName,\n }));\n results.push(...listScoped);\n } else {\n results.push({\n name: pkgName,\n });\n }\n }\n }\n\n return results;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"dir-utils.js","names":["_debug","_interopRequireDefault","require","_globby","_path","_core","e","__esModule","default","debug","buildDebug","getFolders","storagePath","pattern","files","globby","cwd","expandDirectories","onlyDirectories","onlyFiles","deep","dot","followSymbolicLinks","caseSensitiveMatch","unique","searchOnStorage","storages","matchedStorages","Array","from","storageFolders","keys","length","results","basePathFolders","filter","storageFolder","includes","store","validationUtils","isPackageNameScoped","scopedPackages","join","listScoped","map","scoped","name","push","foldersOnStorage","pkgName"],"sources":["../src/dir-utils.ts"],"sourcesContent":["import buildDebug from 'debug';\nimport globby from 'globby';\nimport { join } from 'path';\n\nimport { searchUtils, validationUtils } from '@verdaccio/core';\n\nconst debug = buildDebug('verdaccio:plugin:local-storage:utils');\n\n/**\n * Retrieve a list of absolute paths to all folders in the given storage path\n * @param storagePath the base path of the storage\n * @return a promise that resolves to an array of absolute paths\n */\nexport async function getFolders(storagePath: string, pattern = '*'): Promise<string[]> {\n const files = await globby(pattern, {\n // @ts-ignore\n cwd: storagePath,\n expandDirectories: true,\n onlyDirectories: true,\n onlyFiles: false,\n // should not go deeper than the storage path (10 is reasonable for the storage)\n deep: 10,\n dot: false,\n followSymbolicLinks: true,\n caseSensitiveMatch: true,\n unique: true,\n // FIXME: add here list of forbiden patterns\n // don't include scoped folders.\n // ignore: [`@*`],\n });\n return files;\n}\n\n/**\n * Search packages on the the storage. The storage could be\n * - storage\n * - pkg1\n * - @company\n * - pkg2 -> @scompany/pkg2\n * - storage1\n * - pkg2\n * - pkg3\n * - storage2\n * - @scope\n * - pkg4 > @scope/pkg4\n * The search return a data structure like:\n * [\n * {\n * name: 'pkg1', // package name could be @scope/pkg1\n * path: absolute/path/package/name\n * }\n * ]\n * @param {string} storagePath is the base path of the storage folder,\n * inside could be packages, storages and @scope packages.\n * @param {Set<string>} storages storages are defined peer package access pattern via `storage` property\n * @param query is the search query from the user via npm search command.\n * and are intended to organize packages in a tree structure.\n * @returns {Promise<searchUtils.SearchItemPkg[]>}\n */\nexport async function searchOnStorage(\n storagePath: string,\n storages: Map<string, string>\n): Promise<searchUtils.SearchItemPkg[]> {\n const matchedStorages = Array.from(storages);\n const storageFolders = Array.from(storages.keys());\n debug('search on %o', storagePath);\n debug('storage folders %o', matchedStorages.length);\n let results: searchUtils.SearchItemPkg[] = [];\n // watch base path and ignore storage folders\n const basePathFolders = (await getFolders(storagePath, '*')).filter(\n (storageFolder) => !storageFolders.includes(storageFolder)\n );\n\n for (let store of basePathFolders) {\n if (validationUtils.isPackageNameScoped(store)) {\n const scopedPackages = await getFolders(join(storagePath, store), '*');\n const listScoped = scopedPackages.map((scoped) => ({\n name: `${store}/${scoped}`,\n scoped: store,\n }));\n results.push(...listScoped);\n } else {\n results.push({\n name: store,\n });\n }\n }\n\n // iterate each storage folder\n for (const store of storageFolders) {\n const foldersOnStorage = await getFolders(join(storagePath, store), '*');\n for (let pkgName of foldersOnStorage) {\n if (validationUtils.isPackageNameScoped(pkgName)) {\n const scopedPackages = await getFolders(join(storagePath, store, pkgName), '*');\n const listScoped = scopedPackages.map((scoped) => ({\n name: `${pkgName}/${scoped}`,\n scoped: pkgName,\n }));\n results.push(...listScoped);\n } else {\n results.push({\n name: pkgName,\n });\n }\n }\n }\n\n return results;\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verdaccio/local-storage",
3
- "version": "13.0.0-next-8.13",
3
+ "version": "13.0.0-next-8.14",
4
4
  "description": "Verdaccio Local Storage Plugin",
5
5
  "keywords": [
6
6
  "private",
@@ -36,9 +36,9 @@
36
36
  "node": ">=18"
37
37
  },
38
38
  "dependencies": {
39
- "@verdaccio/core": "8.0.0-next-8.13",
39
+ "@verdaccio/core": "8.0.0-next-8.14",
40
40
  "@verdaccio/file-locking": "13.0.0-next-8.3",
41
- "@verdaccio/utils": "8.1.0-next-8.13",
41
+ "@verdaccio/utils": "8.1.0-next-8.14",
42
42
  "core-js": "3.40.0",
43
43
  "debug": "4.4.0",
44
44
  "globby": "11.1.0",
@@ -50,10 +50,10 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/minimatch": "5.1.2",
53
- "@verdaccio/config": "8.0.0-next-8.13",
54
- "@verdaccio/logger": "8.0.0-next-8.13",
53
+ "@verdaccio/config": "8.0.0-next-8.14",
54
+ "@verdaccio/logger": "8.0.0-next-8.14",
55
55
  "@verdaccio/test-helper": "4.0.0-next-8.4",
56
- "@verdaccio/types": "13.0.0-next-8.4",
56
+ "@verdaccio/types": "13.0.0-next-8.5",
57
57
  "minimatch": "9.0.5"
58
58
  },
59
59
  "funding": {