npm package diff

Package: @forge/cli-shared

Versions: 5.5.0-next.12 - 5.3.1-next.0-experimental-204139e

Removed:package/out/service/i18n-resource-bundling-service.js

Removed:package/out/service/i18n-resource-bundling-service.d.ts.map

Removed:package/out/service/i18n-resource-bundling-service.d.ts

Modified:package/out/ari/ari.js

Index: package/out/ari/ari.js
===================================================================
--- package/out/ari/ari.js
+++ package/out/ari/ari.js
@@ -1,22 +1,17 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.parseInstallationContext = exports.UnknownBBWorkspaceWithoutResourceIdError = exports.UnknownWorkspaceWithoutCloudIdError = exports.UnknownSiteWithoutResourceIdError = exports.encodeContext = exports.buildExtensionAri = exports.buildContextAri = exports.appIdToAriString = exports.BITBUCKET_RESOURCE_OWNER = exports.TRELLO_RESOURCE_OWNER = exports.WORKSPACE_RESOURCE_TYPE = exports.SITE_RESOURCE_TYPE = void 0;
+exports.encodeContext = exports.buildExtensionAri = exports.buildContextAri = exports.appIdToAriString = void 0;
 const ari_1 = require("@forge/util/packages/ari");
 const shared_1 = require("../shared");
-const ui_1 = require("../ui");
-exports.SITE_RESOURCE_TYPE = 'site';
-exports.WORKSPACE_RESOURCE_TYPE = 'workspace';
-exports.TRELLO_RESOURCE_OWNER = 'trello';
-exports.BITBUCKET_RESOURCE_OWNER = 'bitbucket';
 function appIdToAriString(appId) {
     return `ari:cloud:ecosystem::app/${appId}`;
 }
 exports.appIdToAriString = appIdToAriString;
 function buildContextAri(cloudId, product) {
     return ari_1.AnyAri.create({
         resourceOwner: (0, shared_1.ariResourceOwner)(product),
-        resourceType: exports.SITE_RESOURCE_TYPE,
+        resourceType: 'site',
         resourceId: cloudId
     });
 }
 exports.buildContextAri = buildContextAri;
@@ -32,50 +27,4 @@
     const serialised = JSON.stringify({ ctx: context.toString(), ext: extension.toString() });
     return Buffer.from(serialised, 'utf-8').toString('base64').replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_');
 }
 exports.encodeContext = encodeContext;
-class UnknownSiteWithoutResourceIdError extends Error {
-    constructor() {
-        super(ui_1.Text.installList.noResourceId);
-    }
-}
-exports.UnknownSiteWithoutResourceIdError = UnknownSiteWithoutResourceIdError;
-class UnknownWorkspaceWithoutCloudIdError extends Error {
-    constructor() {
-        super(ui_1.Text.installList.noCloudId);
-    }
-}
-exports.UnknownWorkspaceWithoutCloudIdError = UnknownWorkspaceWithoutCloudIdError;
-class UnknownBBWorkspaceWithoutResourceIdError extends Error {
-    constructor() {
-        super(ui_1.Text.installList.bbNoResourceId);
-    }
-}
-exports.UnknownBBWorkspaceWithoutResourceIdError = UnknownBBWorkspaceWithoutResourceIdError;
-function parseInstallationContext(installationContext) {
-    const context = ari_1.AnyAri.parse(installationContext);
-    switch (context.resourceType) {
-        case exports.SITE_RESOURCE_TYPE:
-            if (!context.resourceId) {
-                throw new UnknownSiteWithoutResourceIdError();
-            }
-            context.derivedCloudId = context.resourceId;
-            break;
-        case exports.WORKSPACE_RESOURCE_TYPE:
-            if (context.resourceOwner === exports.BITBUCKET_RESOURCE_OWNER) {
-                if (!context.resourceId) {
-                    throw new UnknownBBWorkspaceWithoutResourceIdError();
-                }
-                context.derivedCloudId = context.resourceId;
-                break;
-            }
-            else if (!context.cloudId) {
-                throw new UnknownWorkspaceWithoutCloudIdError();
-            }
-            context.derivedCloudId = context.cloudId;
-            break;
-        default:
-            throw new Error('Unknown resource type');
-    }
-    return context;
-}
-exports.parseInstallationContext = parseInstallationContext;

Modified:package/out/service/bridge-script-service.js

