@forge/cli
12.9.0-next.18-experimental-f76634b12.9.0-next.23
out/service/extensions-service.js+
out/service/extensions-service.jsNew file+67
Index: package/out/service/extensions-service.js
===================================================================
--- package/out/service/extensions-service.js
+++ package/out/service/extensions-service.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ExtensionsService = exports.DeployedExtensionWebTriggerListError = void 0;
+const cli_shared_1 = require("@forge/cli-shared");
+const ari_1 = require("@forge/util/packages/ari");
+class DeployedExtensionWebTriggerListError extends cli_shared_1.GraphQlMutationError {
+ constructor(requestId) {
+ super(cli_shared_1.Text.webtrigger.error.deployedListError, { requestId });
+ }
+}
+exports.DeployedExtensionWebTriggerListError = DeployedExtensionWebTriggerListError;
+var ExtensionType;
+(function (ExtensionType) {
+ ExtensionType["WEB_TRIGGER"] = "core:webtrigger";
+})(ExtensionType || (ExtensionType = {}));
+class ExtensionsService {
+ getAppConfig;
+ appEnvironmentClient;
+ graphQLClient;
+ installationsClient;
+ constructor(getAppConfig, appEnvironmentClient, graphQLClient, installationsClient) {
+ this.getAppConfig = getAppConfig;
+ this.appEnvironmentClient = appEnvironmentClient;
+ this.graphQLClient = graphQLClient;
+ this.installationsClient = installationsClient;
+ }
+ async getExtensions({ appId, envId, contextId, filterExtensionTypes }) {
+ const query = `
+ query forge_cli_listDeployedWebtriggerExtensionKeys($contextId: ID!, $filter: [ExtensionContextsFilter!]!) {
+ extensionContext(contextId: $contextId) {
+ extensions(filter: $filter) {
+ key
+ }
+ }
+ }
+ `;
+ const appIdEnvId = `${appId}:${envId}`;
+ const filter = [{ type: 'APP_ID_ENVIRONMENT_ID', value: [appIdEnvId] }];
+ if (filterExtensionTypes) {
+ for (const extType of filterExtensionTypes) {
+ filter.push({ type: 'EXTENSION_TYPE', value: [extType] });
+ }
+ }
+ const variables = {
+ contextId,
+ filter
+ };
+ const { extensionContext, requestId } = await this.graphQLClient.query(query, variables);
+ if (extensionContext === undefined || extensionContext === null) {
+ throw new DeployedExtensionWebTriggerListError(requestId);
+ }
+ return extensionContext.extensions.map((extension) => extension.key);
+ }
+ async getWebtriggerExtensions(installationId) {
+ const { id: appId } = await this.getAppConfig();
+ const { environmentKey, context: contextId } = await this.installationsClient.getInstallation(appId, installationId);
+ const envId = await this.appEnvironmentClient.getAppEnvironmentId(appId, environmentKey);
+ return await this.getExtensions({
+ appId: ari_1.EcosystemAppAri.parse(appId).appId,
+ contextId,
+ envId,
+ filterExtensionTypes: [ExtensionType.WEB_TRIGGER]
+ });
+ }
+}
+exports.ExtensionsService = ExtensionsService;
+//# sourceMappingURL=extensions-service.js.map
\ No newline at end of file