@forge/cli 6.22.1 → 7.0.0

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +343 -0
  2. package/npm-shrinkwrap.json +214 -199
  3. package/out/analytics-client/analytics-client.d.ts +1 -1
  4. package/out/analytics-client/analytics-client.d.ts.map +1 -1
  5. package/out/analytics-client/analytics-client.js +2 -2
  6. package/out/autocomplete/autocomplete-config.json +0 -3
  7. package/out/command-line/command.d.ts +8 -8
  8. package/out/command-line/command.d.ts.map +1 -1
  9. package/out/command-line/command.js +8 -8
  10. package/out/command-line/controller/settings-controller.d.ts +1 -2
  11. package/out/command-line/controller/settings-controller.d.ts.map +1 -1
  12. package/out/command-line/controller/settings-controller.js +9 -5
  13. package/out/command-line/controller/tunnel-controller.d.ts.map +1 -1
  14. package/out/command-line/controller/tunnel-controller.js +0 -4
  15. package/out/command-line/dependency-injection.d.ts +2 -2
  16. package/out/command-line/dependency-injection.d.ts.map +1 -1
  17. package/out/command-line/dependency-injection.js +3 -3
  18. package/out/command-line/register-tunnel-commands.d.ts.map +1 -1
  19. package/out/command-line/register-tunnel-commands.js +0 -1
  20. package/out/command-line/view/deploy-view.js +2 -2
  21. package/out/command-line/view/settings-view.d.ts +1 -1
  22. package/out/command-line/view/settings-view.d.ts.map +1 -1
  23. package/out/deploy/deployer/deploy-monitor-graphql-client.d.ts +2 -2
  24. package/out/deploy/deployer/deploy-monitor-graphql-client.d.ts.map +1 -1
  25. package/out/environment/graphql-client.d.ts.map +1 -1
  26. package/out/environment/graphql-client.js +0 -6
  27. package/out/installations/graphql-client.js +11 -11
  28. package/out/installations/site-translation/bitbucket.d.ts +1 -1
  29. package/out/installations/site-translation/bitbucket.d.ts.map +1 -1
  30. package/out/installations/site-translation/bitbucket.js +2 -2
  31. package/out/installations/site-translation/cloudid-products.d.ts +1 -1
  32. package/out/installations/site-translation/cloudid-products.d.ts.map +1 -1
  33. package/out/installations/site-translation/cloudid-products.js +2 -2
  34. package/out/installations/site-translation/site-translation.d.ts +1 -1
  35. package/out/installations/site-translation/site-translation.d.ts.map +1 -1
  36. package/out/service/cached-config-service.d.ts +2 -0
  37. package/out/service/cached-config-service.d.ts.map +1 -1
  38. package/out/service/cached-config-service.js +7 -0
  39. package/out/service/migration-keys-service.d.ts +1 -1
  40. package/out/service/migration-keys-service.d.ts.map +1 -1
  41. package/out/service/tunnel-service.d.ts +18 -12
  42. package/out/service/tunnel-service.d.ts.map +1 -1
  43. package/out/service/tunnel-service.js +32 -25
  44. package/out/webtrigger/get-webtrigger-url.d.ts.map +1 -1
  45. package/out/webtrigger/get-webtrigger-url.js +2 -4
  46. package/out/workers/tunnel-clean-up-worker.d.ts +1 -1
  47. package/out/workers/tunnel-clean-up-worker.d.ts.map +1 -1
  48. package/package.json +13 -13
@@ -1,13 +1,13 @@
1
1
  import { spawn } from 'cross-spawn';
2
2
  import { HiddenError, PersonalApiCredentials, PersonalApiCredentialsValidated, UI, UserError } from '@forge/cli-shared';
3
3
  import { StartTunnelCommand, TunnelInteractor } from '@forge/tunnel';
4
+ import { CachedConfigService } from './cached-config-service';
4
5
  import { DockerService } from './docker-service';
5
6
  import { ConfigFilePortFindingService } from './port-finding-service';
6
7
  import { TunnelAnalyticsService } from './tunnel-analytics-service';
7
8
  export interface TunnelOptions {
8
9
  debug?: boolean;
9
10
  environment?: string;
10
- ngrokConfig?: string;
11
11
  }
12
12
  export declare const CONTAINER_NAME: string;
13
13
  export declare const IMAGE_NAME: string;
