@optimizely/ocp-cli-v2 2.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +51 -0
- package/bin/ocp.js +3 -0
- package/bin/run.js +3 -0
- package/dist/commands/accounts/whoami.d.ts +5 -0
- package/dist/commands/accounts/whoami.js +22 -0
- package/dist/commands/accounts/whoami.js.map +1 -0
- package/dist/commands/accounts/whois.d.ts +12 -0
- package/dist/commands/accounts/whois.js +57 -0
- package/dist/commands/accounts/whois.js.map +1 -0
- package/dist/commands/app/BaseBuildCommand.d.ts +37 -0
- package/dist/commands/app/BaseBuildCommand.js +255 -0
- package/dist/commands/app/BaseBuildCommand.js.map +1 -0
- package/dist/commands/app/abandon.d.ts +11 -0
- package/dist/commands/app/abandon.js +146 -0
- package/dist/commands/app/abandon.js.map +1 -0
- package/dist/commands/app/getLogLevel.d.ts +16 -0
- package/dist/commands/app/getLogLevel.js +66 -0
- package/dist/commands/app/getLogLevel.js.map +1 -0
- package/dist/commands/app/init.d.ts +27 -0
- package/dist/commands/app/init.js +326 -0
- package/dist/commands/app/init.js.map +1 -0
- package/dist/commands/app/logs.d.ts +24 -0
- package/dist/commands/app/logs.js +231 -0
- package/dist/commands/app/logs.js.map +1 -0
- package/dist/commands/app/package.d.ts +8 -0
- package/dist/commands/app/package.js +51 -0
- package/dist/commands/app/package.js.map +1 -0
- package/dist/commands/app/prepare.d.ts +16 -0
- package/dist/commands/app/prepare.js +119 -0
- package/dist/commands/app/prepare.js.map +1 -0
- package/dist/commands/app/register.d.ts +10 -0
- package/dist/commands/app/register.js +102 -0
- package/dist/commands/app/register.js.map +1 -0
- package/dist/commands/app/setLogLevel.d.ts +16 -0
- package/dist/commands/app/setLogLevel.js +83 -0
- package/dist/commands/app/setLogLevel.js.map +1 -0
- package/dist/commands/app/validate.d.ts +5 -0
- package/dist/commands/app/validate.js +26 -0
- package/dist/commands/app/validate.js.map +1 -0
- package/dist/commands/availability/list.d.ts +6 -0
- package/dist/commands/availability/list.js +32 -0
- package/dist/commands/availability/list.js.map +1 -0
- package/dist/commands/dev-server/start.d.ts +36 -0
- package/dist/commands/dev-server/start.js +209 -0
- package/dist/commands/dev-server/start.js.map +1 -0
- package/dist/commands/dev.d.ts +8 -0
- package/dist/commands/dev.js +12 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/directory/info.d.ts +13 -0
- package/dist/commands/directory/info.js +85 -0
- package/dist/commands/directory/info.js.map +1 -0
- package/dist/commands/directory/install.d.ts +12 -0
- package/dist/commands/directory/install.js +46 -0
- package/dist/commands/directory/install.js.map +1 -0
- package/dist/commands/directory/list.d.ts +14 -0
- package/dist/commands/directory/list.js +114 -0
- package/dist/commands/directory/list.js.map +1 -0
- package/dist/commands/directory/listFunctions.d.ts +15 -0
- package/dist/commands/directory/listFunctions.js +86 -0
- package/dist/commands/directory/listFunctions.js.map +1 -0
- package/dist/commands/directory/listGlobalFunctions.d.ts +13 -0
- package/dist/commands/directory/listGlobalFunctions.js +64 -0
- package/dist/commands/directory/listGlobalFunctions.js.map +1 -0
- package/dist/commands/directory/listInstalls.d.ts +15 -0
- package/dist/commands/directory/listInstalls.js +72 -0
- package/dist/commands/directory/listInstalls.js.map +1 -0
- package/dist/commands/directory/listSourceFunctions.d.ts +14 -0
- package/dist/commands/directory/listSourceFunctions.js +71 -0
- package/dist/commands/directory/listSourceFunctions.js.map +1 -0
- package/dist/commands/directory/publish.d.ts +15 -0
- package/dist/commands/directory/publish.js +201 -0
- package/dist/commands/directory/publish.js.map +1 -0
- package/dist/commands/directory/status.d.ts +11 -0
- package/dist/commands/directory/status.js +50 -0
- package/dist/commands/directory/status.js.map +1 -0
- package/dist/commands/directory/uninstall.d.ts +13 -0
- package/dist/commands/directory/uninstall.js +55 -0
- package/dist/commands/directory/uninstall.js.map +1 -0
- package/dist/commands/directory/unpublish.d.ts +17 -0
- package/dist/commands/directory/unpublish.js +187 -0
- package/dist/commands/directory/unpublish.js.map +1 -0
- package/dist/commands/directory/upgrade.d.ts +15 -0
- package/dist/commands/directory/upgrade.js +113 -0
- package/dist/commands/directory/upgrade.js.map +1 -0
- package/dist/commands/env/get.d.ts +5 -0
- package/dist/commands/env/get.js +23 -0
- package/dist/commands/env/get.js.map +1 -0
- package/dist/commands/env/set.d.ts +8 -0
- package/dist/commands/env/set.js +63 -0
- package/dist/commands/env/set.js.map +1 -0
- package/dist/commands/jobs/list.d.ts +27 -0
- package/dist/commands/jobs/list.js +245 -0
- package/dist/commands/jobs/list.js.map +1 -0
- package/dist/commands/jobs/runtimeStatus.d.ts +11 -0
- package/dist/commands/jobs/runtimeStatus.js +55 -0
- package/dist/commands/jobs/runtimeStatus.js.map +1 -0
- package/dist/commands/jobs/status.d.ts +11 -0
- package/dist/commands/jobs/status.js +57 -0
- package/dist/commands/jobs/status.js.map +1 -0
- package/dist/commands/jobs/terminate.d.ts +11 -0
- package/dist/commands/jobs/terminate.js +35 -0
- package/dist/commands/jobs/terminate.js.map +1 -0
- package/dist/commands/jobs/trigger.d.ts +14 -0
- package/dist/commands/jobs/trigger.js +47 -0
- package/dist/commands/jobs/trigger.js.map +1 -0
- package/dist/commands/review/list.d.ts +9 -0
- package/dist/commands/review/list.js +74 -0
- package/dist/commands/review/list.js.map +1 -0
- package/dist/commands/review/open.d.ts +8 -0
- package/dist/commands/review/open.js +32 -0
- package/dist/commands/review/open.js.map +1 -0
- package/dist/hooks/command-not-found.d.ts +3 -0
- package/dist/hooks/command-not-found.js +93 -0
- package/dist/hooks/command-not-found.js.map +1 -0
- package/dist/hooks/preupdate.d.ts +10 -0
- package/dist/hooks/preupdate.js +42 -0
- package/dist/hooks/preupdate.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/AppContext.d.ts +9 -0
- package/dist/lib/AppContext.js +43 -0
- package/dist/lib/AppContext.js.map +1 -0
- package/dist/lib/AppPackager.d.ts +17 -0
- package/dist/lib/AppPackager.js +57 -0
- package/dist/lib/AppPackager.js.map +1 -0
- package/dist/lib/AppUpdater.d.ts +11 -0
- package/dist/lib/AppUpdater.js +143 -0
- package/dist/lib/AppUpdater.js.map +1 -0
- package/dist/lib/AppUploader.d.ts +9 -0
- package/dist/lib/AppUploader.js +37 -0
- package/dist/lib/AppUploader.js.map +1 -0
- package/dist/lib/BuildPipeline.d.ts +24 -0
- package/dist/lib/BuildPipeline.js +26 -0
- package/dist/lib/BuildPipeline.js.map +1 -0
- package/dist/lib/BuildPipelineFactory.d.ts +10 -0
- package/dist/lib/BuildPipelineFactory.js +23 -0
- package/dist/lib/BuildPipelineFactory.js.map +1 -0
- package/dist/lib/Config.d.ts +15 -0
- package/dist/lib/Config.js +47 -0
- package/dist/lib/Config.js.map +1 -0
- package/dist/lib/CustomHelp.d.ts +19 -0
- package/dist/lib/CustomHelp.js +81 -0
- package/dist/lib/CustomHelp.js.map +1 -0
- package/dist/lib/DependencyStage.d.ts +1 -0
- package/dist/lib/DependencyStage.js +3 -0
- package/dist/lib/DependencyStage.js.map +1 -0
- package/dist/lib/EnvironmentalOutput.d.ts +1 -0
- package/dist/lib/EnvironmentalOutput.js +22 -0
- package/dist/lib/EnvironmentalOutput.js.map +1 -0
- package/dist/lib/Moria.d.ts +51 -0
- package/dist/lib/Moria.js +30 -0
- package/dist/lib/Moria.js.map +1 -0
- package/dist/lib/MoriaApi.d.ts +22 -0
- package/dist/lib/MoriaApi.js +74 -0
- package/dist/lib/MoriaApi.js.map +1 -0
- package/dist/lib/NodeBuildPipeline.d.ts +25 -0
- package/dist/lib/NodeBuildPipeline.js +60 -0
- package/dist/lib/NodeBuildPipeline.js.map +1 -0
- package/dist/lib/PackageManager.d.ts +242 -0
- package/dist/lib/PackageManager.js +511 -0
- package/dist/lib/PackageManager.js.map +1 -0
- package/dist/lib/Rivendell.d.ts +409 -0
- package/dist/lib/Rivendell.js +391 -0
- package/dist/lib/Rivendell.js.map +1 -0
- package/dist/lib/RivendellApi.d.ts +22 -0
- package/dist/lib/RivendellApi.js +159 -0
- package/dist/lib/RivendellApi.js.map +1 -0
- package/dist/lib/Shards.d.ts +3 -0
- package/dist/lib/Shards.js +41 -0
- package/dist/lib/Shards.js.map +1 -0
- package/dist/lib/StringUtils.d.ts +1 -0
- package/dist/lib/StringUtils.js +9 -0
- package/dist/lib/StringUtils.js.map +1 -0
- package/dist/lib/TeminalPassthru.d.ts +7 -0
- package/dist/lib/TeminalPassthru.js +12 -0
- package/dist/lib/TeminalPassthru.js.map +1 -0
- package/dist/lib/TerminalConfirm.d.ts +3 -0
- package/dist/lib/TerminalConfirm.js +31 -0
- package/dist/lib/TerminalConfirm.js.map +1 -0
- package/dist/lib/TerminalInput.d.ts +32 -0
- package/dist/lib/TerminalInput.js +207 -0
- package/dist/lib/TerminalInput.js.map +1 -0
- package/dist/lib/TerminalMenu.d.ts +34 -0
- package/dist/lib/TerminalMenu.js +186 -0
- package/dist/lib/TerminalMenu.js.map +1 -0
- package/dist/lib/TerminalOutput.d.ts +5 -0
- package/dist/lib/TerminalOutput.js +12 -0
- package/dist/lib/TerminalOutput.js.map +1 -0
- package/dist/lib/TerminalSpinner.d.ts +14 -0
- package/dist/lib/TerminalSpinner.js +69 -0
- package/dist/lib/TerminalSpinner.js.map +1 -0
- package/dist/lib/Tracking.d.ts +15 -0
- package/dist/lib/Tracking.js +19 -0
- package/dist/lib/Tracking.js.map +1 -0
- package/dist/lib/build.d.ts +5 -0
- package/dist/lib/build.js +41 -0
- package/dist/lib/build.js.map +1 -0
- package/dist/lib/die.d.ts +5 -0
- package/dist/lib/die.js +14 -0
- package/dist/lib/die.js.map +1 -0
- package/dist/lib/directoryExists.d.ts +1 -0
- package/dist/lib/directoryExists.js +9 -0
- package/dist/lib/directoryExists.js.map +1 -0
- package/dist/lib/formatBuildState.d.ts +2 -0
- package/dist/lib/formatBuildState.js +23 -0
- package/dist/lib/formatBuildState.js.map +1 -0
- package/dist/lib/formatError.d.ts +1 -0
- package/dist/lib/formatError.js +55 -0
- package/dist/lib/formatError.js.map +1 -0
- package/dist/lib/formatJobStatus.d.ts +3 -0
- package/dist/lib/formatJobStatus.js +28 -0
- package/dist/lib/formatJobStatus.js.map +1 -0
- package/dist/lib/formatReviewStatus.d.ts +4 -0
- package/dist/lib/formatReviewStatus.js +28 -0
- package/dist/lib/formatReviewStatus.js.map +1 -0
- package/dist/lib/formatTimstamp.d.ts +1 -0
- package/dist/lib/formatTimstamp.js +25 -0
- package/dist/lib/formatTimstamp.js.map +1 -0
- package/dist/lib/formatVersionState.d.ts +2 -0
- package/dist/lib/formatVersionState.js +37 -0
- package/dist/lib/formatVersionState.js.map +1 -0
- package/dist/lib/gatherAppEnv.d.ts +3 -0
- package/dist/lib/gatherAppEnv.js +71 -0
- package/dist/lib/gatherAppEnv.js.map +1 -0
- package/dist/lib/handleInterrupt.d.ts +1 -0
- package/dist/lib/handleInterrupt.js +17 -0
- package/dist/lib/handleInterrupt.js.map +1 -0
- package/dist/lib/jobRuntime.d.ts +3 -0
- package/dist/lib/jobRuntime.js +16 -0
- package/dist/lib/jobRuntime.js.map +1 -0
- package/dist/lib/migrateOptiCli.d.ts +1 -0
- package/dist/lib/migrateOptiCli.js +30 -0
- package/dist/lib/migrateOptiCli.js.map +1 -0
- package/dist/lib/parseDate.d.ts +2 -0
- package/dist/lib/parseDate.js +26 -0
- package/dist/lib/parseDate.js.map +1 -0
- package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
- package/dist/lib/templating/TemplateRenderer.js +63 -0
- package/dist/lib/templating/TemplateRenderer.js.map +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
- package/dist/lib/templating/fetchTemplatesManifest.js +9 -0
- package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
- package/dist/lib/templating/types.d.ts +27 -0
- package/dist/lib/templating/types.js +3 -0
- package/dist/lib/templating/types.js.map +1 -0
- package/dist/oclif.manifest.json +1616 -0
- package/dist/utils/utils.d.ts +5 -0
- package/dist/utils/utils.js +61 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +180 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const table = require("text-table");
|
|
5
|
+
const semver = require("semver");
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const die_1 = require("../../lib/die");
|
|
8
|
+
const formatVersionState_1 = require("../../lib/formatVersionState");
|
|
9
|
+
const StringUtils_1 = require("../../lib/StringUtils");
|
|
10
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
11
|
+
const formatError_1 = require("../../lib/formatError");
|
|
12
|
+
var AppVersionState = Rivendell_1.Rivendell.AppVersionState;
|
|
13
|
+
var DeploymentStage = Rivendell_1.Rivendell.DeploymentStage;
|
|
14
|
+
var ReviewStatus = Rivendell_1.Rivendell.ReviewStatus;
|
|
15
|
+
class ListCommand extends core_1.Command {
|
|
16
|
+
async run() {
|
|
17
|
+
const { args, flags } = await this.parse(ListCommand);
|
|
18
|
+
try {
|
|
19
|
+
const criteria = {
|
|
20
|
+
stages: [DeploymentStage.TEST, DeploymentStage.PRODUCTION],
|
|
21
|
+
states: flags.allStatuses ? [] : [AppVersionState.STOPPED, AppVersionState.ABANDONED],
|
|
22
|
+
};
|
|
23
|
+
if (!flags.allStatuses) {
|
|
24
|
+
criteria.states = [
|
|
25
|
+
AppVersionState.NEW,
|
|
26
|
+
AppVersionState.PUBLISHED,
|
|
27
|
+
AppVersionState.BUILD_FAILED,
|
|
28
|
+
AppVersionState.STARTING,
|
|
29
|
+
AppVersionState.START_FAILED,
|
|
30
|
+
AppVersionState.RUNNING,
|
|
31
|
+
AppVersionState.UPGRADING_RUNTIME,
|
|
32
|
+
AppVersionState.STOPPING,
|
|
33
|
+
AppVersionState.STOP_FAILED
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
if (args.appId) {
|
|
37
|
+
criteria.appId = args.appId;
|
|
38
|
+
}
|
|
39
|
+
const appVersions = await Rivendell_1.Rivendell.searchAppVersions(criteria, flags.availability);
|
|
40
|
+
this.render(appVersions, flags.allStatuses);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
render(appVersions, allStatuses) {
|
|
47
|
+
const header = [
|
|
48
|
+
'App ID',
|
|
49
|
+
'Version',
|
|
50
|
+
'Target Product',
|
|
51
|
+
'State',
|
|
52
|
+
'Created At',
|
|
53
|
+
'Updated At',
|
|
54
|
+
].map((item) => chalk.grey(item));
|
|
55
|
+
const rows = appVersions
|
|
56
|
+
.filter((appVersion) => allStatuses ||
|
|
57
|
+
(appVersion.state !== AppVersionState.STOPPED &&
|
|
58
|
+
appVersion.state !== AppVersionState.ABANDONED))
|
|
59
|
+
.sort((lhs, rhs) => {
|
|
60
|
+
let result = lhs.id.appId.localeCompare(rhs.id.appId);
|
|
61
|
+
if (result === 0) {
|
|
62
|
+
const lhsVersion = lhs.id.version;
|
|
63
|
+
const rhsVersion = rhs.id.version;
|
|
64
|
+
if (lhsVersion !== rhsVersion) {
|
|
65
|
+
result = semver.gt(lhsVersion, rhsVersion) ? -1 : 1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
})
|
|
70
|
+
.map((appVersion) => [
|
|
71
|
+
appVersion.id.appId,
|
|
72
|
+
appVersion.id.version,
|
|
73
|
+
appVersion.accountType,
|
|
74
|
+
this.renderState(appVersion),
|
|
75
|
+
appVersion.createdAt,
|
|
76
|
+
appVersion.updatedAt,
|
|
77
|
+
]);
|
|
78
|
+
const t = table([header, ...rows], {
|
|
79
|
+
hsep: ' '.repeat(8),
|
|
80
|
+
stringLength: StringUtils_1.styledStringLength,
|
|
81
|
+
});
|
|
82
|
+
this.log(`\n${t}\n`);
|
|
83
|
+
}
|
|
84
|
+
renderState(appVersion) {
|
|
85
|
+
const state = appVersion.state;
|
|
86
|
+
const reviewStatus = appVersion.reviewStatus;
|
|
87
|
+
const includeReviewStatus = reviewStatus === ReviewStatus.APPROVED ||
|
|
88
|
+
reviewStatus === ReviewStatus.IN_REVIEW;
|
|
89
|
+
if (state === AppVersionState.PUBLISHED && includeReviewStatus) {
|
|
90
|
+
return `${(0, formatVersionState_1.formatVersionState)(state)} (${chalk.yellow(reviewStatus)})`;
|
|
91
|
+
}
|
|
92
|
+
return (0, formatVersionState_1.formatVersionState)(state);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.default = ListCommand;
|
|
96
|
+
ListCommand.description = 'List registered app versions';
|
|
97
|
+
ListCommand.flags = {
|
|
98
|
+
allStatuses: core_1.Flags.boolean({
|
|
99
|
+
description: 'Include all statuses. STOPPED and ABANDONED are filtered by default',
|
|
100
|
+
default: false,
|
|
101
|
+
}),
|
|
102
|
+
availability: core_1.Flags.string({
|
|
103
|
+
char: 'a',
|
|
104
|
+
description: 'The availability zone that will be targeted (default: us)',
|
|
105
|
+
default: 'us',
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
ListCommand.args = {
|
|
109
|
+
appId: core_1.Args.string({
|
|
110
|
+
description: 'A specific App ID to filter down to (lists all apps by default)',
|
|
111
|
+
required: false,
|
|
112
|
+
}),
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/directory/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class ListFunctionsCommand extends Command {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
availability: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
static args: {
|
|
9
|
+
appId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
trackerId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
private render;
|
|
14
|
+
private installationResolutionText;
|
|
15
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const die_1 = require("../../lib/die");
|
|
6
|
+
const formatError_1 = require("../../lib/formatError");
|
|
7
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
8
|
+
var InstallationResolutionType = Rivendell_1.Rivendell.InstallationResolutionType;
|
|
9
|
+
class ListFunctionsCommand extends core_1.Command {
|
|
10
|
+
async run() {
|
|
11
|
+
const { args, flags } = await this.parse(ListFunctionsCommand);
|
|
12
|
+
const { appId, trackerId } = args;
|
|
13
|
+
const availability = flags.availability;
|
|
14
|
+
try {
|
|
15
|
+
const appInstallation = await Rivendell_1.Rivendell.fetchAppInstallation(appId, trackerId, availability);
|
|
16
|
+
const webhooks = await Rivendell_1.Rivendell.searchWebhooks({
|
|
17
|
+
appInstallId: appInstallation.id,
|
|
18
|
+
includeInternal: true,
|
|
19
|
+
includeDisabled: true,
|
|
20
|
+
}, availability);
|
|
21
|
+
const functionWebhooks = webhooks.filter((w) => !w.attributes.dataSyncId);
|
|
22
|
+
this.render(functionWebhooks, appId, trackerId);
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
render(webhooks, appId, trackerId) {
|
|
29
|
+
if (webhooks.length === 0) {
|
|
30
|
+
this.log(chalk.yellow(`${appId} install for ${trackerId} does not have functions.`));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const longest = Math.max(...webhooks.map((w) => w.url.length));
|
|
34
|
+
for (const webhook of webhooks) {
|
|
35
|
+
const attrs = webhook.attributes;
|
|
36
|
+
const caveats = [];
|
|
37
|
+
const resolutionInfo = this.installationResolutionText(attrs.installationResolutionType, attrs.installationResolutionKey);
|
|
38
|
+
if (resolutionInfo)
|
|
39
|
+
caveats.push(resolutionInfo);
|
|
40
|
+
if (attrs.internal)
|
|
41
|
+
caveats.push('internal');
|
|
42
|
+
if (!attrs.enabled)
|
|
43
|
+
caveats.push('disabled');
|
|
44
|
+
if (caveats.length > 0) {
|
|
45
|
+
this.log(webhook.url.padEnd(longest + 2) + ` (${caveats.join(', ')})`);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.log(webhook.url);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
installationResolutionText(type, key) {
|
|
54
|
+
switch (type) {
|
|
55
|
+
case InstallationResolutionType.HEADER:
|
|
56
|
+
return `required HTTP Header with name '${key}' and the value set to public tracking id`;
|
|
57
|
+
case InstallationResolutionType.QUERY_PARAM:
|
|
58
|
+
return `required URL query parameter with name '${key}' and the value set to public tracking id`;
|
|
59
|
+
case InstallationResolutionType.JSON_BODY_FIELD:
|
|
60
|
+
return `required JSON body field that matches JSONPath '${key}' and the value set to public tracking id and HTTP Header set to 'Content-Type: application/json'`;
|
|
61
|
+
default:
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.default = ListFunctionsCommand;
|
|
67
|
+
ListFunctionsCommand.aliases = ['directory:list-functions'];
|
|
68
|
+
ListFunctionsCommand.description = 'List the functions exposed by an app installation';
|
|
69
|
+
ListFunctionsCommand.flags = {
|
|
70
|
+
availability: core_1.Flags.string({
|
|
71
|
+
char: 'a',
|
|
72
|
+
description: 'The availability zone that will be targeted (default: us)',
|
|
73
|
+
default: 'us',
|
|
74
|
+
}),
|
|
75
|
+
};
|
|
76
|
+
ListFunctionsCommand.args = {
|
|
77
|
+
appId: core_1.Args.string({
|
|
78
|
+
description: 'The App ID (e.g. my_app)',
|
|
79
|
+
required: true,
|
|
80
|
+
}),
|
|
81
|
+
trackerId: core_1.Args.string({
|
|
82
|
+
description: 'The Tracker ID of the installed account',
|
|
83
|
+
required: true,
|
|
84
|
+
}),
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=listFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listFunctions.js","sourceRoot":"","sources":["../../../src/commands/directory/listFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class ListGlobalFunctionsCommand extends Command {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
availability: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
static args: {
|
|
9
|
+
appId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
private render;
|
|
13
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const die_1 = require("../../lib/die");
|
|
6
|
+
const formatError_1 = require("../../lib/formatError");
|
|
7
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
8
|
+
class ListGlobalFunctionsCommand extends core_1.Command {
|
|
9
|
+
async run() {
|
|
10
|
+
const { args, flags } = await this.parse(ListGlobalFunctionsCommand);
|
|
11
|
+
try {
|
|
12
|
+
const webhooks = await Rivendell_1.Rivendell.searchWebhooks({
|
|
13
|
+
appId: args.appId,
|
|
14
|
+
appInstallId: 0,
|
|
15
|
+
includeInternal: true,
|
|
16
|
+
includeDisabled: true,
|
|
17
|
+
}, flags.availability);
|
|
18
|
+
this.render(webhooks, args.appId);
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
render(webhooks, appId) {
|
|
25
|
+
if (webhooks.length === 0) {
|
|
26
|
+
this.log(chalk.yellow(`${appId} does not contain global functions.`));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
for (const webhook of webhooks) {
|
|
30
|
+
const attrs = webhook.attributes;
|
|
31
|
+
const caveats = [];
|
|
32
|
+
if (attrs.internal) {
|
|
33
|
+
caveats.push('internal');
|
|
34
|
+
}
|
|
35
|
+
if (!attrs.enabled) {
|
|
36
|
+
caveats.push('disabled');
|
|
37
|
+
}
|
|
38
|
+
if (caveats.length === 0) {
|
|
39
|
+
this.log(webhook.url);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.log(chalk.yellow(`${webhook.url} (${caveats.join(', ')})`));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.default = ListGlobalFunctionsCommand;
|
|
49
|
+
ListGlobalFunctionsCommand.aliases = ['directory:list-global-functions'];
|
|
50
|
+
ListGlobalFunctionsCommand.description = 'List the global functions exposed by an app';
|
|
51
|
+
ListGlobalFunctionsCommand.flags = {
|
|
52
|
+
availability: core_1.Flags.string({
|
|
53
|
+
char: 'a',
|
|
54
|
+
description: 'The availability zone that will be targeted (default: us)',
|
|
55
|
+
default: 'us',
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
ListGlobalFunctionsCommand.args = {
|
|
59
|
+
appId: core_1.Args.string({
|
|
60
|
+
description: 'The App ID (e.g. my_app)',
|
|
61
|
+
required: true,
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=listGlobalFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listGlobalFunctions.js","sourceRoot":"","sources":["../../../src/commands/directory/listGlobalFunctions.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,sCAAmD;AACnD,uCAAoC;AACpC,uDAAoD;AACpD,mDAAgD;AAGhD,MAAqB,0BAA2B,SAAQ,cAAO;IAoBtD,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAErE,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,qBAAS,CAAC,cAAc,CAC7C;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,YAAY,EAAE,CAAC;gBACf,eAAe,EAAE,IAAI;gBACrB,eAAe,EAAE,IAAI;aACtB,EACD,KAAK,CAAC,YAAY,CACnB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,QAAmB,EAAE,KAAa;QAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC,CAAC;SACvE;aAAM;YACL,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;gBACjC,MAAM,OAAO,GAAa,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC1B;gBACD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC1B;gBAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBACvB;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnE;aACF;SACF;IACH,CAAC;;AA7DH,6CA8DC;AA7De,kCAAO,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9C,sCAAW,GAAG,6CAA6C,CAAC;AAE5D,gCAAK,GAAG;IACpB,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,IAAI;KACd,CAAC;CACH,CAAC;AAEY,+BAAI,GAAG;IACnB,KAAK,EAAE,WAAI,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class ListInstallsCommand extends Command {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
availability: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
static args: {
|
|
9
|
+
appVersion: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
private render;
|
|
13
|
+
private getHeaders;
|
|
14
|
+
private getRow;
|
|
15
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const table = require("text-table");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const die_1 = require("../../lib/die");
|
|
7
|
+
const StringUtils_1 = require("../../lib/StringUtils");
|
|
8
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
9
|
+
const formatError_1 = require("../../lib/formatError");
|
|
10
|
+
var SortDirection = Rivendell_1.Rivendell.SortDirection;
|
|
11
|
+
class ListInstallsCommand extends core_1.Command {
|
|
12
|
+
async run() {
|
|
13
|
+
const { args, flags } = await this.parse(ListInstallsCommand);
|
|
14
|
+
const [appId, version] = args.appVersion.split('@');
|
|
15
|
+
try {
|
|
16
|
+
const appInstallations = await Rivendell_1.Rivendell.searchAppInstallations({
|
|
17
|
+
appId,
|
|
18
|
+
version,
|
|
19
|
+
sorts: [
|
|
20
|
+
{
|
|
21
|
+
field: 'trackerId',
|
|
22
|
+
direction: SortDirection.DESC,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
}, flags.availability);
|
|
26
|
+
this.render(version, appInstallations);
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
render(version, appInstallations) {
|
|
33
|
+
const header = this.getHeaders(version).map((item) => chalk.grey(item));
|
|
34
|
+
const rows = appInstallations.map((install) => this.getRow(install, version));
|
|
35
|
+
const t = table([header, ...rows], {
|
|
36
|
+
hsep: ' '.repeat(8),
|
|
37
|
+
stringLength: StringUtils_1.styledStringLength,
|
|
38
|
+
});
|
|
39
|
+
this.log(`\n${t}\n`);
|
|
40
|
+
}
|
|
41
|
+
getHeaders(version) {
|
|
42
|
+
const headers = ['Tracker', 'Created At', 'Updated At'];
|
|
43
|
+
if (!version) {
|
|
44
|
+
headers.splice(1, 0, 'Version');
|
|
45
|
+
}
|
|
46
|
+
return headers;
|
|
47
|
+
}
|
|
48
|
+
getRow(install, version) {
|
|
49
|
+
const row = [install.trackerId, install.createdAt, install.updatedAt];
|
|
50
|
+
if (!version) {
|
|
51
|
+
row.splice(1, 0, install.version);
|
|
52
|
+
}
|
|
53
|
+
return row;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.default = ListInstallsCommand;
|
|
57
|
+
ListInstallsCommand.aliases = ['directory:list-installs'];
|
|
58
|
+
ListInstallsCommand.description = 'List installations of a specific app version';
|
|
59
|
+
ListInstallsCommand.flags = {
|
|
60
|
+
availability: core_1.Flags.string({
|
|
61
|
+
char: 'a',
|
|
62
|
+
description: 'The availability zone that will be targeted (default: us)',
|
|
63
|
+
default: 'us',
|
|
64
|
+
}),
|
|
65
|
+
};
|
|
66
|
+
ListInstallsCommand.args = {
|
|
67
|
+
appVersion: core_1.Args.string({
|
|
68
|
+
description: 'The App ID and optional version (e.g. my_app or my_app@1.0.0)',
|
|
69
|
+
required: true,
|
|
70
|
+
}),
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=listInstalls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listInstalls.js","sourceRoot":"","sources":["../../../src/commands/directory/listInstalls.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,oCAAoC;AACpC,sCAAmD;AACnD,uCAAoC;AACpC,uDAA2D;AAC3D,mDAAgD;AAChD,uDAAoD;AACpD,IAAO,aAAa,GAAG,qBAAS,CAAC,aAAa,CAAC;AAG/C,MAAqB,mBAAoB,SAAQ,cAAO;IAqB/C,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpD,IAAI;YACF,MAAM,gBAAgB,GAAG,MAAM,qBAAS,CAAC,sBAAsB,CAC7D;gBACE,KAAK;gBACL,OAAO;gBACP,KAAK,EAAE;oBACL;wBACE,KAAK,EAAE,WAAW;wBAClB,SAAS,EAAE,aAAa,CAAC,IAAI;qBAC9B;iBACF;aACF,EACD,KAAK,CAAC,YAAY,CACnB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;SACxC;QAAC,OAAO,CAAM,EAAE;YACf,IAAA,SAAG,EAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,CAAC;SACrB;IACH,CAAC;IAEO,MAAM,CAAC,OAAe,EAAE,gBAAmC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAC9B,CAAC;QACF,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;YACjC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnB,YAAY,EAAE,gCAAkB;SACjC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;SACjC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,OAAwB,EAAE,OAAe;QACtD,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,EAAE;YACZ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;SACnC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;;AAxEH,sCAyEC;AAxEe,2BAAO,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAEtC,+BAAW,GAAG,8CAA8C,CAAC;AAE7D,yBAAK,GAAG;IACpB,YAAY,EAAE,YAAK,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,2DAA2D;QACxE,OAAO,EAAE,IAAI;KACd,CAAC;CACH,CAAC;AAEY,wBAAI,GAAG;IACnB,UAAU,EAAE,WAAI,CAAC,MAAM,CAAC;QACtB,WAAW,EACT,+DAA+D;QACjE,QAAQ,EAAE,IAAI;KACf,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class ListSourceFunctionsCommand extends Command {
|
|
3
|
+
static aliases: string[];
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
availability: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
};
|
|
8
|
+
static args: {
|
|
9
|
+
appId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
trackerId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
11
|
+
};
|
|
12
|
+
run(): Promise<void>;
|
|
13
|
+
private render;
|
|
14
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chalk = require("chalk");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const die_1 = require("../../lib/die");
|
|
6
|
+
const formatError_1 = require("../../lib/formatError");
|
|
7
|
+
const Rivendell_1 = require("../../lib/Rivendell");
|
|
8
|
+
class ListSourceFunctionsCommand extends core_1.Command {
|
|
9
|
+
async run() {
|
|
10
|
+
const { args, flags } = await this.parse(ListSourceFunctionsCommand);
|
|
11
|
+
try {
|
|
12
|
+
const appInstallation = await Rivendell_1.Rivendell.fetchAppInstallation(args.appId, args.trackerId, flags.availability);
|
|
13
|
+
const webhooks = await Rivendell_1.Rivendell.searchWebhooks({
|
|
14
|
+
appInstallId: appInstallation.id,
|
|
15
|
+
includeInternal: true,
|
|
16
|
+
includeDisabled: true,
|
|
17
|
+
}, flags.availability);
|
|
18
|
+
const sourceWebhooks = webhooks.filter((w) => { var _a; return ((_a = w.attributes.dataSyncId) === null || _a === void 0 ? void 0 : _a.length) !== 0; });
|
|
19
|
+
this.render(sourceWebhooks, args.appId, args.trackerId);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
(0, die_1.die)((0, formatError_1.formatError)(e));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
render(webhooks, appId, trackerId) {
|
|
26
|
+
if (webhooks.length === 0) {
|
|
27
|
+
this.log(chalk.yellow(`${appId} install for ${trackerId} does not have source functions.`));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const longest = Math.max(...webhooks.map((w) => w.url.length));
|
|
31
|
+
webhooks.forEach((webhook) => {
|
|
32
|
+
const attrs = webhook.attributes;
|
|
33
|
+
const info = [];
|
|
34
|
+
info.push(`data-sync-id: ${attrs.dataSyncId}`);
|
|
35
|
+
if (attrs.internal) {
|
|
36
|
+
info.push('internal');
|
|
37
|
+
}
|
|
38
|
+
if (!attrs.enabled) {
|
|
39
|
+
info.push('disabled');
|
|
40
|
+
}
|
|
41
|
+
if (info.length > 0) {
|
|
42
|
+
this.log(webhook.url.padEnd(longest + 2), `(${info.join(', ')})`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.log(webhook.url);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.default = ListSourceFunctionsCommand;
|
|
52
|
+
ListSourceFunctionsCommand.aliases = ['directory:list-source-functions'];
|
|
53
|
+
ListSourceFunctionsCommand.description = 'List the source functions exposed by an app installation';
|
|
54
|
+
ListSourceFunctionsCommand.flags = {
|
|
55
|
+
availability: core_1.Flags.string({
|
|
56
|
+
char: 'a',
|
|
57
|
+
description: 'The availability zone that will be targeted (default: us)',
|
|
58
|
+
default: 'us',
|
|
59
|
+
}),
|
|
60
|
+
};
|
|
61
|
+
ListSourceFunctionsCommand.args = {
|
|
62
|
+
appId: core_1.Args.string({
|
|
63
|
+
description: 'The App ID (e.g. my_app)',
|
|
64
|
+
required: true,
|
|
65
|
+
}),
|
|
66
|
+
trackerId: core_1.Args.string({
|
|
67
|
+
description: 'The Tracker ID of the installed account',
|
|
68
|
+
required: true,
|
|
69
|
+
}),
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=listSourceFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listSourceFunctions.js","sourceRoot":"","sources":["../../../src/commands/directory/listSourceFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class PublishCommand extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static flags: {
|
|
5
|
+
noProgress: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
6
|
+
noPrompt: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
7
|
+
};
|
|
8
|
+
static args: {
|
|
9
|
+
appVersion: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
10
|
+
};
|
|
11
|
+
run(): Promise<void>;
|
|
12
|
+
private checkOrphanedDeploys;
|
|
13
|
+
private isStopped;
|
|
14
|
+
private watchForPublishCompletion;
|
|
15
|
+
}
|