@my-devkit/cli 1.0.0 → 1.0.1
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 +54 -0
- package/dist/index.js +36 -8
- package/dist/index.js.map +1 -1
- package/dist/replace-files.d.ts +2 -0
- package/dist/replace-files.js +60 -0
- package/dist/replace-files.js.map +1 -0
- package/dist/replace-tokens.d.ts +2 -0
- package/dist/replace-tokens.js +63 -0
- package/dist/replace-tokens.js.map +1 -0
- package/dist/switch-to-npm.d.ts +2 -0
- package/dist/switch-to-npm.js +93 -0
- package/dist/switch-to-npm.js.map +1 -0
- package/dist/switch-to-pnpm.d.ts +2 -0
- package/dist/switch-to-pnpm.js +86 -0
- package/dist/switch-to-pnpm.js.map +1 -0
- package/dist/utils/args.d.ts +1 -0
- package/dist/utils/args.js +12 -0
- package/dist/utils/args.js.map +1 -0
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.js +12 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/gist.d.ts +23 -0
- package/dist/utils/gist.js +111 -0
- package/dist/utils/gist.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +17 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/npm.d.ts +25 -0
- package/dist/utils/npm.js +371 -0
- package/dist/utils/npm.js.map +1 -0
- package/package.json +9 -6
- package/src/index.ts +22 -2
- package/src/replace-files.ts +18 -0
- package/src/replace-tokens.ts +20 -0
- package/src/switch-to-npm.ts +24 -0
- package/src/switch-to-pnpm.ts +19 -0
- package/src/utils/args.ts +6 -0
- package/src/utils/config.ts +25 -0
- package/src/utils/gist.ts +62 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/npm.ts +164 -0
- package/tsconfig.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# My DevKit CLI
|
|
2
|
+
|
|
3
|
+
Development tools specialized for My DevKit
|
|
4
|
+
|
|
5
|
+
## The Goal of My DevKit CLI
|
|
6
|
+
|
|
7
|
+
The My DevKit CLI creates, manages, builds and test your projects. It's built on top of the MyDevKit utilities:
|
|
8
|
+
- @my-devkit/core
|
|
9
|
+
- @my-devkit/firebase
|
|
10
|
+
- @my-devkit/migrations
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
To get started locally, follow these instructions:
|
|
15
|
+
```shell
|
|
16
|
+
pnpm install @my-devkit/cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Building
|
|
20
|
+
|
|
21
|
+
To make a local build of your project:
|
|
22
|
+
|
|
23
|
+
```shell
|
|
24
|
+
mdk build
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This command will compile your project after cleaning up previously transpiled typescript files.
|
|
28
|
+
|
|
29
|
+
### Watch mode
|
|
30
|
+
|
|
31
|
+
```shell
|
|
32
|
+
mdk watch
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This command will compile your project after cleaning up previously transpiled typescript files
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
**To be improved:** The cleanup is not working yet on watch mode...
|
|
39
|
+
|
|
40
|
+
## Publish npm package
|
|
41
|
+
|
|
42
|
+
This command is a facility to publish a package only if it's content has changed during the continuous integration.
|
|
43
|
+
|
|
44
|
+
```shell
|
|
45
|
+
mdk publish
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Token replacement
|
|
49
|
+
|
|
50
|
+
This command is a facility to publish a package only if it's content has changed during the continuous integration.
|
|
51
|
+
|
|
52
|
+
```shell
|
|
53
|
+
mdk replace-token
|
|
54
|
+
```
|
package/dist/index.js
CHANGED
|
@@ -39,6 +39,10 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
40
|
var child_process_1 = require("child_process");
|
|
41
41
|
var clean_1 = require("./clean");
|
|
42
|
+
var replace_files_1 = require("./replace-files");
|
|
43
|
+
var replace_tokens_1 = require("./replace-tokens");
|
|
44
|
+
var switch_to_npm_1 = require("./switch-to-npm");
|
|
45
|
+
var switch_to_pnpm_1 = require("./switch-to-pnpm");
|
|
42
46
|
var run = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
47
|
var _a, args, _b;
|
|
44
48
|
return __generator(this, function (_c) {
|
|
@@ -52,28 +56,52 @@ var run = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
52
56
|
switch (_b) {
|
|
53
57
|
case 'build': return [3 /*break*/, 1];
|
|
54
58
|
case 'watch': return [3 /*break*/, 3];
|
|
55
|
-
case '
|
|
59
|
+
case 'switch-to-pnpm': return [3 /*break*/, 5];
|
|
60
|
+
case 'switch-to-npm': return [3 /*break*/, 7];
|
|
61
|
+
case 'replace-files': return [3 /*break*/, 9];
|
|
62
|
+
case 'replace-tokens': return [3 /*break*/, 11];
|
|
56
63
|
}
|
|
57
|
-
return [3 /*break*/,
|
|
64
|
+
return [3 /*break*/, 13];
|
|
58
65
|
case 1:
|
|
59
66
|
console.log("Running clean & build");
|
|
60
67
|
return [4 /*yield*/, (0, clean_1.default)()];
|
|
61
68
|
case 2:
|
|
62
69
|
_c.sent();
|
|
63
70
|
(0, child_process_1.execSync)("npx tsc");
|
|
64
|
-
return [3 /*break*/,
|
|
71
|
+
return [3 /*break*/, 14];
|
|
65
72
|
case 3:
|
|
66
73
|
console.log("Running clean & build in watch mode");
|
|
67
74
|
return [4 /*yield*/, (0, clean_1.default)()];
|
|
68
75
|
case 4:
|
|
69
76
|
_c.sent();
|
|
70
77
|
(0, child_process_1.execSync)("npx tsc -w");
|
|
71
|
-
return [3 /*break*/,
|
|
78
|
+
return [3 /*break*/, 14];
|
|
72
79
|
case 5:
|
|
73
|
-
console.log(
|
|
74
|
-
return [
|
|
75
|
-
case 6:
|
|
76
|
-
|
|
80
|
+
console.log('Switch to npm');
|
|
81
|
+
return [4 /*yield*/, (0, switch_to_pnpm_1.default)()];
|
|
82
|
+
case 6:
|
|
83
|
+
_c.sent();
|
|
84
|
+
return [3 /*break*/, 14];
|
|
85
|
+
case 7:
|
|
86
|
+
console.log('Switch to npm');
|
|
87
|
+
return [4 /*yield*/, (0, switch_to_npm_1.default)()];
|
|
88
|
+
case 8:
|
|
89
|
+
_c.sent();
|
|
90
|
+
return [3 /*break*/, 14];
|
|
91
|
+
case 9:
|
|
92
|
+
console.log("Replacing files");
|
|
93
|
+
return [4 /*yield*/, (0, replace_files_1.default)()];
|
|
94
|
+
case 10:
|
|
95
|
+
_c.sent();
|
|
96
|
+
return [3 /*break*/, 14];
|
|
97
|
+
case 11:
|
|
98
|
+
console.log("Replacing tokens");
|
|
99
|
+
return [4 /*yield*/, (0, replace_tokens_1.default)()];
|
|
100
|
+
case 12:
|
|
101
|
+
_c.sent();
|
|
102
|
+
return [3 /*break*/, 14];
|
|
103
|
+
case 13: throw new Error("Command ".concat(args[0], " not recognized!"));
|
|
104
|
+
case 14: return [2 /*return*/];
|
|
77
105
|
}
|
|
78
106
|
});
|
|
79
107
|
}); };
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAyC;AAEzC,iCAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAyC;AAEzC,iCAA4B;AAC5B,iDAA2C;AAC3C,mDAA6C;AAC7C,iDAA0C;AAC1C,mDAA4C;AAE5C,IAAM,GAAG,GAAG;;;;;gBACF,KAAgB,OAAO,CAAC,IAAI,EAApB,IAAI,cAAA,CAAiB;gBAEnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;iBACvD;gBAEO,KAAA,IAAI,CAAC,CAAC,CAAC,CAAA;;yBACN,OAAO,CAAC,CAAR,wBAAO;yBAKP,OAAO,CAAC,CAAR,wBAAO;yBAMP,gBAAgB,CAAC,CAAjB,wBAAgB;yBAKhB,eAAe,CAAC,CAAhB,wBAAe;yBAKf,eAAe,CAAC,CAAhB,wBAAe;yBAKf,gBAAgB,CAAC,CAAjB,yBAAgB;;;;gBAzBjB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;gBACrC,qBAAM,IAAA,eAAK,GAAE,EAAA;;gBAAb,SAAa,CAAC;gBACd,IAAA,wBAAQ,EAAC,SAAS,CAAC,CAAC;gBACpB,yBAAM;;gBAEN,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,qBAAM,IAAA,eAAK,GAAE,EAAA;;gBAAb,SAAa,CAAC;gBACd,IAAA,wBAAQ,EAAC,YAAY,CAAC,CAAC;gBACvB,yBAAM;;gBAGN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,qBAAM,IAAA,wBAAY,GAAE,EAAA;;gBAApB,SAAoB,CAAC;gBACrB,yBAAM;;gBAGN,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAC7B,qBAAM,IAAA,uBAAW,GAAE,EAAA;;gBAAnB,SAAmB,CAAC;gBACpB,yBAAM;;gBAGN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,qBAAM,IAAA,uBAAY,GAAE,EAAA;;gBAApB,SAAoB,CAAA;gBACpB,yBAAM;;gBAGN,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,qBAAM,IAAA,wBAAa,GAAE,EAAA;;gBAArB,SAAqB,CAAA;gBACrB,yBAAM;qBAGN,MAAM,IAAI,KAAK,CAAC,kBAAW,IAAI,CAAC,CAAC,CAAC,qBAAkB,CAAC,CAAC;;;;KAEjE,CAAC;AAEF,GAAG,EAAE,CAAC,KAAK,CAAC,UAAA,CAAC;IACT,IAAI,CAAC,CAAC,OAAO,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;KAC5B;SAAM;QACH,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACnB;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var fs = require("fs");
|
|
40
|
+
var path = require("path");
|
|
41
|
+
var utils_1 = require("./utils");
|
|
42
|
+
var replaceFiles = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _i, _a, pkg, _b, _c, fileReplacement, target, source;
|
|
44
|
+
return __generator(this, function (_d) {
|
|
45
|
+
for (_i = 0, _a = (0, utils_1.config)().packages; _i < _a.length; _i++) {
|
|
46
|
+
pkg = _a[_i];
|
|
47
|
+
if (pkg.fileReplacements) {
|
|
48
|
+
for (_b = 0, _c = pkg.fileReplacements; _b < _c.length; _b++) {
|
|
49
|
+
fileReplacement = _c[_b];
|
|
50
|
+
target = path.join(pkg.path, fileReplacement.replace);
|
|
51
|
+
source = path.join(pkg.path, fileReplacement.with);
|
|
52
|
+
fs.writeFileSync(target, fs.readFileSync(source).toString());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return [2 /*return*/];
|
|
57
|
+
});
|
|
58
|
+
}); };
|
|
59
|
+
exports.default = replaceFiles;
|
|
60
|
+
//# sourceMappingURL=replace-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-files.js","sourceRoot":"","sources":["../src/replace-files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,iCAAiC;AAEjC,IAAM,YAAY,GAAG;;;QACjB,WAAmC,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAjB,cAAiB,EAAjB,IAAiB,EAAE;YAA1B,GAAG;YACV,IAAI,GAAG,CAAC,gBAAgB,EAAE;gBACtB,WAAkD,EAApB,KAAA,GAAG,CAAC,gBAAgB,EAApB,cAAoB,EAApB,IAAoB,EAAE;oBAAzC,eAAe;oBAChB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;oBACtD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;oBACzD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;iBAChE;aACJ;SACJ;;;KACJ,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var fs = require("fs");
|
|
40
|
+
var path = require("path");
|
|
41
|
+
var utils_1 = require("./utils");
|
|
42
|
+
var replaceTokens = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
43
|
+
var _i, _a, pkg, _b, _c, file, fileLocation, _d, _e, name_1, content;
|
|
44
|
+
return __generator(this, function (_f) {
|
|
45
|
+
for (_i = 0, _a = (0, utils_1.config)().packages; _i < _a.length; _i++) {
|
|
46
|
+
pkg = _a[_i];
|
|
47
|
+
if (pkg.tokensReplacements) {
|
|
48
|
+
for (_b = 0, _c = pkg.tokensReplacements; _b < _c.length; _b++) {
|
|
49
|
+
file = _c[_b];
|
|
50
|
+
fileLocation = path.join(pkg.path, file);
|
|
51
|
+
for (_d = 0, _e = Object.keys(process.env); _d < _e.length; _d++) {
|
|
52
|
+
name_1 = _e[_d];
|
|
53
|
+
content = fs.readFileSync(fileLocation).toString();
|
|
54
|
+
fs.writeFileSync(fileLocation, content.replace(new RegExp("%#".concat(name_1, "#%"), 'g'), process.env[name_1]));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return [2 /*return*/];
|
|
60
|
+
});
|
|
61
|
+
}); };
|
|
62
|
+
exports.default = replaceTokens;
|
|
63
|
+
//# sourceMappingURL=replace-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replace-tokens.js","sourceRoot":"","sources":["../src/replace-tokens.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uBAAyB;AACzB,2BAA6B;AAE7B,iCAAiC;AAEjC,IAAM,aAAa,GAAG;;;QAClB,WAAmC,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ,EAAjB,cAAiB,EAAjB,IAAiB,EAAE;YAA1B,GAAG;YACV,IAAI,GAAG,CAAC,kBAAkB,EAAE;gBACxB,WAAyC,EAAtB,KAAA,GAAG,CAAC,kBAAkB,EAAtB,cAAsB,EAAtB,IAAsB,EAAE;oBAAhC,IAAI;oBACL,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC/C,WAA2C,EAAxB,KAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAxB,cAAwB,EAAxB,IAAwB,EAAE;wBAAxC;wBACK,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;wBACzD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAK,MAAI,OAAI,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,MAAI,CAAC,CAAC,CAAC,CAAC;qBACtG;iBACJ;aACJ;SACJ;;;KACJ,CAAC;AAEF,kBAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var utils_1 = require("./utils");
|
|
40
|
+
var switchToNpm = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var _i, _a, pkg, npm, packageName, newVersion, _b, _c, otherPackage;
|
|
42
|
+
return __generator(this, function (_d) {
|
|
43
|
+
switch (_d.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
_i = 0, _a = (0, utils_1.config)().packages;
|
|
46
|
+
_d.label = 1;
|
|
47
|
+
case 1:
|
|
48
|
+
if (!(_i < _a.length)) return [3 /*break*/, 13];
|
|
49
|
+
pkg = _a[_i];
|
|
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.write(['scripts', 'preinstall'], undefined)];
|
|
55
|
+
case 3:
|
|
56
|
+
_d.sent();
|
|
57
|
+
return [4 /*yield*/, npm.install()];
|
|
58
|
+
case 4:
|
|
59
|
+
_d.sent();
|
|
60
|
+
if (!pkg.deploy) return [3 /*break*/, 12];
|
|
61
|
+
return [4 /*yield*/, npm.build()];
|
|
62
|
+
case 5:
|
|
63
|
+
_d.sent();
|
|
64
|
+
return [4 /*yield*/, npm.publishIfNeeded()];
|
|
65
|
+
case 6:
|
|
66
|
+
_d.sent();
|
|
67
|
+
return [4 /*yield*/, npm.getName()];
|
|
68
|
+
case 7:
|
|
69
|
+
packageName = _d.sent();
|
|
70
|
+
return [4 /*yield*/, npm.getPublishedVersion()];
|
|
71
|
+
case 8:
|
|
72
|
+
newVersion = _d.sent();
|
|
73
|
+
_b = 0, _c = (0, utils_1.config)().packages;
|
|
74
|
+
_d.label = 9;
|
|
75
|
+
case 9:
|
|
76
|
+
if (!(_b < _c.length)) return [3 /*break*/, 12];
|
|
77
|
+
otherPackage = _c[_b];
|
|
78
|
+
return [4 /*yield*/, utils_1.Npm.prefix(otherPackage.path).updateDependency(packageName, newVersion)];
|
|
79
|
+
case 10:
|
|
80
|
+
_d.sent();
|
|
81
|
+
_d.label = 11;
|
|
82
|
+
case 11:
|
|
83
|
+
_b++;
|
|
84
|
+
return [3 /*break*/, 9];
|
|
85
|
+
case 12:
|
|
86
|
+
_i++;
|
|
87
|
+
return [3 /*break*/, 1];
|
|
88
|
+
case 13: return [2 /*return*/];
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}); };
|
|
92
|
+
exports.default = switchToNpm;
|
|
93
|
+
//# sourceMappingURL=switch-to-npm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-to-npm.js","sourceRoot":"","sources":["../src/switch-to-npm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAEtC,IAAM,WAAW,GAAG;;;;;sBACmB,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ;;;qBAAjB,CAAA,cAAiB,CAAA;gBAAxB,GAAG;gBACJ,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjC,qBAAM,GAAG,CAAC,KAAK,EAAE,EAAA;;gBAAjB,SAAiB,CAAC;gBAClB,qBAAM,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,EAAA;;gBAArD,SAAqD,CAAC;gBACtD,qBAAM,GAAG,CAAC,OAAO,EAAE,EAAA;;gBAAnB,SAAmB,CAAC;qBAEhB,GAAG,CAAC,MAAM,EAAV,yBAAU;gBACV,qBAAM,GAAG,CAAC,KAAK,EAAE,EAAA;;gBAAjB,SAAiB,CAAC;gBAClB,qBAAM,GAAG,CAAC,eAAe,EAAE,EAAA;;gBAA3B,SAA2B,CAAC;gBAER,qBAAM,GAAG,CAAC,OAAO,EAAE,EAAA;;gBAAjC,WAAW,GAAG,SAAmB;gBACpB,qBAAM,GAAG,CAAC,mBAAmB,EAAE,EAAA;;gBAA5C,UAAU,GAAG,SAA+B;sBAEN,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ;;;qBAAjB,CAAA,cAAiB,CAAA;gBAAjC,YAAY;gBACnB,qBAAM,WAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,EAAA;;gBAA7E,SAA6E,CAAC;;;gBADvD,IAAiB,CAAA;;;gBAblC,IAAiB,CAAA;;;;;KAkBtC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
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 (_) 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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var utils_1 = require("./utils");
|
|
40
|
+
var switchToPnpm = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var _i, _a, pkg, npm, packageName, _b, _c, otherPackage;
|
|
42
|
+
return __generator(this, function (_d) {
|
|
43
|
+
switch (_d.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
_i = 0, _a = (0, utils_1.config)().packages;
|
|
46
|
+
_d.label = 1;
|
|
47
|
+
case 1:
|
|
48
|
+
if (!(_i < _a.length)) return [3 /*break*/, 11];
|
|
49
|
+
pkg = _a[_i];
|
|
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*/];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}); };
|
|
85
|
+
exports.default = switchToPnpm;
|
|
86
|
+
//# sourceMappingURL=switch-to-pnpm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch-to-pnpm.js","sourceRoot":"","sources":["../src/switch-to-pnpm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAsC;AAEtC,IAAM,YAAY,GAAG;;;;;sBACkB,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ;;;qBAAjB,CAAA,cAAiB,CAAA;gBAAxB,GAAG;gBACJ,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjC,qBAAM,GAAG,CAAC,KAAK,EAAE,EAAA;;gBAAjB,SAAiB,CAAC;gBAClB,qBAAM,GAAG,CAAC,iBAAiB,EAAE,EAAA;;gBAA7B,SAA6B,CAAC;gBAC9B,qBAAM,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA;;gBAAnC,SAAmC,CAAC;gBACpC,qBAAM,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,qBAAqB,CAAC,EAAA;;gBAAjE,SAAiE,CAAC;gBAE9C,qBAAM,GAAG,CAAC,OAAO,EAAE,EAAA;;gBAAjC,WAAW,GAAG,SAAmB;sBAEK,EAAjB,KAAA,IAAA,cAAM,GAAE,CAAC,QAAQ;;;qBAAjB,CAAA,cAAiB,CAAA;gBAAjC,YAAY;gBACnB,qBAAM,WAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAA;;gBAArF,SAAqF,CAAC;;;gBAD/D,IAAiB,CAAA;;;gBAT9B,IAAiB,CAAA;;;;;KAatC,CAAC;AAEF,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const args: (option: string, defaultValue?: string) => string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.args = void 0;
|
|
4
|
+
var _args = process.argv.filter(function (arg) { return arg.startsWith('-'); })
|
|
5
|
+
.map(function (name) { return ({ name: name, value: process.argv[process.argv.indexOf(name) + 1] }); });
|
|
6
|
+
var args = function (option, defaultValue) {
|
|
7
|
+
var _a;
|
|
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;
|
|
10
|
+
};
|
|
11
|
+
exports.args = args;
|
|
12
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":";;;AAAA,IAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAnB,CAAmB,CAAC;KACxD,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAA/D,CAA+D,CAAC,CAAC;AAE7E,IAAM,IAAI,GAAG,UAAC,MAAc,EAAE,YAA2B;;IAA3B,6BAAA,EAAA,mBAA2B;IAC5D,OAAO,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,KAAK,MAAM,EAAnB,CAAmB,CAAC,0CAAE,KAAK,KAAI,YAAY,CAAC;AACzE,CAAC,CAAA;AAFY,QAAA,IAAI,QAEhB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface ConfigPackageFileReplacement {
|
|
2
|
+
replace: string;
|
|
3
|
+
with: string;
|
|
4
|
+
}
|
|
5
|
+
interface ConfigPackage {
|
|
6
|
+
path: string;
|
|
7
|
+
deploy: boolean;
|
|
8
|
+
tokensReplacements?: string[];
|
|
9
|
+
fileReplacements?: ConfigPackageFileReplacement[];
|
|
10
|
+
}
|
|
11
|
+
interface Config {
|
|
12
|
+
packages: ConfigPackage[];
|
|
13
|
+
}
|
|
14
|
+
export declare const config: () => Config;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
var fs = require("fs");
|
|
5
|
+
var config = function () {
|
|
6
|
+
if (!fs.existsSync('./my-devkit.json')) {
|
|
7
|
+
throw new Error('File my-devkit.json not found!');
|
|
8
|
+
}
|
|
9
|
+
return JSON.parse(fs.readFileSync('./my-devkit.json', { encoding: 'utf-8' }));
|
|
10
|
+
};
|
|
11
|
+
exports.config = config;
|
|
12
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;AAAA,uBAAyB;AAkBlB,IAAM,MAAM,GAAG;IAClB,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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare class Gist {
|
|
2
|
+
static username: string;
|
|
3
|
+
static password: string;
|
|
4
|
+
static gistId: string;
|
|
5
|
+
static getPackages(): Promise<Gist.Packages>;
|
|
6
|
+
static getPackageChecksum(packageName: any): Promise<string>;
|
|
7
|
+
static setPackageChecksum(packageName: any, checksum: any): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare namespace Gist {
|
|
10
|
+
interface Gist {
|
|
11
|
+
files: {
|
|
12
|
+
[key: string]: {
|
|
13
|
+
filename: string;
|
|
14
|
+
size: number;
|
|
15
|
+
truncated: boolean;
|
|
16
|
+
content: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
interface Packages {
|
|
21
|
+
[key: string]: string;
|
|
22
|
+
}
|
|
23
|
+
}
|