npm package diff

Package: @forge/cli

Versions: 10.5.1-next.6-experimental-22c15de - 10.6.0-next.13

Modified:package/out/command-line/dependency-injection.js

Index: package/out/command-line/dependency-injection.js
===================================================================
--- package/out/command-line/dependency-injection.js
+++ package/out/command-line/dependency-injection.js
@@ -165,10 +165,11 @@
     const deployView = new deploy_view_1.DeployView(ui);
     const bridgeScriptService = new cli_shared_1.BridgeScriptService();
     const iframeResizerScriptService = new cli_shared_1.IframeResizerScriptService();
     const resourcePackagingService = new resource_packaging_service_1.ResourcePackagingService(archiverFactory, fileReader, process.cwd(), bridgeScriptService, iframeResizerScriptService);
-    const sandboxPackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(sandboxAppPackager, archiveUploader, deployer, resourcePackagingService);
-    const nodePackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(nodeAppPackager, archiveUploader, deployer, resourcePackagingService);
+    const i18nResourceBundlingService = new cli_shared_1.I18nResourceBundlingService();
+    const sandboxPackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(sandboxAppPackager, archiveUploader, deployer, resourcePackagingService, i18nResourceBundlingService);
+    const nodePackageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(nodeAppPackager, archiveUploader, deployer, resourcePackagingService, i18nResourceBundlingService);
     const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, customEntitiesService, appEnvironmentClient, deployView, sandboxPackageUploadDeployCommand, nodePackageUploadDeployCommand, createEnvironmentCommand);
     const createSandbox = async (cfg) => new tunnel_2.NodeSandbox(cfg);
     const functionHost = new tunnel_1.LocalFunctionHost(configFile, ui, null, createSandbox);
     const localInvocationService = new tunnel_1.LocalInvocationService(configFile, ui, runtime_1.notImplementedInspector);

Modified:package/out/command-line/controller/deploy-controller.js

Index: package/out/command-line/controller/deploy-controller.js
===================================================================
--- package/out/command-line/controller/deploy-controller.js
+++ package/out/command-line/controller/deploy-controller.js
@@ -193,10 +193,19 @@
         }
         const deployCommand = (await this.configFile.runtimeType()) === cli_shared_1.RuntimeType.nodejs
             ? this.nodePackageUploadDeployCommand
             : this.sandboxPackageUploadDeployCommand;
