@forge/cli 5.0.0-next.1 → 5.1.0-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,6 @@ import { LintService } from '../../service/lint-service';
3
3
  import { DeployView } from '../view/deploy-view';
4
4
  import { InstallationService } from '../../service/installation-service';
5
5
  import { MigrationKeysService } from '../../service/migration-keys-service';
6
- import { ResourcePackagingService } from '../../service/resource-packaging-service';
7
6
  import { ErrorWithAnalytics } from '../command';
8
7
  import { PackageUploadDeployCommand } from '../../deploy';
9
8
  import { DeploymentResult } from '../register-deployment-commands';
@@ -29,8 +28,7 @@ export declare class DeployController {
29
28
  private readonly migrationKeysService;
30
29
  private readonly deployView;
31
30
  private readonly packageUploadDeployCommand;
32
- private readonly resourcePackagingService;
33
- constructor(appConfigProvider: AppConfigProvider, configFile: ConfigFile, lintService: LintService, installationsService: InstallationService, migrationKeysService: MigrationKeysService, deployView: DeployView, packageUploadDeployCommand: PackageUploadDeployCommand, resourcePackagingService: ResourcePackagingService);
31
+ constructor(appConfigProvider: AppConfigProvider, configFile: ConfigFile, lintService: LintService, installationsService: InstallationService, migrationKeysService: MigrationKeysService, deployView: DeployView, packageUploadDeployCommand: PackageUploadDeployCommand);
34
32
  private isMpacProductionApp;
35
33
  private connectKeyDeleted;
36
34
  private connectKeyChanged;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAQ,MAAM,mBAAmB,CAAC;AACrF,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,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,sBAAuB,SAAQ,WAAY,YAAW,kBAAkB;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAKjD;AAED,qBAAa,sBAAuB,SAAQ,WAAY,YAAW,kBAAkB;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK/C;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,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAPxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,0BAA0B,EAAE,0BAA0B,EACtD,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YAiBnB,oBAAoB;IAOrB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAsD3F"}
1
+ {"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAQ,MAAM,mBAAmB,CAAC;AACrF,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,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,sBAAuB,SAAQ,WAAY,YAAW,kBAAkB;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAKjD;AAED,qBAAa,sBAAuB,SAAQ,WAAY,YAAW,kBAAkB;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAK/C;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,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAN1B,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,0BAA0B,EAAE,0BAA0B;IAGzE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YAiBnB,oBAAoB;IAOrB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAqD3F"}
@@ -27,7 +27,7 @@ class InvalidConnectKeyError extends cli_shared_1.HiddenError {
27
27
  }
28
28
  exports.InvalidConnectKeyError = InvalidConnectKeyError;
29
29
  class DeployController {
30
- constructor(appConfigProvider, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand, resourcePackagingService) {
30
+ constructor(appConfigProvider, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand) {
31
31
  this.appConfigProvider = appConfigProvider;
32
32
  this.configFile = configFile;
33
33
  this.lintService = lintService;
@@ -35,7 +35,6 @@ class DeployController {
35
35
  this.migrationKeysService = migrationKeysService;
36
36
  this.deployView = deployView;
37
37
  this.packageUploadDeployCommand = packageUploadDeployCommand;
38
- this.resourcePackagingService = resourcePackagingService;
39
38
  }
40
39
  isMpacProductionApp(mpacAppKey, environment) {
41
40
  return !!(mpacAppKey && environment === 'production');
@@ -106,7 +105,6 @@ class DeployController {
106
105
  const { id } = await this.appConfigProvider();
107
106
  const handlers = await this.configFile.getAppHandlers();
108
107
  const resources = await this.configFile.getResources();
109
- const archives = await this.resourcePackagingService.zipResources(resources);
110
108
  let hasProdInstallations = false;
111
109
  try {
112
110
  const prodInstallations = await this.installationsService.listAppInstallations({
@@ -119,7 +117,7 @@ class DeployController {
119
117
  throw err;
120
118
  }
121
119
  }
122
- const analytics = await this.deployView.reportDeploymentProgress(id, environment, hasProdInstallations, () => this.packageUploadDeployCommand.execute({ handlers, environmentKey: environment, archives }));
120
+ const analytics = await this.deployView.reportDeploymentProgress(id, environment, hasProdInstallations, () => this.packageUploadDeployCommand.execute({ handlers, resources, environmentKey: environment }));
123
121
  if (verify) {
124
122
  await this.verifyPostDeployment(environment);
125
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,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;AAM3E,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;AAIzE,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;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2PvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"dependency-injection.d.ts","sourceRoot":"","sources":["../../src/command-line/dependency-injection.ts"],"names":[],"mappings":"AAEA,OAAO,EASL,UAAU,EACV,aAAa,EAEb,UAAU,EAGV,gBAAgB,EAGhB,kBAAkB,EAUlB,YAAY,EACZ,aAAa,EAOb,kBAAkB,EAIlB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,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;AAM3E,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;AAIzE,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;AAWlE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAIhF,eAAO,MAAM,eAAe,eAAsB,UAAU,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiQvE,CAAC;AAGF,aAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC3D,oBAAY,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC"}
@@ -53,6 +53,8 @@ const tunnel_view_1 = require("./view/tunnel-view");
53
53
  const graphql_client_5 = require("../webtrigger/graphql-client");
54
54
  const stubController_1 = require("./controller/stubController");
55
55
  const prerequisites_controller_1 = require("./controller/prerequisites-controller");
56
+ const runtime_bundler_1 = require("../deploy/packager/runtime-bundler");
57
+ const nativeui_bundler_1 = require("../deploy/packager/nativeui-bundler");
56
58
  exports.getDependencies = async (cliDetails) => {
57
59
  let cmd;
58
60
  const ui = new cli_shared_1.CommandLineUI(() => cmd.verbose);
@@ -123,8 +125,9 @@ exports.getDependencies = async (cliDetails) => {
123
125
  const archiveUploader = new deploy_1.AppArchiveUploader(assertiveAppConfigReader, uploaderArtifactClient, fileUploader, ui, new resources_uploader_service_1.ResourcesUploaderService(fileReader));
124
126
  const deployer = new deploy_1.ArtifactDeployer(assertiveAppConfigReader, triggerDeployClient, deployMonitorClient, cli_shared_1.pause, ui);
125
127
  const bundle = (await featureFlagService.readFlag('xls-lambda-runtime')) === 'nodejs14.x' ? bundler_1.nodeBundle : bundler_1.sandboxBundle;
126
- const appPackager = new deploy_1.AppPackager(archiverFactory, ui, bundle);
127
- const packageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(appPackager, archiveUploader, deployer);
128
+ const runtimeBundler = new runtime_bundler_1.RuntimeBundler(archiverFactory, ui, bundle);
129
+ const nativeUiBundler = new nativeui_bundler_1.NativeUIBundler(ui, bundler_1.nativeUiBundle);
130
+ const appPackager = new deploy_1.AppPackager(runtimeBundler, nativeUiBundler, ui);
128
131
  const getWebTriggerURLCommand = new get_webtrigger_url_1.GetWebTriggerURLCommand(assertiveAppConfigReader, installationsClient, appEnvironmentClient, webTriggerGraphqlClient);
129
132
  const autocompleteController = new autocomplete_controller_1.AutocompleteController(ui);
130
133
  const installationsService = new installation_service_1.InstallationService(assertiveAppConfigReader, installationsClient, installationsClient);
@@ -138,7 +141,8 @@ exports.getDependencies = async (cliDetails) => {
138
141
  const bridgeScriptService = new cli_shared_1.BridgeScriptService();
139
142
  const iframeResizerScriptService = new cli_shared_1.IframeResizerScriptService();
140
143
  const resourcePackagingService = new resource_packaging_service_1.ResourcePackagingService(archiverFactory, fileReader, process.cwd(), bridgeScriptService, iframeResizerScriptService);
141
- const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand, resourcePackagingService);
144
+ const packageUploadDeployCommand = new deploy_1.PackageUploadDeployCommand(appPackager, archiveUploader, deployer, resourcePackagingService);
145
+ const deployController = new deploy_controller_1.DeployController(assertiveAppConfigReader, configFile, lintService, installationsService, migrationKeysService, deployView, packageUploadDeployCommand);
142
146
  const tunnelView = new tunnel_view_1.TunnelView(ui);
143
147
  const configFilePortFindingService = new port_finding_service_1.ConfigFilePortFindingService(configFile);
144
148
  const localTunnelService = new tunnel_service_1.LocalTunnelService(configFilePortFindingService);
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InstallView = exports.NoScopesError = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
- const csp_1 = require("@forge/csp");
5
+ const egress_1 = require("@forge/egress");
6
6
  const lodash_1 = require("lodash");
7
7
  class NoScopesError extends Error {
8
8
  }
@@ -20,7 +20,7 @@ class InstallView {
20
20
  if (egressAddresses.length)
21
21
  this.ui.info(text.listEgressAddresses(egressAddresses));
22
22
  const cleanedManifestScopes = [...new Set(['read:me', ...manifestScopes])];
23
- const groupedManifestEgressAddresses = csp_1.sortAndGroupEgressPermissionsByDomain(manifestEgressAddresses);
23
+ const groupedManifestEgressAddresses = egress_1.sortAndGroupEgressPermissionsByDomain(manifestEgressAddresses);
24
24
  let permissionsMismatchWithManifest = false;
25
25
  if (cli_shared_1.environmentToOption(environment) === cli_shared_1.DEFAULT_ENVIRONMENT_OPTION) {
26
26
  const scopesMismatch = !lodash_1.isEqual([...cleanedManifestScopes].sort(), [...scopes].sort());
@@ -1,18 +1,20 @@
1
1
  import { Deployer } from './deployer/deployer';
2
2
  import { Packager } from './packager/packager';
3
3
  import { ArchiveUploader } from './uploader/uploader';
4
- import { ResourceArchives } from '../service/resource-packaging-service';
5
4
  import { DeploymentResult } from '../command-line/register-deployment-commands';
5
+ import { ResourceDetails } from '@forge/cli-shared';
6
+ import { ResourcePackagingService } from '../service/resource-packaging-service';
6
7
  export interface Details {
7
8
  handlers: Array<string>;
8
9
  environmentKey: string;
9
- archives: ResourceArchives;
10
+ resources: ResourceDetails[];
10
11
  }
11
12
  export declare class PackageUploadDeployCommand {
12
13
  private readonly packager;
13
14
  private readonly archiveUploader;
14
15
  private readonly deployer;
15
- constructor(packager: Packager, archiveUploader: ArchiveUploader, deployer: Deployer);
16
+ private readonly resourcePackagingService;
17
+ constructor(packager: Packager, archiveUploader: ArchiveUploader, deployer: Deployer, resourcePackagingService: ResourcePackagingService);
16
18
  execute(details: Details): Promise<DeploymentResult>;
17
19
  }
18
20
  //# sourceMappingURL=package-upload-deploy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"AAAA,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,uCAAuC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAEhF,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAFR,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ;IAGxB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuBlE"}
1
+ {"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"AACA,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,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;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;CAuClE"}
@@ -1,21 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PackageUploadDeployCommand = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  class PackageUploadDeployCommand {
5
- constructor(packager, archiveUploader, deployer) {
6
+ constructor(packager, archiveUploader, deployer, resourcePackagingService) {
6
7
  this.packager = packager;
7
8
  this.archiveUploader = archiveUploader;
8
9
  this.deployer = deployer;
10
+ this.resourcePackagingService = resourcePackagingService;
9
11
  }
10
12
  async execute(details) {
11
- const { archivePath, moduleList } = await this.packager.package(details.handlers);
12
- const uploadUrl = await this.archiveUploader.uploadArchive(archivePath);
13
- const hostedResourceUploadId = await this.archiveUploader.uploadHostedResources(details.environmentKey, details.archives);
13
+ const [resourcesToBeBundled, preBundledResources] = lodash_1.partition(details.resources, (res) => res.resourceType === 'nativeUI');
14
+ const { runtimeArchivePath, nativeUiBundlesDetails, moduleList } = await this.packager.package(details.handlers, resourcesToBeBundled);
15
+ const resourcesArchives = await this.resourcePackagingService.zipResources([
16
+ ...preBundledResources,
17
+ ...nativeUiBundlesDetails
18
+ ]);
19
+ const [uploadUrl, hostedResourceUploadId] = await Promise.all([
20
+ this.archiveUploader.uploadArchive(runtimeArchivePath),
21
+ this.archiveUploader.uploadHostedResources(details.environmentKey, resourcesArchives)
22
+ ]);
14
23
  await this.deployer.deploy(details.environmentKey, uploadUrl, hostedResourceUploadId);
15
24
  return {
16
25
  analytics: {
17
26
  moduleList,
18
- hostedResourceList: Object.values(details.archives).map((a) => ({
27
+ hostedResourceList: Object.values(resourcesArchives).map((a) => ({
19
28
  extensionList: a.extensions,
20
29
  fileCount: a.fileCount,
21
30
  rawSize: a.rawSize,
@@ -0,0 +1,12 @@
1
+ import { InDiskBundler } from '@forge/bundler';
2
+ import { Logger, ResourceDetails } from '@forge/cli-shared';
3
+ export interface NativeUIBundleResult {
4
+ nativeUiBundlesDetails: ResourceDetails[];
5
+ }
6
+ export declare class NativeUIBundler {
7
+ private readonly logger;
8
+ private readonly bundler;
9
+ constructor(logger: Logger, bundler: InDiskBundler);
10
+ bundle(resources: ResourceDetails[]): Promise<NativeUIBundleResult>;
11
+ }
12
+ //# sourceMappingURL=nativeui-bundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeui-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/nativeui-bundler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,sBAAsB,EAAE,eAAe,EAAE,CAAC;CAC3C;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAU,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAxC,MAAM,EAAE,MAAM,EAAmB,OAAO,EAAE,aAAa;IAEvE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8BjF"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeUIBundler = void 0;
4
+ const packager_1 = require("./packager");
5
+ class NativeUIBundler {
6
+ constructor(logger, bundler) {
7
+ this.logger = logger;
8
+ this.bundler = bundler;
9
+ }
10
+ async bundle(resources) {
11
+ const entryPoints = resources.map(({ key, path }) => ({
12
+ name: key,
13
+ path
14
+ }));
15
+ const nativeUiBundlesDetails = [];
16
+ if (entryPoints.length > 0) {
17
+ let bundlerOutputs;
18
+ try {
19
+ bundlerOutputs = await Promise.all(entryPoints.map((entrypoint) => this.bundler(process.cwd(), [entrypoint])));
20
+ }
21
+ catch (e) {
22
+ throw new packager_1.BundlerError(e.message);
23
+ }
24
+ bundlerOutputs.forEach(({ outputDir }, index) => {
25
+ this.logger.debug(`NativeUI bundle created: ${outputDir}`);
26
+ nativeUiBundlesDetails.push(Object.assign(Object.assign({}, resources[index]), { path: outputDir }));
27
+ });
28
+ }
29
+ return {
30
+ nativeUiBundlesDetails
31
+ };
32
+ }
33
+ }
34
+ exports.NativeUIBundler = NativeUIBundler;
@@ -1,6 +1,6 @@
1
- import { Logger } from '@forge/cli-shared';
2
- import { Archiver } from './archiver';
3
- import { Bundler } from '@forge/bundler';
1
+ import { Logger, ResourceDetails } from '@forge/cli-shared';
2
+ import { NativeUIBundler } from './nativeui-bundler';
3
+ import { RuntimeBundler } from './runtime-bundler';
4
4
  export interface PackagerBundlerOutput {
5
5
  output: {
6
6
  [filename: string]: string;
@@ -13,11 +13,12 @@ export interface PackagerBundlerOutput {
13
13
  };
14
14
  }
15
15
  export interface PackageResult {
16
- archivePath: string;
16
+ runtimeArchivePath: string;
17
+ nativeUiBundlesDetails: ResourceDetails[];
17
18
  moduleList?: string[];
18
19
  }
19
20
  export interface Packager {
20
- package(handlers: Array<string>): Promise<PackageResult>;
21
+ package(handlers: string[], resources: ResourceDetails[]): Promise<PackageResult>;
21
22
  }
22
23
  export interface EntryPoint {
23
24
  name: string;
@@ -26,10 +27,10 @@ export interface EntryPoint {
26
27
  export declare class BundlerError extends Error {
27
28
  }
28
29
  export declare class AppPackager implements Packager {
29
- private readonly archiverFactory;
30
+ private readonly runtimeBundler;
31
+ private readonly nativeUiBundler;
30
32
  private readonly logger;
31
- private readonly bundle;
32
- constructor(archiverFactory: () => Archiver, logger: Logger, bundle: Bundler);
33
- package(handlers: Array<string>): Promise<PackageResult>;
33
+ constructor(runtimeBundler: RuntimeBundler, nativeUiBundler: NativeUIBundler, logger: Logger);
34
+ package(handlers: string[], resources: ResourceDetails[]): Promise<PackageResult>;
34
35
  }
35
36
  //# sourceMappingURL=packager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvC,SAAS,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO;IAGrB,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CA0DtE"}
1
+ {"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAQ,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACvC,SAAS,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,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,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,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,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAW/F"}
@@ -2,60 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AppPackager = exports.BundlerError = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
- const path_1 = require("path");
6
5
  class BundlerError extends Error {
7
6
  }
8
7
  exports.BundlerError = BundlerError;
9
8
  class AppPackager {
10
- constructor(archiverFactory, logger, bundle) {
11
- this.archiverFactory = archiverFactory;
9
+ constructor(runtimeBundler, nativeUiBundler, logger) {
10
+ this.runtimeBundler = runtimeBundler;
11
+ this.nativeUiBundler = nativeUiBundler;
12
12
  this.logger = logger;
13
- this.bundle = bundle;
14
13
  }
15
- async package(handlers) {
16
- let moduleList;
14
+ async package(handlers, resources) {
17
15
  this.logger.info(cli_shared_1.Text.deploy.taskPackage.title);
18
- const archiver = this.archiverFactory();
19
- archiver.onWarning((err) => {
20
- this.logger.warn(cli_shared_1.Text.deploy.taskPackage.archiverWarning(err));
21
- });
22
- archiver.onEntry((filePath) => {
23
- this.logger.debug(cli_shared_1.Text.deploy.taskPackage.fileAddedToArchive(filePath));
24
- });
25
- const currentDirectory = process.cwd();
26
- const entryPoints = [];
27
- for (const handler of handlers) {
28
- entryPoints.push({
29
- name: handler,
30
- path: path_1.join(currentDirectory, 'src', handler)
31
- });
32
- }
33
- if (entryPoints.length > 0) {
34
- let bundlerResponse;
35
- try {
36
- bundlerResponse = await this.bundle(process.cwd(), entryPoints);
37
- }
38
- catch (e) {
39
- throw new BundlerError(e.message);
40
- }
41
- const { output, sourceMap, metadata } = bundlerResponse;
42
- if (metadata) {
43
- moduleList = metadata.modules;
44
- }
45
- this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageBundledFiles);
46
- for (const name in output) {
47
- archiver.addFile(`${name}.js`, Buffer.from(output[name]));
48
- }
49
- if (sourceMap) {
50
- for (const name in sourceMap) {
51
- archiver.addFile(`${name}.js.map`, Buffer.from(sourceMap[name]));
52
- }
53
- }
54
- }
55
- archiver.addRootDependencyFiles(cli_shared_1.dependencyFileNames, this.logger);
56
- const archivePath = await archiver.finalise();
57
- this.logger.debug(cli_shared_1.Text.deploy.taskPackage.archiveCreated(archivePath));
58
- return { archivePath, moduleList };
16
+ const runtimeBundle = await this.runtimeBundler.bundle(handlers);
17
+ const nativeUiBundle = await this.nativeUiBundler.bundle(resources);
18
+ return Object.assign(Object.assign({}, runtimeBundle), nativeUiBundle);
59
19
  }
60
20
  }
61
21
  exports.AppPackager = AppPackager;
@@ -0,0 +1,15 @@
1
+ import { Bundler } from '@forge/bundler';
2
+ import { Logger } from '@forge/cli-shared';
3
+ import { Archiver } from './archiver';
4
+ export interface RuntimeBundleResult {
5
+ runtimeArchivePath: string;
6
+ moduleList?: string[];
7
+ }
8
+ export declare class RuntimeBundler {
9
+ private readonly archiverFactory;
10
+ private readonly logger;
11
+ private readonly bundler;
12
+ constructor(archiverFactory: () => Archiver, logger: Logger, bundler: Bundler);
13
+ bundle(handlers: string[]): Promise<RuntimeBundleResult>;
14
+ }
15
+ //# sourceMappingURL=runtime-bundler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAuB,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,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;gBAFP,eAAe,EAAE,MAAM,QAAQ,EAC/B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO;IAGtB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAyDtE"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RuntimeBundler = void 0;
4
+ const path_1 = require("path");
5
+ const cli_shared_1 = require("@forge/cli-shared");
6
+ const packager_1 = require("./packager");
7
+ class RuntimeBundler {
8
+ constructor(archiverFactory, logger, bundler) {
9
+ this.archiverFactory = archiverFactory;
10
+ this.logger = logger;
11
+ this.bundler = bundler;
12
+ }
13
+ async bundle(handlers) {
14
+ const archiver = this.archiverFactory();
15
+ archiver.onWarning((err) => {
16
+ this.logger.warn(cli_shared_1.Text.deploy.taskPackage.archiverWarning(err));
17
+ });
18
+ archiver.onEntry((filePath) => {
19
+ this.logger.debug(cli_shared_1.Text.deploy.taskPackage.fileAddedToArchive(filePath));
20
+ });
21
+ const currentDirectory = process.cwd();
22
+ const entryPoints = [];
23
+ for (const handler of handlers) {
24
+ entryPoints.push({
25
+ name: handler,
26
+ path: path_1.join(currentDirectory, 'src', handler)
27
+ });
28
+ }
29
+ const moduleList = [];
30
+ if (entryPoints.length > 0) {
31
+ let bundlerResponse;
32
+ try {
33
+ bundlerResponse = await this.bundler(process.cwd(), entryPoints);
34
+ }
35
+ catch (e) {
36
+ throw new packager_1.BundlerError(e.message);
37
+ }
38
+ const { output, sourceMap, metadata } = bundlerResponse;
39
+ if (metadata) {
40
+ moduleList.push(...metadata.modules);
41
+ }
42
+ this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageBundledFiles);
43
+ for (const name in output) {
44
+ archiver.addFile(`${name}.js`, Buffer.from(output[name]));
45
+ }
46
+ if (sourceMap) {
47
+ for (const name in sourceMap) {
48
+ archiver.addFile(`${name}.js.map`, Buffer.from(sourceMap[name]));
49
+ }
50
+ }
51
+ }
52
+ archiver.addRootDependencyFiles(cli_shared_1.dependencyFileNames, this.logger);
53
+ const archivePath = await archiver.finalise();
54
+ this.logger.debug(cli_shared_1.Text.deploy.taskPackage.archiveCreated(archivePath));
55
+ return { runtimeArchivePath: archivePath, moduleList };
56
+ }
57
+ }
58
+ exports.RuntimeBundler = RuntimeBundler;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InstallationService = void 0;
4
4
  const cli_shared_1 = require("@forge/cli-shared");
5
- const csp_1 = require("@forge/csp");
5
+ const egress_1 = require("@forge/egress");
6
6
  const lodash_1 = require("lodash");
7
7
  const graphql_client_1 = require("../installations/graphql-client");
8
8
  const IDENTITY_PRODUCT_NAME = 'identity';
@@ -75,7 +75,7 @@ class InstallationService {
75
75
  if (!versions || versions.length === 0)
76
76
  return;
77
77
  const [{ scopes, egressAddresses }, oldVersion] = versions.map((appEnvironmentVersion) => this.getPermissionsFromAppEnvironmentVersion(appEnvironmentVersion));
78
- const groupedEgressAddresses = csp_1.sortAndGroupEgressPermissionsByDomain(egressAddresses);
78
+ const groupedEgressAddresses = egress_1.sortAndGroupEgressPermissionsByDomain(egressAddresses);
79
79
  if (!oldVersion) {
80
80
  return {
81
81
  scopes,
@@ -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,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,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,KAAK;;CAItD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;;CAIpD;AAED,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGnD;AAED,qBAAa,oCAAqC,SAAQ,KAAK;gBACjD,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;IAIhD,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"}
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,EAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,qBAAa,6BAA8B,SAAQ,KAAK;gBAC1C,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAGrC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,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,KAAK;;CAItD;AAED,qBAAa,0BAA2B,SAAQ,KAAK;;CAIpD;AAED,qBAAa,kCAAmC,SAAQ,KAAK;gBAC/C,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAGnD;AAED,qBAAa,oCAAqC,SAAQ,KAAK;gBACjD,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"}
@@ -62,7 +62,11 @@ class ResourcePackagingService {
62
62
  }));
63
63
  }
64
64
  transformRelativeResourcePathsToAbsolute(appDir, resources) {
65
- return resources.map(({ key, path, resourceType }) => ({ key, directory: path_1.join(appDir, path), resourceType }));
65
+ return resources.map(({ key, path, resourceType }) => ({
66
+ key,
67
+ directory: resourceType === 'nativeUI' ? path : path_1.join(appDir, path),
68
+ resourceType
69
+ }));
66
70
  }
67
71
  processFile(filePath, content) {
68
72
  if (filePath === CUSTOM_UI_ENTRYPOINT) {
@@ -76,7 +80,7 @@ class ResourcePackagingService {
76
80
  return content;
77
81
  }
78
82
  validateResourceContents({ directory, filePaths, resourceType }) {
79
- if (resourceType === 'customUI') {
83
+ if (resourceType === 'customUI' || resourceType === 'nativeUI') {
80
84
  this.assertDirectoryIncludesEntrypoint(directory, filePaths);
81
85
  }
82
86
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "5.0.0-next.1",
3
+ "version": "5.1.0-next.5",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,11 +18,11 @@
18
18
  "postinstall": "node -e \"process.exitCode = fs.existsSync('./out/bin/postinstall.js')\" || node ./out/bin/postinstall.js"
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "3.0.12-next.1",
22
- "@forge/cli-shared": "3.0.0-next.1",
23
- "@forge/csp": "^1.11.0",
24
- "@forge/lint": "3.2.3-next.1",
25
- "@forge/manifest": "4.1.0-next.0",
21
+ "@forge/bundler": "3.1.0-next.4",
22
+ "@forge/cli-shared": "3.1.0-next.2",
23
+ "@forge/egress": "^1.1.0-next.1",
24
+ "@forge/lint": "3.2.4-next.4",
25
+ "@forge/manifest": "4.2.0-next.1",
26
26
  "@forge/util": "1.2.0",
27
27
  "ajv": "^6.12.5",
28
28
  "archiver": "^5.2.0",
@@ -37,6 +37,7 @@
37
37
  "env-paths": "^2.2.0",
38
38
  "fs-extra": "^8.1.0",
39
39
  "hidefile": "^3.0.0",
40
+ "keytar": "^7.9.0",
40
41
  "latest-version": "^5.1.0",
41
42
  "lodash": "^4.17.20",
42
43
  "mkdirp": "^1.0.3",