Index: package/out/service/bridge-script-service.js
===================================================================
--- package/out/service/bridge-script-service.js
+++ package/out/service/bridge-script-service.js
@@ -7,9 +7,9 @@
 const BRIDGE_CORE_CDN_PATH = 'global-bridge.js';
 const GLOBAL_FORGE_INSTALL_ID = 'forge';
 class BridgeScriptService {
     env;
-    constructor(env = (0, gateway_1.getEnvironmentConfig)(gateway_1.CDNEnvironments)) {
+    constructor(env = (0, gateway_1.getEnvironment)(gateway_1.CDNEnvironments)) {
         this.env = env;
     }
     createBridgeCoreScriptTag() {
         return `<script src="https://${GLOBAL_FORGE_INSTALL_ID}.cdn.${this.env}.atlassian-dev.net/${BRIDGE_CORE_CDN_PATH}"></script>`;

Modified:package/out/config/config-file.js

Index: package/out/config/config-file.js
===================================================================
--- package/out/config/config-file.js
+++ package/out/config/config-file.js
@@ -29,9 +29,9 @@
     manifestParser;
     constructor(fileReader, fileWriter) {
         this.fileReader = fileReader;
         this.fileWriter = fileWriter;
-        this.manifestParser = new manifest_1.ManifestParserBuilder().withInterpolators().build();
+        this.manifestParser = new manifest_1.ManifestParser(process.env);
     }
     async getAppHandlers() {
         const config = await this.readConfig();
         const functions = config.modules?.function ?? [];

Modified:package/out/auth/personal/credential-store.js

Index: package/out/auth/personal/credential-store.js
===================================================================
--- package/out/auth/personal/credential-store.js
+++ package/out/auth/personal/credential-store.js
@@ -66,9 +66,9 @@
         this.instructionsURL = instructionsURL;
         this.keytar = keytar;
         this.cachedConfig = cachedConfig;
         this.userRepository = userRepository;
-        this.keytarAccount = (0, graphql_1.getEnvironmentConfig)(KeytarAccount);
+        this.keytarAccount = (0, graphql_1.getEnvironment)(KeytarAccount);
     }
     wrapKeytarError(e) {
         const message = (0, shared_1.wrapError)(e).message;
         let error;

Modified:package/out/service/feature-flag-service.js

Index: package/out/service/feature-flag-service.js
===================================================================
--- package/out/service/feature-flag-service.js
+++ package/out/service/feature-flag-service.js
@@ -7,8 +7,11 @@
 class FeatureFlagReader {
     async isAtlasProductSupported() {
         return (await this.readFlag('forge-cli-enable-atlas-product-support')) ?? false;
     }
+    async isCloudflareTunnelEnabled() {
+        return (await this.readFlag('forge-cli-use-cloudflare-tunnel')) ?? true;
+    }
     async shouldDisplayErrorsForHarmonizedApps() {
         return (await this.readFlag('forge-cli-enable-errors-for-connect-on-forge-apps')) ?? false;
     }
     async shouldAllowAIModules() {
@@ -43,9 +46,9 @@
     credentialStore;
     appConfigReader;
     getEnvironmentFn;
     initializeLD;
-    constructor(logger, cliDetails, credentialStore, appConfigReader, getEnvironmentFn = graphql_1.getEnvironmentConfig, initializeLD = launchdarkly_node_client_sdk_1.default.initialize) {
+    constructor(logger, cliDetails, credentialStore, appConfigReader, getEnvironmentFn = graphql_1.getEnvironment, initializeLD = launchdarkly_node_client_sdk_1.default.initialize) {
         super();
         this.logger = logger;
         this.cliDetails = cliDetails;
         this.credentialStore = credentialStore;

Modified:package/out/graphql/gateway.js

Index: package/out/graphql/gateway.js
===================================================================
--- package/out/graphql/gateway.js
+++ package/out/graphql/gateway.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.isFedrampEnv = exports.getEnvironmentConfig = exports.CDNEnvironments = exports.Environments = exports.getGraphqlGateway = exports.DEFAULT_GRAPHQL_GATEWAY = void 0;
+exports.isFedrampEnv = exports.getEnvironment = exports.CDNEnvironments = exports.getGraphqlGateway = exports.DEFAULT_GRAPHQL_GATEWAY = void 0;
 exports.DEFAULT_GRAPHQL_GATEWAY = 'https://api.atlassian.com/graphql';
 const getGraphqlGateway = () => {
     return process.env.FORGE_GRAPHQL_GATEWAY || exports.DEFAULT_GRAPHQL_GATEWAY;
 };
@@ -12,18 +12,18 @@
     Environments["STG"] = "staging";
     Environments["PROD"] = "prod";
     Environments["FEDRAMP_MODERATE_STAGING"] = "fedm_staging";
     Environments["FEDRAMP_MODERATE_PROD"] = "fedm_prod";
-})(Environments = exports.Environments || (exports.Environments = {}));
+})(Environments || (Environments = {}));
 var CDNEnvironments;
 (function (CDNEnvironments) {
     CDNEnvironments["DEV"] = "dev";
     CDNEnvironments["STG"] = "stg";
     CDNEnvironments["PROD"] = "prod";
     CDNEnvironments["FEDRAMP_MODERATE_STAGING"] = "fedm_staging";
     CDNEnvironments["FEDRAMP_MODERATE_PROD"] = "fedm_prod";
 })(CDNEnvironments = exports.CDNEnvironments || (exports.CDNEnvironments = {}));
-const getEnvironmentConfig = (envOptions = Environments) => {
+const getEnvironment = (envOptions = Environments) => {
     const graphqlGateway = (0, exports.getGraphqlGateway)();
     if (graphqlGateway.includes('.dev.')) {
         return envOptions.DEV;
     }
@@ -37,11 +37,11 @@
         return envOptions.FEDRAMP_MODERATE_PROD;
     }
     return envOptions.PROD;
 };
-exports.getEnvironmentConfig = getEnvironmentConfig;
+exports.getEnvironment = getEnvironment;
 const isFedrampEnv = () => {
-    const currentEnvironment = (0, exports.getEnvironmentConfig)();
+    const currentEnvironment = (0, exports.getEnvironment)();
     return (currentEnvironment === Environments.FEDRAMP_MODERATE_STAGING ||
         currentEnvironment === Environments.FEDRAMP_MODERATE_PROD);
 };
 exports.isFedrampEnv = isFedrampEnv;

Modified:package/out/service/iframe-resizer-script-service.js

Index: package/out/service/iframe-resizer-script-service.js
===================================================================
--- package/out/service/iframe-resizer-script-service.js
+++ package/out/service/iframe-resizer-script-service.js
@@ -7,9 +7,9 @@
 const IFRAME_RESIZER_CDN_PATH = 'iframeResizer.contentWindow.min.js';
 const GLOBAL_FORGE_INSTALL_ID = 'forge';
 class IframeResizerScriptService {
     env;
-    constructor(env = (0, gateway_1.getEnvironmentConfig)(gateway_1.CDNEnvironments)) {
+    constructor(env = (0, gateway_1.getEnvironment)(gateway_1.CDNEnvironments)) {
         this.env = env;
     }
     createIframeResizerScriptTag() {
         return `<script async src="https://${GLOBAL_FORGE_INSTALL_ID}.cdn.${this.env}.atlassian-dev.net/${IFRAME_RESIZER_CDN_PATH}"></script>`;

Modified:package/out/service/index.js

Index: package/out/service/index.js
===================================================================
--- package/out/service/index.js
+++ package/out/service/index.js
@@ -3,5 +3,4 @@
 const tslib_1 = require("tslib");
 tslib_1.__exportStar(require("./bridge-script-service"), exports);
 tslib_1.__exportStar(require("./iframe-resizer-script-service"), exports);
 tslib_1.__exportStar(require("./feature-flag-service"), exports);
-tslib_1.__exportStar(require("./i18n-resource-bundling-service"), exports);

Modified:package/out/auth/instruction.js

Index: package/out/auth/instruction.js
===================================================================
--- package/out/auth/instruction.js
+++ package/out/auth/instruction.js
@@ -9,7 +9,7 @@
     FEDRAMP_MODERATE_STAGING: 'https://id.stg.atlassian-us-gov-mod.com/manage/api-tokens',
     FEDRAMP_MODERATE_PROD: 'https://id.atlassian-us-gov-mod.com/manage/api-tokens'
 };
 function getInstructionsUrl() {
-    return (0, gateway_1.getEnvironmentConfig)(INSTRUCTION_URLS);
+    return (0, gateway_1.getEnvironment)(INSTRUCTION_URLS);
 }
 exports.getInstructionsUrl = getInstructionsUrl;

Modified:package/out/ui/text.js

Index: package/out/ui/text.js
===================================================================
--- package/out/ui/text.js
+++ package/out/ui/text.js
@@ -45,8 +45,9 @@
         default:
             return '';
     }
 };
+const ngrokLearnMore = `\nLearn more at ${buildTerminalLink('https://go.atlassian.com/forge-tunnel-ngrok')}.`;
 exports.Text = {
     error: {
         noKeytar: autoSpaceSentences(`The CLI couldn't securely store your login credentials in a local keychain.`, platformKeytarRecommendations(), `If a local keychain is not available, use environment variables before trying again. See ${buildTerminalLink(gettingStartedDACLink)} for more.`),
         noTokenStored: `Not logged in. If a local keychain is available, run ${forge('login')}, otherwise set environment variables before trying again. See ${buildTerminalLink(gettingStartedDACLink)} for more.`,
@@ -290,9 +291,9 @@
         },
         confirm: 'Do you want to continue?'
     },
     defaultEnv: {
-        info: 'You do not have a default development environment set. This is required to run commands without specifying an environment. Make sure not to use sensitive information when naming your default development environment.',
+        info: 'You do not currently have a default development environment set. A default development environment is required to run commands without specifying an environment.',
         prompt: 'Enter a name for your default development environment:',
         warn: `${chalk_1.default.bold('Warning:')} A development environment with this name already exists. If you continue, you may be using the same environment as another contributor.`,
         confirm: 'Do you want to continue?',
         setSuccess: (envKey, envType) => `${exports.Text.env.displayEnvironment(envKey, envType)} has been set as your default development environment`,
@@ -497,9 +498,9 @@
         bannerSite: `\nInstalling your app onto an Atlassian site.\n${ctrlC}\n`,
         bannerWorkspace: `\nInstalling your app onto the selected workspace.\n${ctrlC}\n`,
         optionConfirmScopes: 'skip confirmation of scopes for the app before installing or upgrading the app',
         optionUpgrade: 'upgrade an existing installation',
-        optionLicense: 'specify the license value for the app (allowed values: active, inactive, and trial)',
+        optionLicense: 'specify the license value for the app. Allowed values: active, inactive, and trial',
         listScopes: (scopes) => `Your app will be installed with the following scopes:\n${scopes
             .map(({ name, requiresInteractiveConsent }) => `- ${name}${requiresInteractiveConsent ? ' (requires user consent)' : ''}`)
             .join('\n')}\n`,
         listEgressAddresses: (egressAddresses) => `Your app will exchange data with the following urls:\n${egressAddresses.map((url) => `- ${url}`).join('\n')}\n`,
@@ -598,10 +599,8 @@
     installList: {
         cmd: 'list app installations',
         banner: `\nShowing all the current installations of your app:`,
         noResourceId: 'Unknown site with no resource ID',
-        noCloudId: 'Unknown workspace with no cloud ID',
-        bbNoResourceId: 'Unknown bitbucket workspace with no resource ID',
         noInstallations: `The app is not installed anywhere.\nRun ${forge('install')} to install your app on an Atlassian site.\n`
     },
     tunnel: {
         cmd: 'start a tunnel to connect your local code with the app running in the development environment',
@@ -610,9 +609,9 @@
         functionHandlers: 'list of function handlers declared on manifest to debug, separated by space. This option must be specified if debug mode is enabled.  It is only used for Node runtime debugger',
         preamble: 'Tunnel redirects requests you make to your local machine. This occurs for any Atlassian site where your app is installed in the specific development environment. You will not see requests from other users.',
         startingTunnel: (environmentKey, envType) => `Tunnelling to: ${exports.Text.env.displayEnvironment(environmentKey, envType)}`,
         startedServer: (port, isDebug) => `Listening for requests${isDebug ? ' on local port ' + port : ''}...`,
-        tunnelType: 'Tunnel provider: Cloudflare',
+        tunnelType: (isCloudflareTunnel) => `Tunnel provider: ${isCloudflareTunnel ? 'Cloudflare' : 'Ngrok'}`,
         startedTunnel: (tunnelUrl) => `Started tunnel at address: ${tunnelUrl}`,
         stoppingTunnel: 'Stopping tunnel...',
         stoppedTunnel: 'Tunnel stopped.',
         tunnelStatusChange: (status) => `Tunnel connection status changed: ${status}`,
@@ -645,8 +644,12 @@
         functionsBundlingSucceeded: `${greenTick} Functions bundled.`,
         error: {
             create: (message) => `Couldn't create tunnel, message: ${message}`,
             delete: (message) => `Couldn't delete tunnel, message: ${message}`,
+            ngrok: (message) => 'Failed to start tunnel, could not establish a connection.' +
+                (message ? ` Ngrok error: ${message}` : '') +
+                ngrokLearnMore,
+            noNgrokConfig: `Usage of tunnel requires an ngrok account. Set a path to ngrok config file using ${forge('settings', 'set', 'ngrok-config-path', '<value>')}.` + ngrokLearnMore,
             handler: {
                 notFound: (handler) => `Function with handler "${handler}" was not found`
             },
             manifestChangeDetected: `Changes to ${manifest_1.MANIFEST_FILE} have been detected. You will need to deploy your forge app to apply these changes.`,
@@ -770,8 +773,15 @@
         },
         defaultEnvironment: {
             description: 'Change your default development environment',
             info: `To view all environments for this app, run ${forge('environments', 'list')}.`
+        },
+        ngrokConfig: {
+            description: 'Path to the ngrok configuration file with authtoken',
+            errors: {
+                inaccessible: (path, code) => `The file ${path} cannot be accessed: ${code}.`,
+                notAFile: (path) => `The path ${path} is not a file.`
+            }
         }
     },
     nonInteractive: {
         description: 'run the command without input prompts',

Modified:package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/cli-shared",
-  "version": "5.5.0-next.12",
+  "version": "5.3.1-next.0-experimental-204139e",
   "description": "Common functionality for Forge CLI",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "main": "out/index.js",
@@ -11,11 +11,10 @@
     "compile": "tsc -b -v",
     "generate-graphql-types": "graphql-codegen --config src/graphql/codegen.yml"
   },
   "dependencies": {
-    "@forge/manifest": "7.7.0-next.12",
+    "@forge/manifest": "7.5.2-next.0-experimental-204139e",
     "@forge/util": "1.4.4",
-    "@forge/i18n": "0.0.1-next.11",
     "@sentry/node": "7.100.1",
     "adm-zip": "^0.5.10",
     "array.prototype.flatmap": "^1.3.2",
     "case": "^1.6.3",

Modified:package/out/ari/ari.d.ts.map

Index: package/out/ari/ari.d.ts.map
===================================================================
--- package/out/ari/ari.d.ts.map
+++ package/out/ari/ari.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"ari.d.ts","sourceRoot":"","sources":["../../src/ari/ari.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIvD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AACzC,eAAO,MAAM,uBAAuB,cAAc,CAAC;AACnD,eAAO,MAAM,qBAAqB,WAAW,CAAC;AAC9C,eAAO,MAAM,wBAAwB,cAAc,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAMrE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CAMhG;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,MAAM,CAKlE;AACD,qBAAa,iCAAkC,SAAQ,KAAK;;CAI3D;AACD,qBAAa,mCAAoC,SAAQ,KAAK;;CAI7D;AAED,qBAAa,wCAAyC,SAAQ,KAAK;;CAIlE;AASD,MAAM,WAAW,WAAY,SAAQ,MAAM;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AACD,wBAAgB,wBAAwB,CAAC,mBAAmB,EAAE,MAAM,GAAG,WAAW,CAyBjF"}
\ No newline at end of file
+{"version":3,"file":"ari.d.ts","sourceRoot":"","sources":["../../src/ari/ari.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAU,MAAM,0BAA0B,CAAC;AAGvD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,GAAG,CAMrE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CAMhG;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,MAAM,CAKlE"}
\ No newline at end of file

Modified:package/out/service/bridge-script-service.d.ts.map

Index: package/out/service/bridge-script-service.d.ts.map
===================================================================
--- package/out/service/bridge-script-service.d.ts.map
+++ package/out/service/bridge-script-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"bridge-script-service.d.ts","sourceRoot":"","sources":["../../src/service/bridge-script-service.ts"],"names":[],"mappings":";AAMA,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,SAAwC;IAExE,OAAO,CAAC,yBAAyB;IAI1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM;CAYtE"}
\ No newline at end of file
+{"version":3,"file":"bridge-script-service.d.ts","sourceRoot":"","sources":["../../src/service/bridge-script-service.ts"],"names":[],"mappings":";AAMA,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,SAAkC;IAElE,OAAO,CAAC,yBAAyB;IAI1B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM;CAYtE"}
\ No newline at end of file

Modified:package/out/config/config-file.d.ts.map

Index: package/out/config/config-file.d.ts.map
===================================================================
--- package/out/config/config-file.d.ts.map
+++ package/out/config/config-file.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../src/config/config-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAoB,MAAM,IAAI,CAAC;AAGlE,OAAO,EAEL,cAAc,EACd,SAAS,EAKV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAQ,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE1D,qBAAa,oBAAqB,SAAQ,eAAe;;CAIxD;AAED,qBAAa,8BAA+B,SAAQ,SAAS;gBAC/C,SAAS,EAAE,MAAM,EAAE;CAGhC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,oBAAY,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,oBAAY,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/D,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBAAa,UAAW,YAAW,YAAY,EAAE,YAAY,EAAE,gBAAgB;IAG3E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;gBAE7B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,gBAAgB;IAKlC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAiBzC,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAS3C,kBAAkB,IAAI,MAAM;IAKtB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAMhD,OAAO,CAAC,kBAAkB;IAoBb,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE,OAAO,CAAC,aAAa;IAIR,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1G,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,gBAAgB;IAIX,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IAoClF,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe1E,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBxE,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKzD,OAAO,CAAC,eAAe;CA0BxB"}
\ No newline at end of file
+{"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../src/config/config-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAoB,MAAM,IAAI,CAAC;AAGlE,OAAO,EAAW,cAAc,EAAE,SAAS,EAAkC,MAAM,iBAAiB,CAAC;AAGrG,OAAO,EAAE,SAAS,EAAE,eAAe,EAAQ,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE1D,qBAAa,oBAAqB,SAAQ,eAAe;;CAIxD;AAED,qBAAa,8BAA+B,SAAQ,SAAS;gBAC/C,SAAS,EAAE,MAAM,EAAE;CAGhC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1C,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,oBAAY,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACpC,oBAAY,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/D,MAAM,WAAW,eAAgB,SAAQ,QAAQ;IAC/C,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBAAa,UAAW,YAAW,YAAY,EAAE,YAAY,EAAE,gBAAgB;IAG3E,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH7B,OAAO,CAAC,cAAc,CAAiB;gBAEpB,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,gBAAgB;IAKlC,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAiBzC,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAS3C,kBAAkB,IAAI,MAAM;IAKtB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;IAMhD,OAAO,CAAC,kBAAkB;IAoBb,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE,OAAO,CAAC,aAAa;IAIR,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1G,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,wBAAwB;IAShC,OAAO,CAAC,6BAA6B;IAYrC,OAAO,CAAC,gBAAgB;IAIX,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IAoClF,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAe1E,YAAY,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBxE,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKzD,OAAO,CAAC,eAAe;CA0BxB"}
\ No newline at end of file

Modified:package/out/service/feature-flag-service.d.ts.map

Index: package/out/service/feature-flag-service.d.ts.map
===================================================================
--- package/out/service/feature-flag-service.d.ts.map
+++ package/out/service/feature-flag-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"feature-flag-service.d.ts","sourceRoot":"","sources":["../../src/service/feature-flag-service.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAgB,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAyB/B,aAAK,eAAe,GAAG;IACrB,qBAAqB,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACpE,2BAA2B,EAAE,MAAM,CAAC;IACpC,wCAAwC,EAAE,OAAO,CAAC;IAElD,mDAAmD,EAAE,OAAO,CAAC;IAC7D,iCAAiC,EAAE,OAAO,CAAC;IAC3C,6BAA6B,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF,oBAAY,WAAW,GAAG,MAAM,eAAe,CAAC;AAKhD,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAE/E,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3C,oCAAoC,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxD,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;CAG/C;AAqBD,aAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAAC;AAMpE,aAAK,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,aAAa,CAAC;AAEzG,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAa3F;AAKD,qBAAa,kBAAmB,SAAQ,iBAAiB;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBALZ,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,SAAS,EACnD,eAAe,EAAE,gBAAgB,EACjC,eAAe,EAAE,mBAAmB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,EACpD,gBAAgB,GAAE,OAAO,oBAA2C,EACpE,YAAY,GAAE,sBAAgD;IASjF,OAAO,CAAC,KAAK,CAOV;IAMH,OAAO,CAAC,OAAO,CAyBZ;IAEH,OAAO,CAAC,MAAM,CAQX;IAEG,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAcnF;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC9C,OAAO,CAAC,YAAY;gBAAZ,YAAY,GAAE,OAAO,CAAC;SAAG,GAAG,IAAI,WAAW,GAAG,GAAG;KAAE,CAAC,GAAG,SAAqB;IAI1F,QAAQ,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CAG7F"}
\ No newline at end of file
+{"version":3,"file":"feature-flag-service.d.ts","sourceRoot":"","sources":["../../src/service/feature-flag-service.ts"],"names":[],"mappings":"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"}
\ No newline at end of file

Modified:package/out/graphql/gateway.d.ts.map

Index: package/out/graphql/gateway.d.ts.map
===================================================================
--- package/out/graphql/gateway.d.ts.map
+++ package/out/graphql/gateway.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/graphql/gateway.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E,eAAO,MAAM,iBAAiB,QAAO,MAEpC,CAAC;AAEF,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,GAAG,YAAY;IACf,IAAI,SAAS;IACb,wBAAwB,iBAAiB;IACzC,qBAAqB,cAAc;CACpC;AAED,oBAAY,kBAAkB,GAAG,MAAM,CAAC,MAAM,OAAO,YAAY,EAAE,MAAM,CAAC,CAAC;AAE3E,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,wBAAwB,iBAAiB;IACzC,qBAAqB,cAAc;CACpC;AAED,eAAO,MAAM,oBAAoB,gBAAgB,kBAAkB,KAAkB,MAgBpF,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,OAM/B,CAAC"}
\ No newline at end of file
+{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/graphql/gateway.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,sCAAsC,CAAC;AAE3E,eAAO,MAAM,iBAAiB,QAAO,MAEpC,CAAC;AAEF,aAAK,YAAY;IACf,GAAG,QAAQ;IACX,GAAG,YAAY;IACf,IAAI,SAAS;IACb,wBAAwB,iBAAiB;IACzC,qBAAqB,cAAc;CACpC;AAED,oBAAY,kBAAkB,GAAG,MAAM,CAAC,MAAM,OAAO,YAAY,EAAE,MAAM,CAAC,CAAC;AAE3E,oBAAY,eAAe;IACzB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,wBAAwB,iBAAiB;IACzC,qBAAqB,cAAc;CACpC;AAED,eAAO,MAAM,cAAc,gBAAgB,kBAAkB,KAAkB,MAgB9E,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,OAM/B,CAAC"}
\ No newline at end of file

Modified:package/out/graphql/graphql-types.d.ts.map

too-big

Modified:package/out/service/iframe-resizer-script-service.d.ts.map

Index: package/out/service/iframe-resizer-script-service.d.ts.map
===================================================================
--- package/out/service/iframe-resizer-script-service.d.ts.map
+++ package/out/service/iframe-resizer-script-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"iframe-resizer-script-service.d.ts","sourceRoot":"","sources":["../../src/service/iframe-resizer-script-service.ts"],"names":[],"mappings":";AAMA,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,SAAwC;IAExE,OAAO,CAAC,4BAA4B;IAI7B,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM;CAYzE"}
\ No newline at end of file
+{"version":3,"file":"iframe-resizer-script-service.d.ts","sourceRoot":"","sources":["../../src/service/iframe-resizer-script-service.ts"],"names":[],"mappings":";AAMA,qBAAa,0BAA0B;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,SAAkC;IAElE,OAAO,CAAC,4BAA4B;IAI7B,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM;CAYzE"}
\ No newline at end of file

Modified:package/out/service/index.d.ts.map

Index: package/out/service/index.d.ts.map
===================================================================
--- package/out/service/index.d.ts.map
+++ package/out/service/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,kCAAkC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAEA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC"}
\ No newline at end of file

Modified:package/out/ui/text.d.ts.map

Index: package/out/ui/text.d.ts.map
===================================================================
--- package/out/ui/text.d.ts.map
+++ package/out/ui/text.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/ui/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AA2BD,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAAsD,CAAC;AAsDjG,eAAO,MAAM,IAAI;;;;;6BAiBM,MAAM;2BACR,MAAM;6BAGJ,MAAM;+BAEJ,MAAM;;wCAIK,MAAM,UAAU,MAAM;qDAOT,MAAM,sBAAsB,MAAM;;;;;6CAa1C,MAAM,YAAY,MAAM,YAAY,MAAM;;;kDAQrC,MAAM,EAAE;gDAKV,MAAM,aAAa,MAAM;8CAG3B,MAAM,aAAa,MAAM;uCAGhC,MAAM;iCAEZ,MAAM;;;;;;;;yCAUE,MAAM;;;mDAYI,MAAM,yBAAyB,MAAM;;;;;;;;;;;;;;;uCAsB/C,MAAM,EAAE;;;0BAIrB,MAAM,KAAG,MAAM;;;;;uBAQpB,MAAM,SAAS,MAAM,aAAa,MAAM;2BAEpC,MAAM,cAAc,MAAM;;;;;2BAe1B,MAAM,gBAAgB,MAAM;;;;8BAMzB,MAAM;;4DAEwB,MAAM,aAAa,MAAM;;kDAGnC,MAAM;;;;;yBAO/B,MAAM,EAAE;;;6BAGJ,MAAM,EAAE;;;;;;;kCAUL,MAAM,mBAAmB,MAAM;;;;;;;;;;;;0BAkBvC,MAAM,GAAG,SAAS,KAAG,MAAM;;;;;;;;;;;oBAgB/B,MAAM;;;;wBASF,MAAM;;;;;;;;;;yCAaS,MAAM;yCACN,MAAM,QAAQ,MAAM,aAAa,MAAM;;;+CAIjC,MAAM,eAAe,MAAM;;;;;;;;;;;;;;;;;;;;+BAgC3C,MAAM;wCACG,MAAM,2BAA2B,MAAM,EAAE;;gCAQ/C,MAAM;sDACgB,MAAM;;;;;;;;;;;;oCAgB1B,MAAM;;;;;;;;;;;;+BAcb,MAAM;;;+BAIN,MAAM;;;qCAIA,MAAM;qCACN,MAAM;;;;;;;;;;;;;;+BAiBV,MAAM;sDACiB,MAAM,EAAE;;;;;;;kCAa1B,MAAM;;;;kCAKR,MAAM;;qCAKD,MAAM,WAAW,kBAAkB;;uCAWnC,MAAM;;;;;;;;;6BAed,MAAM,WAAW,kBAAkB;sCAE1B,MAAM,WAAW,kBAAkB;;;;;;;;;gCAczC,MAAM,mBAAmB,kBAAkB;;;;;;;;;;;;;iCAkB5C,MAAM,WAAW,kBAAkB;2BAEzC,MAAM;;;;;;6BAOF,MAAM,WAAW,kBAAkB;;gCAMhC,MAAM,WAAW,kBAAkB;;;;;;;;;;;;gCAenC,MAAM;;;;;;;;;;;;;;8BAgBV,MAAM,WAAW,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;2CA0BpB,MAAM,WAAW,kBAAkB;;;;;uCAQvC,MAAM;;;;;;;;;;;;;;;;;;;;;;;gDAgCC,MAAM;qCAGjB,MAAM;;4CAIC,MAAM;;;;;6BAOrB,MAAM;0BACT,MAAM;6BACH,MAAM,gBAAgB,MAAM;;;;;;6BAO5B,MAAM,WAAW,kBAAkB;8BAElC,MAAM,UAAU,MAAM,WAAW,kBAAkB;;sCAG3C,MAAM,UAAU,MAAM,WAAW,kBAAkB;wCAEjD,MAAM;;;;uCAYP,MAAM,KAAG,MAAM;;;;;;;oCAclB,MAAM;;;;;;;;uDAYa,MAAM,cAAc,MAAM,KAAG,MAAM;mDAIvC,MAAM,gBAAgB,MAAM,cAAc,MAAM,KAAG,MAAM;mDAKzD,MAAM,KAAG,MAAM;;;;;oCAS9B,MAAM,YAAY,MAAM,GAAG,IAAI;0CAEzB,MAAM;;;;;0CAMN,MAAM;;;;sCAKV,MAAM;;;;;;;mCAYP,MAAM;;;;;;6BAgBd,MAAM;;;;;;4BASP,MAAM,WAAW,kBAAkB;+BAEhC,OAAO;;mCAED,OAAO,KAAG,MAAM;;;;;;6BAMtB,UAAU,EAAE;+CAOM,MAAM,EAAE;2CAEZ,MAAM;wDAKpB,MAAM,EAAE,qBACR,MAAM,EAAE,QACrB,MAAM,eACC,MAAM;6EAYgD,OAAO,KAAG,MAAM;;6BAKlE,MAAM,WAAW,kBAAkB,WAAW,MAAM,QAAQ,MAAM;;;wCAOvD,GAAG;oCAIP,GAAG;uBAIhB,MAAM;wBACL,MAAM;;mDAKqB,MAAM;6CACZ,MAAM;uDAMI,MAAM,SAAS,MAAM;;;2BAOjD,MAAM;;;6BAYN,MAAM;;;;;;;yBAaR,MAAM;;;;;;;;;;;;;;;;;4BAsBH,MAAM,WAAW,kBAAkB;+BAEhC,OAAO;;;6BAGP,UAAU,EAAE;+CAOM,MAAM,EAAE;2CAEZ,MAAM;6EAI4B,OAAO,KAAG,MAAM;;6BAKlE,MAAM,WAAW,kBAAkB,WAAW,MAAM,QAAQ,MAAM;;;;;kCAS7D,MAAM,WAAW,MAAM,QAAQ,MAAM;;;mDAMpB,MAAM;;;;;;;;;;;;;;;yCAuBd,MAAM,WAAW,kBAAkB;8BAE9C,MAAM,WAAW,OAAO;yCAEb,OAAO;mCAEb,MAAM;;;qCAGJ,MAAM;;;0CAKD,MAAM;;+CAQD,MAAM;4BAGzB,MAAM,WAAW,MAAM;qCACd,MAAM;;mCAGV,MAAM,eAAe,MAAM;oCAC1B,MAAM,eAAe,MAAM,cAAc,MAAM;;yCAM5C,MAAM,aAAa,MAAM;;;+CAKf,MAAM;;+BAGtB,MAAM,KAAG,MAAM;;;;;;;8BAQlB,MAAM;8BACN,MAAM;8BACN,MAAM;;;oCAaF,MAAM;;;;;qDAOa,MAAM;0CAGjB,MAAM,aAAa,OAAO;;iDAInB,MAAM;;;;;;;uCAShB,MAAM;;;;;;;+BAQd,OAAO;;;;;;;;wBAQZ,MAAM,UAAU,MAAM,eAAe,MAAM,WAAW,OAAO;0BAI3D,MAAM,UAAU,MAAM,eAAe,MAAM;;;;;oBAYjD,MAAM;;;;;;;;;;qCAaS,MAAM;;;;;;;;;oCAWL,MAAM;;;;;;;;;;oCAYN,MAAM,WAAW,MAAM;kCAMzB,MAAM,sBAAsB,MAAM,KAAG,MAAM;;sBAUvD,MAAM,UAAU,MAAM,WAAW,MAAM,aAAa,MAAM,KAAG,MAAM;6BAE5D,MAAM,eAAe,MAAM,oBAAoB,MAAM,sBAAsB,MAAM,KAAG,MAAM;gCAevF,MAAM,oBAAoB,MAAM,sBAAsB,MAAM,KAAG,MAAM;wBAe7E,MAAM,UAAU,MAAM,WAAW,MAAM,aAAa,MAAM,KAAG,MAAM;;;yBAKlE,MAAM,WAAW,MAAM;;;;qCAMb,MAAM;qCACN,MAAM,gBAAgB,OAAO;;;yCAMzB,MAAM;qCACV,MAAM;;;;;;;;;;;;;;;;+BAwBZ,MAAM,SAAS,MAAM;;;;;;;;;;;;;;;qCAejB,MAAM,QAAQ,MAAM;iCACxB,MAAM;;;;;;;6CAQQ,MAAM,mBAAmB,MAAM,EAAE;;;;CAUvE,CAAC"}
\ No newline at end of file

Modified:package/CHANGELOG.md

too-big

Modified:package/out/ari/ari.d.ts

Index: package/out/ari/ari.d.ts
===================================================================
--- package/out/ari/ari.d.ts
+++ package/out/ari/ari.d.ts
@@ -1,23 +1,6 @@
-import { Ari, AnyAri } from '@forge/util/packages/ari';
-export declare const SITE_RESOURCE_TYPE = "site";
-export declare const WORKSPACE_RESOURCE_TYPE = "workspace";
-export declare const TRELLO_RESOURCE_OWNER = "trello";
-export declare const BITBUCKET_RESOURCE_OWNER = "bitbucket";
+import { Ari } from '@forge/util/packages/ari';
 export declare function appIdToAriString(appId: string): string;
 export declare function buildContextAri(cloudId: string, product: string): Ari;
 export declare function buildExtensionAri(appId: string, environmentId: string, functionKey: string): Ari;
 export declare function encodeContext(context: Ari, extension: Ari): string;
-export declare class UnknownSiteWithoutResourceIdError extends Error {
-    constructor();
-}
-export declare class UnknownWorkspaceWithoutCloudIdError extends Error {
-    constructor();
-}
-export declare class UnknownBBWorkspaceWithoutResourceIdError extends Error {
-    constructor();
-}
-export interface EnrichedAri extends AnyAri {
-    derivedCloudId: string;
-}
-export declare function parseInstallationContext(installationContext: string): EnrichedAri;
 //# sourceMappingURL=ari.d.ts.map
\ No newline at end of file

Modified:package/out/config/config-file.d.ts

Index: package/out/config/config-file.d.ts
===================================================================
--- package/out/config/config-file.d.ts
+++ package/out/config/config-file.d.ts
@@ -24,9 +24,9 @@
 }
 export declare class ConfigFile implements ConfigReader, ConfigWriter, ConfigInteractor {
     private readonly fileReader;
     private readonly fileWriter;
-    private readonly manifestParser;
+    private manifestParser;
     constructor(fileReader: FileSystemReader, fileWriter: FileSystemWriter);
     getAppHandlers(): Promise<Array<Handler>>;
     readConfig(): Promise<ManifestSchema>;
     readConfigAsString(): string;

Modified:package/out/service/feature-flag-service.d.ts

Index: package/out/service/feature-flag-service.d.ts
===================================================================
--- package/out/service/feature-flag-service.d.ts
+++ package/out/service/feature-flag-service.d.ts
@@ -1,8 +1,8 @@
 import { LDClient, LDContext, LDOptions } from 'launchdarkly-node-client-sdk';
 import { CredentialGetter } from '../auth';
 import { ConfigSectionReader } from '../config';
-import { getEnvironmentConfig } from '../graphql';
+import { getEnvironment } from '../graphql';
 import { CLIDetails } from '../shared';
 import { Logger } from '../ui';
 declare type FeatureFlagType = {
     'forge-cli-test-flag': 'apple' | 'banana' | 'orange' | 'watermelon';
@@ -15,8 +15,9 @@
 export declare type FeatureFlag = keyof FeatureFlagType;
 export declare abstract class FeatureFlagReader {
     abstract readFlag<F extends FeatureFlag>(flag: F): Promise<FeatureFlagType[F] | null>;
     isAtlasProductSupported(): Promise<boolean>;
+    isCloudflareTunnelEnabled(): Promise<boolean>;
     shouldDisplayErrorsForHarmonizedApps(): Promise<boolean>;
     shouldAllowAIModules(): Promise<boolean>;
 }
 declare type ILaunchDarkly = Pick<LDClient, 'variation' | 'waitUntilReady'>;
@@ -30,9 +31,9 @@
     private readonly getEnvironmentFn;
     private readonly initializeLD;
     constructor(logger: Logger, cliDetails: Pick<CLIDetails, 'version'> | undefined, credentialStore: CredentialGetter, appConfigReader: ConfigSectionReader<{
         id: string;
-    }>, getEnvironmentFn?: typeof getEnvironmentConfig, initializeLD?: LaunchDarklyInitialize);
+    }>, getEnvironmentFn?: typeof getEnvironment, initializeLD?: LaunchDarklyInitialize);
     private appID;
     private context;
     private client;
     readFlag<F extends FeatureFlag>(flag: F): Promise<FeatureFlagType[F] | null>;

Modified:package/out/graphql/gateway.d.ts

Index: package/out/graphql/gateway.d.ts
===================================================================
--- package/out/graphql/gateway.d.ts
+++ package/out/graphql/gateway.d.ts
@@ -1,7 +1,7 @@
 export declare const DEFAULT_GRAPHQL_GATEWAY = "https://api.atlassian.com/graphql";
 export declare const getGraphqlGateway: () => string;
-export declare enum Environments {
+declare enum Environments {
     DEV = "dev",
     STG = "staging",
     PROD = "prod",
     FEDRAMP_MODERATE_STAGING = "fedm_staging",
@@ -14,7 +14,8 @@
     PROD = "prod",
     FEDRAMP_MODERATE_STAGING = "fedm_staging",
     FEDRAMP_MODERATE_PROD = "fedm_prod"
 }
-export declare const getEnvironmentConfig: (envOptions?: EnvironmentOptions) => string;
+export declare const getEnvironment: (envOptions?: EnvironmentOptions) => string;
 export declare const isFedrampEnv: () => boolean;
+export {};
 //# sourceMappingURL=gateway.d.ts.map
\ No newline at end of file

Modified:package/out/graphql/graphql-types.d.ts

too-big

Modified:package/out/service/index.d.ts

Index: package/out/service/index.d.ts
===================================================================
--- package/out/service/index.d.ts
+++ package/out/service/index.d.ts
@@ -1,5 +1,4 @@
 export * from './bridge-script-service';
 export * from './iframe-resizer-script-service';
 export * from './feature-flag-service';
-export * from './i18n-resource-bundling-service';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file

Modified:package/out/ui/text.d.ts

Index: package/out/ui/text.d.ts
===================================================================
--- package/out/ui/text.d.ts
+++ package/out/ui/text.d.ts
@@ -489,10 +489,8 @@
     installList: {
         cmd: string;
         banner: string;
         noResourceId: string;
-        noCloudId: string;
-        bbNoResourceId: string;
         noInstallations: string;
     };
     tunnel: {
         cmd: string;
@@ -501,9 +499,9 @@
         functionHandlers: string;
         preamble: string;
         startingTunnel: (environmentKey: string, envType: AppEnvironmentType) => string;
         startedServer: (port: number, isDebug: boolean) => string;
-        tunnelType: string;
+        tunnelType: (isCloudflareTunnel: boolean) => string;
         startedTunnel: (tunnelUrl: string) => string;
         stoppingTunnel: string;
         stoppedTunnel: string;
         tunnelStatusChange: (status: string) => string;
@@ -531,8 +529,10 @@
         functionsBundlingSucceeded: string;
         error: {
             create: (message: string) => string;
             delete: (message: string) => string;
+            ngrok: (message?: string) => string;
+            noNgrokConfig: string;
             handler: {
                 notFound: (handler: string) => string;
             };
             manifestChangeDetected: string;
@@ -643,8 +643,15 @@
         defaultEnvironment: {
             description: string;
             info: string;
         };
+        ngrokConfig: {
+            description: string;
+            errors: {
+                inaccessible: (path: string, code: string) => string;
+                notAFile: (path: string) => string;
+            };
+        };
     };
     nonInteractive: {
         description: string;
         error: {