@forge/cli 0.0.0-experimental-034f51a → 0.0.0-experimental-c8e9749
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.
- package/CHANGELOG.md +1110 -2
- package/npm-shrinkwrap.json +13389 -0
- package/out/analytics-client/analytics-client.d.ts +36 -0
- package/out/analytics-client/analytics-client.d.ts.map +1 -0
- package/out/analytics-client/analytics-client.js +140 -0
- package/out/analytics-client/analytics-message-handler.d.ts +21 -0
- package/out/analytics-client/analytics-message-handler.d.ts.map +1 -0
- package/out/analytics-client/analytics-message-handler.js +43 -0
- package/out/autocomplete/autocomplete-config.json +243 -0
- package/out/autocomplete/index.d.ts +5 -0
- package/out/autocomplete/index.d.ts.map +1 -0
- package/out/autocomplete/index.js +41 -0
- package/out/autocomplete/isSupportedShell.d.ts +2 -0
- package/out/autocomplete/isSupportedShell.d.ts.map +1 -0
- package/out/autocomplete/isSupportedShell.js +11 -0
- package/out/autocomplete/types.d.ts +14 -0
- package/out/autocomplete/types.d.ts.map +1 -0
- package/out/autocomplete/types.js +2 -0
- package/out/autocomplete/util.d.ts +6 -0
- package/out/autocomplete/util.d.ts.map +1 -0
- package/out/autocomplete/util.js +15 -0
- package/out/bin/cli.d.ts +1 -0
- package/out/bin/cli.d.ts.map +1 -1
- package/out/bin/cli.js +4 -1
- package/out/bin/postinstall.d.ts +2 -0
- package/out/bin/postinstall.d.ts.map +1 -0
- package/out/bin/postinstall.js +23 -0
- package/out/command-line/anon-user-id.d.ts +3 -0
- package/out/command-line/anon-user-id.d.ts.map +1 -0
- package/out/command-line/anon-user-id.js +17 -0
- package/out/command-line/command.d.ts +80 -0
- package/out/command-line/command.d.ts.map +1 -0
- package/out/command-line/command.js +408 -0
- package/out/command-line/controller/assertUnreachable.d.ts +2 -0
- package/out/command-line/controller/assertUnreachable.d.ts.map +1 -0
- package/out/command-line/controller/assertUnreachable.js +7 -0
- package/out/command-line/controller/autocomplete-controller.d.ts +12 -0
- package/out/command-line/controller/autocomplete-controller.d.ts.map +1 -0
- package/out/command-line/controller/autocomplete-controller.js +54 -0
- package/out/command-line/controller/deploy-controller.d.ts +42 -0
- package/out/command-line/controller/deploy-controller.d.ts.map +1 -0
- package/out/command-line/controller/deploy-controller.js +139 -0
- package/out/command-line/controller/feedback-controller.d.ts +9 -0
- package/out/command-line/controller/feedback-controller.d.ts.map +1 -0
- package/out/command-line/controller/feedback-controller.js +19 -0
- package/out/command-line/controller/getNodeVersion.d.ts +2 -0
- package/out/command-line/controller/getNodeVersion.d.ts.map +1 -0
- package/out/command-line/controller/getNodeVersion.js +7 -0
- package/out/command-line/controller/install-controller.d.ts +35 -0
- package/out/command-line/controller/install-controller.d.ts.map +1 -0
- package/out/command-line/controller/install-controller.js +157 -0
- package/out/command-line/controller/lint-controller.d.ts +9 -0
- package/out/command-line/controller/lint-controller.d.ts.map +1 -0
- package/out/command-line/controller/lint-controller.js +20 -0
- package/out/command-line/controller/pre-command-controller.d.ts +25 -0
- package/out/command-line/controller/pre-command-controller.d.ts.map +1 -0
- package/out/command-line/controller/pre-command-controller.js +57 -0
- package/out/command-line/controller/prerequisites-controller.d.ts +15 -0
- package/out/command-line/controller/prerequisites-controller.d.ts.map +1 -0
- package/out/command-line/controller/prerequisites-controller.js +41 -0
- package/out/command-line/controller/settings-controller.d.ts +19 -0
- package/out/command-line/controller/settings-controller.d.ts.map +1 -0
- package/out/command-line/controller/settings-controller.js +48 -0
- package/out/command-line/controller/stubController.d.ts +9 -0
- package/out/command-line/controller/stubController.d.ts.map +1 -0
- package/out/command-line/controller/stubController.js +15 -0
- package/out/command-line/controller/tunnel-controller.d.ts +14 -0
- package/out/command-line/controller/tunnel-controller.d.ts.map +1 -0
- package/out/command-line/controller/tunnel-controller.js +43 -0
- package/out/command-line/dependency-injection.d.ts +76 -0
- package/out/command-line/dependency-injection.d.ts.map +1 -0
- package/out/command-line/dependency-injection.js +211 -0
- package/out/command-line/environment.d.ts +2 -0
- package/out/command-line/environment.d.ts.map +1 -0
- package/out/command-line/environment.js +16 -0
- package/out/command-line/errors.d.ts +6 -0
- package/out/command-line/errors.d.ts.map +1 -0
- package/out/command-line/errors.js +12 -0
- package/out/command-line/index.d.ts +5 -0
- package/out/command-line/index.d.ts.map +1 -0
- package/out/command-line/index.js +73 -0
- package/out/command-line/register-app-commands.d.ts +10 -0
- package/out/command-line/register-app-commands.d.ts.map +1 -0
- package/out/command-line/register-app-commands.js +128 -0
- package/out/command-line/register-authentication-command.d.ts +16 -0
- package/out/command-line/register-authentication-command.d.ts.map +1 -0
- package/out/command-line/register-authentication-command.js +94 -0
- package/out/command-line/register-autocomplete-commands.d.ts +3 -0
- package/out/command-line/register-autocomplete-commands.d.ts.map +1 -0
- package/out/command-line/register-autocomplete-commands.js +14 -0
- package/out/command-line/register-contributors-commands.d.ts +3 -0
- package/out/command-line/register-contributors-commands.d.ts.map +1 -0
- package/out/command-line/register-contributors-commands.js +134 -0
- package/out/command-line/register-deployment-commands.d.ts +22 -0
- package/out/command-line/register-deployment-commands.d.ts.map +1 -0
- package/out/command-line/register-deployment-commands.js +16 -0
- package/out/command-line/register-environment-variables-commands.d.ts +3 -0
- package/out/command-line/register-environment-variables-commands.d.ts.map +1 -0
- package/out/command-line/register-environment-variables-commands.js +103 -0
- package/out/command-line/register-feedback-commands.d.ts +3 -0
- package/out/command-line/register-feedback-commands.d.ts.map +1 -0
- package/out/command-line/register-feedback-commands.js +32 -0
- package/out/command-line/register-installation-commands.d.ts +6 -0
- package/out/command-line/register-installation-commands.d.ts.map +1 -0
- package/out/command-line/register-installation-commands.js +143 -0
- package/out/command-line/register-lint-command.d.ts +8 -0
- package/out/command-line/register-lint-command.d.ts.map +1 -0
- package/out/command-line/register-lint-command.js +16 -0
- package/out/command-line/register-log-commands.d.ts +4 -0
- package/out/command-line/register-log-commands.d.ts.map +1 -0
- package/out/command-line/register-log-commands.js +139 -0
- package/out/command-line/register-providers-commands.d.ts +3 -0
- package/out/command-line/register-providers-commands.d.ts.map +1 -0
- package/out/command-line/register-providers-commands.js +44 -0
- package/out/command-line/register-settings-commands.d.ts +3 -0
- package/out/command-line/register-settings-commands.d.ts.map +1 -0
- package/out/command-line/register-settings-commands.js +39 -0
- package/out/command-line/register-tunnel-commands.d.ts +3 -0
- package/out/command-line/register-tunnel-commands.d.ts.map +1 -0
- package/out/command-line/register-tunnel-commands.js +15 -0
- package/out/command-line/register-webtrigger-commands.d.ts +3 -0
- package/out/command-line/register-webtrigger-commands.d.ts.map +1 -0
- package/out/command-line/register-webtrigger-commands.js +56 -0
- package/out/command-line/sentry.d.ts +4 -0
- package/out/command-line/sentry.d.ts.map +1 -0
- package/out/command-line/sentry.js +16 -0
- package/out/command-line/unique-machine-id.d.ts +3 -0
- package/out/command-line/unique-machine-id.d.ts.map +1 -0
- package/out/command-line/unique-machine-id.js +19 -0
- package/out/command-line/version-info.d.ts +9 -0
- package/out/command-line/version-info.d.ts.map +1 -0
- package/out/command-line/version-info.js +42 -0
- package/out/command-line/view/analytics-settings-view.d.ts +7 -0
- package/out/command-line/view/analytics-settings-view.d.ts.map +1 -0
- package/out/command-line/view/analytics-settings-view.js +18 -0
- package/out/command-line/view/deploy-view.d.ts +21 -0
- package/out/command-line/view/deploy-view.d.ts.map +1 -0
- package/out/command-line/view/deploy-view.js +58 -0
- package/out/command-line/view/install-view.d.ts +18 -0
- package/out/command-line/view/install-view.d.ts.map +1 -0
- package/out/command-line/view/install-view.js +56 -0
- package/out/command-line/view/lint-view.d.ts +12 -0
- package/out/command-line/view/lint-view.d.ts.map +1 -0
- package/out/command-line/view/lint-view.js +31 -0
- package/out/command-line/view/lite-lint-view.d.ts +10 -0
- package/out/command-line/view/lite-lint-view.d.ts.map +1 -0
- package/out/command-line/view/lite-lint-view.js +18 -0
- package/out/command-line/view/settings-view.d.ts +10 -0
- package/out/command-line/view/settings-view.d.ts.map +1 -0
- package/out/command-line/view/settings-view.js +26 -0
- package/out/command-line/view/tunnel-view.d.ts +20 -0
- package/out/command-line/view/tunnel-view.d.ts.map +1 -0
- package/out/command-line/view/tunnel-view.js +92 -0
- package/out/contributors/add-contributor.d.ts +17 -0
- package/out/contributors/add-contributor.d.ts.map +1 -0
- package/out/contributors/add-contributor.js +14 -0
- package/out/contributors/graphql-client.d.ts +14 -0
- package/out/contributors/graphql-client.d.ts.map +1 -0
- package/out/contributors/graphql-client.js +113 -0
- package/out/contributors/list-contributors.d.ts +18 -0
- package/out/contributors/list-contributors.d.ts.map +1 -0
- package/out/contributors/list-contributors.js +14 -0
- package/out/contributors/remove-contributors.d.ts +18 -0
- package/out/contributors/remove-contributors.d.ts.map +1 -0
- package/out/contributors/remove-contributors.js +14 -0
- package/out/deploy/deployer/deploy-monitor-graphql-client.d.ts +24 -0
- package/out/deploy/deployer/deploy-monitor-graphql-client.d.ts.map +1 -0
- package/out/deploy/deployer/deploy-monitor-graphql-client.js +57 -0
- package/out/deploy/deployer/deployer.d.ts +40 -0
- package/out/deploy/deployer/deployer.d.ts.map +1 -0
- package/out/deploy/deployer/deployer.js +187 -0
- package/out/deploy/deployer/index.d.ts +4 -0
- package/out/deploy/deployer/index.d.ts.map +1 -0
- package/out/deploy/deployer/index.js +6 -0
- package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts +19 -0
- package/out/deploy/deployer/trigger-deploy-graphql-client.d.ts.map +1 -0
- package/out/deploy/deployer/trigger-deploy-graphql-client.js +49 -0
- package/out/deploy/index.d.ts +5 -0
- package/out/deploy/index.d.ts.map +1 -0
- package/out/deploy/index.js +7 -0
- package/out/deploy/package-upload-deploy.d.ts +20 -0
- package/out/deploy/package-upload-deploy.d.ts.map +1 -0
- package/out/deploy/package-upload-deploy.js +37 -0
- package/out/deploy/packager/archiver.d.ts +27 -0
- package/out/deploy/packager/archiver.d.ts.map +1 -0
- package/out/deploy/packager/archiver.js +76 -0
- package/out/deploy/packager/index.d.ts +3 -0
- package/out/deploy/packager/index.d.ts.map +1 -0
- package/out/deploy/packager/index.js +5 -0
- package/out/deploy/packager/nativeui-bundler.d.ts +12 -0
- package/out/deploy/packager/nativeui-bundler.d.ts.map +1 -0
- package/out/deploy/packager/nativeui-bundler.js +34 -0
- package/out/deploy/packager/packager.d.ts +32 -0
- package/out/deploy/packager/packager.d.ts.map +1 -0
- package/out/deploy/packager/packager.js +21 -0
- package/out/deploy/packager/runtime-bundler.d.ts +15 -0
- package/out/deploy/packager/runtime-bundler.d.ts.map +1 -0
- package/out/deploy/packager/runtime-bundler.js +53 -0
- package/out/deploy/uploader/artifact-graphql-client.d.ts +26 -0
- package/out/deploy/uploader/artifact-graphql-client.d.ts.map +1 -0
- package/out/deploy/uploader/artifact-graphql-client.js +100 -0
- package/out/deploy/uploader/index.d.ts +3 -0
- package/out/deploy/uploader/index.d.ts.map +1 -0
- package/out/deploy/uploader/index.js +5 -0
- package/out/deploy/uploader/uploader.d.ts +19 -0
- package/out/deploy/uploader/uploader.d.ts.map +1 -0
- package/out/deploy/uploader/uploader.js +43 -0
- package/out/environment-variables/delete-environment-variable.d.ts +18 -0
- package/out/environment-variables/delete-environment-variable.d.ts.map +1 -0
- package/out/environment-variables/delete-environment-variable.js +14 -0
- package/out/environment-variables/graphql-client.d.ts +16 -0
- package/out/environment-variables/graphql-client.d.ts.map +1 -0
- package/out/environment-variables/graphql-client.js +113 -0
- package/out/environment-variables/list-environment-variables.d.ts +22 -0
- package/out/environment-variables/list-environment-variables.d.ts.map +1 -0
- package/out/environment-variables/list-environment-variables.js +14 -0
- package/out/environment-variables/set-environment-variable.d.ts +20 -0
- package/out/environment-variables/set-environment-variable.d.ts.map +1 -0
- package/out/environment-variables/set-environment-variable.js +14 -0
- package/out/installations/graphql-client.d.ts +75 -0
- package/out/installations/graphql-client.d.ts.map +1 -0
- package/out/installations/graphql-client.js +423 -0
- package/out/installations/install-app-site.d.ts +21 -0
- package/out/installations/install-app-site.d.ts.map +1 -0
- package/out/installations/install-app-site.js +19 -0
- package/out/installations/shared.d.ts +5 -0
- package/out/installations/shared.d.ts.map +1 -0
- package/out/installations/shared.js +20 -0
- package/out/installations/site-translation/bitbucket.d.ts +24 -0
- package/out/installations/site-translation/bitbucket.d.ts.map +1 -0
- package/out/installations/site-translation/bitbucket.js +113 -0
- package/out/installations/site-translation/cloudid-products.d.ts +17 -0
- package/out/installations/site-translation/cloudid-products.d.ts.map +1 -0
- package/out/installations/site-translation/cloudid-products.js +89 -0
- package/out/installations/site-translation/index.d.ts +4 -0
- package/out/installations/site-translation/index.d.ts.map +1 -0
- package/out/installations/site-translation/index.js +6 -0
- package/out/installations/site-translation/site-translation.d.ts +12 -0
- package/out/installations/site-translation/site-translation.d.ts.map +1 -0
- package/out/installations/site-translation/site-translation.js +2 -0
- package/out/installations/uninstall-app.d.ts +25 -0
- package/out/installations/uninstall-app.d.ts.map +1 -0
- package/out/installations/uninstall-app.js +43 -0
- package/out/migration-keys/graphql-client.d.ts +8 -0
- package/out/migration-keys/graphql-client.d.ts.map +1 -0
- package/out/migration-keys/graphql-client.js +55 -0
- package/out/providers/configure-provider.d.ts +19 -0
- package/out/providers/configure-provider.d.ts.map +1 -0
- package/out/providers/configure-provider.js +14 -0
- package/out/providers/graphql-client.d.ts +8 -0
- package/out/providers/graphql-client.d.ts.map +1 -0
- package/out/providers/graphql-client.js +45 -0
- package/out/service/cached-config-service.d.ts +8 -0
- package/out/service/cached-config-service.d.ts.map +1 -0
- package/out/service/cached-config-service.js +16 -0
- package/out/service/command-suggestion-service.d.ts +4 -0
- package/out/service/command-suggestion-service.d.ts.map +1 -0
- package/out/service/command-suggestion-service.js +17 -0
- package/out/service/docker-service.d.ts +24 -0
- package/out/service/docker-service.d.ts.map +1 -0
- package/out/service/docker-service.js +71 -0
- package/out/service/installation-service.d.ts +51 -0
- package/out/service/installation-service.d.ts.map +1 -0
- package/out/service/installation-service.js +91 -0
- package/out/service/lint-service.d.ts +23 -0
- package/out/service/lint-service.d.ts.map +1 -0
- package/out/service/lint-service.js +39 -0
- package/out/service/lite-lint-service.d.ts +10 -0
- package/out/service/lite-lint-service.d.ts.map +1 -0
- package/out/service/lite-lint-service.js +27 -0
- package/out/service/migration-keys-service.d.ts +19 -0
- package/out/service/migration-keys-service.d.ts.map +1 -0
- package/out/service/migration-keys-service.js +14 -0
- package/out/service/port-finding-service.d.ts +12 -0
- package/out/service/port-finding-service.d.ts.map +1 -0
- package/out/service/port-finding-service.js +34 -0
- package/out/service/resource-packaging-service.d.ts +46 -0
- package/out/service/resource-packaging-service.d.ts.map +1 -0
- package/out/service/resource-packaging-service.js +132 -0
- package/out/service/resources-uploader-service.d.ts +16 -0
- package/out/service/resources-uploader-service.d.ts.map +1 -0
- package/out/service/resources-uploader-service.js +39 -0
- package/out/service/tunnel-analytics-service.d.ts +11 -0
- package/out/service/tunnel-analytics-service.d.ts.map +1 -0
- package/out/service/tunnel-analytics-service.js +24 -0
- package/out/service/tunnel-service.d.ts +41 -0
- package/out/service/tunnel-service.d.ts.map +1 -0
- package/out/service/tunnel-service.js +196 -0
- package/out/storage/local-file-storage.d.ts +17 -0
- package/out/storage/local-file-storage.d.ts.map +1 -0
- package/out/storage/local-file-storage.js +53 -0
- package/out/webtrigger/get-webtrigger-url.d.ts +27 -0
- package/out/webtrigger/get-webtrigger-url.d.ts.map +1 -0
- package/out/webtrigger/get-webtrigger-url.js +26 -0
- package/out/webtrigger/graphql-client.d.ts +14 -0
- package/out/webtrigger/graphql-client.d.ts.map +1 -0
- package/out/webtrigger/graphql-client.js +52 -0
- package/out/workers/analytics-message-worker.d.ts +12 -0
- package/out/workers/analytics-message-worker.d.ts.map +1 -0
- package/out/workers/analytics-message-worker.js +29 -0
- package/out/workers/forge-cli-workers.d.ts +2 -0
- package/out/workers/forge-cli-workers.d.ts.map +1 -0
- package/out/workers/forge-cli-workers.js +21 -0
- package/out/workers/tunnel-clean-up-worker.d.ts +8 -0
- package/out/workers/tunnel-clean-up-worker.d.ts.map +1 -0
- package/out/workers/tunnel-clean-up-worker.js +31 -0
- package/out/workers/version-check-worker.d.ts +8 -0
- package/out/workers/version-check-worker.d.ts.map +1 -0
- package/out/workers/version-check-worker.js +20 -0
- package/out/workers/worker-info.d.ts +8 -0
- package/out/workers/worker-info.d.ts.map +1 -0
- package/out/workers/worker-info.js +15 -0
- package/out/workers/worker.d.ts +6 -0
- package/out/workers/worker.d.ts.map +1 -0
- package/out/workers/worker.js +9 -0
- package/out/workers/workers-starter.d.ts +5 -0
- package/out/workers/workers-starter.d.ts.map +1 -0
- package/out/workers/workers-starter.js +22 -0
- package/package.json +60 -5
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AppConfigProvider } from '@forge/cli-shared';
|
|
2
|
+
export interface ContributorDetails {
|
|
3
|
+
emails?: string[];
|
|
4
|
+
accountIds?: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface RemoveContributorsDetails extends ContributorDetails {
|
|
7
|
+
appId: string;
|
|
8
|
+
}
|
|
9
|
+
export interface RemoveContributorsClient {
|
|
10
|
+
removeContributors(details: RemoveContributorsDetails): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare class RemoveContributorsCommand {
|
|
13
|
+
private readonly client;
|
|
14
|
+
private readonly getAppConfig;
|
|
15
|
+
constructor(client: RemoveContributorsClient, getAppConfig: AppConfigProvider);
|
|
16
|
+
execute(details: ContributorDetails): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=remove-contributors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-contributors.d.ts","sourceRoot":"","sources":["../../src/contributors/remove-contributors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACnE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvE;AAED,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAA4B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAA/D,MAAM,EAAE,wBAAwB,EAAmB,YAAY,EAAE,iBAAiB;IAElG,OAAO,CAAC,OAAO,EAAE,kBAAkB;CAOjD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveContributorsCommand = void 0;
|
|
4
|
+
class RemoveContributorsCommand {
|
|
5
|
+
constructor(client, getAppConfig) {
|
|
6
|
+
this.client = client;
|
|
7
|
+
this.getAppConfig = getAppConfig;
|
|
8
|
+
}
|
|
9
|
+
async execute(details) {
|
|
10
|
+
const { id: appId } = await this.getAppConfig();
|
|
11
|
+
await this.client.removeContributors(Object.assign(Object.assign({}, details), { appId }));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.RemoveContributorsCommand = RemoveContributorsCommand;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AppDeployment, AppDeploymentLogEvent, AppDeploymentSnapshotLogEvent, AppDeploymentTransitionEvent, GraphQLClient } from '@forge/cli-shared';
|
|
2
|
+
export interface DeployMonitorDetails {
|
|
3
|
+
appId: string;
|
|
4
|
+
deploymentId: string;
|
|
5
|
+
environmentKey: string;
|
|
6
|
+
}
|
|
7
|
+
export declare enum DeployMonitorStatus {
|
|
8
|
+
InProgress = "IN_PROGRESS",
|
|
9
|
+
Done = "DONE",
|
|
10
|
+
Failed = "FAILED"
|
|
11
|
+
}
|
|
12
|
+
export declare type DeployMonitor = Pick<AppDeployment, 'stages'> & Pick<AppDeployment, 'errorDetails'> & {
|
|
13
|
+
status: DeployMonitorStatus;
|
|
14
|
+
};
|
|
15
|
+
export declare type DeployMonitorEvent = AppDeploymentLogEvent | AppDeploymentSnapshotLogEvent | AppDeploymentTransitionEvent;
|
|
16
|
+
export interface DeployMonitorClient {
|
|
17
|
+
getDeployment(details: DeployMonitorDetails): Promise<DeployMonitor>;
|
|
18
|
+
}
|
|
19
|
+
export declare class DeployMonitorGraphqlClient implements DeployMonitorClient {
|
|
20
|
+
private readonly graphqlClient;
|
|
21
|
+
constructor(graphqlClient: GraphQLClient);
|
|
22
|
+
getDeployment({ appId, environmentKey, deploymentId }: DeployMonitorDetails): Promise<DeployMonitor>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=deploy-monitor-graphql-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-monitor-graphql-client.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deploy-monitor-graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,4BAA4B,EAC5B,aAAa,EAEd,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,mBAAmB;IAC7B,UAAU,gBAAgB;IAC1B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GACvD,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAGxE,oBAAY,kBAAkB,GAAG,qBAAqB,GAAG,6BAA6B,GAAG,4BAA4B,CAAC;AAEtH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtE;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,aAAa,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC;CA8ClH"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeployMonitorGraphqlClient = exports.DeployMonitorStatus = void 0;
|
|
4
|
+
const trigger_deploy_graphql_client_1 = require("./trigger-deploy-graphql-client");
|
|
5
|
+
var DeployMonitorStatus;
|
|
6
|
+
(function (DeployMonitorStatus) {
|
|
7
|
+
DeployMonitorStatus["InProgress"] = "IN_PROGRESS";
|
|
8
|
+
DeployMonitorStatus["Done"] = "DONE";
|
|
9
|
+
DeployMonitorStatus["Failed"] = "FAILED";
|
|
10
|
+
})(DeployMonitorStatus = exports.DeployMonitorStatus || (exports.DeployMonitorStatus = {}));
|
|
11
|
+
class DeployMonitorGraphqlClient {
|
|
12
|
+
constructor(graphqlClient) {
|
|
13
|
+
this.graphqlClient = graphqlClient;
|
|
14
|
+
}
|
|
15
|
+
async getDeployment({ appId, environmentKey, deploymentId }) {
|
|
16
|
+
const result = await this.graphqlClient.query(`
|
|
17
|
+
query forge_cli_getApplicationDeploymentStatus($appId: ID!, $environmentKey: String!, $id: ID!) {
|
|
18
|
+
appDeployment(appId: $appId, environmentKey: $environmentKey, id: $id) {
|
|
19
|
+
status
|
|
20
|
+
errorDetails {
|
|
21
|
+
code
|
|
22
|
+
message
|
|
23
|
+
fields
|
|
24
|
+
}
|
|
25
|
+
stages {
|
|
26
|
+
description
|
|
27
|
+
events {
|
|
28
|
+
__typename
|
|
29
|
+
stepName
|
|
30
|
+
createdAt
|
|
31
|
+
...on AppDeploymentLogEvent {
|
|
32
|
+
message
|
|
33
|
+
level
|
|
34
|
+
}
|
|
35
|
+
...on AppDeploymentSnapshotLogEvent {
|
|
36
|
+
message
|
|
37
|
+
level
|
|
38
|
+
}
|
|
39
|
+
... on AppDeploymentTransitionEvent {
|
|
40
|
+
newStatus
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
`, {
|
|
47
|
+
appId,
|
|
48
|
+
environmentKey,
|
|
49
|
+
id: deploymentId
|
|
50
|
+
});
|
|
51
|
+
if (!result.appDeployment) {
|
|
52
|
+
throw new trigger_deploy_graphql_client_1.NoDeploymentError();
|
|
53
|
+
}
|
|
54
|
+
return result.appDeployment;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.DeployMonitorGraphqlClient = DeployMonitorGraphqlClient;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AppConfigProvider, Pause, UI, BaseError } from '@forge/cli-shared';
|
|
2
|
+
import { DeployMonitorClient, DeployMonitorStatus } from './deploy-monitor-graphql-client';
|
|
3
|
+
import { TriggerDeployClient } from './trigger-deploy-graphql-client';
|
|
4
|
+
export declare class AppDeploymentFailedError extends BaseError {
|
|
5
|
+
private readonly userError?;
|
|
6
|
+
constructor(userError?: boolean | undefined, message?: string);
|
|
7
|
+
isUserError(): boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class AppSnapshotFailedError extends BaseError {
|
|
10
|
+
private readonly userError?;
|
|
11
|
+
constructor(userError?: boolean | undefined, message?: string);
|
|
12
|
+
isUserError(): boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class HostedResourceDeploymentFailedError extends BaseError {
|
|
15
|
+
private readonly userError?;
|
|
16
|
+
constructor(userError?: boolean | undefined, message?: string);
|
|
17
|
+
isUserError(): boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface Deployer {
|
|
20
|
+
deploy(environmentKey: string, artifactUrl: string, hostedResourceUploadId?: string): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare class ArtifactDeployer implements Deployer {
|
|
23
|
+
private readonly getConfiguredApp;
|
|
24
|
+
private readonly deployClient;
|
|
25
|
+
private readonly deployMonitorClient;
|
|
26
|
+
private readonly pause;
|
|
27
|
+
private readonly ui;
|
|
28
|
+
constructor(getConfiguredApp: AppConfigProvider, deployClient: TriggerDeployClient, deployMonitorClient: DeployMonitorClient, pause: Pause, ui: UI);
|
|
29
|
+
deploy(environmentKey: string, artifactUrl: string, hostedResourceUploadId?: string): Promise<void>;
|
|
30
|
+
private doDeploy;
|
|
31
|
+
pollAndCheckEvents(appId: string, environmentKey: string, deploymentId: string, totalStreamed: number): Promise<{
|
|
32
|
+
status: DeployMonitorStatus;
|
|
33
|
+
totalStreamed: number;
|
|
34
|
+
}>;
|
|
35
|
+
private monitorDeployment;
|
|
36
|
+
private extractAllEvents;
|
|
37
|
+
private getDeploymentEventsHandler;
|
|
38
|
+
private handleErrorEvent;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=deployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAOjB,KAAK,EAEL,EAAE,EAEF,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC/G,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,qBAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAG3D,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,qBAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAG3D,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,qBAAS,EAAE,OAAO,CAAC,EAAE,MAAM;IAG3D,WAAW,IAAI,OAAO;CAG9B;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG;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,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMlG,QAAQ;IAcT,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;CAiDzB"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArtifactDeployer = exports.HostedResourceDeploymentFailedError = exports.AppSnapshotFailedError = exports.AppDeploymentFailedError = void 0;
|
|
4
|
+
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
+
const deploy_monitor_graphql_client_1 = require("./deploy-monitor-graphql-client");
|
|
6
|
+
const DEPLOYMENT_EVENT_POLL_INTERVAL = 500;
|
|
7
|
+
class AppDeploymentFailedError extends cli_shared_1.BaseError {
|
|
8
|
+
constructor(userError, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.userError = userError;
|
|
11
|
+
}
|
|
12
|
+
isUserError() {
|
|
13
|
+
return Boolean(this.userError);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.AppDeploymentFailedError = AppDeploymentFailedError;
|
|
17
|
+
class AppSnapshotFailedError extends cli_shared_1.BaseError {
|
|
18
|
+
constructor(userError, message) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.userError = userError;
|
|
21
|
+
}
|
|
22
|
+
isUserError() {
|
|
23
|
+
return Boolean(this.userError);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.AppSnapshotFailedError = AppSnapshotFailedError;
|
|
27
|
+
class HostedResourceDeploymentFailedError extends cli_shared_1.BaseError {
|
|
28
|
+
constructor(userError, message) {
|
|
29
|
+
super(message);
|
|
30
|
+
this.userError = userError;
|
|
31
|
+
}
|
|
32
|
+
isUserError() {
|
|
33
|
+
return Boolean(this.userError);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.HostedResourceDeploymentFailedError = HostedResourceDeploymentFailedError;
|
|
37
|
+
function isTransitionEvent(event) {
|
|
38
|
+
return event.__typename === 'AppDeploymentTransitionEvent';
|
|
39
|
+
}
|
|
40
|
+
function isSnapshotLogEvent(event) {
|
|
41
|
+
return event.__typename === 'AppDeploymentSnapshotLogEvent';
|
|
42
|
+
}
|
|
43
|
+
function isValidSnapshotLogEvent(event) {
|
|
44
|
+
return !!(event.message && event.level);
|
|
45
|
+
}
|
|
46
|
+
class ArtifactDeployer {
|
|
47
|
+
constructor(getConfiguredApp, deployClient, deployMonitorClient, pause, ui) {
|
|
48
|
+
this.getConfiguredApp = getConfiguredApp;
|
|
49
|
+
this.deployClient = deployClient;
|
|
50
|
+
this.deployMonitorClient = deployMonitorClient;
|
|
51
|
+
this.pause = pause;
|
|
52
|
+
this.ui = ui;
|
|
53
|
+
}
|
|
54
|
+
async deploy(environmentKey, artifactUrl, hostedResourceUploadId) {
|
|
55
|
+
const { id } = await this.getConfiguredApp();
|
|
56
|
+
const deploymentId = await this.doDeploy(id, environmentKey, artifactUrl, hostedResourceUploadId);
|
|
57
|
+
await this.monitorDeployment(id, environmentKey, deploymentId);
|
|
58
|
+
}
|
|
59
|
+
async doDeploy(appId, environmentKey, artifactUrl, hostedResourceUploadId) {
|
|
60
|
+
return await this.deployClient.deploy({
|
|
61
|
+
appId,
|
|
62
|
+
environmentKey,
|
|
63
|
+
artifactUrl,
|
|
64
|
+
hostedResourceUploadId
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed) {
|
|
68
|
+
const { stages, status, errorDetails } = await this.deployMonitorClient.getDeployment({
|
|
69
|
+
appId,
|
|
70
|
+
environmentKey,
|
|
71
|
+
deploymentId
|
|
72
|
+
});
|
|
73
|
+
const events = this.extractAllEvents(stages || []);
|
|
74
|
+
const handleEvent = this.getDeploymentEventsHandler();
|
|
75
|
+
if (events.length > totalStreamed) {
|
|
76
|
+
for (let i = totalStreamed; i < events.length; i++) {
|
|
77
|
+
handleEvent(events[i]);
|
|
78
|
+
}
|
|
79
|
+
totalStreamed = events.length;
|
|
80
|
+
}
|
|
81
|
+
if (status === deploy_monitor_graphql_client_1.DeployMonitorStatus.Failed) {
|
|
82
|
+
this.handleErrorEvent(errorDetails);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
status,
|
|
86
|
+
totalStreamed
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
async monitorDeployment(appId, environmentKey, deploymentId) {
|
|
90
|
+
let totalStreamed = 0;
|
|
91
|
+
let status = deploy_monitor_graphql_client_1.DeployMonitorStatus.InProgress;
|
|
92
|
+
while (status !== deploy_monitor_graphql_client_1.DeployMonitorStatus.Done) {
|
|
93
|
+
const checks = await this.pollAndCheckEvents(appId, environmentKey, deploymentId, totalStreamed);
|
|
94
|
+
totalStreamed = checks.totalStreamed;
|
|
95
|
+
status = checks.status;
|
|
96
|
+
await this.pause(DEPLOYMENT_EVENT_POLL_INTERVAL);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
extractAllEvents(stages) {
|
|
100
|
+
return (0, cli_shared_1.flatMap)(stages, (stage) => {
|
|
101
|
+
const events = stage.events || [];
|
|
102
|
+
let stageHasTransitionEvent = false;
|
|
103
|
+
return events
|
|
104
|
+
.filter((event) => {
|
|
105
|
+
if (!isTransitionEvent(event)) {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
if (stageHasTransitionEvent) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
stageHasTransitionEvent = true;
|
|
112
|
+
return true;
|
|
113
|
+
})
|
|
114
|
+
.map((event) => (Object.assign(Object.assign({}, event), { stepName: stage.description })));
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
getDeploymentEventsHandler() {
|
|
118
|
+
let addNewLineBetweenTransitions = false;
|
|
119
|
+
return (event) => {
|
|
120
|
+
if (isTransitionEvent(event)) {
|
|
121
|
+
if (event.newStatus === 'STARTED') {
|
|
122
|
+
if (addNewLineBetweenTransitions) {
|
|
123
|
+
this.ui.emptyLine();
|
|
124
|
+
addNewLineBetweenTransitions = false;
|
|
125
|
+
}
|
|
126
|
+
this.ui.info(cli_shared_1.Text.deploy.taskDeploy.serverStepStarted(event.stepName));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else if (isSnapshotLogEvent(event)) {
|
|
130
|
+
if (!addNewLineBetweenTransitions) {
|
|
131
|
+
this.ui.emptyLine();
|
|
132
|
+
addNewLineBetweenTransitions = true;
|
|
133
|
+
}
|
|
134
|
+
if (isValidSnapshotLogEvent(event)) {
|
|
135
|
+
this.ui.snapshotLog(event.message, event.level);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (event.message) {
|
|
139
|
+
this.ui.debug(event.message);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
handleErrorEvent(errorDetails) {
|
|
144
|
+
var _a;
|
|
145
|
+
if (errorDetails) {
|
|
146
|
+
const { code, message } = errorDetails;
|
|
147
|
+
if (code === 'APP_CODE_SNAPSHOT_FAILED') {
|
|
148
|
+
throw new AppSnapshotFailedError(true, cli_shared_1.Text.snapshot.error('App code snapshot error', message));
|
|
149
|
+
}
|
|
150
|
+
if (code === 'APP_CODE_SNAPSHOT_TIMEOUT') {
|
|
151
|
+
throw new AppSnapshotFailedError(false, cli_shared_1.Text.snapshot.timeout);
|
|
152
|
+
}
|
|
153
|
+
if (code === 'ENVIRONMENT_UPDATE_VALIDATION_FAILED') {
|
|
154
|
+
const causeMessage = (_a = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.fields) === null || _a === void 0 ? void 0 : _a.validationResult.message.replace(/Upsert.*Details /, '');
|
|
155
|
+
if ((causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.startsWith('Invalid URL')) && causeMessage.includes('EGRESS')) {
|
|
156
|
+
throw new AppDeploymentFailedError(true, cli_shared_1.Text.deploy.egressURL.invalidURLError(causeMessage));
|
|
157
|
+
}
|
|
158
|
+
else if (causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.startsWith('Egress permission URL')) {
|
|
159
|
+
throw new AppDeploymentFailedError(true, cli_shared_1.Text.deploy.egressURL.tooManyURLCharactersError(causeMessage));
|
|
160
|
+
}
|
|
161
|
+
else if (causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.includes('permission URLs provided, exceeding')) {
|
|
162
|
+
throw new AppDeploymentFailedError(true, cli_shared_1.Text.deploy.egressURL.tooManyUrlsError(causeMessage));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if ([
|
|
166
|
+
'HOSTED_RESOURCE_TOO_MANY_FILES',
|
|
167
|
+
'HOSTED_RESOURCE_ZIP_TOO_BIG',
|
|
168
|
+
'HOSTED_RESOURCE_FILE_PATH_REFERS_TO_PARENT',
|
|
169
|
+
'HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS'
|
|
170
|
+
].includes(code)) {
|
|
171
|
+
throw new HostedResourceDeploymentFailedError(true, cli_shared_1.Text.hostedResources.error(message));
|
|
172
|
+
}
|
|
173
|
+
if ([
|
|
174
|
+
'HOSTED_RESOURCE_FAILED_TO_FETCH',
|
|
175
|
+
'HOSTED_RESOURCE_FAILED_TO_COPY',
|
|
176
|
+
'HOSTED_RESOURCE_UPLOAD_ID_MISSING'
|
|
177
|
+
].includes(code)) {
|
|
178
|
+
throw new HostedResourceDeploymentFailedError(false, cli_shared_1.Text.hostedResources.error(message));
|
|
179
|
+
}
|
|
180
|
+
if (code === 'HOSTED_RESOURCES_LAMBDA_TIMEOUT') {
|
|
181
|
+
throw new HostedResourceDeploymentFailedError(false, cli_shared_1.Text.hostedResources.error(cli_shared_1.Text.hostedResources.lambdaTimeout));
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
throw new AppDeploymentFailedError(false, cli_shared_1.Text.deploy.taskDeploy.serverStepFailed);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
exports.ArtifactDeployer = ArtifactDeployer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/index.ts"],"names":[],"mappings":"AAEA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./deploy-monitor-graphql-client"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./deployer"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./trigger-deploy-graphql-client"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GraphQLClient } from '@forge/cli-shared';
|
|
2
|
+
export interface TriggerDeployDetails {
|
|
3
|
+
appId: string;
|
|
4
|
+
environmentKey: string;
|
|
5
|
+
artifactUrl: string;
|
|
6
|
+
hostedResourceUploadId?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface TriggerDeployClient {
|
|
9
|
+
deploy(details: TriggerDeployDetails): Promise<string>;
|
|
10
|
+
}
|
|
11
|
+
export declare class NoDeploymentError extends Error {
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
export declare class TriggerDeployGraphQLClient implements TriggerDeployClient {
|
|
15
|
+
private readonly graphqlClient;
|
|
16
|
+
constructor(graphqlClient: GraphQLClient);
|
|
17
|
+
deploy(deploymentDetails: TriggerDeployDetails): Promise<string>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=trigger-deploy-graphql-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-deploy-graphql-client.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/trigger-deploy-graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAId,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxD;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAI3C;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB;CA2C5D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TriggerDeployGraphQLClient = exports.NoDeploymentError = void 0;
|
|
4
|
+
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
|
+
class NoDeploymentError extends Error {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(cli_shared_1.Text.deploy.error.notFound);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.NoDeploymentError = NoDeploymentError;
|
|
11
|
+
class TriggerDeployGraphQLClient {
|
|
12
|
+
constructor(graphqlClient) {
|
|
13
|
+
this.graphqlClient = graphqlClient;
|
|
14
|
+
}
|
|
15
|
+
async deploy(deploymentDetails) {
|
|
16
|
+
const deployAppQuery = `
|
|
17
|
+
mutation forge_cli_deployApplication($input: CreateAppDeploymentInput!) {
|
|
18
|
+
createAppDeployment(input: $input) {
|
|
19
|
+
success
|
|
20
|
+
errors {
|
|
21
|
+
message
|
|
22
|
+
extensions {
|
|
23
|
+
errorType
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
deployment {
|
|
27
|
+
id
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
`;
|
|
32
|
+
const { response: { createAppDeployment: { deployment, success, errors } }, requestId } = await this.graphqlClient.mutate(deployAppQuery, {
|
|
33
|
+
input: deploymentDetails
|
|
34
|
+
});
|
|
35
|
+
const error = (0, cli_shared_1.getError)(errors);
|
|
36
|
+
if (!success) {
|
|
37
|
+
throw new cli_shared_1.GraphQlMutationError(`${error.message} (requestId: ${requestId || 'unknown'})`, {
|
|
38
|
+
requestId,
|
|
39
|
+
code: error.code,
|
|
40
|
+
statusCode: error.statusCode
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if (!deployment) {
|
|
44
|
+
throw new NoDeploymentError();
|
|
45
|
+
}
|
|
46
|
+
return deployment.id;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.TriggerDeployGraphQLClient = TriggerDeployGraphQLClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deploy/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./deployer"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./packager"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./uploader"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./package-upload-deploy"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Deployer } from './deployer/deployer';
|
|
2
|
+
import { Packager } from './packager/packager';
|
|
3
|
+
import { ArchiveUploader } from './uploader/uploader';
|
|
4
|
+
import { DeploymentResult } from '../command-line/register-deployment-commands';
|
|
5
|
+
import { Handler, ResourceDetails } from '@forge/cli-shared';
|
|
6
|
+
import { ResourcePackagingService } from '../service/resource-packaging-service';
|
|
7
|
+
export interface Details {
|
|
8
|
+
handlers: Array<Handler>;
|
|
9
|
+
environmentKey: string;
|
|
10
|
+
resources: ResourceDetails[];
|
|
11
|
+
}
|
|
12
|
+
export declare class PackageUploadDeployCommand {
|
|
13
|
+
private readonly packager;
|
|
14
|
+
private readonly archiveUploader;
|
|
15
|
+
private readonly deployer;
|
|
16
|
+
private readonly resourcePackagingService;
|
|
17
|
+
constructor(packager: Packager, archiveUploader: ArchiveUploader, deployer: Deployer, resourcePackagingService: ResourcePackagingService);
|
|
18
|
+
execute(details: Details): Promise<DeploymentResult>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=package-upload-deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7D,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;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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageUploadDeployCommand = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
class PackageUploadDeployCommand {
|
|
6
|
+
constructor(packager, archiveUploader, deployer, resourcePackagingService) {
|
|
7
|
+
this.packager = packager;
|
|
8
|
+
this.archiveUploader = archiveUploader;
|
|
9
|
+
this.deployer = deployer;
|
|
10
|
+
this.resourcePackagingService = resourcePackagingService;
|
|
11
|
+
}
|
|
12
|
+
async execute(details) {
|
|
13
|
+
const [resourcesToBeBundled, preBundledResources] = (0, 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
|
+
]);
|
|
23
|
+
await this.deployer.deploy(details.environmentKey, uploadUrl, hostedResourceUploadId);
|
|
24
|
+
return {
|
|
25
|
+
analytics: {
|
|
26
|
+
moduleList,
|
|
27
|
+
hostedResourceList: Object.values(resourcesArchives).map((a) => ({
|
|
28
|
+
extensionList: a.extensions,
|
|
29
|
+
fileCount: a.fileCount,
|
|
30
|
+
rawSize: a.rawSize,
|
|
31
|
+
zipSize: a.zipSize
|
|
32
|
+
}))
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.PackageUploadDeployCommand = PackageUploadDeployCommand;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Logger } from '@forge/cli-shared';
|
|
3
|
+
export interface Archiver {
|
|
4
|
+
addFile(fileName: string, contents: Buffer): void;
|
|
5
|
+
addFileFrom(fileName: string, filePath: string): void;
|
|
6
|
+
finalise(): Promise<string>;
|
|
7
|
+
onWarning(cb: (err: Error) => void): void;
|
|
8
|
+
onEntry(cb: (filePath: string) => void): void;
|
|
9
|
+
}
|
|
10
|
+
export declare class ZipArchiver implements Archiver {
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private archive;
|
|
13
|
+
private tempFile;
|
|
14
|
+
private resolves;
|
|
15
|
+
private rejects;
|
|
16
|
+
private inspectDirectory;
|
|
17
|
+
constructor(logger: Logger);
|
|
18
|
+
addFile(fileName: string, contents: Buffer): void;
|
|
19
|
+
addFileFrom(fileName: string, filePath: string): void;
|
|
20
|
+
private copyToInspect;
|
|
21
|
+
finalise(): Promise<string>;
|
|
22
|
+
onWarning(cb: (err: Error) => void): void;
|
|
23
|
+
onEntry(cb: (filePath: string) => void): void;
|
|
24
|
+
private onArchiveError;
|
|
25
|
+
private onClose;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=archiver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/archiver.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAQ,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/C;AAED,qBAAa,WAAY,YAAW,QAAQ;IAO9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,gBAAgB,CAAuB;gBAElB,MAAM,EAAE,MAAM;IAYpC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM5D,OAAO,CAAC,aAAa;IAYd,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAS3B,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAIlC,OAAO,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;IAQ7C,OAAO,CAAC,cAAc,CAIpB;IAEF,OAAO,CAAC,OAAO,CAIb;CACH"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZipArchiver = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const archiver_1 = tslib_1.__importDefault(require("archiver"));
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const tmp_1 = tslib_1.__importDefault(require("tmp"));
|
|
9
|
+
const cli_shared_1 = require("@forge/cli-shared");
|
|
10
|
+
class ZipArchiver {
|
|
11
|
+
constructor(logger) {
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
this.archive = (0, archiver_1.default)('zip');
|
|
14
|
+
this.tempFile = tmp_1.default.fileSync({ postfix: '.zip' });
|
|
15
|
+
this.resolves = [];
|
|
16
|
+
this.rejects = [];
|
|
17
|
+
this.inspectDirectory = null;
|
|
18
|
+
this.onArchiveError = (err) => {
|
|
19
|
+
for (const reject of this.rejects) {
|
|
20
|
+
reject(err);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
this.onClose = () => {
|
|
24
|
+
for (const resolve of this.resolves) {
|
|
25
|
+
resolve(this.tempFile.name);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const output = (0, fs_1.createWriteStream)(this.tempFile.name);
|
|
29
|
+
this.archive.pipe(output);
|
|
30
|
+
output.on('close', this.onClose);
|
|
31
|
+
this.archive.on('error', this.onArchiveError);
|
|
32
|
+
if (process.env.FORGE_INSPECT_ARCHIVE) {
|
|
33
|
+
this.inspectDirectory = process.env.FORGE_INSPECT_ARCHIVE;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
addFile(fileName, contents) {
|
|
37
|
+
this.archive.append(contents, { name: fileName });
|
|
38
|
+
this.copyToInspect(fileName, contents);
|
|
39
|
+
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, null));
|
|
40
|
+
}
|
|
41
|
+
addFileFrom(fileName, filePath) {
|
|
42
|
+
this.archive.file(filePath, { name: fileName });
|
|
43
|
+
this.copyToInspect(fileName, filePath);
|
|
44
|
+
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, filePath));
|
|
45
|
+
}
|
|
46
|
+
copyToInspect(fileName, contents) {
|
|
47
|
+
if (this.inspectDirectory) {
|
|
48
|
+
const targetName = (0, path_1.join)(this.inspectDirectory, fileName);
|
|
49
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(targetName), { recursive: true });
|
|
50
|
+
if (typeof contents === 'string') {
|
|
51
|
+
(0, fs_1.copyFileSync)(contents, targetName);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
(0, fs_1.writeFileSync)(targetName, contents);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
finalise() {
|
|
59
|
+
return new Promise((resolve, reject) => {
|
|
60
|
+
this.resolves.push(resolve);
|
|
61
|
+
this.rejects.push(reject);
|
|
62
|
+
this.archive.finalize();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
onWarning(cb) {
|
|
66
|
+
this.archive.on('warning', cb);
|
|
67
|
+
}
|
|
68
|
+
onEntry(cb) {
|
|
69
|
+
this.archive.on('entry', (entry) => {
|
|
70
|
+
if (entry.name) {
|
|
71
|
+
cb(entry.name);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.ZipArchiver = ZipArchiver;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|