contensis-cli 1.6.1-beta.8 → 1.7.0
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/CHANGELOG.md +39 -0
- package/LICENSE +674 -0
- package/dist/index.js +58362 -11
- package/dist/index.js.map +4 -4
- package/dist/shell.js +58100 -52
- package/dist/shell.js.map +4 -4
- package/docs/copy_field_templates.md +112 -0
- package/esbuild.config.js +8 -13
- package/package.json +3 -3
- package/src/commands/create.ts +48 -0
- package/src/commands/dev.ts +6 -0
- package/src/commands/push.ts +38 -6
- package/src/commands/set.ts +70 -1
- package/src/factories/RequestHandlerFactory.ts +6 -3
- package/src/localisation/en-GB.ts +12 -0
- package/src/mappers/DevRequests-to-RequestHanderCliArgs.ts +3 -0
- package/src/models/CliService.d.ts +5 -1
- package/src/providers/GitHubCliModuleProvider.ts +8 -8
- package/src/services/ContensisCliService.ts +189 -7
- package/src/shell.ts +6 -1
- package/src/util/logger.ts +3 -4
- package/src/util/os.ts +5 -3
- package/src/version.ts +1 -1
- package/dist/commands/connect.js +0 -44
- package/dist/commands/connect.js.map +0 -7
- package/dist/commands/copy.js +0 -78
- package/dist/commands/copy.js.map +0 -7
- package/dist/commands/create.js +0 -170
- package/dist/commands/create.js.map +0 -7
- package/dist/commands/dev.js +0 -81
- package/dist/commands/dev.js.map +0 -7
- package/dist/commands/diff.js +0 -57
- package/dist/commands/diff.js.map +0 -7
- package/dist/commands/execute.js +0 -103
- package/dist/commands/execute.js.map +0 -7
- package/dist/commands/get.js +0 -330
- package/dist/commands/get.js.map +0 -7
- package/dist/commands/globalOptions.js +0 -252
- package/dist/commands/globalOptions.js.map +0 -7
- package/dist/commands/import.js +0 -256
- package/dist/commands/import.js.map +0 -7
- package/dist/commands/index.js +0 -107
- package/dist/commands/index.js.map +0 -7
- package/dist/commands/list.js +0 -195
- package/dist/commands/list.js.map +0 -7
- package/dist/commands/login.js +0 -55
- package/dist/commands/login.js.map +0 -7
- package/dist/commands/push.js +0 -234
- package/dist/commands/push.js.map +0 -7
- package/dist/commands/remove.js +0 -193
- package/dist/commands/remove.js.map +0 -7
- package/dist/commands/set.js +0 -180
- package/dist/commands/set.js.map +0 -7
- package/dist/commands/update.js +0 -70
- package/dist/commands/update.js.map +0 -7
- package/dist/factories/RequestHandlerFactory.js +0 -227
- package/dist/factories/RequestHandlerFactory.js.map +0 -7
- package/dist/localisation/en-GB.js +0 -559
- package/dist/localisation/en-GB.js.map +0 -7
- package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js +0 -56
- package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js.map +0 -7
- package/dist/mappers/DevInit-to-CIWorkflow.js +0 -409
- package/dist/mappers/DevInit-to-CIWorkflow.js.map +0 -7
- package/dist/mappers/DevInit-to-RolePermissions.js +0 -56
- package/dist/mappers/DevInit-to-RolePermissions.js.map +0 -7
- package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js +0 -168
- package/dist/mappers/DevRequests-to-RequestHanderCliArgs.js.map +0 -7
- package/dist/mappers/MixedFileData.js +0 -83
- package/dist/mappers/MixedFileData.js.map +0 -7
- package/dist/models/AppError.d.js +0 -2
- package/dist/models/AppError.d.js.map +0 -7
- package/dist/models/Cache.d.js +0 -2
- package/dist/models/Cache.d.js.map +0 -7
- package/dist/models/CliService.d.js +0 -17
- package/dist/models/CliService.d.js.map +0 -7
- package/dist/models/DevService.d.js +0 -17
- package/dist/models/DevService.d.js.map +0 -7
- package/dist/models/JsModules.d.js +0 -2
- package/dist/models/JsModules.d.js.map +0 -7
- package/dist/providers/CredentialProvider.js +0 -126
- package/dist/providers/CredentialProvider.js.map +0 -7
- package/dist/providers/GitHubCliModuleProvider.js +0 -115
- package/dist/providers/GitHubCliModuleProvider.js.map +0 -7
- package/dist/providers/HttpProvider.js +0 -73
- package/dist/providers/HttpProvider.js.map +0 -7
- package/dist/providers/ManifestProvider.js +0 -50
- package/dist/providers/ManifestProvider.js.map +0 -7
- package/dist/providers/SessionCacheProvider.js +0 -132
- package/dist/providers/SessionCacheProvider.js.map +0 -7
- package/dist/providers/file-provider.js +0 -177
- package/dist/providers/file-provider.js.map +0 -7
- package/dist/services/ContensisAuthService.js +0 -88
- package/dist/services/ContensisAuthService.js.map +0 -7
- package/dist/services/ContensisCliService.js +0 -2661
- package/dist/services/ContensisCliService.js.map +0 -7
- package/dist/services/ContensisDevService.js +0 -435
- package/dist/services/ContensisDevService.js.map +0 -7
- package/dist/services/ContensisRoleService.js +0 -112
- package/dist/services/ContensisRoleService.js.map +0 -7
- package/dist/util/api-ids.js +0 -110
- package/dist/util/api-ids.js.map +0 -7
- package/dist/util/assert.js +0 -62
- package/dist/util/assert.js.map +0 -7
- package/dist/util/console.printer.js +0 -461
- package/dist/util/console.printer.js.map +0 -7
- package/dist/util/csv.formatter.js +0 -118
- package/dist/util/csv.formatter.js.map +0 -7
- package/dist/util/debug.js +0 -29
- package/dist/util/debug.js.map +0 -7
- package/dist/util/diff.js +0 -118
- package/dist/util/diff.js.map +0 -7
- package/dist/util/dotenv.js +0 -56
- package/dist/util/dotenv.js.map +0 -7
- package/dist/util/error.js +0 -36
- package/dist/util/error.js.map +0 -7
- package/dist/util/fetch.js +0 -69
- package/dist/util/fetch.js.map +0 -7
- package/dist/util/find.js +0 -39
- package/dist/util/find.js.map +0 -7
- package/dist/util/git.js +0 -145
- package/dist/util/git.js.map +0 -7
- package/dist/util/gitignore.js +0 -61
- package/dist/util/gitignore.js.map +0 -7
- package/dist/util/html.formatter.js +0 -70
- package/dist/util/html.formatter.js.map +0 -7
- package/dist/util/index.js +0 -68
- package/dist/util/index.js.map +0 -7
- package/dist/util/json.formatter.js +0 -66
- package/dist/util/json.formatter.js.map +0 -7
- package/dist/util/logger.js +0 -304
- package/dist/util/logger.js.map +0 -7
- package/dist/util/os.js +0 -46
- package/dist/util/os.js.map +0 -7
- package/dist/util/timers.js +0 -49
- package/dist/util/timers.js.map +0 -7
- package/dist/util/xml.formatter.js +0 -62
- package/dist/util/xml.formatter.js.map +0 -7
- package/dist/util/yaml.js +0 -44
- package/dist/util/yaml.js.map +0 -7
- package/dist/version.js +0 -29
- package/dist/version.js.map +0 -7
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to2, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to2, key) && key !== except)
|
|
16
|
-
__defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to2;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var CredentialProvider_exports = {};
|
|
30
|
-
__export(CredentialProvider_exports, {
|
|
31
|
-
default: () => CredentialProvider_default
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(CredentialProvider_exports);
|
|
34
|
-
var import_await_to_js = __toESM(require("await-to-js"));
|
|
35
|
-
var import_logger = require("../util/logger");
|
|
36
|
-
const SERVICE_NAME = "contensis-cli";
|
|
37
|
-
class CredentialProvider {
|
|
38
|
-
serviceId;
|
|
39
|
-
keytar;
|
|
40
|
-
userId = "";
|
|
41
|
-
passwordFallback;
|
|
42
|
-
current = null;
|
|
43
|
-
remarks = { secure: false };
|
|
44
|
-
constructor({ userId, alias }, passwordFallback) {
|
|
45
|
-
this.serviceId = typeof alias !== "undefined" ? `${SERVICE_NAME}_${alias}` : SERVICE_NAME;
|
|
46
|
-
this.userId = userId;
|
|
47
|
-
this.passwordFallback = passwordFallback;
|
|
48
|
-
}
|
|
49
|
-
Import = async () => {
|
|
50
|
-
try {
|
|
51
|
-
this.keytar = (await Promise.resolve().then(() => __toESM(require("keytar")))).default;
|
|
52
|
-
} catch (ex) {
|
|
53
|
-
this.keytar = {
|
|
54
|
-
findCredentials: async () => {
|
|
55
|
-
throw ex;
|
|
56
|
-
},
|
|
57
|
-
getPassword: async () => {
|
|
58
|
-
throw ex;
|
|
59
|
-
},
|
|
60
|
-
findPassword: async () => {
|
|
61
|
-
throw ex;
|
|
62
|
-
},
|
|
63
|
-
setPassword: async () => {
|
|
64
|
-
throw ex;
|
|
65
|
-
},
|
|
66
|
-
deletePassword: async () => {
|
|
67
|
-
throw ex;
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
Init = async () => {
|
|
73
|
-
await this.Import();
|
|
74
|
-
const [err, stored] = await (0, import_await_to_js.default)(
|
|
75
|
-
this.keytar.getPassword(this.serviceId, this.userId)
|
|
76
|
-
);
|
|
77
|
-
if (err && this.passwordFallback) {
|
|
78
|
-
this.current = {
|
|
79
|
-
account: this.userId,
|
|
80
|
-
password: this.passwordFallback
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
if (!err) {
|
|
84
|
-
this.remarks = { secure: true };
|
|
85
|
-
if (stored) this.current = { account: this.userId, password: stored };
|
|
86
|
-
if (!this.current && this.passwordFallback) {
|
|
87
|
-
await this.Save(this.passwordFallback);
|
|
88
|
-
return await this.Init();
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return [err, this];
|
|
92
|
-
};
|
|
93
|
-
Save = async (password) => {
|
|
94
|
-
const [err] = await (0, import_await_to_js.default)(
|
|
95
|
-
this.keytar.setPassword(this.serviceId, this.userId, password)
|
|
96
|
-
);
|
|
97
|
-
return err && !this.passwordFallback ? err : true;
|
|
98
|
-
};
|
|
99
|
-
Delete = async () => {
|
|
100
|
-
if (this.passwordFallback) {
|
|
101
|
-
this.passwordFallback = void 0;
|
|
102
|
-
return true;
|
|
103
|
-
} else {
|
|
104
|
-
const [err] = await (0, import_await_to_js.default)(
|
|
105
|
-
this.keytar.deletePassword(this.serviceId, this.userId)
|
|
106
|
-
);
|
|
107
|
-
if (err)
|
|
108
|
-
import_logger.Logger.warning(
|
|
109
|
-
`${this.serviceId} - could not remove invalid credentials for ${this.userId}`
|
|
110
|
-
);
|
|
111
|
-
else
|
|
112
|
-
import_logger.Logger.warning(
|
|
113
|
-
`${this.serviceId} - invalid credentials removed for ${this.userId}`
|
|
114
|
-
);
|
|
115
|
-
return err || true;
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
// GetPassword = async () => {
|
|
119
|
-
// const [err, password] = await to(
|
|
120
|
-
// keytar.getPassword(this.serviceId, this.userId)
|
|
121
|
-
// );
|
|
122
|
-
// return err || password;
|
|
123
|
-
// };
|
|
124
|
-
}
|
|
125
|
-
var CredentialProvider_default = CredentialProvider;
|
|
126
|
-
//# sourceMappingURL=CredentialProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/providers/CredentialProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import keytar from 'keytar';\nimport to from 'await-to-js';\nimport { Logger } from '~/util/logger';\n\nconst SERVICE_NAME = 'contensis-cli';\n\ninterface Remarks {\n secure: boolean;\n}\n\nclass CredentialProvider {\n private serviceId: string;\n private keytar!: typeof keytar;\n private userId: string = '';\n private passwordFallback?: string;\n\n current: {\n account: string;\n password: string;\n } | null = null;\n remarks: Remarks = { secure: false };\n\n constructor(\n { userId, alias }: { userId: string; alias?: string },\n passwordFallback?: string\n ) {\n this.serviceId =\n typeof alias !== 'undefined' ? `${SERVICE_NAME}_${alias}` : SERVICE_NAME;\n this.userId = userId;\n this.passwordFallback = passwordFallback;\n }\n\n Import = async () => {\n try {\n this.keytar = (await import('keytar')).default;\n } catch (ex) {\n this.keytar = {\n findCredentials: async () => {\n throw ex;\n },\n getPassword: async () => {\n throw ex;\n },\n findPassword: async () => {\n throw ex;\n },\n setPassword: async () => {\n throw ex;\n },\n deletePassword: async () => {\n throw ex;\n },\n };\n }\n };\n\n Init = async (): Promise<[Error | null, CredentialProvider]> => {\n await this.Import();\n\n const [err, stored] = (await to(\n this.keytar.getPassword(this.serviceId, this.userId)\n )) as [Error | null, string];\n\n if (err && this.passwordFallback) {\n this.current = {\n account: this.userId,\n password: this.passwordFallback,\n };\n }\n if (!err) {\n this.remarks = { secure: true };\n if (stored) this.current = { account: this.userId, password: stored };\n\n if (!this.current && this.passwordFallback) {\n await this.Save(this.passwordFallback);\n return await this.Init();\n }\n }\n return [err, this];\n };\n\n Save = async (password: string) => {\n const [err] = await to(\n this.keytar.setPassword(this.serviceId, this.userId, password)\n );\n\n // if (!err) Logger.info(`${this.serviceId} - credentials saved`);\n return err && !this.passwordFallback ? err : true;\n };\n\n Delete = async () => {\n if (this.passwordFallback) {\n this.passwordFallback = undefined;\n return true;\n } else {\n const [err] = await to(\n this.keytar.deletePassword(this.serviceId, this.userId)\n );\n\n if (err)\n Logger.warning(\n `${this.serviceId} - could not remove invalid credentials for ${this.userId}`\n );\n else\n Logger.warning(\n `${this.serviceId} - invalid credentials removed for ${this.userId}`\n );\n return err || true;\n }\n };\n\n // GetPassword = async () => {\n // const [err, password] = await to(\n // keytar.getPassword(this.serviceId, this.userId)\n // );\n\n // return err || password;\n // };\n}\n\nexport default CredentialProvider;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yBAAe;AACf,oBAAuB;AAEvB,MAAM,eAAe;AAMrB,MAAM,mBAAmB;AAAA,EACf;AAAA,EACA;AAAA,EACA,SAAiB;AAAA,EACjB;AAAA,EAER,UAGW;AAAA,EACX,UAAmB,EAAE,QAAQ,MAAM;AAAA,EAEnC,YACE,EAAE,QAAQ,MAAM,GAChB,kBACA;AACA,SAAK,YACH,OAAO,UAAU,cAAc,GAAG,YAAY,IAAI,KAAK,KAAK;AAC9D,SAAK,SAAS;AACd,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,SAAS,YAAY;AACnB,QAAI;AACF,WAAK,UAAU,MAAM,6CAAO,QAAQ,KAAG;AAAA,IACzC,SAAS,IAAI;AACX,WAAK,SAAS;AAAA,QACZ,iBAAiB,YAAY;AAC3B,gBAAM;AAAA,QACR;AAAA,QACA,aAAa,YAAY;AACvB,gBAAM;AAAA,QACR;AAAA,QACA,cAAc,YAAY;AACxB,gBAAM;AAAA,QACR;AAAA,QACA,aAAa,YAAY;AACvB,gBAAM;AAAA,QACR;AAAA,QACA,gBAAgB,YAAY;AAC1B,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,YAAyD;AAC9D,UAAM,KAAK,OAAO;AAElB,UAAM,CAAC,KAAK,MAAM,IAAK,UAAM,mBAAAA;AAAA,MAC3B,KAAK,OAAO,YAAY,KAAK,WAAW,KAAK,MAAM;AAAA,IACrD;AAEA,QAAI,OAAO,KAAK,kBAAkB;AAChC,WAAK,UAAU;AAAA,QACb,SAAS,KAAK;AAAA,QACd,UAAU,KAAK;AAAA,MACjB;AAAA,IACF;AACA,QAAI,CAAC,KAAK;AACR,WAAK,UAAU,EAAE,QAAQ,KAAK;AAC9B,UAAI,OAAQ,MAAK,UAAU,EAAE,SAAS,KAAK,QAAQ,UAAU,OAAO;AAEpE,UAAI,CAAC,KAAK,WAAW,KAAK,kBAAkB;AAC1C,cAAM,KAAK,KAAK,KAAK,gBAAgB;AACrC,eAAO,MAAM,KAAK,KAAK;AAAA,MACzB;AAAA,IACF;AACA,WAAO,CAAC,KAAK,IAAI;AAAA,EACnB;AAAA,EAEA,OAAO,OAAO,aAAqB;AACjC,UAAM,CAAC,GAAG,IAAI,UAAM,mBAAAA;AAAA,MAClB,KAAK,OAAO,YAAY,KAAK,WAAW,KAAK,QAAQ,QAAQ;AAAA,IAC/D;AAGA,WAAO,OAAO,CAAC,KAAK,mBAAmB,MAAM;AAAA,EAC/C;AAAA,EAEA,SAAS,YAAY;AACnB,QAAI,KAAK,kBAAkB;AACzB,WAAK,mBAAmB;AACxB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,CAAC,GAAG,IAAI,UAAM,mBAAAA;AAAA,QAClB,KAAK,OAAO,eAAe,KAAK,WAAW,KAAK,MAAM;AAAA,MACxD;AAEA,UAAI;AACF,6BAAO;AAAA,UACL,GAAG,KAAK,SAAS,+CAA+C,KAAK,MAAM;AAAA,QAC7E;AAAA;AAEA,6BAAO;AAAA,UACL,GAAG,KAAK,SAAS,sCAAsC,KAAK,MAAM;AAAA,QACpE;AACF,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASF;AAEA,IAAO,6BAAQ;",
|
|
6
|
-
"names": ["to"]
|
|
7
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __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
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var GitHubCliModuleProvider_exports = {};
|
|
30
|
-
__export(GitHubCliModuleProvider_exports, {
|
|
31
|
-
default: () => GitHubCliModuleProvider_default
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(GitHubCliModuleProvider_exports);
|
|
34
|
-
var import_os = __toESM(require("os"));
|
|
35
|
-
var import_adm_zip = __toESM(require("adm-zip"));
|
|
36
|
-
var import_HttpProvider = __toESM(require("../providers/HttpProvider"));
|
|
37
|
-
var import_file_provider = require("./file-provider");
|
|
38
|
-
var import_fetch = require("../util/fetch");
|
|
39
|
-
class GitHubCliModuleProvider {
|
|
40
|
-
http;
|
|
41
|
-
repo;
|
|
42
|
-
baseUrl = "https://api.github.com/repos";
|
|
43
|
-
get releases_url() {
|
|
44
|
-
return `${this.baseUrl}/${this.repo}/releases`;
|
|
45
|
-
}
|
|
46
|
-
get latest_release_url() {
|
|
47
|
-
return `${this.baseUrl}/${this.repo}/releases/latest`;
|
|
48
|
-
}
|
|
49
|
-
download;
|
|
50
|
-
constructor(repo) {
|
|
51
|
-
this.http = new import_HttpProvider.default();
|
|
52
|
-
this.repo = repo;
|
|
53
|
-
}
|
|
54
|
-
async FindLatestRelease(version) {
|
|
55
|
-
const { http, latest_release_url, releases_url } = this;
|
|
56
|
-
const responses = await Promise.all([
|
|
57
|
-
http.get(latest_release_url, {
|
|
58
|
-
doRetry: (0, import_fetch.doRetry)({ silent: true })
|
|
59
|
-
}),
|
|
60
|
-
http.get(releases_url)
|
|
61
|
-
]);
|
|
62
|
-
const [latestErr, latest, latestResponse] = responses[0];
|
|
63
|
-
const [releasesErr, releases] = responses[1];
|
|
64
|
-
if (releasesErr) {
|
|
65
|
-
throw new Error(`Unable to get releases`, { cause: releasesErr });
|
|
66
|
-
} else if (!releases || releases.length === 0)
|
|
67
|
-
throw new Error(`No releases available`);
|
|
68
|
-
else if (version) {
|
|
69
|
-
const release = releases.find(
|
|
70
|
-
(r) => r.tag_name.toLowerCase() === version.toLowerCase()
|
|
71
|
-
);
|
|
72
|
-
if (release) return release;
|
|
73
|
-
else throw new Error(`No release for ${version} found`);
|
|
74
|
-
} else if (latestErr && !latest) {
|
|
75
|
-
if ((latestResponse == null ? void 0 : latestResponse.status) === 404 && (releases == null ? void 0 : releases.length)) {
|
|
76
|
-
const release = releases.find((r) => r.prerelease) || releases[0];
|
|
77
|
-
if (release) return release;
|
|
78
|
-
}
|
|
79
|
-
} else {
|
|
80
|
-
return latest;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
async DownloadRelease(release, {
|
|
84
|
-
cmd,
|
|
85
|
-
path,
|
|
86
|
-
platforms,
|
|
87
|
-
unzip = true
|
|
88
|
-
}) {
|
|
89
|
-
const platform = platforms.find((p) => p[0] === import_os.default.platform()) || [
|
|
90
|
-
import_os.default.platform(),
|
|
91
|
-
import_os.default.platform()
|
|
92
|
-
];
|
|
93
|
-
const asset = release.assets.find(
|
|
94
|
-
(r) => r.name.toLowerCase().includes(platform[1])
|
|
95
|
-
);
|
|
96
|
-
if (asset) {
|
|
97
|
-
const filePath = (0, import_file_provider.joinPath)(path, asset.name);
|
|
98
|
-
(0, import_file_provider.removeDirectory)(path);
|
|
99
|
-
(0, import_file_provider.checkDir)(filePath);
|
|
100
|
-
await this.http.downloadFile(asset.browser_download_url, filePath);
|
|
101
|
-
if (unzip && asset.name.endsWith(".zip")) {
|
|
102
|
-
const zipFile = new import_adm_zip.default(filePath);
|
|
103
|
-
zipFile.extractAllTo(path);
|
|
104
|
-
(0, import_file_provider.removeFile)(filePath);
|
|
105
|
-
}
|
|
106
|
-
if (import_os.default.platform() !== "win32") (0, import_file_provider.addExecutePermission)((0, import_file_provider.joinPath)(path, cmd));
|
|
107
|
-
} else
|
|
108
|
-
throw new Error(
|
|
109
|
-
`no asset found in release ${release.tag_name} for platform ${import_os.default.platform()}
|
|
110
|
-
${release.html_url}`
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
var GitHubCliModuleProvider_default = GitHubCliModuleProvider;
|
|
115
|
-
//# sourceMappingURL=GitHubCliModuleProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/providers/GitHubCliModuleProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import os from 'os';\nimport Zip from 'adm-zip';\nimport type { Endpoints } from '@octokit/types';\nimport HttpProvider from '~/providers/HttpProvider';\nimport {\n addExecutePermission,\n checkDir,\n joinPath,\n removeDirectory,\n removeFile,\n} from './file-provider';\nimport { doRetry } from '~/util/fetch';\n\ntype GitHubApiRelease =\n Endpoints['GET /repos/{owner}/{repo}/releases/latest']['response']['data'];\n\nclass GitHubCliModuleProvider {\n http: HttpProvider;\n repo: string;\n baseUrl = 'https://api.github.com/repos';\n\n get releases_url() {\n return `${this.baseUrl}/${this.repo}/releases`;\n }\n get latest_release_url() {\n return `${this.baseUrl}/${this.repo}/releases/latest`;\n }\n\n download?: {\n tag: string;\n name: string;\n url: string;\n browser_url: string;\n };\n\n constructor(repo: string) {\n this.http = new HttpProvider();\n this.repo = repo;\n }\n\n async FindLatestRelease(version?: string) {\n const { http, latest_release_url, releases_url } = this;\n // return latest tag version is:\n\n const responses = await Promise.all([\n http.get<GitHubApiRelease>(latest_release_url, {\n doRetry: doRetry({ silent: true }),\n }),\n http.get<GitHubApiRelease[]>(releases_url),\n ]);\n\n const [latestErr, latest, latestResponse] = responses[0];\n const [releasesErr, releases] = responses[1];\n\n if (releasesErr) {\n throw new Error(`Unable to get releases`, { cause: releasesErr });\n } else if (!releases || releases.length === 0)\n throw new Error(`No releases available`);\n else if (version) {\n const release = releases.find(\n r => r.tag_name.toLowerCase() === version.toLowerCase()\n );\n if (release) return release;\n else throw new Error(`No release for ${version} found`);\n } else if (latestErr && !latest) {\n if (latestResponse?.status === 404 && releases?.length) {\n // No latest release, check releases for prerelease version, fallback to last release\n const release = releases.find(r => r.prerelease) || releases[0];\n\n if (release) return release;\n }\n } else {\n return latest;\n }\n }\n\n async DownloadRelease(\n release: GitHubApiRelease,\n {\n cmd,\n path,\n platforms,\n unzip = true,\n }: {\n cmd: string;\n path: string;\n unzip?: boolean;\n platforms: [NodeJS.Platform, string][];\n }\n ) {\n // find os-specific asset\n const platform = platforms.find(p => p[0] === os.platform()) || [\n os.platform(),\n os.platform(),\n ];\n\n const asset = release.assets.find(r =>\n r.name.toLowerCase().includes(platform[1])\n );\n\n // download asset\n if (asset) {\n const filePath = joinPath(path, asset.name);\n removeDirectory(path);\n checkDir(filePath);\n await this.http.downloadFile(asset.browser_download_url, filePath);\n\n if (unzip && asset.name.endsWith('.zip')) {\n // unzip the downloaded file\n const zipFile = new Zip(filePath);\n zipFile.extractAllTo(path);\n\n // delete the downloaded zip file\n removeFile(filePath);\n }\n\n if (os.platform() !== 'win32') addExecutePermission(joinPath(path, cmd));\n } else\n throw new Error(\n `no asset found in release ${\n release.tag_name\n } for platform ${os.platform()}\\n${release.html_url}`\n );\n }\n}\n\nexport default GitHubCliModuleProvider;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,qBAAgB;AAEhB,0BAAyB;AACzB,2BAMO;AACP,mBAAwB;AAKxB,MAAM,wBAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EAEV,IAAI,eAAe;AACjB,WAAO,GAAG,KAAK,OAAO,IAAI,KAAK,IAAI;AAAA,EACrC;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,GAAG,KAAK,OAAO,IAAI,KAAK,IAAI;AAAA,EACrC;AAAA,EAEA;AAAA,EAOA,YAAY,MAAc;AACxB,SAAK,OAAO,IAAI,oBAAAA,QAAa;AAC7B,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,MAAM,kBAAkB,SAAkB;AACxC,UAAM,EAAE,MAAM,oBAAoB,aAAa,IAAI;AAGnD,UAAM,YAAY,MAAM,QAAQ,IAAI;AAAA,MAClC,KAAK,IAAsB,oBAAoB;AAAA,QAC7C,aAAS,sBAAQ,EAAE,QAAQ,KAAK,CAAC;AAAA,MACnC,CAAC;AAAA,MACD,KAAK,IAAwB,YAAY;AAAA,IAC3C,CAAC;AAED,UAAM,CAAC,WAAW,QAAQ,cAAc,IAAI,UAAU,CAAC;AACvD,UAAM,CAAC,aAAa,QAAQ,IAAI,UAAU,CAAC;AAE3C,QAAI,aAAa;AACf,YAAM,IAAI,MAAM,0BAA0B,EAAE,OAAO,YAAY,CAAC;AAAA,IAClE,WAAW,CAAC,YAAY,SAAS,WAAW;AAC1C,YAAM,IAAI,MAAM,uBAAuB;AAAA,aAChC,SAAS;AAChB,YAAM,UAAU,SAAS;AAAA,QACvB,OAAK,EAAE,SAAS,YAAY,MAAM,QAAQ,YAAY;AAAA,MACxD;AACA,UAAI,QAAS,QAAO;AAAA,UACf,OAAM,IAAI,MAAM,kBAAkB,OAAO,QAAQ;AAAA,IACxD,WAAW,aAAa,CAAC,QAAQ;AAC/B,WAAI,iDAAgB,YAAW,QAAO,qCAAU,SAAQ;AAEtD,cAAM,UAAU,SAAS,KAAK,OAAK,EAAE,UAAU,KAAK,SAAS,CAAC;AAE9D,YAAI,QAAS,QAAO;AAAA,MACtB;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,MAAM,gBACJ,SACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV,GAMA;AAEA,UAAM,WAAW,UAAU,KAAK,OAAK,EAAE,CAAC,MAAM,UAAAC,QAAG,SAAS,CAAC,KAAK;AAAA,MAC9D,UAAAA,QAAG,SAAS;AAAA,MACZ,UAAAA,QAAG,SAAS;AAAA,IACd;AAEA,UAAM,QAAQ,QAAQ,OAAO;AAAA,MAAK,OAChC,EAAE,KAAK,YAAY,EAAE,SAAS,SAAS,CAAC,CAAC;AAAA,IAC3C;AAGA,QAAI,OAAO;AACT,YAAM,eAAW,+BAAS,MAAM,MAAM,IAAI;AAC1C,gDAAgB,IAAI;AACpB,yCAAS,QAAQ;AACjB,YAAM,KAAK,KAAK,aAAa,MAAM,sBAAsB,QAAQ;AAEjE,UAAI,SAAS,MAAM,KAAK,SAAS,MAAM,GAAG;AAExC,cAAM,UAAU,IAAI,eAAAC,QAAI,QAAQ;AAChC,gBAAQ,aAAa,IAAI;AAGzB,6CAAW,QAAQ;AAAA,MACrB;AAEA,UAAI,UAAAD,QAAG,SAAS,MAAM,QAAS,oDAAqB,+BAAS,MAAM,GAAG,CAAC;AAAA,IACzE;AACE,YAAM,IAAI;AAAA,QACR,6BACE,QAAQ,QACV,iBAAiB,UAAAA,QAAG,SAAS,CAAC;AAAA,EAAK,QAAQ,QAAQ;AAAA,MACrD;AAAA,EACJ;AACF;AAEA,IAAO,kCAAQ;",
|
|
6
|
-
"names": ["HttpProvider", "os", "Zip"]
|
|
7
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to2, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to2, key) && key !== except)
|
|
16
|
-
__defProp(to2, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to2;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var HttpProvider_exports = {};
|
|
30
|
-
__export(HttpProvider_exports, {
|
|
31
|
-
default: () => HttpProvider_default
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(HttpProvider_exports);
|
|
34
|
-
var import_await_to_js = __toESM(require("await-to-js"));
|
|
35
|
-
var import_fs = __toESM(require("fs"));
|
|
36
|
-
var import_stream = require("stream");
|
|
37
|
-
var import_promises = require("stream/promises");
|
|
38
|
-
var import_assert = require("../util/assert");
|
|
39
|
-
var import_fetch = require("../util/fetch");
|
|
40
|
-
class HttpProvider {
|
|
41
|
-
constructor() {
|
|
42
|
-
}
|
|
43
|
-
async get(url, init = {}) {
|
|
44
|
-
return this.fetch(url, { method: "GET", ...init });
|
|
45
|
-
}
|
|
46
|
-
async fetch(uri, init = {}) {
|
|
47
|
-
const [error, response] = await (0, import_await_to_js.default)((0, import_fetch.enhancedFetch)(uri, init));
|
|
48
|
-
if (response && !error) {
|
|
49
|
-
const [bodyError, text] = await (0, import_await_to_js.default)(response.text());
|
|
50
|
-
if (bodyError) return [bodyError, void 0, response];
|
|
51
|
-
if ((0, import_assert.isJson)(text)) {
|
|
52
|
-
const err = !response.status || !response.ok ? (0, import_assert.tryParse)(text) : void 0;
|
|
53
|
-
const payload = response.status && response.ok ? (0, import_assert.tryParse)(text) : void 0;
|
|
54
|
-
return [err, payload, response];
|
|
55
|
-
}
|
|
56
|
-
return [
|
|
57
|
-
response.ok ? null : new Error(text),
|
|
58
|
-
response.ok ? text : void 0,
|
|
59
|
-
response
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
return [error, void 0, response];
|
|
63
|
-
}
|
|
64
|
-
async downloadFile(url, destination) {
|
|
65
|
-
const res = await fetch(url);
|
|
66
|
-
if (res.ok && res.body !== null) {
|
|
67
|
-
const fileStream = import_fs.default.createWriteStream(destination, { flags: "wx" });
|
|
68
|
-
await (0, import_promises.pipeline)(import_stream.Readable.from(res.body), fileStream);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
var HttpProvider_default = HttpProvider;
|
|
73
|
-
//# sourceMappingURL=HttpProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/providers/HttpProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import to from 'await-to-js';\nimport { FetchInit } from 'enterprise-fetch';\nimport fs from 'fs';\nimport { Readable } from 'stream';\nimport { pipeline } from 'stream/promises';\n\nimport { isJson, tryParse } from '~/util/assert';\nimport { enhancedFetch } from '~/util/fetch';\nclass HttpProvider {\n constructor() {}\n\n async get<T = any>(url: string, init: FetchInit = {}) {\n return this.fetch<T>(url, { method: 'GET', ...init });\n }\n\n async fetch<T = any>(\n uri: string,\n init: FetchInit = {}\n ): Promise<[Error | null, T | undefined, Response | undefined]> {\n const [error, response] = await to(enhancedFetch(uri, init));\n\n if (response && !error) {\n const [bodyError, text] = await to(response.text());\n if (bodyError) return [bodyError, undefined, response];\n if (isJson(text)) {\n const err =\n !response.status || !response.ok ? tryParse(text) : undefined;\n const payload =\n response.status && response.ok ? tryParse(text) : undefined;\n return [err, payload, response];\n }\n return [\n response.ok ? null : new Error(text),\n response.ok ? (text as unknown as T) : undefined,\n response,\n ];\n }\n return [error, undefined, response];\n }\n\n async downloadFile(url: string, destination: string) {\n const res = await fetch(url);\n if (res.ok && res.body !== null) {\n const fileStream = fs.createWriteStream(destination, { flags: 'wx' });\n await pipeline(Readable.from(res.body), fileStream);\n }\n }\n}\n\nexport default HttpProvider;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAe;AAEf,gBAAe;AACf,oBAAyB;AACzB,sBAAyB;AAEzB,oBAAiC;AACjC,mBAA8B;AAC9B,MAAM,aAAa;AAAA,EACjB,cAAc;AAAA,EAAC;AAAA,EAEf,MAAM,IAAa,KAAa,OAAkB,CAAC,GAAG;AACpD,WAAO,KAAK,MAAS,KAAK,EAAE,QAAQ,OAAO,GAAG,KAAK,CAAC;AAAA,EACtD;AAAA,EAEA,MAAM,MACJ,KACA,OAAkB,CAAC,GAC2C;AAC9D,UAAM,CAAC,OAAO,QAAQ,IAAI,UAAM,mBAAAA,aAAG,4BAAc,KAAK,IAAI,CAAC;AAE3D,QAAI,YAAY,CAAC,OAAO;AACtB,YAAM,CAAC,WAAW,IAAI,IAAI,UAAM,mBAAAA,SAAG,SAAS,KAAK,CAAC;AAClD,UAAI,UAAW,QAAO,CAAC,WAAW,QAAW,QAAQ;AACrD,cAAI,sBAAO,IAAI,GAAG;AAChB,cAAM,MACJ,CAAC,SAAS,UAAU,CAAC,SAAS,SAAK,wBAAS,IAAI,IAAI;AACtD,cAAM,UACJ,SAAS,UAAU,SAAS,SAAK,wBAAS,IAAI,IAAI;AACpD,eAAO,CAAC,KAAK,SAAS,QAAQ;AAAA,MAChC;AACA,aAAO;AAAA,QACL,SAAS,KAAK,OAAO,IAAI,MAAM,IAAI;AAAA,QACnC,SAAS,KAAM,OAAwB;AAAA,QACvC;AAAA,MACF;AAAA,IACF;AACA,WAAO,CAAC,OAAO,QAAW,QAAQ;AAAA,EACpC;AAAA,EAEA,MAAM,aAAa,KAAa,aAAqB;AACnD,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,IAAI,MAAM,IAAI,SAAS,MAAM;AAC/B,YAAM,aAAa,UAAAC,QAAG,kBAAkB,aAAa,EAAE,OAAO,KAAK,CAAC;AACpE,gBAAM,0BAAS,uBAAS,KAAK,IAAI,IAAI,GAAG,UAAU;AAAA,IACpD;AAAA,EACF;AACF;AAEA,IAAO,uBAAQ;",
|
|
6
|
-
"names": ["to", "fs"]
|
|
7
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
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 ManifestProvider_exports = {};
|
|
20
|
-
__export(ManifestProvider_exports, {
|
|
21
|
-
default: () => ManifestProvider_default
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(ManifestProvider_exports);
|
|
24
|
-
var import_assert = require("../util/assert");
|
|
25
|
-
var import_file_provider = require("./file-provider");
|
|
26
|
-
const MANIFEST_PATH = (0, import_file_provider.appPath)("cli-manifest.json");
|
|
27
|
-
class ManifestProvider {
|
|
28
|
-
manifest;
|
|
29
|
-
constructor() {
|
|
30
|
-
const manifest = (0, import_assert.tryParse)((0, import_file_provider.readFile)(MANIFEST_PATH));
|
|
31
|
-
this.manifest = manifest || {};
|
|
32
|
-
}
|
|
33
|
-
get() {
|
|
34
|
-
return this.manifest;
|
|
35
|
-
}
|
|
36
|
-
getModule(name) {
|
|
37
|
-
var _a;
|
|
38
|
-
return (_a = this.manifest) == null ? void 0 : _a[name];
|
|
39
|
-
}
|
|
40
|
-
writeModule(name, moduleInfo) {
|
|
41
|
-
if (this.manifest) this.manifest[name] = moduleInfo;
|
|
42
|
-
else
|
|
43
|
-
this.manifest = {
|
|
44
|
-
[name]: moduleInfo
|
|
45
|
-
};
|
|
46
|
-
(0, import_file_provider.writeFile)(MANIFEST_PATH, JSON.stringify(this.manifest, null, 2));
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
var ManifestProvider_default = ManifestProvider;
|
|
50
|
-
//# sourceMappingURL=ManifestProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/providers/ManifestProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import { tryParse } from '~/util/assert';\nimport { appPath, readFile, writeFile } from './file-provider';\n\nexport type CliModule = {\n github: string;\n version: string;\n install?: string;\n cmd?: string;\n};\n\ntype CliManifest = {\n [moduleName: string]: CliModule;\n};\n\nconst MANIFEST_PATH = appPath('cli-manifest.json');\n\nclass ManifestProvider {\n private manifest: CliManifest;\n\n constructor() {\n const manifest = tryParse(readFile(MANIFEST_PATH));\n this.manifest = manifest || {};\n }\n\n get() {\n return this.manifest;\n }\n\n getModule(name: string) {\n return this.manifest?.[name];\n }\n writeModule(name: string, moduleInfo: CliModule) {\n if (this.manifest) this.manifest[name] = moduleInfo;\n else\n this.manifest = {\n [name]: moduleInfo,\n };\n\n writeFile(MANIFEST_PATH, JSON.stringify(this.manifest, null, 2));\n }\n}\n\nexport default ManifestProvider;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyB;AACzB,2BAA6C;AAa7C,MAAM,oBAAgB,8BAAQ,mBAAmB;AAEjD,MAAM,iBAAiB;AAAA,EACb;AAAA,EAER,cAAc;AACZ,UAAM,eAAW,4BAAS,+BAAS,aAAa,CAAC;AACjD,SAAK,WAAW,YAAY,CAAC;AAAA,EAC/B;AAAA,EAEA,MAAM;AACJ,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,UAAU,MAAc;AA5B1B;AA6BI,YAAO,UAAK,aAAL,mBAAgB;AAAA,EACzB;AAAA,EACA,YAAY,MAAc,YAAuB;AAC/C,QAAI,KAAK,SAAU,MAAK,SAAS,IAAI,IAAI;AAAA;AAEvC,WAAK,WAAW;AAAA,QACd,CAAC,IAAI,GAAG;AAAA,MACV;AAEF,wCAAU,eAAe,KAAK,UAAU,KAAK,UAAU,MAAM,CAAC,CAAC;AAAA,EACjE;AACF;AAEA,IAAO,2BAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __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
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var SessionCacheProvider_exports = {};
|
|
30
|
-
__export(SessionCacheProvider_exports, {
|
|
31
|
-
default: () => SessionCacheProvider_default
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(SessionCacheProvider_exports);
|
|
34
|
-
var import_fs = __toESM(require("fs"));
|
|
35
|
-
var import_path = __toESM(require("path"));
|
|
36
|
-
var import_cloneDeep = __toESM(require("lodash/cloneDeep"));
|
|
37
|
-
var import_mergeWith = __toESM(require("lodash/mergeWith"));
|
|
38
|
-
var import_unionBy = __toESM(require("lodash/unionBy"));
|
|
39
|
-
var import_file_provider = require("./file-provider");
|
|
40
|
-
var import_assert = require("../util/assert");
|
|
41
|
-
var import_logger = require("../util/logger");
|
|
42
|
-
var import_version = require("../version");
|
|
43
|
-
class SessionCacheProvider {
|
|
44
|
-
localFilePath;
|
|
45
|
-
cache = {};
|
|
46
|
-
constructor() {
|
|
47
|
-
this.localFilePath = import_path.default.join(import_file_provider.appRootDir, "environments.json");
|
|
48
|
-
(0, import_file_provider.checkDir)(this.localFilePath);
|
|
49
|
-
this.cache = {
|
|
50
|
-
currentTimestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
51
|
-
environments: {},
|
|
52
|
-
history: [],
|
|
53
|
-
version: import_version.LIB_VERSION
|
|
54
|
-
};
|
|
55
|
-
this.ReadCacheFromDisk();
|
|
56
|
-
}
|
|
57
|
-
ReadCacheFromDisk = () => {
|
|
58
|
-
try {
|
|
59
|
-
if (import_fs.default.existsSync(this.localFilePath)) {
|
|
60
|
-
const raw = import_fs.default.readFileSync(this.localFilePath, "utf-8");
|
|
61
|
-
if ((0, import_assert.isJson)(raw)) this.cache = (0, import_assert.tryParse)(raw);
|
|
62
|
-
} else {
|
|
63
|
-
this.WriteCacheToDisk();
|
|
64
|
-
}
|
|
65
|
-
} catch (ex) {
|
|
66
|
-
import_logger.Logger.error(ex);
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
WriteCacheToDisk = () => {
|
|
70
|
-
try {
|
|
71
|
-
import_fs.default.writeFileSync(this.localFilePath, JSON.stringify(this.cache, null, 2));
|
|
72
|
-
} catch (ex) {
|
|
73
|
-
import_logger.Logger.error(ex);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
Get = () => (0, import_cloneDeep.default)(this.cache);
|
|
77
|
-
Update = (updateContent) => {
|
|
78
|
-
try {
|
|
79
|
-
this.cache = (0, import_mergeWith.default)(this.cache, updateContent, (val, src, key) => {
|
|
80
|
-
if (key === "history" && ((src == null ? void 0 : src[0]) && typeof src[0] === "object" && "createdDate" in src[0] || (val == null ? void 0 : val[0]) && typeof val[0] === "object" && "createdDate" in val[0])) {
|
|
81
|
-
return (0, import_unionBy.default)(val, src, "createdDate");
|
|
82
|
-
}
|
|
83
|
-
if (key === "projects") return Array.isArray(val) ? val : src;
|
|
84
|
-
if (Array.isArray(val)) return val.concat(src);
|
|
85
|
-
});
|
|
86
|
-
this.cache.currentTimestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
87
|
-
this.cache.version = import_version.LIB_VERSION;
|
|
88
|
-
this.WriteCacheToDisk();
|
|
89
|
-
} catch (ex) {
|
|
90
|
-
import_logger.Logger.error(`Problem updating environments.json`);
|
|
91
|
-
import_logger.Logger.error(ex);
|
|
92
|
-
}
|
|
93
|
-
return this.Get();
|
|
94
|
-
};
|
|
95
|
-
UpdateEnv = (updateContent, env = this.cache.currentEnvironment, setCurrentEnv = true) => {
|
|
96
|
-
try {
|
|
97
|
-
const environment = this.cache.environments[env || ""];
|
|
98
|
-
this.cache.environments[env || ""] = {
|
|
99
|
-
...environment,
|
|
100
|
-
...updateContent
|
|
101
|
-
};
|
|
102
|
-
this.Update({
|
|
103
|
-
currentEnvironment: setCurrentEnv ? env : this.cache.currentEnvironment,
|
|
104
|
-
environments: this.cache.environments
|
|
105
|
-
});
|
|
106
|
-
} catch (ex) {
|
|
107
|
-
import_logger.Logger.error(
|
|
108
|
-
`Problem updating environment "${env}" in environments.json`
|
|
109
|
-
);
|
|
110
|
-
import_logger.Logger.error(ex);
|
|
111
|
-
}
|
|
112
|
-
return this.Get();
|
|
113
|
-
};
|
|
114
|
-
RemoveEnv = (env) => {
|
|
115
|
-
try {
|
|
116
|
-
const environment = this.cache.environments[env || ""];
|
|
117
|
-
if (environment) delete this.cache.environments[env || ""];
|
|
118
|
-
this.Update({
|
|
119
|
-
currentEnvironment: this.cache.currentEnvironment === env ? "" : this.cache.currentEnvironment,
|
|
120
|
-
environments: this.cache.environments
|
|
121
|
-
});
|
|
122
|
-
} catch (ex) {
|
|
123
|
-
import_logger.Logger.error(
|
|
124
|
-
`Problem removing environment "${env}" in environments.json`
|
|
125
|
-
);
|
|
126
|
-
import_logger.Logger.error(ex);
|
|
127
|
-
}
|
|
128
|
-
return this.Get();
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
var SessionCacheProvider_default = SessionCacheProvider;
|
|
132
|
-
//# sourceMappingURL=SessionCacheProvider.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/providers/SessionCacheProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport clone from 'lodash/cloneDeep';\nimport mergeWith from 'lodash/mergeWith';\nimport unionBy from 'lodash/unionBy';\nimport { appRootDir, checkDir } from './file-provider';\nimport { isJson, tryParse } from '~/util/assert';\nimport { Logger } from '~/util/logger';\nimport { LIB_VERSION } from '~/version';\n\nclass SessionCacheProvider {\n private localFilePath: string;\n private cache = {} as SessionCache;\n\n constructor() {\n this.localFilePath = path.join(appRootDir, 'environments.json');\n checkDir(this.localFilePath); // ensure the .contensis home folder exists\n this.cache = {\n currentTimestamp: new Date().toISOString(),\n environments: {},\n history: [],\n version: LIB_VERSION,\n };\n this.ReadCacheFromDisk();\n }\n\n private ReadCacheFromDisk = () => {\n try {\n if (fs.existsSync(this.localFilePath)) {\n const raw = fs.readFileSync(this.localFilePath, 'utf-8');\n if (isJson(raw)) this.cache = tryParse(raw);\n } else {\n this.WriteCacheToDisk();\n }\n } catch (ex: any) {\n // Problem reading or parsing cache file\n Logger.error(ex);\n }\n };\n\n private WriteCacheToDisk = () => {\n try {\n fs.writeFileSync(this.localFilePath, JSON.stringify(this.cache, null, 2));\n } catch (ex: any) {\n // Problem writing session cache to file\n Logger.error(ex);\n }\n };\n\n Get = () => clone(this.cache);\n\n Update = (updateContent: Partial<SessionCache>) => {\n try {\n this.cache = mergeWith(this.cache, updateContent, (val, src, key) => {\n if (\n key === 'history' &&\n ((src?.[0] &&\n typeof src[0] === 'object' &&\n 'createdDate' in src[0]) ||\n (val?.[0] && typeof val[0] === 'object' && 'createdDate' in val[0]))\n ) {\n return unionBy(val, src, 'createdDate');\n }\n if (key === 'projects') return Array.isArray(val) ? val : src;\n\n if (Array.isArray(val)) return val.concat(src);\n });\n\n this.cache.currentTimestamp = new Date().toISOString();\n this.cache.version = LIB_VERSION;\n\n this.WriteCacheToDisk();\n } catch (ex: any) {\n // Problem merging cache data for update\n Logger.error(`Problem updating environments.json`);\n Logger.error(ex);\n }\n return this.Get();\n };\n\n UpdateEnv = (\n updateContent: Partial<EnvironmentCache>,\n env = this.cache.currentEnvironment,\n setCurrentEnv = true\n ) => {\n try {\n const environment = this.cache.environments[env || ''];\n\n this.cache.environments[env || ''] = {\n ...environment,\n ...updateContent,\n };\n this.Update({\n currentEnvironment: setCurrentEnv ? env : this.cache.currentEnvironment,\n environments: this.cache.environments,\n });\n } catch (ex: any) {\n // Problem merging cache data for update\n Logger.error(\n `Problem updating environment \"${env}\" in environments.json`\n );\n Logger.error(ex);\n }\n return this.Get();\n };\n\n RemoveEnv = (env: string) => {\n try {\n const environment = this.cache.environments[env || ''];\n if (environment) delete this.cache.environments[env || ''];\n\n this.Update({\n currentEnvironment:\n this.cache.currentEnvironment === env\n ? ''\n : this.cache.currentEnvironment,\n environments: this.cache.environments,\n });\n } catch (ex: any) {\n // Problem merging cache data for update\n Logger.error(\n `Problem removing environment \"${env}\" in environments.json`\n );\n Logger.error(ex);\n }\n return this.Get();\n };\n}\n\nexport default SessionCacheProvider;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["path", "fs", "clone", "mergeWith", "unionBy"]
|
|
7
|
-
}
|