@sw-tsdk/plugin-connector 2.11.2-next.8 → 2.11.2-next.93
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 +139 -39
- package/lib/commands/action/add.d.ts +2 -2
- package/lib/commands/action/add.js +14 -8
- package/lib/commands/action/add.js.map +1 -1
- package/lib/commands/action/generate/data.d.ts +4 -4
- package/lib/commands/action/generate/data.js +23 -13
- package/lib/commands/action/generate/data.js.map +1 -1
- package/lib/commands/action/generate/input.d.ts +4 -4
- package/lib/commands/action/generate/input.js +19 -11
- package/lib/commands/action/generate/input.js.map +1 -1
- package/lib/commands/action/generate/output.d.ts +4 -4
- package/lib/commands/action/generate/output.js +19 -11
- package/lib/commands/action/generate/output.js.map +1 -1
- package/lib/commands/action/run/image.d.ts +9 -9
- package/lib/commands/action/run/image.js +39 -27
- package/lib/commands/action/run/image.js.map +1 -1
- package/lib/commands/action/run/local.d.ts +11 -11
- package/lib/commands/action/run/local.js +50 -34
- package/lib/commands/action/run/local.js.map +1 -1
- package/lib/commands/asset/add.d.ts +2 -2
- package/lib/commands/asset/add.js +12 -7
- package/lib/commands/asset/add.js.map +1 -1
- package/lib/commands/component/create.d.ts +34 -0
- package/lib/commands/component/create.js +168 -0
- package/lib/commands/component/create.js.map +1 -0
- package/lib/commands/component/logo.d.ts +12 -0
- package/lib/commands/component/logo.js +63 -0
- package/lib/commands/component/logo.js.map +1 -0
- package/lib/commands/component/ssp.d.ts +12 -0
- package/lib/commands/component/ssp.js +64 -0
- package/lib/commands/component/ssp.js.map +1 -0
- package/lib/commands/component/update.d.ts +13 -0
- package/lib/commands/component/update.js +68 -0
- package/lib/commands/component/update.js.map +1 -0
- package/lib/commands/connector/build.d.ts +10 -10
- package/lib/commands/connector/build.js +37 -20
- package/lib/commands/connector/build.js.map +1 -1
- package/lib/commands/connector/create/openapi.d.ts +12 -11
- package/lib/commands/connector/create/openapi.js +128 -63
- package/lib/commands/connector/create/openapi.js.map +1 -1
- package/lib/commands/connector/create/source.d.ts +2 -2
- package/lib/commands/connector/create/source.js +12 -6
- package/lib/commands/connector/create/source.js.map +1 -1
- package/lib/commands/connector/create.d.ts +11 -10
- package/lib/commands/connector/create.js +59 -16
- package/lib/commands/connector/create.js.map +1 -1
- package/lib/commands/connector/logo.d.ts +2 -2
- package/lib/commands/connector/logo.js +20 -6
- package/lib/commands/connector/logo.js.map +1 -1
- package/lib/commands/connector/sign.d.ts +6 -6
- package/lib/commands/connector/sign.js +24 -13
- package/lib/commands/connector/sign.js.map +1 -1
- package/lib/commands/connector/update.d.ts +3 -3
- package/lib/commands/connector/update.js +14 -8
- package/lib/commands/connector/update.js.map +1 -1
- package/lib/commands/connector/validate.d.ts +4 -4
- package/lib/commands/connector/validate.js +22 -14
- package/lib/commands/connector/validate.js.map +1 -1
- package/lib/common.d.ts +3 -0
- package/lib/common.js +76 -10
- package/lib/common.js.map +1 -1
- package/lib/templates/assets/http_bearer.yaml +1 -2
- package/lib/types/connector-types.d.ts +23 -2
- package/oclif.manifest.json +1253 -1
- package/package.json +15 -15
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Base } from '@sw-tsdk/core';
|
|
2
|
+
export interface ComponentManifest {
|
|
3
|
+
schema: string;
|
|
4
|
+
componentType: string;
|
|
5
|
+
vendor: string;
|
|
6
|
+
name: string;
|
|
7
|
+
author: string;
|
|
8
|
+
bugs: string;
|
|
9
|
+
iconImage: string;
|
|
10
|
+
description: string;
|
|
11
|
+
homepage: string;
|
|
12
|
+
license: string;
|
|
13
|
+
title: string;
|
|
14
|
+
version: string;
|
|
15
|
+
keywords: string[];
|
|
16
|
+
}
|
|
17
|
+
export declare class Create extends Base {
|
|
18
|
+
static description: string;
|
|
19
|
+
static flags: {
|
|
20
|
+
directory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
21
|
+
componentType: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
22
|
+
vendor: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
23
|
+
componentName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
24
|
+
keywords: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
25
|
+
description: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
26
|
+
logoPath: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
27
|
+
sspPath: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
28
|
+
author: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
29
|
+
authorEmail: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
30
|
+
homepage: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
31
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
32
|
+
};
|
|
33
|
+
run(): Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Create = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const connector_1 = require("@sw-tsdk/connector");
|
|
7
|
+
const core_2 = require("@sw-tsdk/core");
|
|
8
|
+
const fs_extra_1 = require("fs-extra");
|
|
9
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
10
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
11
|
+
const fs = tslib_1.__importStar(require("node:fs"));
|
|
12
|
+
const node_fs_1 = require("node:fs");
|
|
13
|
+
const path = tslib_1.__importStar(require("node:path"));
|
|
14
|
+
const node_path_1 = require("node:path");
|
|
15
|
+
const snake_case_1 = require("snake-case");
|
|
16
|
+
const common_1 = require("../../common");
|
|
17
|
+
// noinspection JSUnusedGlobalSymbols
|
|
18
|
+
class Create extends core_2.Base {
|
|
19
|
+
async run() {
|
|
20
|
+
const { flags } = await this.parse(Create);
|
|
21
|
+
let { directory } = flags;
|
|
22
|
+
directory = (0, node_path_1.resolve)(directory || process.cwd());
|
|
23
|
+
try {
|
|
24
|
+
await node_fs_1.promises.access(directory);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
this.error(`Could not access ${directory}`);
|
|
28
|
+
}
|
|
29
|
+
const masterQuestions = [{
|
|
30
|
+
type: 'list',
|
|
31
|
+
name: 'componentType',
|
|
32
|
+
message: 'Choose Component Type',
|
|
33
|
+
choices: common_1.contentCategories,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'input',
|
|
37
|
+
name: 'vendor',
|
|
38
|
+
message: 'Vendor (e.g. CrowdStrike)',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'input',
|
|
42
|
+
name: 'componentName',
|
|
43
|
+
message: 'Component Name (e.g. Alert Ingestion)',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: 'input',
|
|
47
|
+
name: 'description',
|
|
48
|
+
message: 'Description (e.g. CrowdStrike Alert Ingestion Component)',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: 'list',
|
|
52
|
+
name: 'keywords',
|
|
53
|
+
message: 'Choose a category (Comma-separated)',
|
|
54
|
+
choices: common_1.connectorCategories,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'input',
|
|
58
|
+
name: 'logoPath',
|
|
59
|
+
message: 'URL or absolute path to logo file',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'input',
|
|
63
|
+
name: 'sspPath',
|
|
64
|
+
message: 'Absolute path to .ssp file',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'input',
|
|
68
|
+
name: 'author',
|
|
69
|
+
message: 'Integration Author',
|
|
70
|
+
default: 'Swimlane',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'input',
|
|
74
|
+
name: 'authorEmail',
|
|
75
|
+
message: 'Integration Author Email',
|
|
76
|
+
default: 'info@swimlane.com',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'input',
|
|
80
|
+
name: 'homepage',
|
|
81
|
+
message: 'Author URL',
|
|
82
|
+
default: 'https://swimlane.com',
|
|
83
|
+
}];
|
|
84
|
+
const filteredQuestions = masterQuestions.filter(q => !flags[q.name]);
|
|
85
|
+
const answers = Object.assign(await inquirer_1.default.prompt(filteredQuestions), flags);
|
|
86
|
+
const componentType = answers.componentType;
|
|
87
|
+
const errors = [];
|
|
88
|
+
if (!answers.vendor) {
|
|
89
|
+
errors.push('Vendor Field is required.');
|
|
90
|
+
}
|
|
91
|
+
if (!answers.componentName) {
|
|
92
|
+
errors.push('Component Name is required.');
|
|
93
|
+
}
|
|
94
|
+
const name = (0, snake_case_1.snakeCase)(`${answers.vendor} ${answers.componentName}`.toLocaleLowerCase());
|
|
95
|
+
const componentDirectory = (0, node_path_1.join)(directory, componentType, `${name}`);
|
|
96
|
+
await (0, fs_extra_1.ensureDir)(componentDirectory);
|
|
97
|
+
const component = {
|
|
98
|
+
vendor: answers.vendor,
|
|
99
|
+
name: name,
|
|
100
|
+
schema: 'component/1',
|
|
101
|
+
author: answers.author,
|
|
102
|
+
bugs: '',
|
|
103
|
+
iconImage: '../image/logo.png',
|
|
104
|
+
description: answers.description,
|
|
105
|
+
homepage: answers.homepage,
|
|
106
|
+
license: 'AGPL-3.0',
|
|
107
|
+
title: await (0, connector_1.titleCaseString)(`${answers.vendor} ${answers.componentName}`),
|
|
108
|
+
version: '0.0.0',
|
|
109
|
+
componentType: componentType,
|
|
110
|
+
keywords: answers.keywords.split(',').map(x => x.trim()),
|
|
111
|
+
};
|
|
112
|
+
core_1.ux.action.start('Generating folder structure.');
|
|
113
|
+
if (answers.logoPath?.endsWith('.png') || answers.logoPath?.endsWith('.jpg') || answers.logoPath?.endsWith('.jpeg')) {
|
|
114
|
+
core_1.ux.action.start('Processing Logo');
|
|
115
|
+
await (0, connector_1.updateImage)(componentDirectory, answers.logoPath);
|
|
116
|
+
core_1.ux.action.stop();
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
core_1.ux.action.stop();
|
|
120
|
+
errors.push('Invalid logo file provided');
|
|
121
|
+
}
|
|
122
|
+
if (answers.sspPath?.endsWith('.ssp')) {
|
|
123
|
+
core_1.ux.action.start('Processing SSP File');
|
|
124
|
+
const destinationPath = path.join(componentDirectory, `${name}.ssp`);
|
|
125
|
+
await fs.promises.copyFile(answers.sspPath, destinationPath);
|
|
126
|
+
core_1.ux.action.stop();
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
errors.push('Invalid ssp file provided');
|
|
130
|
+
}
|
|
131
|
+
if (errors.length > 0) {
|
|
132
|
+
core_1.ux.action.stop();
|
|
133
|
+
return this.error(errors.join('\n'));
|
|
134
|
+
}
|
|
135
|
+
const manifestFilePath = (0, node_path_1.join)(componentDirectory, 'manifest.yml');
|
|
136
|
+
await (0, fs_extra_1.writeFile)(manifestFilePath, js_yaml_1.default.dump(component, {
|
|
137
|
+
indent: 2,
|
|
138
|
+
noRefs: true,
|
|
139
|
+
}));
|
|
140
|
+
await (0, fs_extra_1.writeFile)((0, node_path_1.join)(componentDirectory, 'external.yml'), '', 'utf8');
|
|
141
|
+
await (0, fs_extra_1.writeFile)((0, node_path_1.join)(componentDirectory, 'README.md'), 'Description will be updated shortly.', 'utf8');
|
|
142
|
+
await (0, fs_extra_1.writeFile)((0, node_path_1.join)(componentDirectory, 'EXTERNAL_README.md'), 'Description will be updated shortly.', 'utf8');
|
|
143
|
+
await (0, fs_extra_1.writeFile)((0, node_path_1.join)(componentDirectory, 'documentation.README.md'), 'Description will be updated shortly.', 'utf8');
|
|
144
|
+
core_1.ux.action.stop();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.Create = Create;
|
|
148
|
+
Create.description = 'Scaffold a new Component';
|
|
149
|
+
Create.flags = {
|
|
150
|
+
...core_2.Base.flags,
|
|
151
|
+
directory: core_1.Flags.string({
|
|
152
|
+
char: 'd',
|
|
153
|
+
description: 'root directory for where to store Component.',
|
|
154
|
+
default: './',
|
|
155
|
+
}),
|
|
156
|
+
componentType: core_1.Flags.string({ description: 'Component Type (e.g. classic)' }),
|
|
157
|
+
vendor: core_1.Flags.string({ description: 'Vendor (e.g. CrowdStrike)' }),
|
|
158
|
+
componentName: core_1.Flags.string({ description: 'Component Name (e.g. Alert Ingestion)' }),
|
|
159
|
+
keywords: core_1.Flags.string({ description: 'Enter keywords' }),
|
|
160
|
+
description: core_1.Flags.string({ description: 'Description (e.g. CrowdStrike Alert Ingestion Component)' }),
|
|
161
|
+
logoPath: core_1.Flags.string({ description: 'URL or absolute path to logo file' }),
|
|
162
|
+
sspPath: core_1.Flags.string({ description: 'absolute path to .ssp file' }),
|
|
163
|
+
author: core_1.Flags.string({ description: 'Component Author' }),
|
|
164
|
+
authorEmail: core_1.Flags.string({ description: 'Component Author Email' }),
|
|
165
|
+
homepage: core_1.Flags.string({ description: 'Component Author Support URL' }),
|
|
166
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
167
|
+
};
|
|
168
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/component/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base } from '@sw-tsdk/core';
|
|
2
|
+
export declare class Logo extends Base {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: {
|
|
5
|
+
directory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
6
|
+
componentType: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
7
|
+
componentName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
logoPath: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logo = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const connector_1 = require("@sw-tsdk/connector");
|
|
7
|
+
const core_2 = require("@sw-tsdk/core");
|
|
8
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
9
|
+
const node_path_1 = require("node:path");
|
|
10
|
+
const common_1 = require("../../common");
|
|
11
|
+
// noinspection JSUnusedGlobalSymbols
|
|
12
|
+
class Logo extends core_2.Base {
|
|
13
|
+
async run() {
|
|
14
|
+
const { flags } = await this.parse(Logo);
|
|
15
|
+
let { directory } = flags;
|
|
16
|
+
directory = (0, node_path_1.resolve)(directory || process.cwd());
|
|
17
|
+
const masterQuestions = [
|
|
18
|
+
{
|
|
19
|
+
type: 'input',
|
|
20
|
+
name: 'logoPath',
|
|
21
|
+
message: 'URL or absolute path to logo file',
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
const componentTypeSelected = await (0, common_1.chooseComponentType)();
|
|
25
|
+
const componentNameSelected = await (0, common_1.chooseComponentName)(directory, componentTypeSelected);
|
|
26
|
+
const filteredQuestions = masterQuestions.filter(q => !flags[q.name]);
|
|
27
|
+
const answers = Object.assign(await inquirer_1.default.prompt(filteredQuestions), flags);
|
|
28
|
+
const componentDirectory = (0, node_path_1.join)(directory, componentTypeSelected, componentNameSelected);
|
|
29
|
+
if (answers.logoPath?.endsWith('.png') || answers.logoPath?.endsWith('.jpg') || answers.logoPath?.endsWith('.jpeg')) {
|
|
30
|
+
core_1.ux.action.start('Updating Logo');
|
|
31
|
+
await (0, connector_1.updateImage)(componentDirectory, answers.logoPath);
|
|
32
|
+
core_1.ux.action.stop();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
core_1.ux.action.stop();
|
|
36
|
+
this.error('Invalid logo file provided');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Logo = Logo;
|
|
41
|
+
Logo.description = 'Update a Component logo.';
|
|
42
|
+
Logo.flags = {
|
|
43
|
+
...core_2.Base.flags,
|
|
44
|
+
directory: core_1.Flags.string({
|
|
45
|
+
char: 'd',
|
|
46
|
+
description: 'root directory of the component folder.',
|
|
47
|
+
default: './',
|
|
48
|
+
}),
|
|
49
|
+
componentType: core_1.Flags.string({
|
|
50
|
+
description: 'Component Type (e.g. classic)',
|
|
51
|
+
char: 't',
|
|
52
|
+
}),
|
|
53
|
+
componentName: core_1.Flags.string({
|
|
54
|
+
description: 'Component Name (e.g. google_alert_ingestion)',
|
|
55
|
+
char: 'n',
|
|
56
|
+
}),
|
|
57
|
+
logoPath: core_1.Flags.string({
|
|
58
|
+
char: 'p',
|
|
59
|
+
description: 'path or URL to product logo in PNG format.',
|
|
60
|
+
}),
|
|
61
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo.js","sourceRoot":"","sources":["../../../src/commands/component/logo.ts"],"names":[],"mappings":";;;;AAAA,sCAAqC;AACrC,kDAA8C;AAC9C,wCAAkC;AAClC,gEAA+B;AAC/B,yCAAuC;AAEvC,yCAAqE;AAGrE,qCAAqC;AACrC,MAAa,IAAK,SAAQ,WAAI;IAyB1B,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,EAAC,SAAS,EAAC,GAAG,KAAK,CAAA;QACvB,SAAS,GAAG,IAAA,mBAAO,EAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAE/C,MAAM,eAAe,GAAG;YACtB;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,mCAAmC;aAC7C;SACF,CAAA;QAED,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAmB,GAAE,CAAA;QACzD,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAmB,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,KAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9F,MAAM,OAAO,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAA;QAEjG,MAAM,kBAAkB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAA;QAExF,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;YACnH,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;YAChC,MAAM,IAAA,uBAAW,EAAC,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;YACvD,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;SACjB;aAAM;YACL,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAChB,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;SACzC;IACH,CAAC;;AAtDL,oBAuDC;AAtDU,gBAAW,GAAG,0BAA0B,CAAA;AAExC,UAAK,GAAG;IACb,GAAG,WAAI,CAAC,KAAK;IACb,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,IAAI;KACd,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,GAAG;KACV,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,GAAG;KACV,CAAC;IACF,QAAQ,EAAE,YAAK,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,4CAA4C;KAC1D,CAAC;IACF,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;CAC9B,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base } from '@sw-tsdk/core';
|
|
2
|
+
export declare class Logo extends Base {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: {
|
|
5
|
+
directory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
6
|
+
componentType: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
7
|
+
componentName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
sspPath: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logo = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const core_2 = require("@sw-tsdk/core");
|
|
7
|
+
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
8
|
+
const fs = tslib_1.__importStar(require("node:fs"));
|
|
9
|
+
const path = tslib_1.__importStar(require("node:path"));
|
|
10
|
+
const node_path_1 = require("node:path");
|
|
11
|
+
const common_1 = require("../../common");
|
|
12
|
+
// noinspection JSUnusedGlobalSymbols
|
|
13
|
+
class Logo extends core_2.Base {
|
|
14
|
+
async run() {
|
|
15
|
+
const { flags } = await this.parse(Logo);
|
|
16
|
+
let { directory } = flags;
|
|
17
|
+
directory = (0, node_path_1.resolve)(directory || process.cwd());
|
|
18
|
+
const masterQuestions = [
|
|
19
|
+
{
|
|
20
|
+
type: 'input',
|
|
21
|
+
name: 'sspPath',
|
|
22
|
+
message: 'Absolute path to .SSP file',
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
const componentTypeSelected = await (0, common_1.chooseComponentType)();
|
|
26
|
+
const componentNameSelected = await (0, common_1.chooseComponentName)(directory, componentTypeSelected);
|
|
27
|
+
const filteredQuestions = masterQuestions.filter(q => !flags[q.name]);
|
|
28
|
+
const answers = Object.assign(await inquirer_1.default.prompt(filteredQuestions), flags);
|
|
29
|
+
const componentDirectory = (0, node_path_1.join)(directory, componentTypeSelected, componentNameSelected);
|
|
30
|
+
if (answers.sspPath?.endsWith('.ssp')) {
|
|
31
|
+
core_1.ux.action.start('Processing SSP File');
|
|
32
|
+
const destinationPath = path.join(componentDirectory, `${componentNameSelected}.ssp`);
|
|
33
|
+
await fs.promises.copyFile(answers.sspPath, destinationPath);
|
|
34
|
+
core_1.ux.action.stop();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.error('Invalid ssp file provided');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.Logo = Logo;
|
|
42
|
+
Logo.description = 'Update an SSP.';
|
|
43
|
+
Logo.flags = {
|
|
44
|
+
...core_2.Base.flags,
|
|
45
|
+
directory: core_1.Flags.string({
|
|
46
|
+
char: 'd',
|
|
47
|
+
description: 'root directory of the component folder.',
|
|
48
|
+
default: './',
|
|
49
|
+
}),
|
|
50
|
+
componentType: core_1.Flags.string({
|
|
51
|
+
description: 'Component Type (e.g. classic)',
|
|
52
|
+
char: 't',
|
|
53
|
+
}),
|
|
54
|
+
componentName: core_1.Flags.string({
|
|
55
|
+
description: 'Component Name (e.g. google_alert_ingestion)',
|
|
56
|
+
char: 'n',
|
|
57
|
+
}),
|
|
58
|
+
sspPath: core_1.Flags.string({
|
|
59
|
+
char: 'p',
|
|
60
|
+
description: 'Absolute path to .SSP file',
|
|
61
|
+
}),
|
|
62
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=ssp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ssp.js","sourceRoot":"","sources":["../../../src/commands/component/ssp.ts"],"names":[],"mappings":";;;;AAAA,sCAAqC;AACrC,wCAAkC;AAClC,gEAA+B;AAC/B,oDAA6B;AAC7B,wDAAiC;AACjC,yCAAuC;AACvC,yCAAqE;AAGrE,qCAAqC;AACrC,MAAa,IAAK,SAAQ,WAAI;IAyB5B,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAI,EAAC,SAAS,EAAC,GAAG,KAAK,CAAA;QACvB,SAAS,GAAG,IAAA,mBAAO,EAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAE/C,MAAM,eAAe,GAAG;YACtB;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,4BAA4B;aACtC;SACF,CAAA;QAED,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAmB,GAAE,CAAA;QACzD,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAmB,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,KAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9F,MAAM,OAAO,GAAqB,MAAM,CAAC,MAAM,CAAC,MAAM,kBAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAA;QAEhG,MAAM,kBAAkB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAA;QAExF,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE;YACrC,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAEtC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,qBAAqB,MAAM,CAAC,CAAA;YACrF,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAA;YAC5D,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;SACjB;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;SACxC;IACH,CAAC;;AAvDH,oBAwDC;AAvDQ,gBAAW,GAAG,gBAAgB,CAAA;AAE9B,UAAK,GAAG;IACb,GAAG,WAAI,CAAC,KAAK;IACb,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,yCAAyC;QACtD,OAAO,EAAE,IAAI;KACd,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,GAAG;KACV,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,GAAG;KACV,CAAC;IACF,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,4BAA4B;KAC1C,CAAC;IACF,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;CAC9B,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Base } from '@sw-tsdk/core';
|
|
2
|
+
export declare class Update extends Base {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: {
|
|
5
|
+
directory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
6
|
+
version: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
7
|
+
componentType: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
componentName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
manifestPath: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
|
+
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Update = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const core_2 = require("@sw-tsdk/core");
|
|
7
|
+
const fs_extra_1 = require("fs-extra");
|
|
8
|
+
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
9
|
+
const fs = tslib_1.__importStar(require("node:fs"));
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_path_1 = require("node:path");
|
|
12
|
+
// noinspection JSUnusedGlobalSymbols
|
|
13
|
+
class Update extends core_2.Base {
|
|
14
|
+
async run() {
|
|
15
|
+
const { flags } = await this.parse(Update);
|
|
16
|
+
let { directory, manifestPath } = flags;
|
|
17
|
+
const { version } = flags;
|
|
18
|
+
directory = (0, node_path_1.resolve)(directory || process.cwd());
|
|
19
|
+
// remove relative dir notation if provided
|
|
20
|
+
if (manifestPath.startsWith('.')) {
|
|
21
|
+
manifestPath = manifestPath.slice(1);
|
|
22
|
+
}
|
|
23
|
+
manifestPath = (0, node_path_1.join)(directory, manifestPath);
|
|
24
|
+
try {
|
|
25
|
+
await node_fs_1.promises.access(manifestPath);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
this.error(`Could not access ${manifestPath}`);
|
|
29
|
+
}
|
|
30
|
+
core_1.ux.action.start('Updating Component');
|
|
31
|
+
const manifest = js_yaml_1.default.load(await fs.promises.readFile(manifestPath, 'utf8'));
|
|
32
|
+
// For now, version is supplied.
|
|
33
|
+
if (version) {
|
|
34
|
+
manifest.version = version;
|
|
35
|
+
}
|
|
36
|
+
await (0, fs_extra_1.writeFile)(manifestPath, js_yaml_1.default.dump(manifest, { indent: 2 }), { flag: 'w' });
|
|
37
|
+
core_1.ux.action.stop();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Update = Update;
|
|
41
|
+
Update.description = 'Update Component Version.';
|
|
42
|
+
Update.flags = {
|
|
43
|
+
...core_2.Base.flags,
|
|
44
|
+
directory: core_1.Flags.string({
|
|
45
|
+
char: 'd',
|
|
46
|
+
description: 'root directory of the all Components',
|
|
47
|
+
default: '.',
|
|
48
|
+
}),
|
|
49
|
+
version: core_1.Flags.string({
|
|
50
|
+
char: 'v',
|
|
51
|
+
description: 'new version of the component.',
|
|
52
|
+
}),
|
|
53
|
+
componentType: core_1.Flags.string({
|
|
54
|
+
description: 'Component Type (e.g. classic)',
|
|
55
|
+
char: 't',
|
|
56
|
+
}),
|
|
57
|
+
componentName: core_1.Flags.string({
|
|
58
|
+
description: 'Component Name (e.g. google_alert_ingestion)',
|
|
59
|
+
char: 'n',
|
|
60
|
+
}),
|
|
61
|
+
manifestPath: core_1.Flags.string({
|
|
62
|
+
char: 'f',
|
|
63
|
+
description: 'Component manifest path relative to directory.',
|
|
64
|
+
default: 'manifest.yml',
|
|
65
|
+
}),
|
|
66
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/component/update.ts"],"names":[],"mappings":";;;;AAAA,sCAAqC;AACrC,wCAAkC;AAClC,uCAAkC;AAClC,8DAA0B;AAC1B,oDAA6B;AAC7B,qCAAgC;AAChC,yCAAuC;AAEvC,qCAAqC;AACrC,MAAa,MAAO,SAAQ,WAAI;IA8B9B,KAAK,CAAC,GAAG;QACP,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAExC,IAAI,EAAC,SAAS,EAAE,YAAY,EAAC,GAAG,KAAK,CAAA;QACrC,MAAM,EAAC,OAAO,EAAC,GAAG,KAAK,CAAA;QACvB,SAAS,GAAG,IAAA,mBAAO,EAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAE/C,2CAA2C;QAC3C,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAChC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACrC;QAED,YAAY,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC5C,IAAI;YACF,MAAM,kBAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;SACpC;QAAC,MAAM;YACN,IAAI,CAAC,KAAK,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAA;SAC/C;QAED,SAAE,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrC,MAAM,QAAQ,GAAG,iBAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAsB,CAAA;QAEjG,gCAAgC;QAChC,IAAI,OAAO,EAAE;YACX,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAA;SAC3B;QAED,MAAM,IAAA,oBAAS,EAAC,YAAY,EAAE,iBAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC,CAAC,EAAE,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC,CAAA;QAC5E,SAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC;;AA3DH,wBA4DC;AA3DQ,kBAAW,GAAG,2BAA2B,CAAA;AAEzC,YAAK,GAAG;IACb,GAAG,WAAI,CAAC,KAAK;IACb,SAAS,EAAE,YAAK,CAAC,MAAM,CAAC;QACtB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE,GAAG;KACb,CAAC;IACF,OAAO,EAAE,YAAK,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,+BAA+B;KAC7C,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,GAAG;KACV,CAAC;IACF,aAAa,EAAE,YAAK,CAAC,MAAM,CAAC;QAC1B,WAAW,EAAE,8CAA8C;QAC3D,IAAI,EAAE,GAAG;KACV,CAAC;IACF,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,gDAAgD;QAC7D,OAAO,EAAE,cAAc;KACxB,CAAC;IACF,IAAI,EAAE,YAAK,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,GAAG,EAAC,CAAC;CAC9B,CAAA"}
|
|
@@ -2,20 +2,20 @@ import { Base } from '@sw-tsdk/core';
|
|
|
2
2
|
export declare class Build extends Base {
|
|
3
3
|
static description: string;
|
|
4
4
|
static flags: {
|
|
5
|
-
template: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
6
|
-
'compile-override': import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
7
|
-
'runner-override': import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
8
|
-
'runtime-override': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
9
|
-
directory: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
5
|
+
template: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
6
|
+
'compile-override': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
7
|
+
'runner-override': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
8
|
+
'runtime-override': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
9
|
+
directory: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
10
10
|
save: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
squash: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
12
12
|
'force-rebuild': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
|
-
platform: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
14
|
-
'signing-password': import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
15
|
-
'key-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
13
|
+
platform: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
14
|
+
'signing-password': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
15
|
+
'key-name': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
16
16
|
'skip-upload': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
17
|
-
registry: import("@oclif/core/lib/interfaces").OptionFlag<string>;
|
|
18
|
-
output: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
17
|
+
registry: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
18
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser").CustomOptions>;
|
|
19
19
|
help: import("@oclif/core/lib/interfaces").BooleanFlag<void>;
|
|
20
20
|
};
|
|
21
21
|
run(): Promise<void>;
|
|
@@ -34,13 +34,13 @@ class Build extends core_2.Base {
|
|
|
34
34
|
try {
|
|
35
35
|
await node_fs_1.promises.access(directory);
|
|
36
36
|
}
|
|
37
|
-
catch
|
|
37
|
+
catch {
|
|
38
38
|
this.error(`Could not access ${directory}`);
|
|
39
39
|
}
|
|
40
40
|
const docker = new docker_1.Docker();
|
|
41
|
-
core_1.
|
|
41
|
+
core_1.ux.action.start('Checking for docker...');
|
|
42
42
|
await docker.ping();
|
|
43
|
-
core_1.
|
|
43
|
+
core_1.ux.action.stop();
|
|
44
44
|
const dockerFileDir = `${directory}/Dockerfile`;
|
|
45
45
|
if ((0, node_fs_1.existsSync)(dockerFileDir)) {
|
|
46
46
|
await node_fs_1.promises.rm(dockerFileDir);
|
|
@@ -86,48 +86,65 @@ class Build extends core_2.Base {
|
|
|
86
86
|
}
|
|
87
87
|
exports.Build = Build;
|
|
88
88
|
Build.description = 'Builds a local docker image of the connector.';
|
|
89
|
-
Build.flags =
|
|
89
|
+
Build.flags = {
|
|
90
|
+
...core_2.Base.flags,
|
|
91
|
+
template: core_1.Flags.string({
|
|
90
92
|
description: 'connector language',
|
|
91
|
-
options: ['python_37_swimlane', 'node_18', 'python_39_definition', 'python_310_definition', 'python_311_definition'],
|
|
93
|
+
options: ['python_37_swimlane', 'node_18', 'node_20', 'python_39_definition', 'python_39_turbine', 'python_310_definition', 'python_311_definition'],
|
|
92
94
|
required: false,
|
|
93
|
-
}),
|
|
95
|
+
}),
|
|
96
|
+
'compile-override': core_1.Flags.string({
|
|
94
97
|
hidden: true,
|
|
95
98
|
default: 'Compile.Dockerfile',
|
|
96
|
-
}),
|
|
99
|
+
}),
|
|
100
|
+
'runner-override': core_1.Flags.string({
|
|
97
101
|
hidden: true,
|
|
98
102
|
default: 'Runner.Dockerfile',
|
|
99
|
-
}),
|
|
103
|
+
}),
|
|
104
|
+
'runtime-override': core_1.Flags.string({
|
|
100
105
|
hidden: true,
|
|
101
|
-
}),
|
|
106
|
+
}),
|
|
107
|
+
directory: core_1.Flags.string({
|
|
102
108
|
char: 'd',
|
|
103
109
|
description: 'root directory of the repository.',
|
|
104
110
|
default: './',
|
|
105
|
-
}),
|
|
111
|
+
}),
|
|
112
|
+
save: core_1.Flags.boolean({
|
|
106
113
|
description: 'saves a signed docker image as tar in local directory.',
|
|
107
|
-
}),
|
|
114
|
+
}),
|
|
115
|
+
squash: core_1.Flags.boolean({
|
|
108
116
|
description: 'squashes the docker layers.',
|
|
109
117
|
hidden: true,
|
|
110
|
-
}),
|
|
118
|
+
}),
|
|
119
|
+
'force-rebuild': core_1.Flags.boolean({
|
|
111
120
|
char: 'f',
|
|
112
121
|
description: 'forces nocache on the image build',
|
|
113
|
-
}),
|
|
122
|
+
}),
|
|
123
|
+
platform: core_1.Flags.string({
|
|
114
124
|
hidden: true,
|
|
115
125
|
default: 'linux/amd64',
|
|
116
|
-
}),
|
|
126
|
+
}),
|
|
127
|
+
'signing-password': core_1.Flags.string({
|
|
117
128
|
description: 'password used for the private key (ENV: TURBINE_SIGNING_PASSWORD)',
|
|
118
129
|
default: '',
|
|
119
130
|
env: 'TURBINE_SIGNING_PASSWORD',
|
|
120
|
-
}),
|
|
131
|
+
}),
|
|
132
|
+
'key-name': core_1.Flags.string({
|
|
121
133
|
description: 'name used for the key (default: username_yyyy-MM-dd)',
|
|
122
|
-
}),
|
|
134
|
+
}),
|
|
135
|
+
'skip-upload': core_1.Flags.boolean({
|
|
123
136
|
hidden: true,
|
|
124
|
-
}),
|
|
137
|
+
}),
|
|
138
|
+
registry: core_1.Flags.string({
|
|
125
139
|
description: 'registry to use for signing',
|
|
126
140
|
default: 'localhost:5000',
|
|
127
|
-
}),
|
|
141
|
+
}),
|
|
142
|
+
output: core_1.Flags.string({
|
|
128
143
|
char: 'o',
|
|
129
144
|
description: 'output path to where to store the image.',
|
|
130
|
-
}),
|
|
145
|
+
}),
|
|
146
|
+
help: core_1.Flags.help({
|
|
131
147
|
char: 'h',
|
|
132
|
-
})
|
|
148
|
+
}),
|
|
149
|
+
};
|
|
133
150
|
//# sourceMappingURL=build.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/connector/build.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/connector/build.ts"],"names":[],"mappings":"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"}
|