@@ -16,44 +16,50 @@ export declare class HiddenDockerTunnelError extends HiddenError {
16
16
  constructor(userError: boolean, message?: string);
17
17
  isUserError(): boolean;
18
18
  }
19
- export type TunnelService = {
19
+ export declare type TunnelService = {
20
20
  run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
21
21
  };
22
22
  export declare class DebugNotSupportedError extends UserError {
23
23
  constructor();
24
24
  }
25
- export declare class InProcessTunnelService implements TunnelService {
25
+ declare abstract class TunnelServiceBase implements TunnelService {
26
+ protected readonly cachedConfigService: CachedConfigService;
27
+ constructor(cachedConfigService: CachedConfigService);
28
+ abstract run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
29
+ protected ngrokConfigPath(): string;
30
+ }
31
+ export declare class InProcessTunnelService extends TunnelServiceBase {
26
32
  private readonly ui;
27
33
  private readonly startTunnelCommand;
28
34
  private readonly tunnelInteractor;
29
35
  private readonly configFilePortFindingService;
30
36
  private readonly analyticsService;
31
- constructor(ui: UI, startTunnelCommand: StartTunnelCommand, tunnelInteractor: TunnelInteractor, configFilePortFindingService: ConfigFilePortFindingService, analyticsService: TunnelAnalyticsService);
37
+ constructor(ui: UI, startTunnelCommand: StartTunnelCommand, tunnelInteractor: TunnelInteractor, configFilePortFindingService: ConfigFilePortFindingService, cachedConfigService: CachedConfigService, analyticsService: TunnelAnalyticsService);
32
38
  run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
33
39
  }
34
40
  interface EnvironmentVariable {
35
41
  key: string;
36
42
  value: string;
37
43
  }
38
- declare abstract class TunnelServiceBase implements TunnelService {
44
+ declare abstract class SandboxTunnelServiceBase extends TunnelServiceBase {
39
45
  protected readonly configFilePortFindingService: ConfigFilePortFindingService;
40
- constructor(configFilePortFindingService: ConfigFilePortFindingService);
41
- abstract run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
46
+ protected readonly cachedConfigService: CachedConfigService;
47
+ constructor(configFilePortFindingService: ConfigFilePortFindingService, cachedConfigService: CachedConfigService);
42
48
  getTunnelProcessEnvironment(tunnelOptions: TunnelOptions, debugEnabled: boolean, { email, token }: PersonalApiCredentials, port: number, cspReporterPort: number | undefined, resourcePorts: Record<string, number>): Promise<EnvironmentVariable[]>;
43
49
  private getInspectorPortEnvironment;
44
- protected getNgrokConfigEnvironment(ngrokConfigPath: string | undefined): EnvironmentVariable[];
50
+ protected getNgrokConfigEnvironment(): EnvironmentVariable[];
45
51
  private getCspReporterPortEnvironment;
46
52
  private getResourcePortEnvironment;
47
53
  private getUserEnvironmentVariables;
48
54
  }
49
- export declare class LocalTunnelService extends TunnelServiceBase {
55
+ export declare class LocalTunnelService extends SandboxTunnelServiceBase {
50
56
  run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean, onError?: (err: Error) => Promise<void>): Promise<void>;
51
57
  private formatEnvForLocalTunnel;
52
58
  }
53
- export declare class DockerTunnelService extends TunnelServiceBase {
59
+ export declare class DockerTunnelService extends SandboxTunnelServiceBase {
54
60
  private readonly dockerService;
55
61
  private readonly analyticsService;
56
- constructor(configFilePortFindingService: ConfigFilePortFindingService, dockerService: DockerService, analyticsService: TunnelAnalyticsService);
62
+ constructor(configFilePortFindingService: ConfigFilePortFindingService, cachedConfigService: CachedConfigService, dockerService: DockerService, analyticsService: TunnelAnalyticsService);
57
63
  run(tunnelOptions: TunnelOptions, creds: PersonalApiCredentialsValidated, debugEnabled: boolean): Promise<void>;
58
64
  bootstrapDocker(): Promise<ReturnType<typeof spawn>>;
59
65
  private validateDockerVersion;
@@ -61,7 +67,7 @@ export declare class DockerTunnelService extends TunnelServiceBase {
61
67
  private formatEnvForDocker;
62
68
  private getInteractiveOptions;
63
69
  private getVolumeOptions;
64
- protected getNgrokConfigEnvironment(ngrokConfigPath: string | undefined): EnvironmentVariable[];
70
+ protected getNgrokConfigEnvironment(): EnvironmentVariable[];
65
71
  private getDockerOptions;
66
72
  }
67
73
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tunnel-service.d.ts","sourceRoot":"","sources":["../../src/service/tunnel-service.ts"],"names":[],"mappings":"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"}
@@ -44,8 +44,21 @@ class DebugNotSupportedError extends cli_shared_1.UserError {
44
44
  }
45
45
  }
46
46
  exports.DebugNotSupportedError = DebugNotSupportedError;
47
- class InProcessTunnelService {
48
- constructor(ui, startTunnelCommand, tunnelInteractor, configFilePortFindingService, analyticsService) {
47
+ class TunnelServiceBase {
48
+ constructor(cachedConfigService) {
49
+ this.cachedConfigService = cachedConfigService;
50
+ }
51
+ ngrokConfigPath() {
52
+ const path = this.cachedConfigService.getNgrokConfigPath();
53
+ if (!path) {
54
+ throw new cli_shared_1.UserError(cli_shared_1.Text.tunnel.error.noNgrokConfig);
55
+ }
56
+ return path;
57
+ }
58
+ }
59
+ class InProcessTunnelService extends TunnelServiceBase {
60
+ constructor(ui, startTunnelCommand, tunnelInteractor, configFilePortFindingService, cachedConfigService, analyticsService) {
61
+ super(cachedConfigService);
49
62
  this.ui = ui;
50
63
  this.startTunnelCommand = startTunnelCommand;
51
64
  this.tunnelInteractor = tunnelInteractor;
@@ -62,7 +75,7 @@ class InProcessTunnelService {
62
75
  environmentKey: tunnelOptions.environment || process.env.ENVIRONMENT_KEY || 'default',
63
76
  resourcePortMap,
64
77
  host: 'localhost',
65
- ngrokConfig: tunnelOptions.ngrokConfig
78
+ ngrokConfig: this.ngrokConfigPath()
66
79
  });
67
80
  const monitor = await this.tunnelInteractor.watchApp(tunnel);
68
81
  await this.tunnelInteractor.handleUserExitEvent(tunnel.stopFunction, monitor);
@@ -79,9 +92,11 @@ class InProcessTunnelService {
79
92
  }
80
93
  }
81
94
  exports.InProcessTunnelService = InProcessTunnelService;
82
- class TunnelServiceBase {
83
- constructor(configFilePortFindingService) {
95
+ class SandboxTunnelServiceBase extends TunnelServiceBase {
96
+ constructor(configFilePortFindingService, cachedConfigService) {
97
+ super(cachedConfigService);
84
98
  this.configFilePortFindingService = configFilePortFindingService;
99
+ this.cachedConfigService = cachedConfigService;
85
100
  }
86
101
  async getTunnelProcessEnvironment(tunnelOptions, debugEnabled, { email, token }, port, cspReporterPort, resourcePorts) {
87
102
  var _a;
@@ -100,7 +115,7 @@ class TunnelServiceBase {
100
115
  ...this.getCspReporterPortEnvironment(cspReporterPort),
101
116
  ...this.getResourcePortEnvironment(resourcePorts),
102
117
  ...this.getUserEnvironmentVariables(),
103
- ...this.getNgrokConfigEnvironment(tunnelOptions.ngrokConfig)
118
+ ...this.getNgrokConfigEnvironment()
104
119
  ];
105
120
  }
106
121
  catch (e) {
@@ -110,11 +125,8 @@ class TunnelServiceBase {
110
125
  getInspectorPortEnvironment(port) {
111
126
  return [{ key: 'TUNNEL_INSPECTOR_PORT', value: port.toString() }];
112
127
  }
113
- getNgrokConfigEnvironment(ngrokConfigPath) {
114
- if (ngrokConfigPath) {
115
- return [{ key: 'NGROK_CONFIG', value: ngrokConfigPath }];
116
- }
117
- return [];
128
+ getNgrokConfigEnvironment() {
129
+ return [{ key: 'NGROK_CONFIG', value: this.ngrokConfigPath() }];
118
130
  }
119
131
  getCspReporterPortEnvironment(cspReporterPort) {
120
132
  if (cspReporterPort) {
@@ -136,7 +148,7 @@ class TunnelServiceBase {
136
148
  return vars;
137
149
  }
138
150
  }
139
- class LocalTunnelService extends TunnelServiceBase {
151
+ class LocalTunnelService extends SandboxTunnelServiceBase {
140
152
  async run(tunnelOptions, creds, debugEnabled, onError) {
141
153
  const port = await (0, portfinder_1.getPortPromise)();
142
154
  const resourcePorts = await this.configFilePortFindingService.findPorts();
@@ -159,9 +171,9 @@ class LocalTunnelService extends TunnelServiceBase {
159
171
  }
160
172
  }
161
173
  exports.LocalTunnelService = LocalTunnelService;
162
- class DockerTunnelService extends TunnelServiceBase {
163
- constructor(configFilePortFindingService, dockerService, analyticsService) {
164
- super(configFilePortFindingService);
174
+ class DockerTunnelService extends SandboxTunnelServiceBase {
175
+ constructor(configFilePortFindingService, cachedConfigService, dockerService, analyticsService) {
176
+ super(configFilePortFindingService, cachedConfigService);
165
177
  this.dockerService = dockerService;
166
178
  this.analyticsService = analyticsService;
167
179
  }
@@ -176,7 +188,7 @@ class DockerTunnelService extends TunnelServiceBase {
176
188
  const environment = await this.getTunnelProcessEnvironment(tunnelOptions, debugEnabled, creds, port, cspReporterPort, resourcePorts);
177
189
  const portOptions = this.getDockerPortOptions(port, resourcePorts, cspReporterPort);
178
190
  const interactiveOptions = this.getInteractiveOptions();
179
- const volumeOptions = this.getVolumeOptions(tunnelOptions);
191
+ const volumeOptions = this.getVolumeOptions();
180
192
  const env = this.formatEnvForDocker(environment);
181
193
  const docker = this.dockerService.runContainer([
182
194
  ...interactiveOptions,
@@ -238,7 +250,7 @@ class DockerTunnelService extends TunnelServiceBase {
238
250
  }
239
251
  return [`-it`];
240
252
  }
241
- getVolumeOptions({ ngrokConfig }) {
253
+ getVolumeOptions() {
242
254
  const options = [`-v=${process.cwd()}:/app:cached`];
243
255
  if (process.env.FORGE_DEV_DOCKER_TUNNEL) {
244
256
  const monorepoRoot = (0, path_1.join)(__dirname, '../../../..');
@@ -251,16 +263,11 @@ class DockerTunnelService extends TunnelServiceBase {
251
263
  options.push(`-v=${mount}:cached`);
252
264
  });
253
265
  }
254
- if (ngrokConfig) {
255
- options.push('--mount', `type=bind,source=${ngrokConfig},target=${PATH_DOCKER_NGROK_CONFIG}`);
256
- }
266
+ options.push('--mount', `type=bind,source=${this.ngrokConfigPath()},target=${PATH_DOCKER_NGROK_CONFIG}`);
257
267
  return options;
258
268
  }
259
- getNgrokConfigEnvironment(ngrokConfigPath) {
260
- if (ngrokConfigPath) {
261
- return [{ key: 'NGROK_CONFIG', value: PATH_DOCKER_NGROK_CONFIG }];
262
- }
263
- return [];
269
+ getNgrokConfigEnvironment() {
270
+ return [{ key: 'NGROK_CONFIG', value: PATH_DOCKER_NGROK_CONFIG }];
264
271
  }
265
272
  async getDockerOptions() {
266
273
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"get-webtrigger-url.d.ts","sourceRoot":"","sources":["../../src/webtrigger/get-webtrigger-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/E;AACD,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAHvB,YAAY,EAAE,iBAAiB,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,EAAE,oBAAoB,EAC1C,uBAAuB,EAAE,uBAAuB;IAGtD,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgBnF"}
1
+ {"version":3,"file":"get-webtrigger-url.d.ts","sourceRoot":"","sources":["../../src/webtrigger/get-webtrigger-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC/E;AACD,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAHvB,YAAY,EAAE,iBAAiB,EAC/B,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,EAAE,oBAAoB,EAC1C,uBAAuB,EAAE,uBAAuB;IAGtD,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAcnF"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetWebTriggerURLCommand = void 0;
4
- const cs_ari_1 = require("@forge/util/packages/cs-ari");
4
+ const ari_1 = require("@forge/util/packages/ari");
5
5
  class GetWebTriggerURLCommand {
6
6
  constructor(getAppConfig, webTriggerClient, appEnvironmentClient, webTriggerGraphqlClient) {
7
7
  this.getAppConfig = getAppConfig;
@@ -13,10 +13,8 @@ class GetWebTriggerURLCommand {
13
13
  const { id: appId } = await this.getAppConfig();
14
14
  const { environmentKey, context } = await this.webTriggerClient.getInstallation(appId, installationId);
15
15
  const environmentId = await this.appEnvironmentClient.getAppEnvironmentId(appId, environmentKey);
16
- const ari = (0, cs_ari_1.parse)(appId);
17
- const appAri = (0, cs_ari_1.parseAppAri)(ari);
18
16
  return await this.webTriggerGraphqlClient.createWebTriggerUrl({
19
- appId: appAri.appId,
17
+ appId: ari_1.EcosystemAppAri.parse(appId).appId,
20
18
  contextId: context,
21
19
  environmentId: environmentId,
22
20
  triggerKey: functionKey
@@ -1,4 +1,4 @@
1
- export type TunnelCleanUpMessage = {
1
+ export declare type TunnelCleanUpMessage = {
2
2
  pids: number[];
3
3
  containers: string[];
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tunnel-clean-up-worker.d.ts","sourceRoot":"","sources":["../../src/workers/tunnel-clean-up-worker.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,mBAAmB;IACvB,MAAM,IAAI,IAAI;CAwBtB"}
1
+ {"version":3,"file":"tunnel-clean-up-worker.d.ts","sourceRoot":"","sources":["../../src/workers/tunnel-clean-up-worker.ts"],"names":[],"mappings":"AAGA,oBAAY,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,qBAAa,mBAAmB;IACvB,MAAM,IAAI,IAAI;CAwBtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/cli",
3
- "version": "6.22.1",
3
+ "version": "7.0.0",
4
4
  "description": "A command line interface for managing Atlassian-hosted apps",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -18,16 +18,16 @@
18
18
  "postinstall": "node -e \"fs.existsSync('./out/bin/postinstall.js') && require('./out/bin/postinstall.js')\""
19
19
  },
20
20
  "dependencies": {
21
- "@forge/bundler": "4.14.3",
22
- "@forge/cli-shared": "3.22.1",
23
- "@forge/egress": "1.2.11",
24
- "@forge/lint": "4.0.1",
25
- "@forge/manifest": "5.4.0",
26
- "@forge/node-runtime": "0.4.6",
27
- "@forge/runtime": "5.2.3",
28
- "@forge/tunnel": "3.8.9",
29
- "@forge/util": "1.3.3",
30
- "@sentry/node": "^7.81.1",
21
+ "@forge/bundler": "4.15.0",
22
+ "@forge/cli-shared": "3.23.0",
23
+ "@forge/egress": "1.2.12",
24
+ "@forge/lint": "4.0.2",
25
+ "@forge/manifest": "5.5.0",
26
+ "@forge/node-runtime": "0.5.0",
27
+ "@forge/runtime": "5.3.0",
28
+ "@forge/tunnel": "4.0.0",
29
+ "@forge/util": "1.4.0",
30
+ "@sentry/node": "^7.91.0",
31
31
  "ajv": "^8.12.0",
32
32
  "archiver": "^6.0.1",
33
33
  "case": "^1.6.3",
@@ -41,7 +41,7 @@
41
41
  "didyoumean": "^1.2.2",
42
42
  "env-paths": "^2.2.1",
43
43
  "form-data": "^4.0.0",
44
- "fs-extra": "^11.1.1",
44
+ "fs-extra": "^11.2.0",
45
45
  "hidefile": "^3.0.0",
46
46
  "latest-version": "^7.0.0",
47
47
  "lodash": "^4.17.21",
@@ -67,7 +67,7 @@
67
67
  "@types/inquirer": "^8.2.10",
68
68
  "@types/jest": "^29.5.11",
69
69
  "@types/node": "14.18.63",
70
- "@types/node-fetch": "^2.6.9",
70
+ "@types/node-fetch": "^2.6.10",
71
71
  "@types/omelette": "^0.4.4",
72
72
  "@types/semver": "^7.5.6",
73
73
  "@types/tmp": "^0.2.6",