verdaccio-memory 10.4.0 → 10.4.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 +1 -2
- package/lib/_virtual/__vite-browser-external.js +13 -0
- package/lib/_virtual/__vite-browser-external.js.map +1 -0
- package/lib/_virtual/_rolldown/runtime.js +25 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +10 -14
- package/lib/index.js.map +1 -1
- package/lib/local-memory.d.ts +3 -3
- package/lib/local-memory.js +78 -99
- package/lib/local-memory.js.map +1 -1
- package/lib/memory-handler.d.ts +2 -2
- package/lib/memory-handler.js +133 -151
- package/lib/memory-handler.js.map +1 -1
- package/lib/utils.js +7 -9
- package/lib/utils.js.map +1 -1
- package/package.json +10 -11
package/README.md
CHANGED
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|

|
|
10
10
|
[](https://www.npmjs.com/package/verdaccio-memory)
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
A memory based **storage plugin**.
|
|
14
13
|
|
|
15
14
|
```
|
|
@@ -18,7 +17,7 @@ A memory based **storage plugin**.
|
|
|
18
17
|
|
|
19
18
|
### Requirements
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
> `verdaccio@3.0.0`, `verdaccio@4.x`, `verdaccio@5.x`
|
|
22
21
|
|
|
23
22
|
```
|
|
24
23
|
npm install -g verdaccio
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region __vite-browser-external
|
|
2
|
+
var require___vite_browser_external = /* @__PURE__ */ require("./_rolldown/runtime.js").__commonJSMin(((exports, module) => {
|
|
3
|
+
module.exports = {};
|
|
4
|
+
}));
|
|
5
|
+
//#endregion
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function() {
|
|
9
|
+
return require___vite_browser_external();
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=__vite-browser-external.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"__vite-browser-external.js","names":[],"sources":["../../__vite-browser-external"],"sourcesContent":["module.exports = {}"],"mappings":";;AAAA,QAAO,UAAU,EAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
11
|
+
key = keys[i];
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
|
+
get: ((k) => from[k]).bind(null, key),
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
20
|
+
value: mod,
|
|
21
|
+
enumerable: true
|
|
22
|
+
}) : target, mod));
|
|
23
|
+
//#endregion
|
|
24
|
+
exports.__commonJSMin = __commonJSMin;
|
|
25
|
+
exports.__toESM = __toESM;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
Object.defineProperty(exports, "LocalMemory", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: function () {
|
|
9
|
-
return _localMemory.default;
|
|
10
|
-
}
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
11
4
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
const require_local_memory = require("./local-memory.js");
|
|
6
|
+
//#region src/index.ts
|
|
7
|
+
var src_default = require_local_memory.default;
|
|
8
|
+
//#endregion
|
|
9
|
+
exports.LocalMemory = require_local_memory.default;
|
|
10
|
+
exports.default = src_default;
|
|
11
|
+
|
|
16
12
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import LocalMemory from './local-memory';\n\nexport { LocalMemory };\n\nexport default LocalMemory;\n"],"mappings":";;;;;;AAIA,IAAA,cAAe,qBAAA"}
|
package/lib/local-memory.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
export
|
|
1
|
+
import { Callback, Config, IPluginStorage, Logger, PluginOptions, Token, TokenFilter } from '@verdaccio/legacy-types';
|
|
2
|
+
import { DataHandler, default as MemoryHandler } from './memory-handler';
|
|
3
|
+
export type ConfigMemory = Config & {
|
|
4
4
|
limit?: number;
|
|
5
5
|
};
|
|
6
6
|
export interface MemoryLocalStorage {
|
package/lib/local-memory.js
CHANGED
|
@@ -1,101 +1,80 @@
|
|
|
1
|
-
"
|
|
1
|
+
require("./_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require_memory_handler = require("./memory-handler.js");
|
|
3
|
+
let _verdaccio_core = require("@verdaccio/core");
|
|
4
|
+
//#region src/local-memory.ts
|
|
5
|
+
var DEFAULT_LIMIT = 1e3;
|
|
6
|
+
var LocalMemory = class {
|
|
7
|
+
path;
|
|
8
|
+
limit;
|
|
9
|
+
logger;
|
|
10
|
+
data;
|
|
11
|
+
config;
|
|
12
|
+
constructor(config, options) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.limit = config.limit || DEFAULT_LIMIT;
|
|
15
|
+
this.logger = options.logger;
|
|
16
|
+
this.data = this._createEmtpyDatabase();
|
|
17
|
+
this.path = "/";
|
|
18
|
+
}
|
|
19
|
+
getSecret() {
|
|
20
|
+
return Promise.resolve(this.data.secret);
|
|
21
|
+
}
|
|
22
|
+
setSecret(secret) {
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
this.data.secret = secret;
|
|
25
|
+
resolve(null);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
add(name, cb) {
|
|
29
|
+
const { list } = this.data;
|
|
30
|
+
if (list.length < this.limit) {
|
|
31
|
+
if (list.indexOf(name) === -1) list.push(name);
|
|
32
|
+
cb(null);
|
|
33
|
+
} else {
|
|
34
|
+
this.logger.info({ limit: this.limit }, "Storage memory has reached limit of @{limit} packages");
|
|
35
|
+
cb(/* @__PURE__ */ new Error("Storage memory has reached limit of limit packages"));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
search(onPackage, onEnd, validateName) {
|
|
39
|
+
this.logger.warn("[verdaccio/memory]: search method not implemented, PR is welcome");
|
|
40
|
+
onEnd();
|
|
41
|
+
}
|
|
42
|
+
remove(name, cb) {
|
|
43
|
+
const { list } = this.data;
|
|
44
|
+
const item = list.indexOf(name);
|
|
45
|
+
if (item !== -1) list.splice(item, 1);
|
|
46
|
+
cb(null);
|
|
47
|
+
}
|
|
48
|
+
get(cb) {
|
|
49
|
+
cb(null, this.data.list);
|
|
50
|
+
}
|
|
51
|
+
getPackageStorage(packageInfo) {
|
|
52
|
+
return new require_memory_handler.default(packageInfo, this.data.files, this.logger);
|
|
53
|
+
}
|
|
54
|
+
_createEmtpyDatabase() {
|
|
55
|
+
return {
|
|
56
|
+
list: [],
|
|
57
|
+
files: {},
|
|
58
|
+
secret: ""
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
saveToken(token) {
|
|
62
|
+
this.logger.warn("[verdaccio/memory][saveToken] save token has not been implemented yet");
|
|
63
|
+
return Promise.reject(_verdaccio_core.errorUtils.getServiceUnavailable("method not implemented"));
|
|
64
|
+
}
|
|
65
|
+
deleteToken(user, tokenKey) {
|
|
66
|
+
this.logger.warn({
|
|
67
|
+
tokenKey,
|
|
68
|
+
user
|
|
69
|
+
}, "[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}");
|
|
70
|
+
return Promise.reject(_verdaccio_core.errorUtils.getServiceUnavailable("method not implemented"));
|
|
71
|
+
}
|
|
72
|
+
readTokens(filter) {
|
|
73
|
+
this.logger.warn("[verdaccio/memory][readTokens] read tokens has not been implemented yet ");
|
|
74
|
+
return Promise.reject(_verdaccio_core.errorUtils.getServiceUnavailable("method not implemented"));
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
//#endregion
|
|
78
|
+
exports.default = LocalMemory;
|
|
2
79
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _core = require("@verdaccio/core");
|
|
8
|
-
var _memoryHandler = _interopRequireDefault(require("./memory-handler"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
12
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
-
const DEFAULT_LIMIT = 1000;
|
|
14
|
-
class LocalMemory {
|
|
15
|
-
constructor(config, options) {
|
|
16
|
-
_defineProperty(this, "path", void 0);
|
|
17
|
-
_defineProperty(this, "limit", void 0);
|
|
18
|
-
_defineProperty(this, "logger", void 0);
|
|
19
|
-
_defineProperty(this, "data", void 0);
|
|
20
|
-
_defineProperty(this, "config", void 0);
|
|
21
|
-
this.config = config;
|
|
22
|
-
this.limit = config.limit || DEFAULT_LIMIT;
|
|
23
|
-
this.logger = options.logger;
|
|
24
|
-
this.data = this._createEmtpyDatabase();
|
|
25
|
-
this.path = '/';
|
|
26
|
-
}
|
|
27
|
-
getSecret() {
|
|
28
|
-
return Promise.resolve(this.data.secret);
|
|
29
|
-
}
|
|
30
|
-
setSecret(secret) {
|
|
31
|
-
return new Promise(resolve => {
|
|
32
|
-
this.data.secret = secret;
|
|
33
|
-
resolve(null);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
add(name, cb) {
|
|
37
|
-
const {
|
|
38
|
-
list
|
|
39
|
-
} = this.data;
|
|
40
|
-
if (list.length < this.limit) {
|
|
41
|
-
if (list.indexOf(name) === -1) {
|
|
42
|
-
list.push(name);
|
|
43
|
-
}
|
|
44
|
-
cb(null);
|
|
45
|
-
} else {
|
|
46
|
-
this.logger.info({
|
|
47
|
-
limit: this.limit
|
|
48
|
-
}, 'Storage memory has reached limit of @{limit} packages');
|
|
49
|
-
cb(new Error('Storage memory has reached limit of limit packages'));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
54
|
-
search(onPackage, onEnd, validateName) {
|
|
55
|
-
this.logger.warn('[verdaccio/memory]: search method not implemented, PR is welcome');
|
|
56
|
-
onEnd();
|
|
57
|
-
}
|
|
58
|
-
remove(name, cb) {
|
|
59
|
-
const {
|
|
60
|
-
list
|
|
61
|
-
} = this.data;
|
|
62
|
-
const item = list.indexOf(name);
|
|
63
|
-
if (item !== -1) {
|
|
64
|
-
list.splice(item, 1);
|
|
65
|
-
}
|
|
66
|
-
cb(null);
|
|
67
|
-
}
|
|
68
|
-
get(cb) {
|
|
69
|
-
cb(null, this.data.list);
|
|
70
|
-
}
|
|
71
|
-
getPackageStorage(packageInfo) {
|
|
72
|
-
return new _memoryHandler.default(packageInfo, this.data.files, this.logger);
|
|
73
|
-
}
|
|
74
|
-
_createEmtpyDatabase() {
|
|
75
|
-
const list = [];
|
|
76
|
-
const files = {};
|
|
77
|
-
const emptyDatabase = {
|
|
78
|
-
list,
|
|
79
|
-
files,
|
|
80
|
-
secret: ''
|
|
81
|
-
};
|
|
82
|
-
return emptyDatabase;
|
|
83
|
-
}
|
|
84
|
-
saveToken(token) {
|
|
85
|
-
this.logger.warn('[verdaccio/memory][saveToken] save token has not been implemented yet');
|
|
86
|
-
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
|
|
87
|
-
}
|
|
88
|
-
deleteToken(user, tokenKey) {
|
|
89
|
-
this.logger.warn({
|
|
90
|
-
tokenKey,
|
|
91
|
-
user
|
|
92
|
-
}, '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}');
|
|
93
|
-
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
|
|
94
|
-
}
|
|
95
|
-
readTokens(filter) {
|
|
96
|
-
this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');
|
|
97
|
-
return Promise.reject(_core.errorUtils.getServiceUnavailable('method not implemented'));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
var _default = exports.default = LocalMemory;
|
|
101
80
|
//# sourceMappingURL=local-memory.js.map
|
package/lib/local-memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-memory.js","names":[
|
|
1
|
+
{"version":3,"file":"local-memory.js","names":[],"sources":["../src/local-memory.ts"],"sourcesContent":["import { errorUtils } from '@verdaccio/core';\nimport type {\n Callback,\n Config,\n IPluginStorage,\n Logger,\n PluginOptions,\n Token,\n TokenFilter,\n} from '@verdaccio/legacy-types';\n\nimport type { DataHandler } from './memory-handler';\nimport MemoryHandler 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(\n { limit: this.limit },\n 'Storage memory has reached limit of @{limit} packages'\n );\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(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public deleteToken(user: string, tokenKey: string): Promise<void> {\n this.logger.warn(\n { tokenKey, user },\n '[verdaccio/memory][deleteToken] delete token has not been implemented yet @{user}'\n );\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n\n public readTokens(filter: TokenFilter): Promise<Token[]> {\n this.logger.warn('[verdaccio/memory][readTokens] read tokens has not been implemented yet ');\n\n return Promise.reject(errorUtils.getServiceUnavailable('method not implemented'));\n }\n}\n\nexport default LocalMemory;\n"],"mappings":";;;;AAqBA,IAAM,gBAAgB;AACtB,IAAM,cAAN,MAA0D;CACxD;CACA;CACA;CACA;CACA;CAEA,YAAmB,QAAsB,SAAsC;AAC7E,OAAK,SAAS;AACd,OAAK,QAAQ,OAAO,SAAS;AAC7B,OAAK,SAAS,QAAQ;AACtB,OAAK,OAAO,KAAK,sBAAsB;AACvC,OAAK,OAAO;;CAGd,YAAoC;AAClC,SAAO,QAAQ,QAAQ,KAAK,KAAK,OAAO;;CAG1C,UAAiB,QAAwC;AACvD,SAAO,IAAI,SAAS,YAAkB;AACpC,QAAK,KAAK,SAAS;AACnB,WAAQ,KAAK;IACb;;CAGJ,IAAW,MAAc,IAAoB;EAC3C,MAAM,EAAE,SAAS,KAAK;AAEtB,MAAI,KAAK,SAAS,KAAK,OAAO;AAC5B,OAAI,KAAK,QAAQ,KAAK,KAAK,GACzB,MAAK,KAAK,KAAK;AAEjB,MAAG,KAAK;SACH;AACL,QAAK,OAAO,KACV,EAAE,OAAO,KAAK,OAAO,EACrB,wDACD;AACD,sBAAG,IAAI,MAAM,qDAAqD,CAAC;;;CAKvE,OAAc,WAAqB,OAAiB,cAA8B;AAChF,OAAK,OAAO,KAAK,mEAAmE;AACpF,SAAO;;CAGT,OAAc,MAAc,IAAoB;EAC9C,MAAM,EAAE,SAAS,KAAK;EACtB,MAAM,OAAO,KAAK,QAAQ,KAAK;AAE/B,MAAI,SAAS,GACX,MAAK,OAAO,MAAM,EAAE;AAGtB,KAAG,KAAK;;CAGV,IAAW,IAAoB;AAC7B,KAAG,MAAM,KAAK,KAAK,KAAK;;CAG1B,kBAAyB,aAAoC;AAC3D,SAAO,IAAI,uBAAA,QAAc,aAAa,KAAK,KAAK,OAAO,KAAK,OAAO;;CAGrE,uBAAmD;AASjD,SANsB;GACpB,MAHqB,EAAE;GAIvB,OAHY,EAAE;GAId,QAAQ;GACT;;CAKH,UAAiB,OAA6B;AAC5C,OAAK,OAAO,KAAK,wEAAwE;AAEzF,SAAO,QAAQ,OAAO,gBAAA,WAAW,sBAAsB,yBAAyB,CAAC;;CAGnF,YAAmB,MAAc,UAAiC;AAChE,OAAK,OAAO,KACV;GAAE;GAAU;GAAM,EAClB,oFACD;AAED,SAAO,QAAQ,OAAO,gBAAA,WAAW,sBAAsB,yBAAyB,CAAC;;CAGnF,WAAkB,QAAuC;AACvD,OAAK,OAAO,KAAK,2EAA2E;AAE5F,SAAO,QAAQ,OAAO,gBAAA,WAAW,sBAAsB,yBAAyB,CAAC"}
|
package/lib/memory-handler.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Callback,
|
|
2
|
-
export
|
|
1
|
+
import { Callback, CallbackAction, IPackageStorageManager, IReadTarball, IUploadTarball, Logger, Package, PackageTransformer, ReadPackageCallback, StorageUpdateCallback, StorageWriteCallback } from '@verdaccio/legacy-types';
|
|
2
|
+
export type DataHandler = {
|
|
3
3
|
[key: string]: string;
|
|
4
4
|
};
|
|
5
5
|
declare class MemoryHandler implements IPackageStorageManager {
|
package/lib/memory-handler.js
CHANGED
|
@@ -1,153 +1,135 @@
|
|
|
1
|
-
|
|
1
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.js");
|
|
2
|
+
const require___vite_browser_external$1 = require("./_virtual/__vite-browser-external.js");
|
|
3
|
+
const require_utils = require("./utils.js");
|
|
4
|
+
let _verdaccio_core = require("@verdaccio/core");
|
|
5
|
+
let memory_fs = require("memory-fs");
|
|
6
|
+
memory_fs = require_runtime.__toESM(memory_fs);
|
|
7
|
+
let _verdaccio_streams = require("@verdaccio/streams");
|
|
8
|
+
//#region src/memory-handler.ts
|
|
9
|
+
var import___vite_browser_external = /* @__PURE__ */ require_runtime.__toESM(require___vite_browser_external$1.default);
|
|
10
|
+
var fs = new memory_fs.default();
|
|
11
|
+
var { getBadRequest, getInternalError, getConflict, getNotFound } = _verdaccio_core.errorUtils;
|
|
12
|
+
var MemoryHandler = class {
|
|
13
|
+
data;
|
|
14
|
+
name;
|
|
15
|
+
path;
|
|
16
|
+
logger;
|
|
17
|
+
constructor(packageName, data, logger) {
|
|
18
|
+
this.data = data;
|
|
19
|
+
this.name = packageName;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
this.path = `/${packageName}`;
|
|
22
|
+
}
|
|
23
|
+
updatePackage(pkgFileName, updateHandler, onWrite, transformPackage, onEnd) {
|
|
24
|
+
const json = this._getStorage(pkgFileName);
|
|
25
|
+
let pkg;
|
|
26
|
+
try {
|
|
27
|
+
pkg = require_utils.parsePackage(json);
|
|
28
|
+
} catch (err) {
|
|
29
|
+
return onEnd(err);
|
|
30
|
+
}
|
|
31
|
+
updateHandler(pkg, (err) => {
|
|
32
|
+
if (err) return onEnd(err);
|
|
33
|
+
try {
|
|
34
|
+
onWrite(pkgFileName, transformPackage(pkg), onEnd);
|
|
35
|
+
} catch (err) {
|
|
36
|
+
return onEnd(getInternalError("error on parse the metadata"));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
deletePackage(pkgName, callback) {
|
|
41
|
+
delete this.data[pkgName];
|
|
42
|
+
return callback(null);
|
|
43
|
+
}
|
|
44
|
+
removePackage(callback) {
|
|
45
|
+
return callback(null);
|
|
46
|
+
}
|
|
47
|
+
createPackage(name, value, cb) {
|
|
48
|
+
this.savePackage(name, value, cb);
|
|
49
|
+
}
|
|
50
|
+
savePackage(name, value, cb) {
|
|
51
|
+
try {
|
|
52
|
+
const json = require_utils.stringifyPackage(value);
|
|
53
|
+
this.data[name] = json;
|
|
54
|
+
return cb(null);
|
|
55
|
+
} catch (err) {
|
|
56
|
+
return cb(getInternalError(err.message));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
readPackage(name, cb) {
|
|
60
|
+
const json = this._getStorage(name);
|
|
61
|
+
const isJson = typeof json === "undefined";
|
|
62
|
+
try {
|
|
63
|
+
return cb(isJson ? getNotFound() : null, require_utils.parsePackage(json));
|
|
64
|
+
} catch (err) {
|
|
65
|
+
return cb(getNotFound());
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
writeTarball(name) {
|
|
69
|
+
const uploadStream = new _verdaccio_streams.UploadTarball({});
|
|
70
|
+
const temporalName = `${this.path}/${name}`;
|
|
71
|
+
process.nextTick(function() {
|
|
72
|
+
fs.mkdirp(import___vite_browser_external.default.dirname(temporalName), function(mkdirpError) {
|
|
73
|
+
if (mkdirpError) return uploadStream.emit("error", mkdirpError);
|
|
74
|
+
fs.stat(temporalName, function(fileError, stats) {
|
|
75
|
+
if (!fileError && stats) return uploadStream.emit("error", getConflict());
|
|
76
|
+
try {
|
|
77
|
+
const file = fs.createWriteStream(temporalName);
|
|
78
|
+
uploadStream.pipe(file);
|
|
79
|
+
uploadStream.done = function() {
|
|
80
|
+
const onEnd = function() {
|
|
81
|
+
uploadStream.emit("success");
|
|
82
|
+
};
|
|
83
|
+
uploadStream.on("end", onEnd);
|
|
84
|
+
};
|
|
85
|
+
uploadStream.abort = function() {
|
|
86
|
+
uploadStream.emit("error", getBadRequest("transmision aborted"));
|
|
87
|
+
file.end();
|
|
88
|
+
};
|
|
89
|
+
uploadStream.emit("open");
|
|
90
|
+
return;
|
|
91
|
+
} catch (err) {
|
|
92
|
+
uploadStream.emit("error", err);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
return uploadStream;
|
|
99
|
+
}
|
|
100
|
+
readTarball(name) {
|
|
101
|
+
const pathName = `${this.path}/${name}`;
|
|
102
|
+
const readTarballStream = new _verdaccio_streams.ReadTarball({});
|
|
103
|
+
process.nextTick(function() {
|
|
104
|
+
fs.stat(pathName, function(fileError, stats) {
|
|
105
|
+
if (fileError && !stats) return readTarballStream.emit("error", getNotFound());
|
|
106
|
+
try {
|
|
107
|
+
const readStream = fs.createReadStream(pathName);
|
|
108
|
+
const pathMeta = fs.meta(pathName);
|
|
109
|
+
const contentLength = pathMeta && pathMeta.length || 0;
|
|
110
|
+
readTarballStream.emit("content-length", contentLength);
|
|
111
|
+
readTarballStream.emit("open");
|
|
112
|
+
readStream.pipe(readTarballStream);
|
|
113
|
+
readStream.on("error", (error) => {
|
|
114
|
+
readTarballStream.emit("error", error);
|
|
115
|
+
});
|
|
116
|
+
readTarballStream.abort = function() {
|
|
117
|
+
readStream.destroy(getBadRequest("read has been aborted"));
|
|
118
|
+
};
|
|
119
|
+
return;
|
|
120
|
+
} catch (err) {
|
|
121
|
+
readTarballStream.emit("error", err);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
return readTarballStream;
|
|
127
|
+
}
|
|
128
|
+
_getStorage(name = "") {
|
|
129
|
+
return this.data[name];
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
//#endregion
|
|
133
|
+
exports.default = MemoryHandler;
|
|
2
134
|
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _path = _interopRequireDefault(require("path"));
|
|
8
|
-
var _core = require("@verdaccio/core");
|
|
9
|
-
var _memoryFs = _interopRequireDefault(require("memory-fs"));
|
|
10
|
-
var _streams = require("@verdaccio/streams");
|
|
11
|
-
var _utils = require("./utils");
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
14
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
-
const fs = new _memoryFs.default();
|
|
17
|
-
const {
|
|
18
|
-
getBadRequest,
|
|
19
|
-
getInternalError,
|
|
20
|
-
getConflict,
|
|
21
|
-
getNotFound
|
|
22
|
-
} = _core.errorUtils;
|
|
23
|
-
class MemoryHandler {
|
|
24
|
-
constructor(packageName, data, logger) {
|
|
25
|
-
_defineProperty(this, "data", void 0);
|
|
26
|
-
_defineProperty(this, "name", void 0);
|
|
27
|
-
_defineProperty(this, "path", void 0);
|
|
28
|
-
_defineProperty(this, "logger", void 0);
|
|
29
|
-
// this is not need it
|
|
30
|
-
this.data = data;
|
|
31
|
-
this.name = packageName;
|
|
32
|
-
this.logger = logger;
|
|
33
|
-
this.path = `/${packageName}`;
|
|
34
|
-
}
|
|
35
|
-
updatePackage(pkgFileName, updateHandler, onWrite, transformPackage, onEnd) {
|
|
36
|
-
const json = this._getStorage(pkgFileName);
|
|
37
|
-
let pkg;
|
|
38
|
-
try {
|
|
39
|
-
pkg = (0, _utils.parsePackage)(json);
|
|
40
|
-
} catch (err) {
|
|
41
|
-
return onEnd(err);
|
|
42
|
-
}
|
|
43
|
-
updateHandler(pkg, err => {
|
|
44
|
-
if (err) {
|
|
45
|
-
return onEnd(err);
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
onWrite(pkgFileName, transformPackage(pkg), onEnd);
|
|
49
|
-
} catch (err) {
|
|
50
|
-
return onEnd(getInternalError('error on parse the metadata'));
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
deletePackage(pkgName, callback) {
|
|
55
|
-
delete this.data[pkgName];
|
|
56
|
-
return callback(null);
|
|
57
|
-
}
|
|
58
|
-
removePackage(callback) {
|
|
59
|
-
return callback(null);
|
|
60
|
-
}
|
|
61
|
-
createPackage(name, value, cb) {
|
|
62
|
-
this.savePackage(name, value, cb);
|
|
63
|
-
}
|
|
64
|
-
savePackage(name, value, cb) {
|
|
65
|
-
try {
|
|
66
|
-
const json = (0, _utils.stringifyPackage)(value);
|
|
67
|
-
this.data[name] = json;
|
|
68
|
-
return cb(null);
|
|
69
|
-
} catch (err) {
|
|
70
|
-
return cb(getInternalError(err.message));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
readPackage(name, cb) {
|
|
74
|
-
const json = this._getStorage(name);
|
|
75
|
-
const isJson = typeof json === 'undefined';
|
|
76
|
-
try {
|
|
77
|
-
return cb(isJson ? getNotFound() : null, (0, _utils.parsePackage)(json));
|
|
78
|
-
} catch (err) {
|
|
79
|
-
return cb(getNotFound());
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
writeTarball(name) {
|
|
83
|
-
const uploadStream = new _streams.UploadTarball({});
|
|
84
|
-
const temporalName = `${this.path}/${name}`;
|
|
85
|
-
process.nextTick(function () {
|
|
86
|
-
fs.mkdirp(_path.default.dirname(temporalName), function (mkdirpError) {
|
|
87
|
-
if (mkdirpError) {
|
|
88
|
-
return uploadStream.emit('error', mkdirpError);
|
|
89
|
-
}
|
|
90
|
-
fs.stat(temporalName, function (fileError, stats) {
|
|
91
|
-
if (!fileError && stats) {
|
|
92
|
-
return uploadStream.emit('error', getConflict());
|
|
93
|
-
}
|
|
94
|
-
try {
|
|
95
|
-
const file = fs.createWriteStream(temporalName);
|
|
96
|
-
uploadStream.pipe(file);
|
|
97
|
-
uploadStream.done = function () {
|
|
98
|
-
const onEnd = function () {
|
|
99
|
-
uploadStream.emit('success');
|
|
100
|
-
};
|
|
101
|
-
uploadStream.on('end', onEnd);
|
|
102
|
-
};
|
|
103
|
-
uploadStream.abort = function () {
|
|
104
|
-
uploadStream.emit('error', getBadRequest('transmision aborted'));
|
|
105
|
-
file.end();
|
|
106
|
-
};
|
|
107
|
-
uploadStream.emit('open');
|
|
108
|
-
return;
|
|
109
|
-
} catch (err) {
|
|
110
|
-
uploadStream.emit('error', err);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
return uploadStream;
|
|
117
|
-
}
|
|
118
|
-
readTarball(name) {
|
|
119
|
-
const pathName = `${this.path}/${name}`;
|
|
120
|
-
const readTarballStream = new _streams.ReadTarball({});
|
|
121
|
-
process.nextTick(function () {
|
|
122
|
-
fs.stat(pathName, function (fileError, stats) {
|
|
123
|
-
if (fileError && !stats) {
|
|
124
|
-
return readTarballStream.emit('error', getNotFound());
|
|
125
|
-
}
|
|
126
|
-
try {
|
|
127
|
-
const readStream = fs.createReadStream(pathName);
|
|
128
|
-
const pathMeta = fs.meta(pathName);
|
|
129
|
-
const contentLength = pathMeta && pathMeta.length || 0;
|
|
130
|
-
readTarballStream.emit('content-length', contentLength);
|
|
131
|
-
readTarballStream.emit('open');
|
|
132
|
-
readStream.pipe(readTarballStream);
|
|
133
|
-
readStream.on('error', error => {
|
|
134
|
-
readTarballStream.emit('error', error);
|
|
135
|
-
});
|
|
136
|
-
readTarballStream.abort = function () {
|
|
137
|
-
readStream.destroy(getBadRequest('read has been aborted'));
|
|
138
|
-
};
|
|
139
|
-
return;
|
|
140
|
-
} catch (err) {
|
|
141
|
-
readTarballStream.emit('error', err);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
return readTarballStream;
|
|
147
|
-
}
|
|
148
|
-
_getStorage(name = '') {
|
|
149
|
-
return this.data[name];
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
var _default = exports.default = MemoryHandler;
|
|
153
135
|
//# sourceMappingURL=memory-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-handler.js","names":["_path","_interopRequireDefault","require","_core","_memoryFs","_streams","_utils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","fs","MemoryFileSystem","getBadRequest","getInternalError","getConflict","getNotFound","errorUtils","MemoryHandler","constructor","packageName","data","logger","name","path","updatePackage","pkgFileName","updateHandler","onWrite","transformPackage","onEnd","json","_getStorage","pkg","parsePackage","err","deletePackage","pkgName","callback","removePackage","createPackage","cb","savePackage","stringifyPackage","message","readPackage","isJson","writeTarball","uploadStream","UploadTarball","temporalName","process","nextTick","mkdirp","dirname","mkdirpError","emit","stat","fileError","stats","file","createWriteStream","pipe","done","on","abort","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,\nerrorUtils,\n} from '@verdaccio/core';\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();\nconst { getBadRequest,\n getInternalError,\n getConflict,\n getNotFound} = errorUtils\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"memory-handler.js","names":[],"sources":["../src/memory-handler.ts"],"sourcesContent":["import MemoryFileSystem from 'memory-fs';\nimport path from 'path';\n\nimport type { VerdaccioError } from '@verdaccio/core';\nimport { errorUtils } from '@verdaccio/core';\nimport type {\n Callback,\n CallbackAction,\n IPackageStorageManager,\n IReadTarball,\n IUploadTarball,\n Logger,\n Package,\n PackageTransformer,\n ReadPackageCallback,\n StorageUpdateCallback,\n StorageWriteCallback,\n} from '@verdaccio/legacy-types';\nimport { ReadTarball, UploadTarball } from '@verdaccio/streams';\n\nimport { parsePackage, stringifyPackage } from './utils';\n\nconst fs = new MemoryFileSystem();\nconst { getBadRequest, getInternalError, getConflict, getNotFound } = errorUtils;\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
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parsePackage = parsePackage;
|
|
7
|
-
exports.stringifyPackage = stringifyPackage;
|
|
1
|
+
//#region src/utils.ts
|
|
8
2
|
function stringifyPackage(pkg) {
|
|
9
|
-
|
|
3
|
+
return JSON.stringify(pkg, null, " ");
|
|
10
4
|
}
|
|
11
5
|
function parsePackage(pkg) {
|
|
12
|
-
|
|
6
|
+
return JSON.parse(pkg);
|
|
13
7
|
}
|
|
8
|
+
//#endregion
|
|
9
|
+
exports.parsePackage = parsePackage;
|
|
10
|
+
exports.stringifyPackage = stringifyPackage;
|
|
11
|
+
|
|
14
12
|
//# sourceMappingURL=utils.js.map
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { 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":";AAEA,SAAgB,iBAAiB,KAAc;AAC7C,QAAO,KAAK,UAAU,KAAK,MAAM,IAAK;;AAGxC,SAAgB,aAAa,KAAa;AACxC,QAAO,KAAK,MAAM,IAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "verdaccio-memory",
|
|
3
|
-
"version": "10.4.
|
|
3
|
+
"version": "10.4.2",
|
|
4
4
|
"description": "Storage implementation in memory",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"verdaccio",
|
|
@@ -28,24 +28,23 @@
|
|
|
28
28
|
"node": ">=18"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@verdaccio/core": "8.0.0-next-8.
|
|
32
|
-
"@verdaccio/streams": "10.2.
|
|
31
|
+
"@verdaccio/core": "8.0.0-next-8.29",
|
|
32
|
+
"@verdaccio/streams": "10.2.2",
|
|
33
33
|
"memory-fs": "0.5.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@verdaccio/legacy-types": "1.0.
|
|
36
|
+
"@verdaccio/legacy-types": "1.0.2",
|
|
37
|
+
"vite": "8.0.8",
|
|
38
|
+
"vite-plugin-dts": "4.5.4",
|
|
39
|
+
"vitest": "4.1.4"
|
|
37
40
|
},
|
|
38
41
|
"funding": {
|
|
39
42
|
"type": "opencollective",
|
|
40
43
|
"url": "https://opencollective.com/verdaccio"
|
|
41
44
|
},
|
|
42
45
|
"scripts": {
|
|
43
|
-
"clean": "rimraf ./
|
|
44
|
-
"test": "
|
|
45
|
-
"
|
|
46
|
-
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
|
47
|
-
"build:js": "babel src/ --out-dir lib/ --copy-files --extensions \".ts,.tsx\" --source-maps",
|
|
48
|
-
"watch": "pnpm build:js -- --watch",
|
|
49
|
-
"build": "pnpm run build:js && pnpm run build:types"
|
|
46
|
+
"clean": "rimraf ./lib",
|
|
47
|
+
"test": "vitest run",
|
|
48
|
+
"build": "vite build"
|
|
50
49
|
}
|
|
51
50
|
}
|