-        const packageConfig = (await this.configFile.readConfig()).app?.package;
-        const analytics = await this.deployView.reportDeploymentProgress(appDetails, hasProdInstallations, () => deployCommand.execute({ handlers, resources, environmentKey: environment, packageConfig, majorVersion }));
+        const config = await this.configFile.readConfig();
+        const packageConfig = config.app?.package;
+        const analytics = await this.deployView.reportDeploymentProgress(appDetails, hasProdInstallations, () => deployCommand.execute({
+            handlers,
+            resources,
+            environmentKey: environment,
+            packageConfig,
+            majorVersion,
+            modules: config.modules,
+            i18nConfig: config.translations
+        }));
         if (verify) {
             await this.verifyPostDeployment(environment);
         }
         try {

Modified:package/out/deploy/deployer/deployer.js

Index: package/out/deploy/deployer/deployer.js
===================================================================
--- package/out/deploy/deployer/deployer.js
+++ package/out/deploy/deployer/deployer.js
@@ -174,9 +174,10 @@
                 case 'HOSTED_RESOURCE_TOO_MANY_FILES':
                 case 'HOSTED_RESOURCE_ZIP_TOO_BIG':
                 case 'HOSTED_RESOURCE_FILE_PATH_REFERS_TO_PARENT':
                 case 'HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS':
-                case 'HOSTED_RESOURCE_ICON_RESOURCE_MISSING': {
+                case 'HOSTED_RESOURCE_ICON_RESOURCE_MISSING':
+                case 'HOSTED_RESOURCE_INVALID_I18N_RESOURCE': {
                     throw new HostedResourceDeploymentFailedError(true, requestId, cli_shared_1.Text.hostedResources.error(message));
                 }
                 case 'HOSTED_RESOURCE_FAILED_TO_FETCH':
                 case 'HOSTED_RESOURCE_FAILED_TO_COPY':

Modified:package/out/deploy/packager/nativeui-bundler.js

Index: package/out/deploy/packager/nativeui-bundler.js
===================================================================
--- package/out/deploy/packager/nativeui-bundler.js
+++ package/out/deploy/packager/nativeui-bundler.js
@@ -8,18 +8,18 @@
     constructor(logger, bundler) {
         this.logger = logger;
         this.bundler = bundler;
     }
-    async bundle(resources) {
+    async bundle(resources, i18nConfig) {
         const entryPoints = resources.map(({ key, path }) => ({
             name: key,
             path
         }));
         const nativeUiBundlesDetails = [];
         if (entryPoints.length > 0) {
             let bundlerOutputs;
             try {
-                bundlerOutputs = await Promise.all(entryPoints.map((entrypoint) => this.bundler(this.logger, [entrypoint])));
+                bundlerOutputs = await Promise.all(entryPoints.map((entrypoint) => this.bundler(this.logger, [entrypoint], i18nConfig)));
             }
             catch (e) {
                 throw new packager_1.BundlerError(e.message);
             }

Modified:package/out/deploy/package-upload-deploy.js

Index: package/out/deploy/package-upload-deploy.js
===================================================================
--- package/out/deploy/package-upload-deploy.js
+++ package/out/deploy/package-upload-deploy.js
@@ -6,21 +6,21 @@
     packager;
     archiveUploader;
     deployer;
     resourcePackagingService;
-    constructor(packager, archiveUploader, deployer, resourcePackagingService) {
+    i18nResourceBundlingService;
+    constructor(packager, archiveUploader, deployer, resourcePackagingService, i18nResourceBundlingService) {
         this.packager = packager;
         this.archiveUploader = archiveUploader;
         this.deployer = deployer;
         this.resourcePackagingService = resourcePackagingService;
+        this.i18nResourceBundlingService = i18nResourceBundlingService;
     }
     async execute(details) {
         const [resourcesToBeBundled, preBundledResources] = (0, lodash_1.partition)(details.resources, (res) => res.resourceType === 'nativeUI');
-        const { runtimeArchivePath, nativeUiBundlesDetails, moduleList } = await this.packager.package(details.handlers, resourcesToBeBundled, details.packageConfig);
-        const resourcesArchives = await this.resourcePackagingService.zipResources([
-            ...preBundledResources,
-            ...nativeUiBundlesDetails
-        ]);
+        const i18nResourceBundle = await this.i18nResourceBundlingService.bundle(details.modules, details.i18nConfig);
+        const { runtimeArchivePath, nativeUiBundlesDetails, moduleList } = await this.packager.package(details.handlers, resourcesToBeBundled, details.packageConfig, i18nResourceBundle, details.i18nConfig);
+        const resourcesArchives = await this.resourcePackagingService.zipResources([...preBundledResources, ...nativeUiBundlesDetails], i18nResourceBundle);
         const [uploadUrl, hostedResourceUploadId] = await Promise.all([
             this.archiveUploader.uploadArchive(runtimeArchivePath),
             this.archiveUploader.uploadHostedResources(details.environmentKey, resourcesArchives)
         ]);

Modified:package/out/deploy/packager/packager.js

Index: package/out/deploy/packager/packager.js
===================================================================
--- package/out/deploy/packager/packager.js
+++ package/out/deploy/packager/packager.js
@@ -13,12 +13,12 @@
         this.runtimeBundler = runtimeBundler;
         this.nativeUiBundler = nativeUiBundler;
         this.logger = logger;
     }
-    async package(handlers, resources, packageConfig) {
+    async package(handlers, resources, packageConfig, i18nResourceBundle, i18nConfig) {
         this.logger.info(cli_shared_1.Text.deploy.taskPackage.title);
-        const runtimeBundle = await this.runtimeBundler.bundle(handlers, packageConfig);
-        const nativeUiBundle = await this.nativeUiBundler.bundle(resources);
+        const runtimeBundle = await this.runtimeBundler.bundle(handlers, i18nResourceBundle, packageConfig);
+        const nativeUiBundle = await this.nativeUiBundler.bundle(resources, i18nConfig);
         return {
             ...runtimeBundle,
             ...nativeUiBundle
         };

Modified:package/out/service/resource-packaging-service.js

Index: package/out/service/resource-packaging-service.js
===================================================================
--- package/out/service/resource-packaging-service.js
+++ package/out/service/resource-packaging-service.js
@@ -1,8 +1,9 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.ResourcePackagingService = exports.DetailedMalformedHtmlEntrypointError = exports.DetailedMissingHtmlEntrypointError = exports.MissingHtmlEntrypointError = exports.MalformedHtmlEntrypointError = exports.ResourceDirectoryEmptyError = exports.ResourceDirectoryMissingError = void 0;
 const cli_shared_1 = require("@forge/cli-shared");
+const i18n_1 = require("@forge/i18n");
 const path_1 = require("path");
 const hidefile_1 = require("hidefile");
 const CUSTOM_UI_ENTRYPOINT = 'index.html';
 class ResourceDirectoryMissingError extends cli_shared_1.UserError {
@@ -103,16 +104,22 @@
             }
         }));
         return archiver.finalise();
     }
-    async zipResources(resources, modules) {
+    packageI18nResources(archiver, i18nResourceBundle) {
+        (0, cli_shared_1.listFilesInI18nResourceBundle)(i18nResourceBundle).forEach(([fileName, filePath]) => {
+            archiver.addFileFrom((0, path_1.join)(i18n_1.I18N_BUNDLE_FOLDER_NAME, fileName), filePath);
+        });
+    }
+    async zipResources(resources, i18nResourceBundle, modules) {
         const transformedResources = this.transformRelativeResourcePathsToAbsolute(this.appDir, resources);
         const resourcesInformation = await this.getResourcesInformation(transformedResources);
         const archives = {};
         await Promise.all(resourcesInformation.map(async ({ key, filePaths, directory, resourceType }) => {
             try {
                 this.validateResourceContents({ key, directory, filePaths, resourceType });
                 const archiver = this.archiverFactory();
+                this.packageI18nResources(archiver, i18nResourceBundle);
                 const archivePath = await this.createResourceArchive(archiver, filePaths, directory);
                 archives[key] = {
                     zipPath: archivePath,
                     rawSize: this.fileSystemReader.bytesToMb(await this.fileSystemReader.getFolderSizeAsync(directory)),

Modified:package/out/deploy/packager/runtime-bundler.js

Index: package/out/deploy/packager/runtime-bundler.js
===================================================================
--- package/out/deploy/packager/runtime-bundler.js
+++ package/out/deploy/packager/runtime-bundler.js
@@ -3,10 +3,12 @@
 exports.NodeRuntimeBundler = exports.SandboxRuntimeBundler = exports.RuntimeBundler = void 0;
 const fs_1 = require("fs");
 const bundler_1 = require("@forge/bundler");
 const cli_shared_1 = require("@forge/cli-shared");
+const i18n_1 = require("@forge/i18n");
 const packager_1 = require("./packager");
 const node_1 = require("@forge/bundler/out/config/node");
+const path_1 = require("path");
 class RuntimeBundler {
     archiverFactory;
     logger;
     bundler;
@@ -63,23 +65,29 @@
         const moduleList = await this.packageCode(archiver, entryPoints);
         await this.packageDependencies(archiver);
         return moduleList;
     }
-    async bundle(handlers, packageConfig) {
+    packageI18nResources(archiver, i18nResourceBundle) {
+        (0, cli_shared_1.listFilesInI18nResourceBundle)(i18nResourceBundle).forEach(([fileName, filePath]) => {
+            archiver.addFileFrom((0, path_1.join)(i18n_1.I18N_BUNDLE_FOLDER_NAME, fileName), filePath);
+        });
+    }
+    async bundle(handlers, i18nResourceBundle, packageConfig) {
         const archiver = this.archiverFactory();
         const moduleList = await this.packageAll(archiver, handlers, packageConfig);
+        this.packageI18nResources(archiver, i18nResourceBundle);
         const archivePath = await archiver.finalise();
         this.logger.debug(cli_shared_1.Text.deploy.taskPackage.archiveCreated(archivePath));
         return { runtimeArchivePath: archivePath, moduleList };
     }
 }
 exports.RuntimeBundler = RuntimeBundler;
 class SandboxRuntimeBundler extends RuntimeBundler {
-    async bundle(handlers, packageConfig) {
+    async bundle(handlers, i18nResourceBundle, packageConfig) {
         if (packageConfig) {
             throw new packager_1.BundlerError(cli_shared_1.Text.deploy.taskPackage.packageOptionsNotSupported);
         }
-        return await super.bundle(handlers, packageConfig);
+        return await super.bundle(handlers, i18nResourceBundle, packageConfig);
     }
 }
 exports.SandboxRuntimeBundler = SandboxRuntimeBundler;
 class NodeRuntimeBundler extends RuntimeBundler {

Modified:package/npm-shrinkwrap.json

too-big

Modified:package/package.json

Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/cli",
-  "version": "10.5.1-next.6-experimental-22c15de",
+  "version": "10.6.0-next.13",
   "description": "A command line interface for managing Atlassian-hosted apps",
   "author": "Atlassian",
   "license": "UNLICENSED",
   "bin": {
@@ -17,17 +17,18 @@
     "postbuild": "chmod +x out/bin/*.js && ts-node scripts/configureAutocomplete.ts",
     "postinstall": "node -e \"fs.existsSync('./out/bin/postinstall.js') && require('./out/bin/postinstall.js')\""
   },
   "dependencies": {
-    "@forge/bundler": "4.18.1-next.6-experimental-22c15de",
-    "@forge/cli-shared": "5.5.0-next.6-experimental-22c15de",
+    "@forge/bundler": "4.19.0-next.12",
+    "@forge/cli-shared": "5.5.0-next.12",
     "@forge/egress": "1.2.13",
-    "@forge/lint": "5.3.3-next.6-experimental-22c15de",
-    "@forge/manifest": "7.7.0-next.6-experimental-22c15de",
+    "@forge/lint": "5.3.3-next.12",
+    "@forge/manifest": "7.7.0-next.12",
     "@forge/runtime": "5.10.1",
-    "@forge/tunnel": "5.4.1-next.6-experimental-22c15de",
+    "@forge/tunnel": "5.5.0-next.12",
     "@forge/util": "1.4.4",
     "@sentry/node": "7.100.1",
+    "@forge/i18n": "0.0.1-next.11",
     "ajv": "^8.12.0",
     "archiver": "^6.0.2",
     "case": "^1.6.3",
     "chalk": "^4.1.2",

Modified:package/out/command-line/dependency-injection.d.ts.map

Index: package/out/command-line/dependency-injection.d.ts.map
===================================================================
--- package/out/command-line/dependency-injection.d.ts.map
+++ package/out/command-line/dependency-injection.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAGlB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAGnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgWvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAIA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAGlB,gBAAgB,EAQhB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EAElB,kBAAkB,EAInB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAML,0BAA0B,EAG3B,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAExG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAIlG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAM7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAUlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAE3F,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmWvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
\ No newline at end of file

Modified:package/out/command-line/controller/deploy-controller.d.ts.map

Index: package/out/command-line/controller/deploy-controller.d.ts.map
===================================================================
--- package/out/command-line/controller/deploy-controller.d.ts.map
+++ package/out/command-line/controller/deploy-controller.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAEpB,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAVxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YA2BnB,oBAAoB;YAgBpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EACf,WAAW,EACX,MAAM,EACN,cAAc,EACd,YAAY,EACb,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAwEpD"}
\ No newline at end of file
+{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAEpB,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAVxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YA2BnB,oBAAoB;YAgBpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EACf,WAAW,EACX,MAAM,EACN,cAAc,EACd,YAAY,EACb,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAkFpD"}
\ No newline at end of file

Modified:package/out/deploy/deployer/deployer.d.ts.map

Index: package/out/deploy/deployer/deployer.d.ts.map
===================================================================
--- package/out/deploy/deployer/deployer.d.ts.map
+++ package/out/deploy/deployer/deployer.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EACF,SAAS,EAET,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IAE9D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAG7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAyBD,qBAAa,gBAAiB,YAAW,QAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAJF,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE;IAGZ,MAAM,CACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;YAMF,QAAQ;IAgBT,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;;YA2BpG,iBAAiB;IAa/B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,gBAAgB;CAqDzB"}
\ No newline at end of file
+{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EACF,SAAS,EAET,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IAE9D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAG7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAyBD,qBAAa,gBAAiB,YAAW,QAAQ;IAE7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAJF,gBAAgB,EAAE,iBAAiB,EACnC,YAAY,EAAE,mBAAmB,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,EAAE;IAGZ,MAAM,CACjB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;YAMF,QAAQ;IAgBT,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;;;;YA2BpG,iBAAiB;IAa/B,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,0BAA0B;IA6BlC,OAAO,CAAC,gBAAgB;CAsDzB"}
\ No newline at end of file

Modified:package/out/deploy/packager/nativeui-bundler.d.ts.map

Index: package/out/deploy/packager/nativeui-bundler.d.ts.map
===================================================================
--- package/out/deploy/packager/nativeui-bundler.d.ts.map
+++ package/out/deploy/packager/nativeui-bundler.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"nativeui-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/nativeui-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,sBAAsB,EAAE,eAAe,EAAE,CAAC;CAC3C;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa;IAG5B,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8BjF"}
\ No newline at end of file
+{"version":3,"file":"nativeui-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/nativeui-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,MAAM,WAAW,oBAAoB;IACnC,sBAAsB,EAAE,eAAe,EAAE,CAAC;CAC3C;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa;IAG5B,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAgC5G"}
\ No newline at end of file

Modified:package/out/deploy/package-upload-deploy.d.ts.map

Index: package/out/deploy/package-upload-deploy.d.ts.map
===================================================================
--- package/out/deploy/package-upload-deploy.d.ts.map
+++ package/out/deploy/package-upload-deploy.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAHxB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,EAAE,wBAAwB;IAGxD,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwClE"}
\ No newline at end of file
+{"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IACzC,OAAO,CAAC,QAAQ,CAAC,2BAA2B;gBAJ3B,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,EAAE,wBAAwB,EAClD,2BAA2B,EAAE,2BAA2B;IAG9D,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA4ClE"}
\ No newline at end of file

Modified:package/out/deploy/packager/packager.d.ts.map

Index: package/out/deploy/packager/packager.d.ts.map
===================================================================
--- package/out/deploy/packager/packager.d.ts.map
+++ package/out/deploy/packager/packager.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,eAAe,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACnH;AAED,qBAAa,YAAa,SAAQ,SAAS;CAAG;AAE9C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAGpB,OAAO,CAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;CAW1B"}
\ No newline at end of file
+{"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC/G,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sBAAsB,EAAE,eAAe,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CACL,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,EAC7B,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,aAAa,CAAC,CAAC;CAC3B;AAED,qBAAa,YAAa,SAAQ,SAAS;CAAG;AAE9C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAGpB,OAAO,CAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,EAC7B,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC,aAAa,CAAC;CAW1B"}
\ No newline at end of file

Modified:package/out/service/resource-packaging-service.d.ts.map

Index: package/out/service/resource-packaging-service.d.ts.map
===================================================================
--- package/out/service/resource-packaging-service.d.ts.map
+++ package/out/service/resource-packaging-service.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"resource-packaging-service.d.ts","sourceRoot":"","sources":["../../src/service/resource-packaging-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,eAAe,EAGf,mBAAmB,EACnB,0BAA0B,EAC1B,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAED,qBAAa,2BAA4B,SAAQ,SAAS;gBAC5C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAeD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,4BAA6B,SAAQ,SAAS;;CAI1D;AAED,qBAAa,0BAA2B,SAAQ,SAAS;;CAIxD;AAED,qBAAa,kCAAmC,SAAQ,SAAS;gBACnD,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGnD;AAED,qBAAa,oCAAqC,SAAQ,SAAS;gBACrD,WAAW,EAAE,MAAM;CAGhC;AAED,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAJ1B,eAAe,EAAE,MAAM,QAAQ,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,EACxC,0BAA0B,EAAE,0BAA0B;YAG3D,uBAAuB;IAerC,OAAO,CAAC,wCAAwC;IAQhD,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iCAAiC;YAM3B,qBAAqB;IAatB,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAiCtG"}
\ No newline at end of file
+{"version":3,"file":"resource-packaging-service.d.ts","sourceRoot":"","sources":["../../src/service/resource-packaging-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,eAAe,EAGf,mBAAmB,EACnB,0BAA0B,EAC1B,SAAS,EAET,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAED,qBAAa,2BAA4B,SAAQ,SAAS;gBAC5C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAeD,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,4BAA6B,SAAQ,SAAS;;CAI1D;AAED,qBAAa,0BAA2B,SAAQ,SAAS;;CAIxD;AAED,qBAAa,kCAAmC,SAAQ,SAAS;gBACnD,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGnD;AAED,qBAAa,oCAAqC,SAAQ,SAAS;gBACrD,WAAW,EAAE,MAAM;CAGhC;AAED,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAJ1B,eAAe,EAAE,MAAM,QAAQ,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,mBAAmB,EACxC,0BAA0B,EAAE,0BAA0B;YAG3D,uBAAuB;IAerC,OAAO,CAAC,wCAAwC;IAQhD,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,iCAAiC;YAM3B,qBAAqB;IAanC,OAAO,CAAC,oBAAoB;IAMf,YAAY,CACvB,SAAS,EAAE,eAAe,EAAE,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC;CAmC7B"}
\ No newline at end of file

Modified:package/out/deploy/packager/runtime-bundler.d.ts.map

Index: package/out/deploy/packager/runtime-bundler.d.ts.map
===================================================================
--- package/out/deploy/packager/runtime-bundler.d.ts.map
+++ package/out/deploy/packager/runtime-bundler.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAiB,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAEL,OAAO,EACP,MAAM,EAIN,UAAU,EACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACrC,UAAU,EAAE,UAAU;cAGzB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAsCtF,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAgBtD,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUP,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAUvG;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IAC1C,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAMvG;AAED,qBAAa,kBAAmB,SAAQ,cAAc;cACpC,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CASrB"}
\ No newline at end of file
+{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAiB,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAEL,OAAO,EACP,MAAM,EAIN,UAAU,EAEV,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAHV,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACrC,UAAU,EAAE,UAAU;cAGzB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAsCtF,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAgBtD,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUpB,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,GAAG,IAAI;IAMnF,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAWhC;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IAC1C,MAAM,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAC7B,OAAO,CAAC,mBAAmB,CAAC;CAMhC;AAED,qBAAa,kBAAmB,SAAQ,cAAc;cACpC,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CASrB"}
\ No newline at end of file

Modified:package/CHANGELOG.md

too-big

Modified:package/out/deploy/packager/nativeui-bundler.d.ts

Index: package/out/deploy/packager/nativeui-bundler.d.ts
===================================================================
--- package/out/deploy/packager/nativeui-bundler.d.ts
+++ package/out/deploy/packager/nativeui-bundler.d.ts
@@ -1,12 +1,13 @@
 import { InDiskBundler } from '@forge/bundler';
 import { Logger, ResourceDetails } from '@forge/cli-shared';
+import { Translations } from '@forge/manifest';
 export interface NativeUIBundleResult {
     nativeUiBundlesDetails: ResourceDetails[];
 }
 export declare class NativeUIBundler {
     private readonly logger;
     private readonly bundler;
     constructor(logger: Logger, bundler: InDiskBundler);
-    bundle(resources: ResourceDetails[]): Promise<NativeUIBundleResult>;
+    bundle(resources: ResourceDetails[], i18nConfig?: Translations): Promise<NativeUIBundleResult>;
 }
 //# sourceMappingURL=nativeui-bundler.d.ts.map
\ No newline at end of file

Modified:package/out/deploy/package-upload-deploy.d.ts

Index: package/out/deploy/package-upload-deploy.d.ts
===================================================================
--- package/out/deploy/package-upload-deploy.d.ts
+++ package/out/deploy/package-upload-deploy.d.ts
@@ -1,6 +1,6 @@
-import { Handler, ResourceDetails } from '@forge/cli-shared';
-import { App } from '@forge/manifest';
+import { Handler, I18nResourceBundlingService, ResourceDetails } from '@forge/cli-shared';
+import { App, Modules, Translations } from '@forge/manifest';
 import { Deployer } from './deployer/deployer';
 import { Packager } from './packager/packager';
 import { ArchiveUploader } from './uploader/uploader';
 import { DeploymentResult } from '../command-line/register-deployment-commands';
@@ -9,15 +9,18 @@
     handlers: Array<Handler>;
     environmentKey: string;
     resources: ResourceDetails[];
     packageConfig: App['package'];
+    modules?: Modules;
     majorVersion?: number;
+    i18nConfig?: Translations;
 }
 export declare class PackageUploadDeployCommand {
     private readonly packager;
     private readonly archiveUploader;
     private readonly deployer;
     private readonly resourcePackagingService;
-    constructor(packager: Packager, archiveUploader: ArchiveUploader, deployer: Deployer, resourcePackagingService: ResourcePackagingService);
+    private readonly i18nResourceBundlingService;
+    constructor(packager: Packager, archiveUploader: ArchiveUploader, deployer: Deployer, resourcePackagingService: ResourcePackagingService, i18nResourceBundlingService: I18nResourceBundlingService);
     execute(details: Details): Promise<DeploymentResult>;
 }
 //# sourceMappingURL=package-upload-deploy.d.ts.map
\ No newline at end of file

Modified:package/out/deploy/packager/packager.d.ts

Index: package/out/deploy/packager/packager.d.ts
===================================================================
--- package/out/deploy/packager/packager.d.ts
+++ package/out/deploy/packager/packager.d.ts
@@ -1,22 +1,22 @@
-import { Handler, Logger, ResourceDetails, UserError } from '@forge/cli-shared';
-import { App } from '@forge/manifest';
+import { Handler, type I18nResourceBundle, Logger, ResourceDetails, UserError } from '@forge/cli-shared';
+import { App, Translations } from '@forge/manifest';
 import { NativeUIBundler } from './nativeui-bundler';
 import { RuntimeBundler } from './runtime-bundler';
 export interface PackageResult {
     runtimeArchivePath: string;
     nativeUiBundlesDetails: ResourceDetails[];
     moduleList?: string[];
 }
 export interface Packager {
-    package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package']): Promise<PackageResult>;
+    package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package'], i18nResourceBundle: I18nResourceBundle, i18nConfig?: Translations): Promise<PackageResult>;
 }
 export declare class BundlerError extends UserError {
 }
 export declare class AppPackager implements Packager {
     private readonly runtimeBundler;
     private readonly nativeUiBundler;
     private readonly logger;
     constructor(runtimeBundler: RuntimeBundler, nativeUiBundler: NativeUIBundler, logger: Logger);
-    package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package']): Promise<PackageResult>;
+    package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package'], i18nResourceBundle: I18nResourceBundle, i18nConfig?: Translations): Promise<PackageResult>;
 }
 //# sourceMappingURL=packager.d.ts.map
\ No newline at end of file

Modified:package/out/service/resource-packaging-service.d.ts

Index: package/out/service/resource-packaging-service.d.ts
===================================================================
--- package/out/service/resource-packaging-service.d.ts
+++ package/out/service/resource-packaging-service.d.ts
@@ -1,6 +1,6 @@
 import { Modules } from '@forge/manifest';
-import { FileSystemReader, ResourceDetails, BridgeScriptService, IframeResizerScriptService, UserError } from '@forge/cli-shared';
+import { FileSystemReader, ResourceDetails, BridgeScriptService, IframeResizerScriptService, UserError, type I18nResourceBundle } from '@forge/cli-shared';
 import { Archiver } from '../deploy';
 export declare class ResourceDirectoryMissingError extends UserError {
     constructor(key: string, dir: string);
 }
@@ -40,7 +40,8 @@
     private processFile;
     private validateResourceContents;
     private assertDirectoryIncludesEntrypoint;
     private createResourceArchive;
-    zipResources(resources: ResourceDetails[], modules?: Modules): Promise<ResourceArchives>;
+    private packageI18nResources;
+    zipResources(resources: ResourceDetails[], i18nResourceBundle: I18nResourceBundle, modules?: Modules): Promise<ResourceArchives>;
 }
 //# sourceMappingURL=resource-packaging-service.d.ts.map
\ No newline at end of file

Modified:package/out/deploy/packager/runtime-bundler.d.ts

Index: package/out/deploy/packager/runtime-bundler.d.ts
===================================================================
--- package/out/deploy/packager/runtime-bundler.d.ts
+++ package/out/deploy/packager/runtime-bundler.d.ts
@@ -1,6 +1,6 @@
 import { Bundler, FunctionsEntryPoint } from '@forge/bundler';
-import { Handler, Logger, ConfigFile } from '@forge/cli-shared';
+import { Handler, Logger, ConfigFile, type I18nResourceBundle } from '@forge/cli-shared';
 import { App } from '@forge/manifest';
 import { Archiver } from './archiver';
 export interface RuntimeBundleResult {
     runtimeArchivePath: string;
@@ -14,12 +14,13 @@
     constructor(archiverFactory: () => Archiver, logger: Logger, bundler: Bundler<FunctionsEntryPoint>, configFile: ConfigFile);
     protected packageCode(archiver: Archiver, entryPoints: FunctionsEntryPoint[]): Promise<string[]>;
     protected packageDependencies(archiver: Archiver): Promise<void>;
     protected packageAll(archiver: Archiver, handlers: Handler[], packageConfig: App['package']): Promise<string[]>;
-    bundle(handlers: Handler[], packageConfig?: App['package']): Promise<RuntimeBundleResult>;
+    protected packageI18nResources(archiver: Archiver, i18nResourceBundle: I18nResourceBundle): void;
+    bundle(handlers: Handler[], i18nResourceBundle: I18nResourceBundle, packageConfig?: App['package']): Promise<RuntimeBundleResult>;
 }
 export declare class SandboxRuntimeBundler extends RuntimeBundler {
-    bundle(handlers: Handler[], packageConfig?: App['package']): Promise<RuntimeBundleResult>;
+    bundle(handlers: Handler[], i18nResourceBundle: I18nResourceBundle, packageConfig?: App['package']): Promise<RuntimeBundleResult>;
 }
 export declare class NodeRuntimeBundler extends RuntimeBundler {
     protected packageAll(archiver: Archiver, handlers: Handler[], packageConfig: App['package']): Promise<string[]>;
 }