contensis-cli 1.0.0-beta.10 → 1.0.0-beta.100
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 +1146 -78
- package/cli.js +3 -0
- package/dist/commands/connect.js +3 -3
- package/dist/commands/connect.js.map +2 -2
- package/dist/commands/create.js +45 -10
- package/dist/commands/create.js.map +2 -2
- package/dist/commands/dev.js +71 -0
- package/dist/commands/dev.js.map +7 -0
- package/dist/commands/diff.js +57 -0
- package/dist/commands/diff.js.map +7 -0
- package/dist/commands/execute.js +103 -0
- package/dist/commands/execute.js.map +7 -0
- package/dist/commands/get.js +169 -32
- package/dist/commands/get.js.map +3 -3
- package/dist/commands/globalOptions.js +37 -12
- package/dist/commands/globalOptions.js.map +2 -2
- package/dist/commands/import.js +65 -12
- package/dist/commands/import.js.map +2 -2
- package/dist/commands/index.js +22 -2
- package/dist/commands/index.js.map +2 -2
- package/dist/commands/list.js +53 -10
- package/dist/commands/list.js.map +2 -2
- package/dist/commands/login.js +2 -2
- package/dist/commands/login.js.map +2 -2
- package/dist/commands/push.js +17 -13
- package/dist/commands/push.js.map +2 -2
- package/dist/commands/remove.js +51 -8
- package/dist/commands/remove.js.map +2 -2
- package/dist/commands/set.js +139 -12
- package/dist/commands/set.js.map +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/localisation/en-GB.js +297 -49
- package/dist/localisation/en-GB.js.map +2 -2
- package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js +56 -0
- package/dist/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.js.map +7 -0
- package/dist/mappers/DevInit-to-CIWorkflow.js +374 -0
- package/dist/mappers/DevInit-to-CIWorkflow.js.map +7 -0
- package/dist/mappers/DevInit-to-RolePermissions.js +56 -0
- package/dist/mappers/DevInit-to-RolePermissions.js.map +7 -0
- package/dist/mappers/DevRequests-to-RequestHanderSiteConfigYaml.js +56 -0
- package/dist/mappers/DevRequests-to-RequestHanderSiteConfigYaml.js.map +7 -0
- package/dist/models/CliService.d.js +17 -0
- package/dist/models/CliService.d.js.map +7 -0
- package/dist/models/DevService.d.js +17 -0
- package/dist/models/DevService.d.js.map +7 -0
- package/dist/providers/CredentialProvider.js +46 -14
- package/dist/providers/CredentialProvider.js.map +3 -3
- package/dist/providers/SessionCacheProvider.js +21 -1
- package/dist/providers/SessionCacheProvider.js.map +2 -2
- package/dist/providers/file-provider.js +12 -6
- package/dist/providers/file-provider.js.map +3 -3
- package/dist/services/ContensisCliService.js +1211 -420
- package/dist/services/ContensisCliService.js.map +3 -3
- package/dist/services/ContensisDevService.js +368 -0
- package/dist/services/ContensisDevService.js.map +7 -0
- package/dist/services/ContensisRoleService.js +114 -0
- package/dist/services/ContensisRoleService.js.map +7 -0
- package/dist/shell.js +58 -18
- package/dist/shell.js.map +3 -3
- package/dist/util/console.printer.js +171 -55
- package/dist/util/console.printer.js.map +2 -2
- package/dist/util/diff.js +116 -0
- package/dist/util/diff.js.map +7 -0
- package/dist/util/dotenv.js +57 -0
- package/dist/util/dotenv.js.map +7 -0
- package/dist/util/find.js +31 -0
- package/dist/util/find.js.map +7 -0
- package/dist/util/git.js +128 -0
- package/dist/util/git.js.map +7 -0
- package/dist/util/index.js +8 -2
- package/dist/util/index.js.map +3 -3
- package/dist/util/logger.js +90 -29
- package/dist/util/logger.js.map +3 -3
- package/dist/util/os.js +42 -0
- package/dist/util/os.js.map +7 -0
- package/dist/util/timers.js +49 -0
- package/dist/util/timers.js.map +7 -0
- package/dist/util/yaml.js +45 -0
- package/dist/util/yaml.js.map +7 -0
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/esbuild.config.js +3 -1
- package/package.json +14 -3
- package/src/commands/connect.ts +3 -2
- package/src/commands/create.ts +61 -8
- package/src/commands/dev.ts +69 -0
- package/src/commands/diff.ts +41 -0
- package/src/commands/execute.ts +117 -0
- package/src/commands/get.ts +242 -28
- package/src/commands/globalOptions.ts +42 -12
- package/src/commands/import.ts +83 -8
- package/src/commands/index.ts +22 -1
- package/src/commands/list.ts +85 -11
- package/src/commands/login.ts +2 -1
- package/src/commands/push.ts +18 -11
- package/src/commands/remove.ts +66 -4
- package/src/commands/set.ts +189 -9
- package/src/index.ts +1 -4
- package/src/localisation/en-GB.ts +428 -66
- package/src/mappers/ContensisCliService-to-RequestHanderSiteConfigYaml.ts +44 -0
- package/src/mappers/DevInit-to-CIWorkflow.ts +526 -0
- package/src/mappers/DevInit-to-RolePermissions.ts +32 -0
- package/src/mappers/DevRequests-to-RequestHanderSiteConfigYaml.ts +44 -0
- package/src/models/CliService.d.ts +36 -0
- package/src/models/DevService.d.ts +40 -0
- package/src/models/JsModules.d.ts +2 -0
- package/src/providers/CredentialProvider.ts +51 -18
- package/src/providers/SessionCacheProvider.ts +29 -2
- package/src/providers/file-provider.ts +17 -6
- package/src/services/ContensisCliService.ts +1532 -508
- package/src/services/ContensisDevService.ts +434 -0
- package/src/services/ContensisRoleService.ts +108 -0
- package/src/shell.ts +68 -18
- package/src/util/console.printer.ts +240 -78
- package/src/util/diff.ts +124 -0
- package/src/util/dotenv.ts +37 -0
- package/src/util/find.ts +8 -0
- package/src/util/git.ts +131 -0
- package/src/util/index.ts +16 -7
- package/src/util/logger.ts +145 -31
- package/src/util/os.ts +12 -0
- package/src/util/timers.ts +24 -0
- package/src/util/yaml.ts +13 -0
- package/src/version.ts +1 -1
|
@@ -0,0 +1,56 @@
|
|
|
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 DevInit_to_RolePermissions_exports = {};
|
|
20
|
+
__export(DevInit_to_RolePermissions_exports, {
|
|
21
|
+
deployKeyPermissions: () => deployKeyPermissions,
|
|
22
|
+
deployKeyRole: () => deployKeyRole,
|
|
23
|
+
devKeyPermissions: () => devKeyPermissions,
|
|
24
|
+
devKeyRole: () => devKeyRole
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(DevInit_to_RolePermissions_exports);
|
|
27
|
+
const devKeyPermissions = {};
|
|
28
|
+
const deployKeyPermissions = {
|
|
29
|
+
blocks: { actions: ["push", "release", "view"] }
|
|
30
|
+
};
|
|
31
|
+
const devKeyRole = (keyName, description) => ({
|
|
32
|
+
name: keyName,
|
|
33
|
+
description,
|
|
34
|
+
assignments: {
|
|
35
|
+
apiKeys: [keyName]
|
|
36
|
+
},
|
|
37
|
+
permissions: devKeyPermissions,
|
|
38
|
+
enabled: true
|
|
39
|
+
});
|
|
40
|
+
const deployKeyRole = (keyName, description) => ({
|
|
41
|
+
name: keyName,
|
|
42
|
+
description,
|
|
43
|
+
assignments: {
|
|
44
|
+
apiKeys: [keyName]
|
|
45
|
+
},
|
|
46
|
+
permissions: deployKeyPermissions,
|
|
47
|
+
enabled: true
|
|
48
|
+
});
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
deployKeyPermissions,
|
|
52
|
+
deployKeyRole,
|
|
53
|
+
devKeyPermissions,
|
|
54
|
+
devKeyRole
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=DevInit-to-RolePermissions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/mappers/DevInit-to-RolePermissions.ts"],
|
|
4
|
+
"sourcesContent": ["import { Role } from 'contensis-management-api/lib/models';\n\nexport const devKeyPermissions = {} as Partial<Role['permissions']>;\nexport const deployKeyPermissions = {\n blocks: { actions: ['push', 'release', 'view'] },\n} as Role['permissions'];\n\nexport const devKeyRole = (\n keyName: string,\n description: string\n): Partial<Role> => ({\n name: keyName,\n description,\n assignments: {\n apiKeys: [keyName],\n },\n permissions: devKeyPermissions,\n enabled: true,\n});\n\nexport const deployKeyRole = (\n keyName: string,\n description: string\n): Partial<Role> => ({\n name: keyName,\n description,\n assignments: {\n apiKeys: [keyName],\n },\n permissions: deployKeyPermissions,\n enabled: true,\n});\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,oBAAoB,CAAC;AAC3B,MAAM,uBAAuB;AAAA,EAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ,WAAW,MAAM,EAAE;AACjD;AAEO,MAAM,aAAa,CACxB,SACA,iBACmB;AAAA,EACnB,MAAM;AAAA,EACN;AAAA,EACA,aAAa;AAAA,IACX,SAAS,CAAC,OAAO;AAAA,EACnB;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AACX;AAEO,MAAM,gBAAgB,CAC3B,SACA,iBACmB;AAAA,EACnB,MAAM;AAAA,EACN;AAAA,EACA,aAAa;AAAA,IACX,SAAS,CAAC,OAAO;AAAA,EACnB;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AACX;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
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 DevRequests_to_RequestHanderSiteConfigYaml_exports = {};
|
|
20
|
+
__export(DevRequests_to_RequestHanderSiteConfigYaml_exports, {
|
|
21
|
+
mapSiteConfigYaml: () => mapSiteConfigYaml
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(DevRequests_to_RequestHanderSiteConfigYaml_exports);
|
|
24
|
+
const mapSiteConfigYaml = async (cli) => {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
const credentials = await cli.GetCredentials(cli.env.lastUserId);
|
|
27
|
+
const blocks = [];
|
|
28
|
+
const blocksRaw = await cli.PrintBlocks();
|
|
29
|
+
for (const block of blocksRaw || []) {
|
|
30
|
+
const versions = await cli.PrintBlockVersions(
|
|
31
|
+
block.id,
|
|
32
|
+
"default",
|
|
33
|
+
"latest"
|
|
34
|
+
);
|
|
35
|
+
if (versions == null ? void 0 : versions[0]) {
|
|
36
|
+
blocks.push({
|
|
37
|
+
id: versions[0].id,
|
|
38
|
+
baseUri: versions[0].previewUrl
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const siteConfig = {
|
|
43
|
+
alias: cli.currentEnv,
|
|
44
|
+
projectId: cli.currentProject,
|
|
45
|
+
accessToken: "",
|
|
46
|
+
clientId: ((_a = credentials == null ? void 0 : credentials.current) == null ? void 0 : _a.account) || "",
|
|
47
|
+
sharedSecret: ((_b = credentials == null ? void 0 : credentials.current) == null ? void 0 : _b.password) || "",
|
|
48
|
+
blocks
|
|
49
|
+
};
|
|
50
|
+
return siteConfig;
|
|
51
|
+
};
|
|
52
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
53
|
+
0 && (module.exports = {
|
|
54
|
+
mapSiteConfigYaml
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=DevRequests-to-RequestHanderSiteConfigYaml.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/mappers/DevRequests-to-RequestHanderSiteConfigYaml.ts"],
|
|
4
|
+
"sourcesContent": ["import ContensisCli from '~/services/ContensisCliService';\n\ninterface ISiteConfigYaml {\n alias: string;\n projectId: string;\n accessToken: string;\n clientId: string;\n sharedSecret: string;\n blocks: {\n id: string;\n baseUri: string;\n }[];\n}\n\nexport const mapSiteConfigYaml = async (cli: ContensisCli) => {\n const credentials = await cli.GetCredentials(cli.env.lastUserId);\n\n const blocks = [];\n const blocksRaw = await cli.PrintBlocks();\n\n for (const block of blocksRaw || []) {\n const versions = await cli.PrintBlockVersions(\n block.id,\n 'default',\n 'latest'\n );\n if (versions?.[0]) {\n blocks.push({\n id: versions[0].id,\n baseUri: versions[0].previewUrl,\n });\n }\n }\n\n const siteConfig: ISiteConfigYaml = {\n alias: cli.currentEnv,\n projectId: cli.currentProject,\n accessToken: '',\n clientId: credentials?.current?.account || '',\n sharedSecret: credentials?.current?.password || '',\n blocks,\n };\n return siteConfig;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,oBAAoB,OAAO,QAAsB;AAd9D;AAeE,QAAM,cAAc,MAAM,IAAI,eAAe,IAAI,IAAI,UAAU;AAE/D,QAAM,SAAS,CAAC;AAChB,QAAM,YAAY,MAAM,IAAI,YAAY;AAExC,aAAW,SAAS,aAAa,CAAC,GAAG;AACnC,UAAM,WAAW,MAAM,IAAI;AAAA,MACzB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IACF;AACA,QAAI,qCAAW,IAAI;AACjB,aAAO,KAAK;AAAA,QACV,IAAI,SAAS,GAAG;AAAA,QAChB,SAAS,SAAS,GAAG;AAAA,MACvB,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,aAA8B;AAAA,IAClC,OAAO,IAAI;AAAA,IACX,WAAW,IAAI;AAAA,IACf,aAAa;AAAA,IACb,YAAU,gDAAa,YAAb,mBAAsB,YAAW;AAAA,IAC3C,gBAAc,gDAAa,YAAb,mBAAsB,aAAY;AAAA,IAChD;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var CliService_d_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(CliService_d_exports);
|
|
17
|
+
//# sourceMappingURL=CliService.d.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/models/CliService.d.ts"],
|
|
4
|
+
"sourcesContent": ["\nexport type OutputFormat = 'json' | 'csv' | 'xml';\n\nexport type OutputOptions = {\n format?: OutputFormat;\n output?: string;\n};\n\nexport interface IConnectOptions extends IAuthOptions {\n alias?: string;\n projectId?: string;\n}\n\nexport interface IAuthOptions {\n user?: string;\n password?: string;\n clientId?: string;\n sharedSecret?: string;\n}\n\nexport interface IImportOptions {\n sourceAlias?: string;\n sourceProjectId?: string;\n}\n\nexport type OutputOptionsConstructorArg = OutputOptions &\n IConnectOptions &\n IImportOptions;\n\nexport interface ContensisCliConstructor {\n new (\n args: string[],\n outputOpts?: OutputOptionsConstructorArg,\n contensisOpts?: Partial<MigrateRequest>\n ): ContensisCli;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var DevService_d_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(DevService_d_exports);
|
|
17
|
+
//# sourceMappingURL=DevService.d.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/models/DevService.d.ts"],
|
|
4
|
+
"sourcesContent": ["export type EnvContentsToAdd = {\n ALIAS: string;\n PROJECT: string;\n ACCESS_TOKEN?: string;\n CONTENSIS_CLIENT_ID?: string;\n CONTENSIS_CLIENT_SECRET?: string;\n};\n\nexport type GitHubActionPushBlockJobStep = {\n name: string;\n id: 'push-block';\n uses: string;\n with: {\n 'block-id': string;\n alias: string;\n 'project-id': string;\n 'client-id': string;\n 'shared-secret': string;\n 'image-uri'?: string;\n };\n};\n\nexport type GitHubActionPushBlockJob = {\n name: string;\n 'runs-on': string;\n needs?: string;\n steps: GitHubActionPushBlockJobStep[];\n};\n\nexport type GitLabPushBlockJobStage = {\n stage: string;\n variables: {\n alias: string;\n project_id: string;\n block_id: string;\n image_uri?: string;\n client_id: string;\n shared_secret: string;\n };\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -27,12 +27,12 @@ __export(CredentialProvider_exports, {
|
|
|
27
27
|
default: () => CredentialProvider_default
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(CredentialProvider_exports);
|
|
30
|
-
var import_keytar = __toESM(require("keytar"));
|
|
31
30
|
var import_await_to_js = __toESM(require("await-to-js"));
|
|
32
31
|
var import_logger = require("../util/logger");
|
|
33
32
|
const SERVICE_NAME = "contensis-cli";
|
|
34
33
|
class CredentialProvider {
|
|
35
34
|
serviceId;
|
|
35
|
+
keytar;
|
|
36
36
|
userId = "";
|
|
37
37
|
passwordFallback;
|
|
38
38
|
current = null;
|
|
@@ -42,30 +42,55 @@ class CredentialProvider {
|
|
|
42
42
|
this.userId = userId;
|
|
43
43
|
this.passwordFallback = passwordFallback;
|
|
44
44
|
}
|
|
45
|
+
Import = async () => {
|
|
46
|
+
try {
|
|
47
|
+
this.keytar = (await Promise.resolve().then(() => __toESM(require("keytar")))).default;
|
|
48
|
+
} catch (ex) {
|
|
49
|
+
this.keytar = {
|
|
50
|
+
findCredentials: async () => {
|
|
51
|
+
throw ex;
|
|
52
|
+
},
|
|
53
|
+
getPassword: async () => {
|
|
54
|
+
throw ex;
|
|
55
|
+
},
|
|
56
|
+
findPassword: async () => {
|
|
57
|
+
throw ex;
|
|
58
|
+
},
|
|
59
|
+
setPassword: async () => {
|
|
60
|
+
throw ex;
|
|
61
|
+
},
|
|
62
|
+
deletePassword: async () => {
|
|
63
|
+
throw ex;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
};
|
|
45
68
|
Init = async () => {
|
|
69
|
+
await this.Import();
|
|
46
70
|
const [err, stored] = await (0, import_await_to_js.default)(
|
|
47
|
-
|
|
71
|
+
this.keytar.getPassword(this.serviceId, this.userId)
|
|
48
72
|
);
|
|
49
73
|
if (err && this.passwordFallback) {
|
|
50
|
-
this.current = {
|
|
74
|
+
this.current = {
|
|
75
|
+
account: this.userId,
|
|
76
|
+
password: this.passwordFallback
|
|
77
|
+
};
|
|
51
78
|
}
|
|
52
79
|
if (!err) {
|
|
53
80
|
this.remarks = { secure: true };
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
81
|
+
if (stored)
|
|
82
|
+
this.current = { account: this.userId, password: stored };
|
|
83
|
+
if (!this.current && this.passwordFallback) {
|
|
84
|
+
await this.Save(this.passwordFallback);
|
|
85
|
+
return await this.Init();
|
|
86
|
+
}
|
|
60
87
|
}
|
|
61
88
|
return [err, this];
|
|
62
89
|
};
|
|
63
90
|
Save = async (password) => {
|
|
64
91
|
const [err] = await (0, import_await_to_js.default)(
|
|
65
|
-
|
|
92
|
+
this.keytar.setPassword(this.serviceId, this.userId, password)
|
|
66
93
|
);
|
|
67
|
-
if (!err)
|
|
68
|
-
import_logger.Logger.info(`${this.serviceId} - credentials saved`);
|
|
69
94
|
return err && !this.passwordFallback ? err : true;
|
|
70
95
|
};
|
|
71
96
|
Delete = async () => {
|
|
@@ -74,9 +99,16 @@ class CredentialProvider {
|
|
|
74
99
|
return true;
|
|
75
100
|
} else {
|
|
76
101
|
const [err] = await (0, import_await_to_js.default)(
|
|
77
|
-
|
|
102
|
+
this.keytar.deletePassword(this.serviceId, this.userId)
|
|
78
103
|
);
|
|
79
|
-
|
|
104
|
+
if (err)
|
|
105
|
+
import_logger.Logger.warning(
|
|
106
|
+
`${this.serviceId} - could not remove invalid credentials for ${this.userId}`
|
|
107
|
+
);
|
|
108
|
+
else
|
|
109
|
+
import_logger.Logger.warning(
|
|
110
|
+
`${this.serviceId} - invalid credentials removed for ${this.userId}`
|
|
111
|
+
);
|
|
80
112
|
return err || true;
|
|
81
113
|
}
|
|
82
114
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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 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 Init = async (): Promise<[Error, CredentialProvider]> => {\n const [err, stored] = (await to(\n keytar.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["to"
|
|
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, CredentialProvider]> => {\n await this.Import();\n\n const [err, stored] = (await to(\n this.keytar.getPassword(this.serviceId, this.userId)\n )) as [Error, 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,gBAAgB,UAAU;AAC9D,SAAK,SAAS;AACd,SAAK,mBAAmB;AAAA,EAC1B;AAAA,EAEA,SAAS,YAAY;AACnB,QAAI;AACF,WAAK,UAAU,MAAM,6CAAO,aAAW;AAAA,IACzC,SAAS,IAAP;AACA,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,YAAkD;AACvD,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;AAAQ,aAAK,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,wDAAwD,KAAK;AAAA,QACvE;AAAA;AAEA,6BAAO;AAAA,UACL,GAAG,KAAK,+CAA+C,KAAK;AAAA,QAC9D;AACF,aAAO,OAAO;AAAA,IAChB;AAAA,EACF;AASF;AAEA,IAAO,6BAAQ;",
|
|
6
|
+
"names": ["to"]
|
|
7
7
|
}
|
|
@@ -32,13 +32,14 @@ var import_path = __toESM(require("path"));
|
|
|
32
32
|
var import_cloneDeep = __toESM(require("lodash/cloneDeep"));
|
|
33
33
|
var import_mergeWith = __toESM(require("lodash/mergeWith"));
|
|
34
34
|
var import_unionBy = __toESM(require("lodash/unionBy"));
|
|
35
|
+
var import_file_provider = require("./file-provider");
|
|
35
36
|
var import_util = require("../util");
|
|
36
37
|
var import_logger = require("../util/logger");
|
|
37
38
|
class SessionCacheProvider {
|
|
38
39
|
localFilePath;
|
|
39
40
|
cache = {};
|
|
40
41
|
constructor() {
|
|
41
|
-
this.localFilePath = import_path.default.join(
|
|
42
|
+
this.localFilePath = import_path.default.join(import_file_provider.appRootDir, "environments.json");
|
|
42
43
|
this.cache = {
|
|
43
44
|
currentTimestamp: new Date().toISOString(),
|
|
44
45
|
environments: {},
|
|
@@ -84,6 +85,25 @@ class SessionCacheProvider {
|
|
|
84
85
|
}
|
|
85
86
|
return this.Get();
|
|
86
87
|
};
|
|
88
|
+
UpdateEnv = (updateContent, env = this.cache.currentEnvironment, setCurrentEnv = true) => {
|
|
89
|
+
try {
|
|
90
|
+
const environment = this.cache.environments[env || ""];
|
|
91
|
+
this.cache.environments[env || ""] = {
|
|
92
|
+
...environment,
|
|
93
|
+
...updateContent
|
|
94
|
+
};
|
|
95
|
+
this.Update({
|
|
96
|
+
currentEnvironment: setCurrentEnv ? env : this.cache.currentEnvironment,
|
|
97
|
+
environments: this.cache.environments
|
|
98
|
+
});
|
|
99
|
+
} catch (ex) {
|
|
100
|
+
import_logger.Logger.error(
|
|
101
|
+
`Problem updating environment "${env}" in environments.json`
|
|
102
|
+
);
|
|
103
|
+
import_logger.Logger.error(ex);
|
|
104
|
+
}
|
|
105
|
+
return this.Get();
|
|
106
|
+
};
|
|
87
107
|
}
|
|
88
108
|
var SessionCacheProvider_default = SessionCacheProvider;
|
|
89
109
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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 { isJson, tryParse
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,uBAAkB;AAClB,uBAAsB;AACtB,qBAAoB;AACpB,
|
|
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 } from './file-provider';\nimport { isJson, tryParse } from '~/util';\nimport { Logger } from '~/util/logger';\n\nclass SessionCacheProvider {\n private localFilePath: string;\n private cache = {} as SessionCache;\n\n constructor() {\n this.localFilePath = path.join(appRootDir, 'environments.json');\n this.cache = {\n currentTimestamp: new Date().toISOString(),\n environments: {},\n history: [],\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) {\n // Problem reading or parsing cache file\n }\n };\n\n private WriteCacheToDisk = () => {\n try {\n fs.writeFileSync(this.localFilePath, JSON.stringify(this.cache, null, 2));\n } catch (ex) {\n // Problem writing session cache to file\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')\n return Array.isArray(val) ? [...new Set([...val, ...src])] : src;\n\n if (Array.isArray(val)) return val.concat(src);\n });\n this.cache.currentTimestamp = new Date().toISOString();\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\nexport default SessionCacheProvider;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,uBAAkB;AAClB,uBAAsB;AACtB,qBAAoB;AACpB,2BAA2B;AAC3B,kBAAiC;AACjC,oBAAuB;AAEvB,MAAM,qBAAqB;AAAA,EACjB;AAAA,EACA,QAAQ,CAAC;AAAA,EAEjB,cAAc;AACZ,SAAK,gBAAgB,YAAAA,QAAK,KAAK,iCAAY,mBAAmB;AAC9D,SAAK,QAAQ;AAAA,MACX,kBAAkB,IAAI,KAAK,EAAE,YAAY;AAAA,MACzC,cAAc,CAAC;AAAA,MACf,SAAS,CAAC;AAAA,IACZ;AACA,SAAK,kBAAkB;AAAA,EACzB;AAAA,EAEQ,oBAAoB,MAAM;AAChC,QAAI;AACF,UAAI,UAAAC,QAAG,WAAW,KAAK,aAAa,GAAG;AACrC,cAAM,MAAM,UAAAA,QAAG,aAAa,KAAK,eAAe,OAAO;AACvD,gBAAI,oBAAO,GAAG;AAAG,eAAK,YAAQ,sBAAS,GAAG;AAAA,MAC5C,OAAO;AACL,aAAK,iBAAiB;AAAA,MACxB;AAAA,IACF,SAAS,IAAP;AAAA,IAEF;AAAA,EACF;AAAA,EAEQ,mBAAmB,MAAM;AAC/B,QAAI;AACF,gBAAAA,QAAG,cAAc,KAAK,eAAe,KAAK,UAAU,KAAK,OAAO,MAAM,CAAC,CAAC;AAAA,IAC1E,SAAS,IAAP;AAAA,IAEF;AAAA,EACF;AAAA,EAEA,MAAM,UAAM,iBAAAC,SAAM,KAAK,KAAK;AAAA,EAE5B,SAAS,CAAC,kBAAyC;AACjD,QAAI;AACF,WAAK,YAAQ,iBAAAC,SAAU,KAAK,OAAO,eAAe,CAAC,KAAK,KAAK,QAAQ;AACnE,YACE,QAAQ,eACN,2BAAM,OACN,OAAO,IAAI,OAAO,YAClB,iBAAiB,IAAI,OACpB,2BAAM,OAAM,OAAO,IAAI,OAAO,YAAY,iBAAiB,IAAI,KAClE;AACA,qBAAO,eAAAC,SAAQ,KAAK,KAAK,aAAa;AAAA,QACxC;AACA,YAAI,QAAQ;AACV,iBAAO,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI;AAE/D,YAAI,MAAM,QAAQ,GAAG;AAAG,iBAAO,IAAI,OAAO,GAAG;AAAA,MAC/C,CAAC;AACD,WAAK,MAAM,mBAAmB,IAAI,KAAK,EAAE,YAAY;AACrD,WAAK,iBAAiB;AAAA,IACxB,SAAS,IAAP;AAEA,2BAAO,MAAM,oCAAoC;AACjD,2BAAO,MAAM,EAAE;AAAA,IACjB;AACA,WAAO,KAAK,IAAI;AAAA,EAClB;AAAA,EAEA,YAAY,CACV,eACA,MAAM,KAAK,MAAM,oBACjB,gBAAgB,SACb;AACH,QAAI;AACF,YAAM,cAAc,KAAK,MAAM,aAAa,OAAO;AAEnD,WAAK,MAAM,aAAa,OAAO,MAAM;AAAA,QACnC,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AACA,WAAK,OAAO;AAAA,QACV,oBAAoB,gBAAgB,MAAM,KAAK,MAAM;AAAA,QACrD,cAAc,KAAK,MAAM;AAAA,MAC3B,CAAC;AAAA,IACH,SAAS,IAAP;AAEA,2BAAO;AAAA,QACL,iCAAiC;AAAA,MACnC;AACA,2BAAO,MAAM,EAAE;AAAA,IACjB;AACA,WAAO,KAAK,IAAI;AAAA,EAClB;AACF;AAEA,IAAO,+BAAQ;",
|
|
6
6
|
"names": ["path", "fs", "clone", "mergeWith", "unionBy"]
|
|
7
7
|
}
|
|
@@ -24,6 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
25
|
var file_provider_exports = {};
|
|
26
26
|
__export(file_provider_exports, {
|
|
27
|
+
appRootDir: () => appRootDir,
|
|
27
28
|
checkDir: () => checkDir,
|
|
28
29
|
localPath: () => localPath,
|
|
29
30
|
moveFile: () => moveFile,
|
|
@@ -35,9 +36,11 @@ __export(file_provider_exports, {
|
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(file_provider_exports);
|
|
37
38
|
var import_fs = __toESM(require("fs"));
|
|
39
|
+
var import_os = require("os");
|
|
38
40
|
var import_path = __toESM(require("path"));
|
|
39
|
-
var import_app_root_path = require("app-root-path");
|
|
40
41
|
var import_util = require("../util");
|
|
42
|
+
const userHomeDir = (0, import_os.homedir)();
|
|
43
|
+
const appRootDir = process.env.CONTAINER_CONTEXT === "true" ? process.cwd() : import_path.default.join(userHomeDir, ".contensis/");
|
|
41
44
|
const readJsonFile = (filePath) => {
|
|
42
45
|
const file = readFile(filePath);
|
|
43
46
|
if (file)
|
|
@@ -53,14 +56,16 @@ const readFile = (filePath) => {
|
|
|
53
56
|
return void 0;
|
|
54
57
|
}
|
|
55
58
|
};
|
|
56
|
-
const readFiles = (directory) => {
|
|
59
|
+
const readFiles = (directory, createDirectory = true) => {
|
|
57
60
|
const directoryPath = localPath(directory);
|
|
58
61
|
if (import_fs.default.existsSync(directoryPath)) {
|
|
59
62
|
const files = import_fs.default.readdirSync(directoryPath);
|
|
60
63
|
return files;
|
|
61
|
-
} else {
|
|
64
|
+
} else if (createDirectory) {
|
|
62
65
|
import_fs.default.mkdirSync(directoryPath, { recursive: true });
|
|
63
66
|
return [];
|
|
67
|
+
} else {
|
|
68
|
+
throw new Error(`ENOENT: Directory does not exist ${directoryPath}`);
|
|
64
69
|
}
|
|
65
70
|
};
|
|
66
71
|
const writeFile = (filePath, content) => {
|
|
@@ -74,8 +79,8 @@ const removeFile = (filePath) => {
|
|
|
74
79
|
}
|
|
75
80
|
};
|
|
76
81
|
const moveFile = (file, fromPath, toPath) => {
|
|
77
|
-
const from = import_path.default.join(
|
|
78
|
-
const to = import_path.default.join(
|
|
82
|
+
const from = import_path.default.join(appRootDir, `${fromPath}${file}`);
|
|
83
|
+
const to = import_path.default.join(appRootDir, `${toPath}${file}`);
|
|
79
84
|
if (import_fs.default.existsSync(from)) {
|
|
80
85
|
checkDir(toPath);
|
|
81
86
|
import_fs.default.rename(from, to, (err) => {
|
|
@@ -98,9 +103,10 @@ const checkDir = (filePath) => {
|
|
|
98
103
|
if (!import_fs.default.existsSync(directoryPath))
|
|
99
104
|
import_fs.default.mkdirSync(directoryPath, { recursive: true });
|
|
100
105
|
};
|
|
101
|
-
const localPath = (filePath) => import_path.default.join(
|
|
106
|
+
const localPath = (filePath) => import_path.default.isAbsolute(filePath) ? filePath : import_path.default.join(appRootDir, filePath);
|
|
102
107
|
// Annotate the CommonJS export names for ESM import in node:
|
|
103
108
|
0 && (module.exports = {
|
|
109
|
+
appRootDir,
|
|
104
110
|
checkDir,
|
|
105
111
|
localPath,
|
|
106
112
|
moveFile,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/providers/file-provider.ts"],
|
|
4
|
-
"sourcesContent": ["import fs from 'fs';\nimport
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import fs from 'fs';\nimport { homedir } from 'os';\nimport path from 'path';\nimport { tryParse } from '~/util';\n\nconst userHomeDir = homedir();\n\nexport const appRootDir =\n process.env.CONTAINER_CONTEXT === 'true'\n ? process.cwd()\n : path.join(userHomeDir, '.contensis/');\n\nexport const readJsonFile = <T>(filePath: string) => {\n const file = readFile(filePath);\n if (file) return tryParse(file) as T | string;\n return undefined;\n};\nexport const readFile = (filePath: string) => {\n const directoryPath = localPath(filePath);\n if (fs.existsSync(directoryPath)) {\n const file = fs.readFileSync(directoryPath, 'utf8');\n return file;\n } else {\n return undefined;\n }\n};\n\nexport const readFiles = (directory: string, createDirectory = true) => {\n const directoryPath = localPath(directory);\n if (fs.existsSync(directoryPath)) {\n const files = fs.readdirSync(directoryPath);\n return files;\n } else if (createDirectory) {\n fs.mkdirSync(directoryPath, { recursive: true });\n return [];\n } else {\n throw new Error(`ENOENT: Directory does not exist ${directoryPath}`);\n // return undefined;\n }\n};\n\nexport const writeFile = (filePath: string, content: string) => {\n const directoryPath = localPath(filePath);\n fs.writeFileSync(directoryPath, content, { encoding: 'utf-8' });\n};\n\nexport const removeFile = (filePath: string) => {\n const directoryPath = localPath(filePath);\n if (fs.existsSync(directoryPath)) {\n fs.rmSync(directoryPath);\n }\n};\n\nexport const moveFile = (file: string, fromPath: string, toPath: string) => {\n const from = path.join(appRootDir, `${fromPath}${file}`);\n const to = path.join(appRootDir, `${toPath}${file}`);\n if (fs.existsSync(from)) {\n checkDir(toPath);\n // if (!fs.existsSync(toPath)) fs.mkdirSync(toPath, { recursive: true });\n\n fs.rename(from, to, err => {\n if (err)\n console.error(\n `Could not rename file \"${file}\" from: ${fromPath} to: ${toPath}`,\n err\n );\n console.info(`Renamed file \"${file}\" from: ${fromPath} to: ${toPath}`);\n });\n } else {\n console.error(\n `Could not rename file \"${file}\" from: ${fromPath} to: ${toPath}\\nFile does not exist!`\n );\n }\n};\n\nexport const checkDir = (filePath: string) => {\n const directoryPath = path.dirname(localPath(filePath));\n if (!fs.existsSync(directoryPath))\n fs.mkdirSync(directoryPath, { recursive: true });\n};\n\nexport const localPath = (filePath: string) =>\n path.isAbsolute(filePath) ? filePath : path.join(appRootDir, filePath);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,gBAAwB;AACxB,kBAAiB;AACjB,kBAAyB;AAEzB,MAAM,kBAAc,mBAAQ;AAErB,MAAM,aACX,QAAQ,IAAI,sBAAsB,SAC9B,QAAQ,IAAI,IACZ,YAAAA,QAAK,KAAK,aAAa,aAAa;AAEnC,MAAM,eAAe,CAAI,aAAqB;AACnD,QAAM,OAAO,SAAS,QAAQ;AAC9B,MAAI;AAAM,eAAO,sBAAS,IAAI;AAC9B,SAAO;AACT;AACO,MAAM,WAAW,CAAC,aAAqB;AAC5C,QAAM,gBAAgB,UAAU,QAAQ;AACxC,MAAI,UAAAC,QAAG,WAAW,aAAa,GAAG;AAChC,UAAM,OAAO,UAAAA,QAAG,aAAa,eAAe,MAAM;AAClD,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEO,MAAM,YAAY,CAAC,WAAmB,kBAAkB,SAAS;AACtE,QAAM,gBAAgB,UAAU,SAAS;AACzC,MAAI,UAAAA,QAAG,WAAW,aAAa,GAAG;AAChC,UAAM,QAAQ,UAAAA,QAAG,YAAY,aAAa;AAC1C,WAAO;AAAA,EACT,WAAW,iBAAiB;AAC1B,cAAAA,QAAG,UAAU,eAAe,EAAE,WAAW,KAAK,CAAC;AAC/C,WAAO,CAAC;AAAA,EACV,OAAO;AACL,UAAM,IAAI,MAAM,oCAAoC,eAAe;AAAA,EAErE;AACF;AAEO,MAAM,YAAY,CAAC,UAAkB,YAAoB;AAC9D,QAAM,gBAAgB,UAAU,QAAQ;AACxC,YAAAA,QAAG,cAAc,eAAe,SAAS,EAAE,UAAU,QAAQ,CAAC;AAChE;AAEO,MAAM,aAAa,CAAC,aAAqB;AAC9C,QAAM,gBAAgB,UAAU,QAAQ;AACxC,MAAI,UAAAA,QAAG,WAAW,aAAa,GAAG;AAChC,cAAAA,QAAG,OAAO,aAAa;AAAA,EACzB;AACF;AAEO,MAAM,WAAW,CAAC,MAAc,UAAkB,WAAmB;AAC1E,QAAM,OAAO,YAAAD,QAAK,KAAK,YAAY,GAAG,WAAW,MAAM;AACvD,QAAM,KAAK,YAAAA,QAAK,KAAK,YAAY,GAAG,SAAS,MAAM;AACnD,MAAI,UAAAC,QAAG,WAAW,IAAI,GAAG;AACvB,aAAS,MAAM;AAGf,cAAAA,QAAG,OAAO,MAAM,IAAI,SAAO;AACzB,UAAI;AACF,gBAAQ;AAAA,UACN,0BAA0B,eAAe,gBAAgB;AAAA,UACzD;AAAA,QACF;AACF,cAAQ,KAAK,iBAAiB,eAAe,gBAAgB,QAAQ;AAAA,IACvE,CAAC;AAAA,EACH,OAAO;AACL,YAAQ;AAAA,MACN,0BAA0B,eAAe,gBAAgB;AAAA;AAAA,IAC3D;AAAA,EACF;AACF;AAEO,MAAM,WAAW,CAAC,aAAqB;AAC5C,QAAM,gBAAgB,YAAAD,QAAK,QAAQ,UAAU,QAAQ,CAAC;AACtD,MAAI,CAAC,UAAAC,QAAG,WAAW,aAAa;AAC9B,cAAAA,QAAG,UAAU,eAAe,EAAE,WAAW,KAAK,CAAC;AACnD;AAEO,MAAM,YAAY,CAAC,aACxB,YAAAD,QAAK,WAAW,QAAQ,IAAI,WAAW,YAAAA,QAAK,KAAK,YAAY,QAAQ;",
|
|
6
|
+
"names": ["path", "fs"]
|
|
7
7
|
}
|