@my-devkit/cli 2.0.1 → 2.0.3
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/clean.js +47 -87
- package/dist/clean.js.map +1 -1
- package/dist/index.js +41 -97
- package/dist/index.js.map +1 -1
- package/dist/replace-files.js +12 -54
- package/dist/replace-files.js.map +1 -1
- package/dist/replace-tokens.js +13 -56
- package/dist/replace-tokens.js.map +1 -1
- package/dist/switch-to-npm.js +19 -98
- package/dist/switch-to-npm.js.map +1 -1
- package/dist/switch-to-pnpm.js +13 -81
- package/dist/switch-to-pnpm.js.map +1 -1
- package/dist/utils/args.js +4 -6
- package/dist/utils/args.js.map +1 -1
- package/dist/utils/config.js +2 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/file-system.js +49 -153
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/gist.js +34 -105
- package/dist/utils/gist.js.map +1 -1
- package/dist/utils/logger.js +17 -25
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/npm.js +112 -336
- package/dist/utils/npm.js.map +1 -1
- package/package.json +2 -2
- package/tsconfig.json +3 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-to-npm.js","sourceRoot":"","sources":["../src/switch-to-npm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch-to-npm.js","sourceRoot":"","sources":["../src/switch-to-npm.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;KACzD;IAED,KAAK,MAAM,GAAG,IAAI,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QAEpB,IAAI,GAAG,CAAC,MAAM,EAAE;YACZ,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;YAE5B,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;YAE/C,KAAK,MAAM,YAAY,IAAI,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAE;gBAC1C,MAAM,WAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;aACjF;SACJ;KACJ;AACL,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
package/dist/switch-to-pnpm.js
CHANGED
|
@@ -1,86 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
npm = utils_1.Npm.prefix(pkg.path);
|
|
51
|
-
return [4 /*yield*/, npm.clean()];
|
|
52
|
-
case 2:
|
|
53
|
-
_d.sent();
|
|
54
|
-
return [4 /*yield*/, npm.removePackageLock()];
|
|
55
|
-
case 3:
|
|
56
|
-
_d.sent();
|
|
57
|
-
return [4 /*yield*/, npm.write('version', '1.0.0')];
|
|
58
|
-
case 4:
|
|
59
|
-
_d.sent();
|
|
60
|
-
return [4 /*yield*/, npm.write(['scripts', 'preinstall'], 'npx only-allow pnpm')];
|
|
61
|
-
case 5:
|
|
62
|
-
_d.sent();
|
|
63
|
-
return [4 /*yield*/, npm.getName()];
|
|
64
|
-
case 6:
|
|
65
|
-
packageName = _d.sent();
|
|
66
|
-
_b = 0, _c = (0, utils_1.config)().packages;
|
|
67
|
-
_d.label = 7;
|
|
68
|
-
case 7:
|
|
69
|
-
if (!(_b < _c.length)) return [3 /*break*/, 10];
|
|
70
|
-
otherPackage = _c[_b];
|
|
71
|
-
return [4 /*yield*/, utils_1.Npm.prefix(otherPackage.path).updateDependency(packageName, 'workspace:^1.0.0')];
|
|
72
|
-
case 8:
|
|
73
|
-
_d.sent();
|
|
74
|
-
_d.label = 9;
|
|
75
|
-
case 9:
|
|
76
|
-
_b++;
|
|
77
|
-
return [3 /*break*/, 7];
|
|
78
|
-
case 10:
|
|
79
|
-
_i++;
|
|
80
|
-
return [3 /*break*/, 1];
|
|
81
|
-
case 11: return [2 /*return*/];
|
|
3
|
+
const utils_1 = require("./utils");
|
|
4
|
+
const switchToPnpm = async () => {
|
|
5
|
+
for (const pkg of (0, utils_1.config)().packages) {
|
|
6
|
+
const npm = utils_1.Npm.prefix(pkg.path);
|
|
7
|
+
await npm.clean();
|
|
8
|
+
await npm.removePackageLock();
|
|
9
|
+
await npm.write('version', '1.0.0');
|
|
10
|
+
await npm.write(['scripts', 'preinstall'], 'npx only-allow pnpm');
|
|
11
|
+
const packageName = await npm.getName();
|
|
12
|
+
for (const otherPackage of (0, utils_1.config)().packages) {
|
|
13
|
+
await utils_1.Npm.prefix(otherPackage.path).updateDependency(packageName, 'workspace:^1.0.0');
|
|
82
14
|
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
85
17
|
exports.default = switchToPnpm;
|
|
86
18
|
//# sourceMappingURL=switch-to-pnpm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-to-pnpm.js","sourceRoot":"","sources":["../src/switch-to-pnpm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch-to-pnpm.js","sourceRoot":"","sources":["../src/switch-to-pnpm.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AAEtC,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAE;QACjC,MAAM,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QAExC,KAAK,MAAM,YAAY,IAAI,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAE;YAC1C,MAAM,WAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;SACzF;KACJ;AACL,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
package/dist/utils/args.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.args = void 0;
|
|
4
|
-
|
|
5
|
-
.map(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
if (defaultValue === void 0) { defaultValue = null; }
|
|
9
|
-
return ((_a = _args.find(function (arg) { return arg.name === option; })) === null || _a === void 0 ? void 0 : _a.value) || defaultValue;
|
|
4
|
+
const _args = process.argv.filter(arg => arg.startsWith('-'))
|
|
5
|
+
.map((name) => ({ name, value: process.argv[process.argv.indexOf(name) + 1] }));
|
|
6
|
+
const args = (option, defaultValue = null) => {
|
|
7
|
+
return _args.find(arg => arg.name === option)?.value || defaultValue;
|
|
10
8
|
};
|
|
11
9
|
exports.args = args;
|
|
12
10
|
//# sourceMappingURL=args.js.map
|
package/dist/utils/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":";;;AAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7E,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,eAAuB,IAAI,EAAU,EAAE;IACxE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,YAAY,CAAC;AACzE,CAAC,CAAA;AAFY,QAAA,IAAI,QAEhB"}
|
package/dist/utils/config.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const fs = require("fs");
|
|
5
|
+
const config = () => {
|
|
6
6
|
if (!fs.existsSync('./my-devkit.json')) {
|
|
7
7
|
throw new Error('File my-devkit.json not found!');
|
|
8
8
|
}
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AAkBlB,MAAM,MAAM,GAAG,GAAW,EAAE;IAC/B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACrD;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC,CAAA;AANY,QAAA,MAAM,UAMlB"}
|
|
@@ -1,161 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.FileSystem = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
4
|
+
const crypto = require("crypto");
|
|
5
|
+
const fs = require("fs");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const util_1 = require("util");
|
|
8
|
+
const logger_1 = require("./logger");
|
|
9
|
+
const fsReaddir = (0, util_1.promisify)(fs.readdir);
|
|
10
|
+
const fsExists = (0, util_1.promisify)(fs.exists);
|
|
11
|
+
const fsReadFile = (0, util_1.promisify)(fs.readFile);
|
|
12
|
+
const fsStat = (0, util_1.promisify)(fs.stat);
|
|
13
|
+
class FileSystem {
|
|
14
|
+
static async getChecksum(paths) {
|
|
15
|
+
const files = [];
|
|
16
|
+
for (const path of paths) {
|
|
17
|
+
files.push(...await this.getFiles(path));
|
|
18
|
+
}
|
|
19
|
+
const checkSums = [];
|
|
20
|
+
for (const file of files.sort()) {
|
|
21
|
+
const checkSum = await this.getFileChecksum(file);
|
|
22
|
+
logger_1.Logger.debug(`${file}: ${checkSum}`, 3);
|
|
23
|
+
checkSums.push(checkSum);
|
|
24
|
+
}
|
|
25
|
+
return this.getValueChecksum(JSON.stringify(checkSums));
|
|
51
26
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
case 5:
|
|
78
|
-
if (!(_d < _e.length)) return [3 /*break*/, 8];
|
|
79
|
-
file = _e[_d];
|
|
80
|
-
return [4 /*yield*/, this.getFileChecksum(file)];
|
|
81
|
-
case 6:
|
|
82
|
-
checkSum = _f.sent();
|
|
83
|
-
logger_1.Logger.debug("".concat(file, ": ").concat(checkSum), 3);
|
|
84
|
-
checkSums.push(checkSum);
|
|
85
|
-
_f.label = 7;
|
|
86
|
-
case 7:
|
|
87
|
-
_d++;
|
|
88
|
-
return [3 /*break*/, 5];
|
|
89
|
-
case 8: return [2 /*return*/, this.getValueChecksum(JSON.stringify(checkSums))];
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
};
|
|
94
|
-
FileSystem.getFiles = function (directory) {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
-
var files, _i, _a, file, completePath, _b, _c, _d;
|
|
97
|
-
return __generator(this, function (_e) {
|
|
98
|
-
switch (_e.label) {
|
|
99
|
-
case 0: return [4 /*yield*/, fsExists(directory)];
|
|
100
|
-
case 1:
|
|
101
|
-
if (!(_e.sent())) {
|
|
102
|
-
logger_1.Logger.warn("".concat(directory, " does not exists"), 3);
|
|
103
|
-
return [2 /*return*/, []];
|
|
104
|
-
}
|
|
105
|
-
return [4 /*yield*/, fsStat(directory)];
|
|
106
|
-
case 2:
|
|
107
|
-
if (!(_e.sent()).isDirectory()) {
|
|
108
|
-
return [2 /*return*/, [directory]];
|
|
109
|
-
}
|
|
110
|
-
files = [];
|
|
111
|
-
_i = 0;
|
|
112
|
-
return [4 /*yield*/, fsReaddir(directory)];
|
|
113
|
-
case 3:
|
|
114
|
-
_a = _e.sent();
|
|
115
|
-
_e.label = 4;
|
|
116
|
-
case 4:
|
|
117
|
-
if (!(_i < _a.length)) return [3 /*break*/, 9];
|
|
118
|
-
file = _a[_i];
|
|
119
|
-
completePath = (0, path_1.resolve)(directory, file);
|
|
120
|
-
return [4 /*yield*/, fsStat(completePath)];
|
|
121
|
-
case 5:
|
|
122
|
-
if (!(_e.sent()).isDirectory()) return [3 /*break*/, 7];
|
|
123
|
-
_c = (_b = files.push).apply;
|
|
124
|
-
_d = [files];
|
|
125
|
-
return [4 /*yield*/, this.getFiles(completePath)];
|
|
126
|
-
case 6:
|
|
127
|
-
_c.apply(_b, _d.concat([_e.sent()]));
|
|
128
|
-
return [3 /*break*/, 8];
|
|
129
|
-
case 7:
|
|
130
|
-
files.push(completePath);
|
|
131
|
-
_e.label = 8;
|
|
132
|
-
case 8:
|
|
133
|
-
_i++;
|
|
134
|
-
return [3 /*break*/, 4];
|
|
135
|
-
case 9: return [2 /*return*/, files];
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
FileSystem.getFileChecksum = function (fileLocation) {
|
|
141
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
142
|
-
var _a;
|
|
143
|
-
return __generator(this, function (_b) {
|
|
144
|
-
switch (_b.label) {
|
|
145
|
-
case 0:
|
|
146
|
-
_a = this.getValueChecksum;
|
|
147
|
-
return [4 /*yield*/, fsReadFile(fileLocation, 'utf8')];
|
|
148
|
-
case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
};
|
|
153
|
-
FileSystem.getValueChecksum = function (value) {
|
|
154
|
-
var hash = crypto.createHash('sha1');
|
|
27
|
+
static async getFiles(directory) {
|
|
28
|
+
if (!(await fsExists(directory))) {
|
|
29
|
+
logger_1.Logger.warn(`${directory} does not exists`, 3);
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
if (!(await fsStat(directory)).isDirectory()) {
|
|
33
|
+
return [directory];
|
|
34
|
+
}
|
|
35
|
+
const files = [];
|
|
36
|
+
for (const file of await fsReaddir(directory)) {
|
|
37
|
+
const completePath = (0, path_1.resolve)(directory, file);
|
|
38
|
+
if ((await fsStat(completePath)).isDirectory()) {
|
|
39
|
+
files.push(...await this.getFiles(completePath));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
files.push(completePath);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return files;
|
|
46
|
+
}
|
|
47
|
+
static async getFileChecksum(fileLocation) {
|
|
48
|
+
return this.getValueChecksum(await fsReadFile(fileLocation, 'utf8'));
|
|
49
|
+
}
|
|
50
|
+
static getValueChecksum(value) {
|
|
51
|
+
const hash = crypto.createHash('sha1');
|
|
155
52
|
hash.update(value);
|
|
156
53
|
return hash.digest('hex');
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
}());
|
|
54
|
+
}
|
|
55
|
+
}
|
|
160
56
|
exports.FileSystem = FileSystem;
|
|
161
57
|
//# sourceMappingURL=file-system.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,yBAAyB;AACzB,+BAA+B;AAC/B,+BAAiC;AAEjC,qCAAkC;AAElC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAElC,MAAa,UAAU;IAEZ,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAe;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5C;QAED,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,eAAM,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAiB;QAC1C,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;YAC9B,eAAM,CAAC,IAAI,CAAC,GAAG,SAAS,kBAAkB,EAAE,CAAC,CAAC,CAAC;YAC/C,OAAO,EAAE,CAAC;SACb;QAED,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;YAC1C,OAAO,CAAC,SAAS,CAAC,CAAC;SACtB;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;aACpD;iBAAM;gBACH,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC5B;SACJ;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,YAAoB;QACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,KAAa;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACJ;AAjDD,gCAiDC"}
|
package/dist/utils/gist.js
CHANGED
|
@@ -1,116 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
3
|
exports.Gist = void 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
Gist.getHeaders = function () {
|
|
4
|
+
class Gist {
|
|
5
|
+
static getHeaders() {
|
|
44
6
|
return {
|
|
45
|
-
'Authorization':
|
|
7
|
+
'Authorization': `Basic ${Buffer.from(Gist.username + ':' + Gist.password).toString('base64')}`,
|
|
46
8
|
'Content-Type': 'application/json'
|
|
47
9
|
};
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
switch (_a.label) {
|
|
54
|
-
case 0: return [4 /*yield*/, fetch("https://api.github.com/gists/".concat(Gist.gistId), {
|
|
55
|
-
method: 'GET',
|
|
56
|
-
headers: this.getHeaders()
|
|
57
|
-
})];
|
|
58
|
-
case 1:
|
|
59
|
-
response = _a.sent();
|
|
60
|
-
return [4 /*yield*/, response.json()];
|
|
61
|
-
case 2:
|
|
62
|
-
body = (_a.sent());
|
|
63
|
-
return [2 /*return*/, JSON.parse(body.files.packages.content) || {}];
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
Gist.getPackageChecksum = function (packageName) {
|
|
69
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
70
|
-
var packages;
|
|
71
|
-
return __generator(this, function (_a) {
|
|
72
|
-
switch (_a.label) {
|
|
73
|
-
case 0: return [4 /*yield*/, Gist.getPackages()];
|
|
74
|
-
case 1:
|
|
75
|
-
packages = _a.sent();
|
|
76
|
-
return [2 /*return*/, packages[packageName] || null];
|
|
77
|
-
}
|
|
78
|
-
});
|
|
10
|
+
}
|
|
11
|
+
static async getPackages() {
|
|
12
|
+
const response = await fetch(`https://api.github.com/gists/${Gist.gistId}`, {
|
|
13
|
+
method: 'GET',
|
|
14
|
+
headers: this.getHeaders()
|
|
79
15
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
})
|
|
102
|
-
})];
|
|
103
|
-
case 2:
|
|
104
|
-
_a.sent();
|
|
105
|
-
return [2 /*return*/];
|
|
16
|
+
const body = (await response.json());
|
|
17
|
+
return JSON.parse(body.files.packages.content) || {};
|
|
18
|
+
}
|
|
19
|
+
static async getPackageChecksum(packageName) {
|
|
20
|
+
const packages = await Gist.getPackages();
|
|
21
|
+
return packages[packageName] || null;
|
|
22
|
+
}
|
|
23
|
+
static async setPackageChecksum(packageName, checksum) {
|
|
24
|
+
const packages = await Gist.getPackages();
|
|
25
|
+
packages[packageName] = checksum;
|
|
26
|
+
await fetch(`https://api.github.com/gists/${Gist.gistId}`, {
|
|
27
|
+
method: 'PATCH',
|
|
28
|
+
headers: this.getHeaders(),
|
|
29
|
+
body: JSON.stringify({
|
|
30
|
+
files: {
|
|
31
|
+
file: {
|
|
32
|
+
filename: "packages",
|
|
33
|
+
type: "application/json",
|
|
34
|
+
content: JSON.stringify(packages, null, 4)
|
|
35
|
+
}
|
|
106
36
|
}
|
|
107
|
-
})
|
|
37
|
+
})
|
|
108
38
|
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
Gist.password = '7a3f262a616ad6613a30755a6285d4b313603b36';
|
|
112
|
-
Gist.gistId = 'b22c85715f2c52e7a4f157a91030ff14';
|
|
113
|
-
return Gist;
|
|
114
|
-
}());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
115
41
|
exports.Gist = Gist;
|
|
42
|
+
Gist.username = 'BUONJG';
|
|
43
|
+
Gist.password = '7a3f262a616ad6613a30755a6285d4b313603b36';
|
|
44
|
+
Gist.gistId = 'b22c85715f2c52e7a4f157a91030ff14';
|
|
116
45
|
//# sourceMappingURL=gist.js.map
|
package/dist/utils/gist.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gist.js","sourceRoot":"","sources":["../../src/utils/gist.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gist.js","sourceRoot":"","sources":["../../src/utils/gist.ts"],"names":[],"mappings":";;;AACA,MAAa,IAAI;IAKL,MAAM,CAAC,UAAU;QACrB,OAAO;YACH,eAAe,EAAE,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YAC/F,cAAc,EAAE,kBAAkB;SACrC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW;QACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,EAAE,EAAE;YACxE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;SAC7B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAc,CAAC;QAElD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzD,CAAC;IAGD,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC;QAEjC,MAAM,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,EAAE,EAAE;YACvD,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,KAAK,EAAE;oBACH,IAAI,EAAE;wBACF,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,kBAAkB;wBACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC7C;iBACJ;aACJ,CAAC;SACL,CAAC,CAAC;IACP,CAAC;;AA/CL,oBAgDC;AA/CU,aAAQ,GAAG,QAAQ,CAAC;AACpB,aAAQ,GAAG,0CAA0C,CAAC;AACtD,WAAM,GAAG,kCAAkC,CAAC"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Logger = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Logger.verbose = function (verbose) {
|
|
9
|
-
if (verbose === void 0) { verbose = true; }
|
|
4
|
+
const colors = require("colors/safe");
|
|
5
|
+
class Logger {
|
|
6
|
+
static verbose(verbose = true) {
|
|
10
7
|
this._verbose = verbose;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (level === void 0) { level = 1; }
|
|
8
|
+
}
|
|
9
|
+
static debug(message, level = 1) {
|
|
14
10
|
if (this._verbose) {
|
|
15
11
|
console.log(this.format(message, level, 'gray'));
|
|
16
12
|
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (level === void 0) { level = 1; }
|
|
13
|
+
}
|
|
14
|
+
static info(message, level = 1) {
|
|
20
15
|
console.log(this.format(message, level, 'blue'));
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (level === void 0) { level = 1; }
|
|
16
|
+
}
|
|
17
|
+
static warn(message, level = 1) {
|
|
24
18
|
console.log(this.format(message, level, 'yellow'));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (level === void 0) { level = 1; }
|
|
19
|
+
}
|
|
20
|
+
static error(message, level = 1) {
|
|
28
21
|
console.log(this.format(message, level, 'red'));
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return colors[color](
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return Logger;
|
|
35
|
-
}());
|
|
22
|
+
}
|
|
23
|
+
static format(message, level, color) {
|
|
24
|
+
return colors[color](`${' '.repeat(level - 1)}${message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
36
27
|
exports.Logger = Logger;
|
|
28
|
+
Logger._verbose = false;
|
|
37
29
|
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AAEtC,MAAa,MAAM;IAGR,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,QAAgB,CAAC;QAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;SACpD;IACL,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,QAAgB,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAe,EAAE,QAAgB,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,QAAgB,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,OAAe,EAAE,KAAa,EAAE,KAAmB;QACrE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;;AA3BL,wBA4BC;AA3BkB,eAAQ,GAAG,KAAK,CAAC"}
|