@cenk1cenk2/oclif-common 3.9.6 → 3.9.7
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/dist/base.command-d3038122.d.ts +77 -0
- package/dist/commands/base.command.d.ts +24 -0
- package/dist/commands/base.command.js +174 -0
- package/dist/commands/config.command.d.ts +71 -0
- package/dist/commands/config.command.js +60 -0
- package/dist/commands/index.d.ts +34 -0
- package/dist/commands/index.js +18 -0
- package/dist/constants/file.constants.d.ts +5 -0
- package/dist/constants/file.constants.js +30 -0
- package/dist/constants/global-flags.constants.d.ts +5 -0
- package/dist/constants/global-flags.constants.js +53 -0
- package/dist/constants/help-groups.constants.d.ts +5 -0
- package/dist/constants/help-groups.constants.js +30 -0
- package/dist/constants/index.d.ts +4 -0
- package/dist/constants/index.js +19 -0
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/index.js +4 -744
- package/dist/hooks/not-found.hook.js +4 -686
- package/dist/hooks/store.hook.d.ts +7 -2
- package/dist/hooks/store.hook.js +3 -708
- package/dist/hooks/update-notifier.hook.js +1 -3
- package/dist/index.d.ts +52 -404
- package/dist/index.js +7 -1335
- package/dist/interfaces/class.interface.d.ts +3 -0
- package/dist/interfaces/class.interface.js +15 -0
- package/dist/interfaces/config-command.interface.d.ts +12 -0
- package/dist/interfaces/config-command.interface.js +15 -0
- package/dist/interfaces/index.d.ts +10 -0
- package/dist/interfaces/index.js +20 -0
- package/dist/interfaces/oclif.interface.d.ts +9 -0
- package/dist/interfaces/oclif.interface.js +27 -0
- package/dist/interfaces/type-helper.interface.d.ts +8 -0
- package/dist/interfaces/type-helper.interface.js +15 -0
- package/dist/lib/config/config.constants.d.ts +8 -0
- package/dist/lib/config/config.constants.js +33 -0
- package/dist/lib/config/config.interface.d.ts +15 -0
- package/dist/lib/config/config.interface.js +15 -0
- package/dist/lib/config/config.service.d.ts +24 -0
- package/dist/lib/config/config.service.js +172 -0
- package/dist/lib/config/index.d.ts +24 -0
- package/dist/lib/config/index.js +18 -0
- package/dist/lib/fs/filesystem.service.d.ts +28 -0
- package/dist/lib/fs/filesystem.service.js +162 -0
- package/dist/lib/fs/index.d.ts +2 -0
- package/dist/lib/fs/index.js +17 -0
- package/dist/lib/index.d.ts +29 -0
- package/dist/lib/index.js +23 -0
- package/dist/lib/locker/index.d.ts +4 -0
- package/dist/lib/locker/index.js +18 -0
- package/dist/lib/locker/locker.interface.d.ts +17 -0
- package/dist/lib/locker/locker.interface.js +15 -0
- package/dist/lib/locker/locker.service.d.ts +30 -0
- package/dist/lib/locker/locker.service.js +170 -0
- package/dist/lib/parser/env-parser.service.d.ts +13 -0
- package/dist/lib/parser/env-parser.service.js +62 -0
- package/dist/lib/parser/index.d.ts +8 -0
- package/dist/lib/parser/index.js +21 -0
- package/dist/lib/parser/json-parser.service.d.ts +12 -0
- package/dist/lib/parser/json-parser.service.js +52 -0
- package/dist/lib/parser/parser.interface.d.ts +7 -0
- package/dist/lib/parser/parser.interface.js +15 -0
- package/dist/lib/parser/parser.service.d.ts +21 -0
- package/dist/lib/parser/parser.service.js +87 -0
- package/dist/lib/parser/yaml-parser.service.d.ts +12 -0
- package/dist/lib/parser/yaml-parser.service.js +53 -0
- package/dist/lib/setup.d.ts +3 -0
- package/dist/lib/setup.js +60 -0
- package/dist/lib/store/index.d.ts +2 -0
- package/dist/lib/store/index.js +18 -0
- package/dist/lib/store/store.interface.d.ts +5 -0
- package/dist/lib/store/store.interface.js +15 -0
- package/dist/lib/store/store.service.d.ts +12 -0
- package/dist/lib/store/store.service.js +48 -0
- package/dist/lib/validator/index.d.ts +5 -0
- package/dist/lib/validator/index.js +18 -0
- package/dist/lib/validator/validator.interface.d.ts +9 -0
- package/dist/lib/validator/validator.interface.js +15 -0
- package/dist/lib/validator/validator.service.d.ts +16 -0
- package/dist/lib/validator/validator.service.js +77 -0
- package/dist/utils/color.d.ts +5 -0
- package/dist/utils/color.js +34 -0
- package/dist/utils/defaults.d.ts +11 -0
- package/dist/utils/defaults.js +47 -0
- package/dist/utils/environment.d.ts +7 -0
- package/dist/utils/environment.js +44 -0
- package/dist/utils/index.d.ts +17 -0
- package/dist/utils/index.js +34 -0
- package/dist/utils/logger/index.d.ts +10 -0
- package/dist/utils/logger/index.js +21 -0
- package/dist/utils/logger/listr-logger.d.ts +20 -0
- package/dist/utils/logger/listr-logger.js +60 -0
- package/dist/utils/logger/logger.constants.d.ts +20 -0
- package/dist/utils/logger/logger.constants.js +48 -0
- package/dist/utils/logger/logger.d.ts +31 -0
- package/dist/utils/logger/logger.interface.d.ts +16 -0
- package/dist/utils/logger/logger.interface.js +15 -0
- package/dist/utils/logger/logger.js +200 -0
- package/dist/utils/logger/pipe/index.d.ts +9 -0
- package/dist/utils/logger/pipe/index.js +19 -0
- package/dist/utils/logger/pipe/pipe-process-to-listr.d.ts +6 -0
- package/dist/utils/logger/pipe/pipe-process-to-listr.js +43 -0
- package/dist/utils/logger/pipe/pipe-process-to-logger.d.ts +13 -0
- package/dist/utils/logger/pipe/pipe-process-to-logger.interface.d.ts +16 -0
- package/dist/utils/logger/pipe/pipe-process-to-logger.interface.js +15 -0
- package/dist/utils/logger/pipe/pipe-process-to-logger.js +80 -0
- package/dist/utils/merge.constants.d.ts +6 -0
- package/dist/utils/merge.constants.js +31 -0
- package/dist/utils/merge.d.ts +8 -0
- package/dist/utils/merge.js +47 -0
- package/package.json +6 -6
- package/dist/store.hook-519df5f8.d.ts +0 -18
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var fs_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(fs_exports);
|
|
17
|
+
__reExport(fs_exports, require("./filesystem.service"), module.exports);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export { ConfigIterator, GlobalConfig } from './config/config.interface.js';
|
|
2
|
+
export { a as ConfigService } from '../base.command-d3038122.js';
|
|
3
|
+
export { FileSystemService } from './fs/filesystem.service.js';
|
|
4
|
+
export { CommonLockerData, LockData, LockableData, UnlockData } from './locker/locker.interface.js';
|
|
5
|
+
export { LockerService } from './locker/locker.service.js';
|
|
6
|
+
export { EnvironmentVariableParser } from './parser/env-parser.service.js';
|
|
7
|
+
export { GenericParser } from './parser/parser.interface.js';
|
|
8
|
+
export { ParserService } from './parser/parser.service.js';
|
|
9
|
+
export { YamlParser } from './parser/yaml-parser.service.js';
|
|
10
|
+
export { JsonParser } from './parser/json-parser.service.js';
|
|
11
|
+
export { DataStore } from './store/store.interface.js';
|
|
12
|
+
export { StoreService } from './store/store.service.js';
|
|
13
|
+
export { ValidatorServiceOptions } from './validator/validator.interface.js';
|
|
14
|
+
export { ValidatorService } from './validator/validator.service.js';
|
|
15
|
+
export { setup } from './setup.js';
|
|
16
|
+
export { default as fs } from 'fs-extra';
|
|
17
|
+
import '../utils/logger/logger.constants.js';
|
|
18
|
+
import '@oclif/core';
|
|
19
|
+
import 'listr2';
|
|
20
|
+
import '../utils/logger/logger.js';
|
|
21
|
+
import '../utils/logger/logger.interface.js';
|
|
22
|
+
import 'winston';
|
|
23
|
+
import '../utils/defaults.js';
|
|
24
|
+
import '../interfaces/oclif.interface.js';
|
|
25
|
+
import '@oclif/core/lib/interfaces';
|
|
26
|
+
import '../utils/merge.constants.js';
|
|
27
|
+
import '../interfaces/class.interface.js';
|
|
28
|
+
import 'class-transformer';
|
|
29
|
+
import 'class-validator';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var lib_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(lib_exports);
|
|
17
|
+
__reExport(lib_exports, require("./config"), module.exports);
|
|
18
|
+
__reExport(lib_exports, require("./fs"), module.exports);
|
|
19
|
+
__reExport(lib_exports, require("./locker"), module.exports);
|
|
20
|
+
__reExport(lib_exports, require("./parser"), module.exports);
|
|
21
|
+
__reExport(lib_exports, require("./store"), module.exports);
|
|
22
|
+
__reExport(lib_exports, require("./validator"), module.exports);
|
|
23
|
+
__reExport(lib_exports, require("./setup"), module.exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var locker_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(locker_exports);
|
|
17
|
+
__reExport(locker_exports, require("./locker.interface"), module.exports);
|
|
18
|
+
__reExport(locker_exports, require("./locker.service"), module.exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { MergeStrategy } from '../../utils/merge.constants.js';
|
|
2
|
+
|
|
3
|
+
interface CommonLockerData {
|
|
4
|
+
path?: string | string[];
|
|
5
|
+
enabled?: boolean;
|
|
6
|
+
root?: boolean;
|
|
7
|
+
}
|
|
8
|
+
type LockableData = any;
|
|
9
|
+
interface LockData<T extends LockableData = LockableData> extends Partial<CommonLockerData> {
|
|
10
|
+
data: T;
|
|
11
|
+
merge?: MergeStrategy;
|
|
12
|
+
}
|
|
13
|
+
interface UnlockData extends CommonLockerData {
|
|
14
|
+
path: string | string[];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { CommonLockerData, LockData, LockableData, UnlockData };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
+
var locker_interface_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(locker_interface_exports);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LockableData, LockData, UnlockData } from './locker.interface.js';
|
|
2
|
+
import { GenericParser } from '../parser/parser.interface.js';
|
|
3
|
+
import '../../utils/merge.constants.js';
|
|
4
|
+
|
|
5
|
+
declare class LockerService<LockFile extends LockableData = LockableData> {
|
|
6
|
+
private file;
|
|
7
|
+
private parser?;
|
|
8
|
+
private root?;
|
|
9
|
+
private toLock;
|
|
10
|
+
private toUnlock;
|
|
11
|
+
private logger;
|
|
12
|
+
private fs;
|
|
13
|
+
constructor(file: string, parser?: GenericParser, root?: string[], context?: string);
|
|
14
|
+
hasLock(): boolean;
|
|
15
|
+
hasUnlock(): boolean;
|
|
16
|
+
addLock<T extends LockableData = LockableData>(...data: LockData<T>[]): void;
|
|
17
|
+
addUnlock(...data: UnlockData[]): void;
|
|
18
|
+
lockAll(): Promise<void>;
|
|
19
|
+
unlockAll(): Promise<void>;
|
|
20
|
+
all(): Promise<void>;
|
|
21
|
+
lock<T extends LockableData = LockableData>(...data: LockData<T>[]): Promise<void>;
|
|
22
|
+
unlock(...data: UnlockData[]): Promise<void>;
|
|
23
|
+
read(): Promise<LockFile>;
|
|
24
|
+
tryRead(): Promise<LockFile | undefined>;
|
|
25
|
+
write(data: LockFile): Promise<void>;
|
|
26
|
+
private buildPath;
|
|
27
|
+
private normalizePath;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { LockerService };
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
|
+
var locker_service_exports = {};
|
|
26
|
+
__export(locker_service_exports, {
|
|
27
|
+
LockerService: () => LockerService
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(locker_service_exports);
|
|
30
|
+
var import_object_path_immutable = __toESM(require("object-path-immutable"));
|
|
31
|
+
var import_fs = require("../fs");
|
|
32
|
+
var import_parser = require("../parser");
|
|
33
|
+
var import_utils = require("../../utils");
|
|
34
|
+
var import_logger = require("../../utils/logger");
|
|
35
|
+
class LockerService {
|
|
36
|
+
constructor(file, parser, root, context) {
|
|
37
|
+
this.file = file;
|
|
38
|
+
this.parser = parser;
|
|
39
|
+
this.root = root;
|
|
40
|
+
this.toLock = [];
|
|
41
|
+
this.toUnlock = [];
|
|
42
|
+
this.fs = new import_fs.FileSystemService();
|
|
43
|
+
this.logger = new import_logger.Logger(context ?? this.constructor.name);
|
|
44
|
+
if (!this.parser) {
|
|
45
|
+
const parser2 = new import_parser.ParserService();
|
|
46
|
+
this.parser = parser2.getParser(file);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
hasLock() {
|
|
50
|
+
return this.toLock.length > 0;
|
|
51
|
+
}
|
|
52
|
+
hasUnlock() {
|
|
53
|
+
return this.toUnlock.length > 0;
|
|
54
|
+
}
|
|
55
|
+
addLock(...data) {
|
|
56
|
+
this.toLock = [...this.toLock, ...data];
|
|
57
|
+
}
|
|
58
|
+
addUnlock(...data) {
|
|
59
|
+
this.toUnlock = [...this.toUnlock, ...data];
|
|
60
|
+
}
|
|
61
|
+
async lockAll() {
|
|
62
|
+
if (this.hasLock()) {
|
|
63
|
+
await this.lock(...this.toLock);
|
|
64
|
+
this.toLock = [];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async unlockAll() {
|
|
68
|
+
if (this.toUnlock.length > 0) {
|
|
69
|
+
await this.unlock(...this.toUnlock);
|
|
70
|
+
this.toUnlock = [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async all() {
|
|
74
|
+
await this.unlockAll();
|
|
75
|
+
await this.lockAll();
|
|
76
|
+
}
|
|
77
|
+
async lock(...data) {
|
|
78
|
+
let lock = await this.tryRead() ?? {};
|
|
79
|
+
data.forEach((d) => {
|
|
80
|
+
if (d?.enabled === false) {
|
|
81
|
+
return;
|
|
82
|
+
} else if (!d?.data || Array.isArray(d?.data) && d.data.length === 0 || typeof d?.data === "object" && Object.keys(d.data).length === 0) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const path = this.buildPath(d);
|
|
86
|
+
if (d?.merge) {
|
|
87
|
+
let parsed;
|
|
88
|
+
if (typeof d.data === "object") {
|
|
89
|
+
parsed = (0, import_utils.merge)(d.merge, import_object_path_immutable.default.get(lock, path, Array.isArray(d.data) ? [] : {}), d.data);
|
|
90
|
+
} else {
|
|
91
|
+
this.logger.warn('"%s" path with type "%s" is not mergeable.', path, typeof d.data);
|
|
92
|
+
parsed = d.data;
|
|
93
|
+
}
|
|
94
|
+
lock = import_object_path_immutable.default.set(lock, path, parsed);
|
|
95
|
+
this.logger.verbose("Merge lock: %s -> %o", path, d.data);
|
|
96
|
+
} else {
|
|
97
|
+
lock = import_object_path_immutable.default.set(lock, path, d.data);
|
|
98
|
+
this.logger.verbose("Override lock: %s -> %o", path, d.data);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
await this.write(lock);
|
|
102
|
+
}
|
|
103
|
+
async unlock(...data) {
|
|
104
|
+
let lock = await this.tryRead();
|
|
105
|
+
if (!lock) {
|
|
106
|
+
this.logger.verbose("Lock file not found. Nothing to unlock.");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (data.length > 0) {
|
|
110
|
+
data.forEach((d) => {
|
|
111
|
+
if (d?.enabled === false) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const path = this.buildPath(d);
|
|
115
|
+
lock = import_object_path_immutable.default.del(lock, path);
|
|
116
|
+
this.logger.verbose("Unlocked: %s", path);
|
|
117
|
+
for (let i = path.length - 1; i >= 0; i--) {
|
|
118
|
+
const parentPath = path.slice(0, i);
|
|
119
|
+
const parent = import_object_path_immutable.default.get(lock, parentPath);
|
|
120
|
+
if (!parent || Array.isArray(parent) && parent.length === 0 || typeof parent === "object" && Object.keys(parent).length === 0) {
|
|
121
|
+
this.logger.verbose("Unlocked parent: %s -> %s", path, parentPath);
|
|
122
|
+
lock = import_object_path_immutable.default.del(lock, parentPath);
|
|
123
|
+
} else {
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
} else {
|
|
129
|
+
lock = import_object_path_immutable.default.del(lock, this.root);
|
|
130
|
+
this.logger.verbose("Unlocked module: %s", this.root);
|
|
131
|
+
}
|
|
132
|
+
await this.write(lock ?? {});
|
|
133
|
+
}
|
|
134
|
+
async read() {
|
|
135
|
+
return this.parser.parse(await this.fs.read(this.file));
|
|
136
|
+
}
|
|
137
|
+
async tryRead() {
|
|
138
|
+
try {
|
|
139
|
+
return this.parser.parse(await this.fs.read(this.file));
|
|
140
|
+
} catch {
|
|
141
|
+
this.logger.trace("Can not read lockfile: %s", this.file);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async write(data) {
|
|
145
|
+
if (!data || Array.isArray(data) && data.length === 0 || typeof data === "object" && Object.keys(data).length === 0) {
|
|
146
|
+
this.logger.trace("Trying to write empty lock file, deleting it instead: %s", this.file);
|
|
147
|
+
return this.fs.remove(this.file);
|
|
148
|
+
}
|
|
149
|
+
return this.fs.write(this.file, this.parser.stringify(data));
|
|
150
|
+
}
|
|
151
|
+
buildPath(d) {
|
|
152
|
+
if (d?.root !== true && this.root?.length) {
|
|
153
|
+
return [...this.root, ...this.normalizePath(d.path)];
|
|
154
|
+
}
|
|
155
|
+
return this.normalizePath(d.path);
|
|
156
|
+
}
|
|
157
|
+
normalizePath(path) {
|
|
158
|
+
if (Array.isArray(path)) {
|
|
159
|
+
return path.map((p) => p.toString());
|
|
160
|
+
} else if (typeof path === "string") {
|
|
161
|
+
return path.split(".");
|
|
162
|
+
}
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
__name(LockerService, "LockerService");
|
|
167
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
168
|
+
0 && (module.exports = {
|
|
169
|
+
LockerService
|
|
170
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GenericParser } from './parser.interface.js';
|
|
2
|
+
|
|
3
|
+
declare class EnvironmentVariableParser implements GenericParser {
|
|
4
|
+
static extensions: string[];
|
|
5
|
+
private static instance;
|
|
6
|
+
private logger;
|
|
7
|
+
private LINE;
|
|
8
|
+
constructor();
|
|
9
|
+
parse<T = unknown>(data: string | Buffer): T;
|
|
10
|
+
stringify<T = any>(data: T): string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { EnvironmentVariableParser };
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var env_parser_service_exports = {};
|
|
20
|
+
__export(env_parser_service_exports, {
|
|
21
|
+
EnvironmentVariableParser: () => EnvironmentVariableParser
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(env_parser_service_exports);
|
|
24
|
+
var import_os = require("os");
|
|
25
|
+
var import_logger = require("../../utils/logger");
|
|
26
|
+
const _EnvironmentVariableParser = class {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
|
|
29
|
+
if (_EnvironmentVariableParser.instance) {
|
|
30
|
+
return _EnvironmentVariableParser.instance;
|
|
31
|
+
}
|
|
32
|
+
_EnvironmentVariableParser.instance = this;
|
|
33
|
+
this.logger = new import_logger.Logger(this.constructor.name);
|
|
34
|
+
this.logger.trace("Created a new instance.");
|
|
35
|
+
}
|
|
36
|
+
parse(data) {
|
|
37
|
+
try {
|
|
38
|
+
return data.toString().split(import_os.EOL).reduce((o, line) => {
|
|
39
|
+
const match = this.LINE.exec(line);
|
|
40
|
+
const key = match[1];
|
|
41
|
+
const value = match[2] ?? "";
|
|
42
|
+
return {
|
|
43
|
+
...o,
|
|
44
|
+
[key]: value
|
|
45
|
+
};
|
|
46
|
+
}, {});
|
|
47
|
+
} catch (e) {
|
|
48
|
+
this.logger.trace("Error during parsing environment file: %s", e.message);
|
|
49
|
+
throw e;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
stringify(data) {
|
|
53
|
+
return Object.entries(data).map(([k, v]) => `${k}=${v}`).join(import_os.EOL) + import_os.EOL;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
let EnvironmentVariableParser = _EnvironmentVariableParser;
|
|
57
|
+
__name(EnvironmentVariableParser, "EnvironmentVariableParser");
|
|
58
|
+
EnvironmentVariableParser.extensions = ["env"];
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
EnvironmentVariableParser
|
|
62
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { EnvironmentVariableParser } from './env-parser.service.js';
|
|
2
|
+
export { GenericParser } from './parser.interface.js';
|
|
3
|
+
export { ParserService } from './parser.service.js';
|
|
4
|
+
export { YamlParser } from './yaml-parser.service.js';
|
|
5
|
+
export { JsonParser } from './json-parser.service.js';
|
|
6
|
+
import '../../interfaces/class.interface.js';
|
|
7
|
+
import '../locker/locker.interface.js';
|
|
8
|
+
import '../../utils/merge.constants.js';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var parser_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(parser_exports);
|
|
17
|
+
__reExport(parser_exports, require("./env-parser.service"), module.exports);
|
|
18
|
+
__reExport(parser_exports, require("./parser.interface"), module.exports);
|
|
19
|
+
__reExport(parser_exports, require("./parser.service"), module.exports);
|
|
20
|
+
__reExport(parser_exports, require("./yaml-parser.service"), module.exports);
|
|
21
|
+
__reExport(parser_exports, require("./json-parser.service"), module.exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericParser } from './parser.interface.js';
|
|
2
|
+
|
|
3
|
+
declare class JsonParser implements GenericParser {
|
|
4
|
+
static extensions: string[];
|
|
5
|
+
private static instance;
|
|
6
|
+
private logger;
|
|
7
|
+
constructor();
|
|
8
|
+
parse<T = unknown>(data: string | Buffer): T;
|
|
9
|
+
stringify<T = any>(data: T): string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { JsonParser };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var json_parser_service_exports = {};
|
|
20
|
+
__export(json_parser_service_exports, {
|
|
21
|
+
JsonParser: () => JsonParser
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(json_parser_service_exports);
|
|
24
|
+
var import_logger = require("../../utils/logger");
|
|
25
|
+
const _JsonParser = class {
|
|
26
|
+
constructor() {
|
|
27
|
+
if (_JsonParser.instance) {
|
|
28
|
+
return _JsonParser.instance;
|
|
29
|
+
}
|
|
30
|
+
_JsonParser.instance = this;
|
|
31
|
+
this.logger = new import_logger.Logger(this.constructor.name);
|
|
32
|
+
this.logger.trace("Created a new instance.");
|
|
33
|
+
}
|
|
34
|
+
parse(data) {
|
|
35
|
+
try {
|
|
36
|
+
return JSON.parse(data.toString());
|
|
37
|
+
} catch (e) {
|
|
38
|
+
this.logger.trace("Error during parsing JSON file: %s", e.message);
|
|
39
|
+
throw e;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
stringify(data) {
|
|
43
|
+
return JSON.stringify(data, null, 2);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
let JsonParser = _JsonParser;
|
|
47
|
+
__name(JsonParser, "JsonParser");
|
|
48
|
+
JsonParser.extensions = ["json"];
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
JsonParser
|
|
52
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __copyProps = (to, from, except, desc) => {
|
|
6
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
for (let key of __getOwnPropNames(from))
|
|
8
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
}
|
|
11
|
+
return to;
|
|
12
|
+
};
|
|
13
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
+
var parser_interface_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(parser_interface_exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GenericParser } from './parser.interface.js';
|
|
2
|
+
import { ClassType } from '../../interfaces/class.interface.js';
|
|
3
|
+
import { LockableData } from '../locker/locker.interface.js';
|
|
4
|
+
import '../../utils/merge.constants.js';
|
|
5
|
+
|
|
6
|
+
declare class ParserService {
|
|
7
|
+
private static instance;
|
|
8
|
+
parsers: ClassType<GenericParser>[];
|
|
9
|
+
private logger;
|
|
10
|
+
private fs;
|
|
11
|
+
constructor(parsers?: ClassType<GenericParser>[]);
|
|
12
|
+
getParser(file: string): GenericParser;
|
|
13
|
+
setParsers(...parsers: ClassType<GenericParser>[]): void;
|
|
14
|
+
addParsers(...parsers: ClassType<GenericParser>[]): void;
|
|
15
|
+
read<T = unknown>(file: string): Promise<T>;
|
|
16
|
+
write<T = LockableData>(file: string, data: T): Promise<void>;
|
|
17
|
+
parse<T = unknown>(file: string, data: string | Buffer): T;
|
|
18
|
+
stringify<T = any>(file: string, data: T): string | Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { ParserService };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var parser_service_exports = {};
|
|
20
|
+
__export(parser_service_exports, {
|
|
21
|
+
ParserService: () => ParserService
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(parser_service_exports);
|
|
24
|
+
var import_env_parser = require("./env-parser.service");
|
|
25
|
+
var import_json_parser = require("./json-parser.service");
|
|
26
|
+
var import_yaml_parser = require("./yaml-parser.service");
|
|
27
|
+
var import_fs = require("../fs");
|
|
28
|
+
var import_logger = require("../../utils/logger");
|
|
29
|
+
class ParserService {
|
|
30
|
+
constructor(parsers) {
|
|
31
|
+
this.parsers = [import_yaml_parser.YamlParser, import_json_parser.JsonParser, import_env_parser.EnvironmentVariableParser];
|
|
32
|
+
if (ParserService.instance) {
|
|
33
|
+
return ParserService.instance;
|
|
34
|
+
} else {
|
|
35
|
+
if (parsers) {
|
|
36
|
+
this.parsers = parsers;
|
|
37
|
+
}
|
|
38
|
+
this.logger = new import_logger.Logger(this.constructor.name);
|
|
39
|
+
this.fs = new import_fs.FileSystemService();
|
|
40
|
+
ParserService.instance = this;
|
|
41
|
+
this.logger.trace("Created a new instance.");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
getParser(file) {
|
|
45
|
+
const ext = (file.includes(".") ? this.fs.extname(file) : file).replace(/^\./, "");
|
|
46
|
+
const Parser = this.parsers.find((parser) => parser.extensions.includes(ext));
|
|
47
|
+
if (!Parser) {
|
|
48
|
+
throw new Error(`Parser for the extension is not configured: ${ext}`);
|
|
49
|
+
}
|
|
50
|
+
return new Parser();
|
|
51
|
+
}
|
|
52
|
+
setParsers(...parsers) {
|
|
53
|
+
this.parsers = parsers;
|
|
54
|
+
this.logger.trace(
|
|
55
|
+
"Set parsers: %s",
|
|
56
|
+
this.parsers.map((p) => p.name)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
addParsers(...parsers) {
|
|
60
|
+
this.parsers.push(...parsers);
|
|
61
|
+
this.logger.trace(
|
|
62
|
+
"Added parser, current parsers: %s",
|
|
63
|
+
this.parsers.map((p) => p.name)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
async read(file) {
|
|
67
|
+
return this.parse(file, await this.fs.read(file));
|
|
68
|
+
}
|
|
69
|
+
async write(file, data) {
|
|
70
|
+
return this.fs.write(file, await this.stringify(file, data));
|
|
71
|
+
}
|
|
72
|
+
parse(file, data) {
|
|
73
|
+
const parser = this.getParser(file);
|
|
74
|
+
this.logger.trace("Parsing file: %s -> %s", file, parser.constructor.name);
|
|
75
|
+
return parser.parse(data);
|
|
76
|
+
}
|
|
77
|
+
stringify(file, data) {
|
|
78
|
+
const parser = this.getParser(file);
|
|
79
|
+
this.logger.trace("Stringifying file: %s -> %s", file, parser.constructor.name);
|
|
80
|
+
return parser.stringify(data);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
__name(ParserService, "ParserService");
|
|
84
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
85
|
+
0 && (module.exports = {
|
|
86
|
+
ParserService
|
|
87
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { GenericParser } from './parser.interface.js';
|
|
2
|
+
|
|
3
|
+
declare class YamlParser implements GenericParser {
|
|
4
|
+
static extensions: string[];
|
|
5
|
+
private static instance;
|
|
6
|
+
private logger;
|
|
7
|
+
constructor();
|
|
8
|
+
parse<T = unknown>(data: string | Buffer): T;
|
|
9
|
+
stringify<T = any>(data: T): string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { YamlParser };
|