npm package diff
Package: @forge/cli
Versions: 10.13.5-next.0-experimental-4d5d98e - 10.13.5-next.0-experimental-f38fac9
File: package/out/service/version-service.js
Index: package/out/service/version-service.js
===================================================================
--- package/out/service/version-service.js
+++ package/out/service/version-service.js
@@ -1,136 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.VersionService = void 0;
-const cli_shared_1 = require("@forge/cli-shared");
-const manifest_1 = require("@forge/manifest");
-const arn_1 = require("@sandfox/arn");
-class VersionService {
- getAppConfig;
- versionDetailsClient;
- constructor(getAppConfig, versionDetailsClient) {
- this.getAppConfig = getAppConfig;
- this.versionDetailsClient = versionDetailsClient;
- }
- getMajorVersion(version) {
- return parseInt(version.split('.')[0]);
- }
- async getAppVersionDetails(environmentKey, majorVersion) {
- const { id: appId } = await this.getAppConfig();
- const data = await this.versionDetailsClient.getVersionDetails(appId, environmentKey, majorVersion);
- const functionModules = data.modules?.filter((mod) => mod?.extensionData.type === manifest_1.AllModuleTypes.CoreFunction);
- const remoteModules = data.modules?.filter((mod) => mod?.extensionData.type === manifest_1.AllModuleTypes.CoreRemote);
- const allModules = this.getModulesGroupedByTypes(data.modules);
- return {
- requiresLicense: data.requiresLicense,
- egresses: data.permissions?.[0].egress
- ?.filter((entry) => entry !== undefined && entry !== null)
- .filter((entry) => {
- if (entry.type === 'FETCH_BACKEND_SIDE') {
- entry.addresses = entry.addresses?.filter((address) => !remoteModules?.map((remote) => remote?.extensionData.baseUrl).includes(address));
- }
- return entry;
- })
- .filter((entry) => entry?.addresses?.length !== 0)
- .map((entry) => ({
- type: this.getTypeFromPermissionType(entry?.type),
- addresses: entry.addresses
- })) || [],
- scopes: data.permissions?.[0].scopes.map((scope) => scope.key).sort() || [],
- policies: data.permissions?.[0].securityPolicies
- ?.filter((entry) => entry.type !== undefined && entry.type !== null)
- .map((entry) => ({
- type: this.getTypeFromPermissionType(entry?.type),
- policies: entry.policies
- })) || [],
- connectKeys: data.migrationKeys
- ? Object.keys(data.migrationKeys).map((key) => ({
- product: key,
- key: data.migrationKeys[key]
- }))
- : undefined,
- appVersion: this.getMajorVersion(data.appVersion),
- deploymentDateTime: data.deploymentDateTime,
- environmentType: data.environmentType,
- functions: functionModules?.map((entry) => ({
- key: entry?.key || 'N/A',
- runtimeName: (entry?.extensionData.functions?.[Object.keys(entry?.extensionData.functions || {})[0]]?.runtime
- ?.identifier ||
- entry?.extensionData.runtime?.identifier ||
- 'sandbox')
- .replace('provided.al2', 'sandbox')
- .replace('provided', 'sandbox'),
- regions: entry?.extensionData.functions
- ? Object.keys(entry?.extensionData.functions)
- : [(0, arn_1.parse)(entry?.extensionData.functionName).region],
- handler: entry?.extensionData.handler
- })) || [],
- modules: Object.keys(allModules)
- .filter((type) => !['function', 'remote'].includes(type))
- .map((type) => ({ type, items: allModules[type] })) || [],
- remotes: remoteModules?.map((entry) => ({
- key: entry?.key || 'N/A',
- baseUrl: entry?.extensionData.baseUrl,
- operations: entry?.extensionData.operations || []
- })) || []
- };
- }
- getTypeFromPermissionType(permissionType) {
- switch (permissionType) {
- case cli_shared_1.AppNetworkPermissionType.FetchBackendSide:
- return 'fetch.backend';
- case cli_shared_1.AppNetworkPermissionType.FetchClientSide:
- return 'fetch.client';
- default:
- return permissionType?.toLowerCase().replaceAll('_', '.');
- }
- }
- getModulesGroupedByTypes(modules) {
- const rawModules = modules
- ?.filter((mod) => manifest_1.SUPPORTED_MODULES.includes(mod?.extensionData.type))
- ?.filter((mod) => ![manifest_1.AllModuleTypes.CoreFunction, manifest_1.AllModuleTypes.CoreRemote].includes(mod?.extensionData.type))
- .map((entry) => ({
- key: entry?.key || 'N/A',
- type: entry?.extensionData.type,
- properties: {
- ...this.removeInternalPropertiesFromObject(entry?.extensionData)
- }
- })) || [];
- return rawModules.reduce((acc, entry) => {
- const type = (0, manifest_1.cleanKey)(entry.type);
- if (acc[type] === undefined) {
- acc[type] = [];
- }
- acc[type].push(entry);
- return acc;
- }, {});
- }
- removeInternalPropertiesFromObject(obj) {
- const { type, functions, outboundAuthContainerId, resourceUploadId, key, ...rest } = obj || {};
- return rest;
- }
- async getAppVersions(environmentKey) {
- const { id: appId } = await this.getAppConfig();
- return await this.versionDetailsClient.getVersionList(appId, environmentKey);
- }
- async getAppVersionOverviewList(environmentKey) {
- const versions = await this.getAppVersions(environmentKey);
- const majorVersions = versions
- .map((version) => this.getMajorVersion(version))
- .filter((majorVersion) => majorVersion > 0);
- const versionDetails = await Promise.all(majorVersions.map(async (version) => await this.getAppVersionDetails(environmentKey, version)));
- return versionDetails.map((entry) => ({
- version: entry.appVersion,
- deploymentDateTime: entry.deploymentDateTime,
- environmentType: entry.environmentType,
- egresses: entry.egresses.map((egress) => ({ type: egress.type, count: egress.addresses.length })),
- policies: entry.policies.map((policy) => ({ type: policy.type, count: policy.policies.length })),
- scopes: (entry.scopes.length || 0).toString(),
- connectKeys: (entry.connectKeys?.length || 0).toString(),
- functions: (entry.functions?.length || 0).toString(),
- remotes: (entry.remotes?.length || 0).toString(),
- modules: entry.modules.map((module) => ({ type: module.type, count: module.items.length })),
- requiresLicense: entry.requiresLicense
- }));
- }
-}
-exports.VersionService = VersionService;