@forge/cli 6.18.0 → 6.19.0-next.27
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 +330 -0
- package/npm-shrinkwrap.json +1421 -813
- package/out/command-line/controller/deploy-controller.d.ts.map +1 -1
- package/out/command-line/controller/deploy-controller.js +3 -1
- package/out/command-line/controller/tunnel-controller.d.ts.map +1 -1
- package/out/command-line/controller/tunnel-controller.js +4 -0
- package/out/command-line/dependency-injection.js +4 -4
- package/out/deploy/deployer/deployer.d.ts +4 -1
- package/out/deploy/deployer/deployer.d.ts.map +1 -1
- package/out/deploy/deployer/deployer.js +46 -34
- package/out/deploy/package-upload-deploy.d.ts +3 -1
- package/out/deploy/package-upload-deploy.d.ts.map +1 -1
- package/out/deploy/package-upload-deploy.js +1 -1
- package/out/deploy/packager/archiver.d.ts +20 -6
- package/out/deploy/packager/archiver.d.ts.map +1 -1
- package/out/deploy/packager/archiver.js +67 -26
- package/out/deploy/packager/packager.d.ts +3 -2
- package/out/deploy/packager/packager.d.ts.map +1 -1
- package/out/deploy/packager/packager.js +2 -2
- package/out/deploy/packager/runtime-bundler.d.ts +11 -1
- package/out/deploy/packager/runtime-bundler.d.ts.map +1 -1
- package/out/deploy/packager/runtime-bundler.js +36 -7
- package/out/environment-variables/graphql-client.d.ts.map +1 -1
- package/out/service/lint-service.d.ts +1 -1
- package/out/service/lint-service.d.ts.map +1 -1
- package/out/service/tunnel-service.js +1 -1
- package/out/storage/local-file-storage.js +2 -2
- package/package.json +20 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAEpB,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAVxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YA2BnB,oBAAoB;YAgBpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/deploy-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAEpB,UAAU,EACV,cAAc,EACd,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAA+B,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM,EAAE;IAItC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAGpC,aAAa,IAAI,cAAc;IAM/B,WAAW,IAAI,OAAO;CAG9B;AAED,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iCAAiC;IAClD,OAAO,CAAC,QAAQ,CAAC,8BAA8B;IAC/C,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAVxB,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,oBAAoB,EAAE,mBAAmB,EACzC,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,oBAAoB,EAAE,oBAAoB,EAC1C,UAAU,EAAE,UAAU,EACtB,iCAAiC,EAAE,0BAA0B,EAC7D,8BAA8B,EAAE,0BAA0B,EAC1D,wBAAwB,EAAE,wBAAwB;IAGrE,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,iBAAiB;YAGX,wBAAwB;YAwBxB,mBAAmB;YA2BnB,oBAAoB;YAgBpB,2BAA2B;YAe3B,wBAAwB;IAkBzB,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;CA6D3G"}
|
|
@@ -136,6 +136,7 @@ class DeployController {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
async run({ environment, verify, nonInteractive }) {
|
|
139
|
+
var _a;
|
|
139
140
|
const { id } = await this.appConfigProvider();
|
|
140
141
|
const appDetails = await this.getAppEnvironmentDetails(id, environment, nonInteractive);
|
|
141
142
|
this.deployView.displayStart(environment, appDetails.environmentType);
|
|
@@ -169,7 +170,8 @@ class DeployController {
|
|
|
169
170
|
const deployCommand = (await this.configFile.runtimeType()) === cli_shared_1.RuntimeType.nodejs
|
|
170
171
|
? this.nodePackageUploadDeployCommand
|
|
171
172
|
: this.sandboxPackageUploadDeployCommand;
|
|
172
|
-
const
|
|
173
|
+
const packageConfig = (_a = (await this.configFile.readConfig()).app) === null || _a === void 0 ? void 0 : _a.package;
|
|
174
|
+
const analytics = await this.deployView.reportDeploymentProgress(appDetails, hasProdInstallations, () => deployCommand.execute({ handlers, resources, environmentKey: environment, packageConfig }));
|
|
173
175
|
if (verify) {
|
|
174
176
|
await this.verifyPostDeployment(environment);
|
|
175
177
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EAIV,+BAA+B,EAEhC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tunnel-controller.d.ts","sourceRoot":"","sources":["../../../src/command-line/controller/tunnel-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,UAAU,EAIV,+BAA+B,EAEhC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBALV,gBAAgB,EAAE,sBAAsB,EACxC,iBAAiB,EAAE,aAAa,EAChC,kBAAkB,EAAE,aAAa,EACjC,mBAAmB,EAAE,mBAAmB,EACxC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU;IAG5B,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnE,eAAe,CAC1B,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,+BAA+B,EACtC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,IAAI,CAAC;CAuBjB"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TunnelController = void 0;
|
|
4
4
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
5
|
const docker_service_1 = require("../../service/docker-service");
|
|
6
|
+
const path_1 = require("path");
|
|
6
7
|
class TunnelController {
|
|
7
8
|
constructor(analyticsService, nodeTunnelService, localTunnelService, dockerTunnelService, tunnelView, configFile) {
|
|
8
9
|
this.analyticsService = analyticsService;
|
|
@@ -16,6 +17,9 @@ class TunnelController {
|
|
|
16
17
|
const creds = await (0, cli_shared_1.getCredentialStore)(ui).getCredentials();
|
|
17
18
|
const localTunnelErrorCallback = this.tunnelView.getTunnelErrorHandler(cli_shared_1.exitOnError);
|
|
18
19
|
this.tunnelView.dockerPreamble(tunnelOptions.environment);
|
|
20
|
+
if (tunnelOptions.ngrokConfig) {
|
|
21
|
+
tunnelOptions.ngrokConfig = (0, path_1.resolve)(tunnelOptions.ngrokConfig);
|
|
22
|
+
}
|
|
19
23
|
if ((await this.configFile.runtimeType()) === cli_shared_1.RuntimeType.nodejs) {
|
|
20
24
|
return await this.nodeTunnelService.run(tunnelOptions, creds, ui.debugEnabled);
|
|
21
25
|
}
|
|
@@ -139,15 +139,15 @@ const getDependencies = async (cliDetails) => {
|
|
|
139
139
|
const uninstallAppCommand = new uninstall_app_1.UninstallAppCommand(assertiveAppConfigReader, installationsClient);
|
|
140
140
|
const deployMonitorClient = new deploy_1.DeployMonitorGraphqlClient(graphQLClient);
|
|
141
141
|
const webTriggerGraphqlClient = new graphql_client_7.WebTriggerGraphQLClient(graphQLClient);
|
|
142
|
-
const archiverFactory = () =>
|
|
142
|
+
const archiverFactory = () => (0, deploy_1.makeArchiver)(ui);
|
|
143
143
|
const uploaderArtifactClient = new deploy_1.ArtifactGraphQLClient(graphQLClient);
|
|
144
144
|
const triggerDeployClient = new deploy_1.TriggerDeployGraphQLClient(graphQLClient);
|
|
145
145
|
const archiveUploader = new deploy_1.AppArchiveUploader(assertiveAppConfigReader, uploaderArtifactClient, fileUploader, ui, new resources_uploader_service_1.ResourcesUploaderService(fileReader));
|
|
146
146
|
const deployer = new deploy_1.ArtifactDeployer(assertiveAppConfigReader, triggerDeployClient, deployMonitorClient, cli_shared_1.pause, ui);
|
|
147
147
|
const sandboxBundle = (0, bundler_1.getSandboxBundler)();
|
|
148
|
-
const nodeBundle = (0, bundler_1.getNodeBundler)(
|
|
149
|
-
const sandboxRuntimeBundler = new runtime_bundler_1.
|
|
150
|
-
const nodeRuntimeBundler = new runtime_bundler_1.
|
|
148
|
+
const nodeBundle = (0, bundler_1.getNodeBundler)((0, bundler_1.getWrapperProvider)({ fileSystemReader: fileReader }));
|
|
149
|
+
const sandboxRuntimeBundler = new runtime_bundler_1.SandboxRuntimeBundler(archiverFactory, ui, sandboxBundle);
|
|
150
|
+
const nodeRuntimeBundler = new runtime_bundler_1.NodeRuntimeBundler(archiverFactory, ui, nodeBundle);
|
|
151
151
|
const nativeUiBundler = new nativeui_bundler_1.NativeUIBundler(ui, bundler_1.nativeUiBundle);
|
|
152
152
|
const sandboxAppPackager = new deploy_1.AppPackager(sandboxRuntimeBundler, nativeUiBundler, ui);
|
|
153
153
|
const nodeAppPackager = new deploy_1.AppPackager(nodeRuntimeBundler, nativeUiBundler, ui);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppConfigProvider, AppDeploymentStatus, Pause, UI, BaseError } from '@forge/cli-shared';
|
|
1
|
+
import { AppConfigProvider, AppDeploymentStatus, Pause, UI, UserError, BaseError } from '@forge/cli-shared';
|
|
2
2
|
import { DeployMonitorClient } from './deploy-monitor-graphql-client';
|
|
3
3
|
import { TriggerDeployClient } from './trigger-deploy-graphql-client';
|
|
4
4
|
export declare class AppDeploymentFailedError extends BaseError {
|
|
@@ -16,6 +16,9 @@ export declare class HostedResourceDeploymentFailedError extends BaseError {
|
|
|
16
16
|
constructor(userError?: boolean, requestId?: string | undefined, message?: string);
|
|
17
17
|
isUserError(): boolean;
|
|
18
18
|
}
|
|
19
|
+
export declare class ManifestValidationFailedError extends UserError {
|
|
20
|
+
constructor(requestId?: string | undefined, message?: string);
|
|
21
|
+
}
|
|
19
22
|
export interface Deployer {
|
|
20
23
|
deploy(environmentKey: string, artifactUrl: string, hostedResourceUploadId?: string): Promise<void>;
|
|
21
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/deploy/deployer/deployer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAKjB,mBAAmB,EAGnB,KAAK,EAEL,EAAE,EACF,SAAS,EAET,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAsB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAItE,qBAAa,wBAAyB,SAAQ,SAAS;IAEnD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,sBAAuB,SAAQ,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,mCAAoC,SAAQ,SAAS;IAE9D,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe,EAC3C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE,MAAM;IAIX,WAAW,IAAI,OAAO;CAG9B;AACD,qBAAa,6BAA8B,SAAQ,SAAS;gBAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAG7D;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,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;CA8DzB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArtifactDeployer = exports.HostedResourceDeploymentFailedError = exports.AppSnapshotFailedError = exports.AppDeploymentFailedError = void 0;
|
|
3
|
+
exports.ArtifactDeployer = exports.ManifestValidationFailedError = exports.HostedResourceDeploymentFailedError = exports.AppSnapshotFailedError = exports.AppDeploymentFailedError = void 0;
|
|
4
4
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
5
5
|
const DEPLOYMENT_EVENT_POLL_INTERVAL = 500;
|
|
6
6
|
class AppDeploymentFailedError extends cli_shared_1.BaseError {
|
|
@@ -33,6 +33,12 @@ class HostedResourceDeploymentFailedError extends cli_shared_1.BaseError {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
exports.HostedResourceDeploymentFailedError = HostedResourceDeploymentFailedError;
|
|
36
|
+
class ManifestValidationFailedError extends cli_shared_1.UserError {
|
|
37
|
+
constructor(requestId, message) {
|
|
38
|
+
super(`${message} (requestId: ${requestId || 'unknown'})`, requestId);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ManifestValidationFailedError = ManifestValidationFailedError;
|
|
36
42
|
function isTransitionEvent(event) {
|
|
37
43
|
return event.__typename === 'AppDeploymentTransitionEvent';
|
|
38
44
|
}
|
|
@@ -143,42 +149,48 @@ class ArtifactDeployer {
|
|
|
143
149
|
var _a;
|
|
144
150
|
if (errorDetails) {
|
|
145
151
|
const { code, message } = errorDetails;
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
if (code === 'APP_CODE_SNAPSHOT_TIMEOUT') {
|
|
150
|
-
throw new AppSnapshotFailedError(false, requestId, cli_shared_1.Text.snapshot.timeout);
|
|
151
|
-
}
|
|
152
|
-
if (code === 'ENVIRONMENT_UPDATE_VALIDATION_FAILED') {
|
|
153
|
-
const causeMessage = (_a = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.fields) === null || _a === void 0 ? void 0 : _a.validationResult.message.replace(/Upsert.*Details /, '');
|
|
154
|
-
if ((causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.startsWith('Invalid URL')) && causeMessage.includes('EGRESS')) {
|
|
155
|
-
throw new AppDeploymentFailedError(true, requestId, cli_shared_1.Text.deploy.egressURL.invalidURLError(causeMessage));
|
|
152
|
+
switch (code) {
|
|
153
|
+
case 'APP_CODE_SNAPSHOT_FAILED': {
|
|
154
|
+
throw new AppSnapshotFailedError(true, requestId, cli_shared_1.Text.snapshot.error('App code snapshot error', message));
|
|
156
155
|
}
|
|
157
|
-
|
|
158
|
-
throw new
|
|
156
|
+
case 'APP_CODE_SNAPSHOT_TIMEOUT': {
|
|
157
|
+
throw new AppSnapshotFailedError(false, requestId, cli_shared_1.Text.snapshot.timeout);
|
|
159
158
|
}
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
case 'ENVIRONMENT_UPDATE_VALIDATION_FAILED': {
|
|
160
|
+
const causeMessage = (_a = errorDetails === null || errorDetails === void 0 ? void 0 : errorDetails.fields) === null || _a === void 0 ? void 0 : _a.validationResult.message.replace(/Upsert.*Details /, '');
|
|
161
|
+
if ((causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.startsWith('Invalid URL')) && causeMessage.includes('EGRESS')) {
|
|
162
|
+
throw new AppDeploymentFailedError(true, requestId, cli_shared_1.Text.deploy.egressURL.invalidURLError(causeMessage));
|
|
163
|
+
}
|
|
164
|
+
else if (causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.startsWith('Egress permission URL')) {
|
|
165
|
+
throw new AppDeploymentFailedError(true, requestId, cli_shared_1.Text.deploy.egressURL.tooManyURLCharactersError(causeMessage));
|
|
166
|
+
}
|
|
167
|
+
else if (causeMessage === null || causeMessage === void 0 ? void 0 : causeMessage.includes('permission URLs provided, exceeding')) {
|
|
168
|
+
throw new AppDeploymentFailedError(true, requestId, cli_shared_1.Text.deploy.egressURL.tooManyUrlsError(causeMessage));
|
|
169
|
+
}
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
case 'HOSTED_RESOURCE_TOO_MANY_FILES':
|
|
173
|
+
case 'HOSTED_RESOURCE_ZIP_TOO_BIG':
|
|
174
|
+
case 'HOSTED_RESOURCE_FILE_PATH_REFERS_TO_PARENT':
|
|
175
|
+
case 'HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS':
|
|
176
|
+
case 'HOSTED_RESOURCE_ICON_RESOURCE_MISSING': {
|
|
177
|
+
throw new HostedResourceDeploymentFailedError(true, requestId, cli_shared_1.Text.hostedResources.error(message));
|
|
178
|
+
}
|
|
179
|
+
case 'HOSTED_RESOURCE_FAILED_TO_FETCH':
|
|
180
|
+
case 'HOSTED_RESOURCE_FAILED_TO_COPY':
|
|
181
|
+
case 'HOSTED_RESOURCE_UPLOAD_ID_MISSING': {
|
|
182
|
+
throw new HostedResourceDeploymentFailedError(false, requestId, cli_shared_1.Text.hostedResources.error(message));
|
|
183
|
+
}
|
|
184
|
+
case 'HOSTED_RESOURCES_LAMBDA_TIMEOUT': {
|
|
185
|
+
throw new HostedResourceDeploymentFailedError(false, requestId, cli_shared_1.Text.hostedResources.error(cli_shared_1.Text.hostedResources.lambdaTimeout));
|
|
186
|
+
}
|
|
187
|
+
case 'ENTITY_VALIDATION_ERROR':
|
|
188
|
+
case 'MANIFEST_VALIDATION_FAILED': {
|
|
189
|
+
if (errorDetails.fields) {
|
|
190
|
+
throw new ManifestValidationFailedError(requestId, cli_shared_1.Text.config.manifest.error(message, JSON.stringify(errorDetails.fields, null, 2)));
|
|
191
|
+
}
|
|
192
|
+
throw new ManifestValidationFailedError(requestId, cli_shared_1.Text.config.manifest.error(message));
|
|
162
193
|
}
|
|
163
|
-
}
|
|
164
|
-
if ([
|
|
165
|
-
'HOSTED_RESOURCE_TOO_MANY_FILES',
|
|
166
|
-
'HOSTED_RESOURCE_ZIP_TOO_BIG',
|
|
167
|
-
'HOSTED_RESOURCE_FILE_PATH_REFERS_TO_PARENT',
|
|
168
|
-
'HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS',
|
|
169
|
-
'HOSTED_RESOURCE_ICON_RESOURCE_MISSING'
|
|
170
|
-
].includes(code)) {
|
|
171
|
-
throw new HostedResourceDeploymentFailedError(true, requestId, 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, requestId, cli_shared_1.Text.hostedResources.error(message));
|
|
179
|
-
}
|
|
180
|
-
if (code === 'HOSTED_RESOURCES_LAMBDA_TIMEOUT') {
|
|
181
|
-
throw new HostedResourceDeploymentFailedError(false, requestId, cli_shared_1.Text.hostedResources.error(cli_shared_1.Text.hostedResources.lambdaTimeout));
|
|
182
194
|
}
|
|
183
195
|
}
|
|
184
196
|
throw new AppDeploymentFailedError(false, requestId, cli_shared_1.Text.deploy.taskDeploy.serverStepFailed);
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import { Handler, ResourceDetails } from '@forge/cli-shared';
|
|
2
|
+
import { App } from '@forge/manifest';
|
|
1
3
|
import { Deployer } from './deployer/deployer';
|
|
2
4
|
import { Packager } from './packager/packager';
|
|
3
5
|
import { ArchiveUploader } from './uploader/uploader';
|
|
4
6
|
import { DeploymentResult } from '../command-line/register-deployment-commands';
|
|
5
|
-
import { Handler, ResourceDetails } from '@forge/cli-shared';
|
|
6
7
|
import { ResourcePackagingService } from '../service/resource-packaging-service';
|
|
7
8
|
export interface Details {
|
|
8
9
|
handlers: Array<Handler>;
|
|
9
10
|
environmentKey: string;
|
|
10
11
|
resources: ResourceDetails[];
|
|
12
|
+
packageConfig: App['package'];
|
|
11
13
|
}
|
|
12
14
|
export declare class PackageUploadDeployCommand {
|
|
13
15
|
private readonly packager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package-upload-deploy.d.ts","sourceRoot":"","sources":["../../src/deploy/package-upload-deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;CAC/B;AAED,qBAAa,0BAA0B;IAEnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;gBAHxB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,EAAE,wBAAwB;IAGxD,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAwClE"}
|
|
@@ -11,7 +11,7 @@ class PackageUploadDeployCommand {
|
|
|
11
11
|
}
|
|
12
12
|
async execute(details) {
|
|
13
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);
|
|
14
|
+
const { runtimeArchivePath, nativeUiBundlesDetails, moduleList } = await this.packager.package(details.handlers, resourcesToBeBundled, details.packageConfig);
|
|
15
15
|
const resourcesArchives = await this.resourcePackagingService.zipResources([
|
|
16
16
|
...preBundledResources,
|
|
17
17
|
...nativeUiBundlesDetails
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Logger } from '@forge/cli-shared';
|
|
2
|
+
import { Logger, UserError } from '@forge/cli-shared';
|
|
3
3
|
export interface Archiver {
|
|
4
4
|
addFile(fileName: string, contents: Buffer): void;
|
|
5
5
|
addFileFrom(fileName: string, filePath: string): void;
|
|
6
6
|
finalise(): Promise<string>;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
}
|
|
8
|
+
export declare class ArchiverError extends UserError {
|
|
9
9
|
}
|
|
10
10
|
export declare class ZipArchiver implements Archiver {
|
|
11
11
|
private readonly logger;
|
|
@@ -13,15 +13,29 @@ export declare class ZipArchiver implements Archiver {
|
|
|
13
13
|
private tempFile;
|
|
14
14
|
private resolves;
|
|
15
15
|
private rejects;
|
|
16
|
-
private inspectDirectory;
|
|
17
16
|
constructor(logger: Logger);
|
|
18
17
|
addFile(fileName: string, contents: Buffer): void;
|
|
19
18
|
addFileFrom(fileName: string, filePath: string): void;
|
|
20
|
-
private copyToInspect;
|
|
21
19
|
finalise(): Promise<string>;
|
|
22
20
|
onWarning(cb: (err: Error) => void): void;
|
|
23
|
-
onEntry(cb: (filePath: string) => void): void;
|
|
24
21
|
private onArchiveError;
|
|
25
22
|
private onClose;
|
|
26
23
|
}
|
|
24
|
+
export declare class DirectoryArchiver implements Archiver {
|
|
25
|
+
private directory;
|
|
26
|
+
private readonly logger;
|
|
27
|
+
constructor(directory: string, logger: Logger);
|
|
28
|
+
addFile(fileName: string, contents: Buffer): void;
|
|
29
|
+
addFileFrom(fileName: string, filePath: string): void;
|
|
30
|
+
private copy;
|
|
31
|
+
finalise(): Promise<string>;
|
|
32
|
+
}
|
|
33
|
+
export declare class MultiArchiver implements Archiver {
|
|
34
|
+
private readonly archivers;
|
|
35
|
+
constructor(archivers: Archiver[]);
|
|
36
|
+
addFile(fileName: string, contents: Buffer): void;
|
|
37
|
+
addFileFrom(fileName: string, filePath: string): void;
|
|
38
|
+
finalise(): Promise<string>;
|
|
39
|
+
}
|
|
40
|
+
export declare function makeArchiver(logger: Logger): Archiver;
|
|
27
41
|
//# sourceMappingURL=archiver.d.ts.map
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/archiver.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,MAAM,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE5D,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;CAC7B;AAED,qBAAa,aAAc,SAAQ,SAAS;CAAG;AAE/C,qBAAa,WAAY,YAAW,QAAQ;IAM9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,OAAO,CAAmC;gBAErB,MAAM,EAAE,MAAM;IAapC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKrD,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAS3B,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAIzC,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,OAAO,CAIb;CACH;AAED,qBAAa,iBAAkB,YAAW,QAAQ;IAE9C,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADf,SAAS,EAAE,MAAM,EACR,MAAM,EAAE,MAAM;IAG1B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK5D,OAAO,CAAC,IAAI;IAcC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAGzC;AAED,qBAAa,aAAc,YAAW,QAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,QAAQ,EAAE;IAE3C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAM/C,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAIzC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAMrD"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZipArchiver = void 0;
|
|
3
|
+
exports.makeArchiver = exports.MultiArchiver = exports.DirectoryArchiver = exports.ZipArchiver = exports.ArchiverError = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const archiver_1 = tslib_1.__importDefault(require("archiver"));
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const path_1 = require("path");
|
|
8
8
|
const tmp_1 = tslib_1.__importDefault(require("tmp"));
|
|
9
9
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
10
|
+
class ArchiverError extends cli_shared_1.UserError {
|
|
11
|
+
}
|
|
12
|
+
exports.ArchiverError = ArchiverError;
|
|
10
13
|
class ZipArchiver {
|
|
11
14
|
constructor(logger) {
|
|
12
15
|
this.logger = logger;
|
|
@@ -14,10 +17,10 @@ class ZipArchiver {
|
|
|
14
17
|
this.tempFile = tmp_1.default.fileSync({ postfix: '.zip' });
|
|
15
18
|
this.resolves = [];
|
|
16
19
|
this.rejects = [];
|
|
17
|
-
this.inspectDirectory = null;
|
|
18
20
|
this.onArchiveError = (err) => {
|
|
21
|
+
const error = new ArchiverError(err.message);
|
|
19
22
|
for (const reject of this.rejects) {
|
|
20
|
-
reject(
|
|
23
|
+
reject(error);
|
|
21
24
|
}
|
|
22
25
|
};
|
|
23
26
|
this.onClose = () => {
|
|
@@ -28,33 +31,17 @@ class ZipArchiver {
|
|
|
28
31
|
const output = (0, fs_1.createWriteStream)(this.tempFile.name);
|
|
29
32
|
this.archive.pipe(output);
|
|
30
33
|
output.on('close', this.onClose);
|
|
34
|
+
this.archive.on('warning', this.onArchiveError);
|
|
31
35
|
this.archive.on('error', this.onArchiveError);
|
|
32
|
-
if (process.env.FORGE_INSPECT_ARCHIVE) {
|
|
33
|
-
this.inspectDirectory = process.env.FORGE_INSPECT_ARCHIVE;
|
|
34
|
-
}
|
|
35
36
|
}
|
|
36
37
|
addFile(fileName, contents) {
|
|
37
38
|
this.archive.append(contents, { name: fileName });
|
|
38
|
-
this.copyToInspect(fileName, contents);
|
|
39
39
|
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, null));
|
|
40
40
|
}
|
|
41
41
|
addFileFrom(fileName, filePath) {
|
|
42
42
|
this.archive.file(filePath, { name: fileName });
|
|
43
|
-
this.copyToInspect(fileName, filePath);
|
|
44
43
|
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, filePath));
|
|
45
44
|
}
|
|
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
45
|
finalise() {
|
|
59
46
|
return new Promise((resolve, reject) => {
|
|
60
47
|
this.resolves.push(resolve);
|
|
@@ -65,12 +52,66 @@ class ZipArchiver {
|
|
|
65
52
|
onWarning(cb) {
|
|
66
53
|
this.archive.on('warning', cb);
|
|
67
54
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
55
|
+
}
|
|
56
|
+
exports.ZipArchiver = ZipArchiver;
|
|
57
|
+
class DirectoryArchiver {
|
|
58
|
+
constructor(directory, logger) {
|
|
59
|
+
this.directory = directory;
|
|
60
|
+
this.logger = logger;
|
|
61
|
+
}
|
|
62
|
+
addFile(fileName, contents) {
|
|
63
|
+
this.copy(fileName, contents);
|
|
64
|
+
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, null));
|
|
65
|
+
}
|
|
66
|
+
addFileFrom(fileName, filePath) {
|
|
67
|
+
this.copy(fileName, filePath);
|
|
68
|
+
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.packageFile(fileName, filePath));
|
|
69
|
+
}
|
|
70
|
+
copy(fileName, contents) {
|
|
71
|
+
try {
|
|
72
|
+
const targetName = (0, path_1.join)(this.directory, fileName);
|
|
73
|
+
(0, fs_1.mkdirSync)((0, path_1.dirname)(targetName), { recursive: true });
|
|
74
|
+
if (typeof contents === 'string') {
|
|
75
|
+
(0, fs_1.copyFileSync)(contents, targetName);
|
|
72
76
|
}
|
|
73
|
-
|
|
77
|
+
else {
|
|
78
|
+
(0, fs_1.writeFileSync)(targetName, contents);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
throw new ArchiverError(e.message);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async finalise() {
|
|
86
|
+
return this.directory;
|
|
74
87
|
}
|
|
75
88
|
}
|
|
76
|
-
exports.
|
|
89
|
+
exports.DirectoryArchiver = DirectoryArchiver;
|
|
90
|
+
class MultiArchiver {
|
|
91
|
+
constructor(archivers) {
|
|
92
|
+
this.archivers = archivers;
|
|
93
|
+
}
|
|
94
|
+
addFile(fileName, contents) {
|
|
95
|
+
for (const archiver of this.archivers) {
|
|
96
|
+
archiver.addFile(fileName, contents);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
addFileFrom(fileName, filePath) {
|
|
100
|
+
for (const archiver of this.archivers) {
|
|
101
|
+
archiver.addFileFrom(fileName, filePath);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async finalise() {
|
|
105
|
+
const paths = await Promise.all(this.archivers.map((archiver) => archiver.finalise()));
|
|
106
|
+
return paths[0];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.MultiArchiver = MultiArchiver;
|
|
110
|
+
function makeArchiver(logger) {
|
|
111
|
+
const mainArchiver = new ZipArchiver(logger);
|
|
112
|
+
if (process.env.FORGE_ARCHIVE_DIR) {
|
|
113
|
+
return new MultiArchiver([mainArchiver, new DirectoryArchiver(process.env.FORGE_ARCHIVE_DIR, logger)]);
|
|
114
|
+
}
|
|
115
|
+
return mainArchiver;
|
|
116
|
+
}
|
|
117
|
+
exports.makeArchiver = makeArchiver;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Handler, Logger, ResourceDetails, UserError } from '@forge/cli-shared';
|
|
2
|
+
import { App } from '@forge/manifest';
|
|
2
3
|
import { NativeUIBundler } from './nativeui-bundler';
|
|
3
4
|
import { RuntimeBundler } from './runtime-bundler';
|
|
4
5
|
export interface PackagerBundlerOutput {
|
|
@@ -18,7 +19,7 @@ export interface PackageResult {
|
|
|
18
19
|
moduleList?: string[];
|
|
19
20
|
}
|
|
20
21
|
export interface Packager {
|
|
21
|
-
package(handlers: Handler[], resources: ResourceDetails[]): Promise<PackageResult>;
|
|
22
|
+
package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package']): Promise<PackageResult>;
|
|
22
23
|
}
|
|
23
24
|
export declare class BundlerError extends UserError {
|
|
24
25
|
}
|
|
@@ -27,6 +28,6 @@ export declare class AppPackager implements Packager {
|
|
|
27
28
|
private readonly nativeUiBundler;
|
|
28
29
|
private readonly logger;
|
|
29
30
|
constructor(runtimeBundler: RuntimeBundler, nativeUiBundler: NativeUIBundler, logger: Logger);
|
|
30
|
-
package(handlers: Handler[], resources: ResourceDetails[]): Promise<PackageResult>;
|
|
31
|
+
package(handlers: Handler[], resources: ResourceDetails[], packageConfig: App['package']): Promise<PackageResult>;
|
|
31
32
|
}
|
|
32
33
|
//# 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,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtF,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,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"packager.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/packager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAQ,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,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,OAAO,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACnH;AAED,qBAAa,YAAa,SAAQ,SAAS;CAAG;AAE9C,qBAAa,WAAY,YAAW,QAAQ;IAExC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM;IAGpB,OAAO,CAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,SAAS,EAAE,eAAe,EAAE,EAC5B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,aAAa,CAAC;CAW1B"}
|
|
@@ -11,9 +11,9 @@ class AppPackager {
|
|
|
11
11
|
this.nativeUiBundler = nativeUiBundler;
|
|
12
12
|
this.logger = logger;
|
|
13
13
|
}
|
|
14
|
-
async package(handlers, resources) {
|
|
14
|
+
async package(handlers, resources, packageConfig) {
|
|
15
15
|
this.logger.info(cli_shared_1.Text.deploy.taskPackage.title);
|
|
16
|
-
const runtimeBundle = await this.runtimeBundler.bundle(handlers);
|
|
16
|
+
const runtimeBundle = await this.runtimeBundler.bundle(handlers, packageConfig);
|
|
17
17
|
const nativeUiBundle = await this.nativeUiBundler.bundle(resources);
|
|
18
18
|
return Object.assign(Object.assign({}, runtimeBundle), nativeUiBundle);
|
|
19
19
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Bundler, FunctionsEntryPoint } from '@forge/bundler';
|
|
2
2
|
import { Handler, Logger } from '@forge/cli-shared';
|
|
3
|
+
import { App } from '@forge/manifest';
|
|
3
4
|
import { Archiver } from './archiver';
|
|
4
5
|
export interface RuntimeBundleResult {
|
|
5
6
|
runtimeArchivePath: string;
|
|
@@ -10,6 +11,15 @@ export declare class RuntimeBundler {
|
|
|
10
11
|
private readonly logger;
|
|
11
12
|
private readonly bundler;
|
|
12
13
|
constructor(archiverFactory: () => Archiver, logger: Logger, bundler: Bundler<FunctionsEntryPoint>);
|
|
13
|
-
|
|
14
|
+
protected packageCode(archiver: Archiver, entryPoints: FunctionsEntryPoint[]): Promise<string[]>;
|
|
15
|
+
protected packageDependencies(archiver: Archiver): Promise<void>;
|
|
16
|
+
protected packageAll(archiver: Archiver, handlers: Handler[], packageConfig: App['package']): Promise<string[]>;
|
|
17
|
+
bundle(handlers: Handler[], packageConfig?: App['package']): Promise<RuntimeBundleResult>;
|
|
18
|
+
}
|
|
19
|
+
export declare class SandboxRuntimeBundler extends RuntimeBundler {
|
|
20
|
+
bundle(handlers: Handler[], packageConfig?: App['package']): Promise<RuntimeBundleResult>;
|
|
21
|
+
}
|
|
22
|
+
export declare class NodeRuntimeBundler extends RuntimeBundler {
|
|
23
|
+
protected packageAll(archiver: Archiver, handlers: Handler[], packageConfig: App['package']): Promise<string[]>;
|
|
14
24
|
}
|
|
15
25
|
//# sourceMappingURL=runtime-bundler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAuB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"runtime-bundler.d.ts","sourceRoot":"","sources":["../../../src/deploy/packager/runtime-bundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAkB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAuB,OAAO,EAAE,MAAM,EAA0B,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,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,CAAC,mBAAmB,CAAC;cAGxC,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;cAgCtF,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;cAQtD,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;IAUP,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAUvG;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IAC1C,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAMvG;AAED,qBAAa,kBAAmB,SAAQ,cAAc;cACpC,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;CASrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeBundler = void 0;
|
|
3
|
+
exports.NodeRuntimeBundler = exports.SandboxRuntimeBundler = exports.RuntimeBundler = void 0;
|
|
4
4
|
const fs_1 = require("fs");
|
|
5
5
|
const bundler_1 = require("@forge/bundler");
|
|
6
6
|
const cli_shared_1 = require("@forge/cli-shared");
|
|
@@ -11,12 +11,7 @@ class RuntimeBundler {
|
|
|
11
11
|
this.logger = logger;
|
|
12
12
|
this.bundler = bundler;
|
|
13
13
|
}
|
|
14
|
-
async
|
|
15
|
-
const archiver = this.archiverFactory();
|
|
16
|
-
archiver.onWarning((err) => {
|
|
17
|
-
this.logger.warn(cli_shared_1.Text.deploy.taskPackage.archiverWarning(err));
|
|
18
|
-
});
|
|
19
|
-
const entryPoints = (0, bundler_1.getEntryPoints)(handlers);
|
|
14
|
+
async packageCode(archiver, entryPoints) {
|
|
20
15
|
const moduleList = [];
|
|
21
16
|
if (entryPoints.length > 0) {
|
|
22
17
|
let bundlerResponse;
|
|
@@ -40,14 +35,48 @@ class RuntimeBundler {
|
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
37
|
}
|
|
38
|
+
return moduleList;
|
|
39
|
+
}
|
|
40
|
+
async packageDependencies(archiver) {
|
|
43
41
|
for (const fileName of cli_shared_1.dependencyFileNames) {
|
|
44
42
|
if ((0, fs_1.existsSync)(fileName)) {
|
|
45
43
|
archiver.addFileFrom(fileName, fileName);
|
|
46
44
|
}
|
|
47
45
|
}
|
|
46
|
+
}
|
|
47
|
+
async packageAll(archiver, handlers, packageConfig) {
|
|
48
|
+
const entryPoints = (0, bundler_1.getEntryPoints)(handlers);
|
|
49
|
+
const moduleList = await this.packageCode(archiver, entryPoints);
|
|
50
|
+
await this.packageDependencies(archiver);
|
|
51
|
+
return moduleList;
|
|
52
|
+
}
|
|
53
|
+
async bundle(handlers, packageConfig) {
|
|
54
|
+
const archiver = this.archiverFactory();
|
|
55
|
+
const moduleList = await this.packageAll(archiver, handlers, packageConfig);
|
|
48
56
|
const archivePath = await archiver.finalise();
|
|
49
57
|
this.logger.debug(cli_shared_1.Text.deploy.taskPackage.archiveCreated(archivePath));
|
|
50
58
|
return { runtimeArchivePath: archivePath, moduleList };
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
61
|
exports.RuntimeBundler = RuntimeBundler;
|
|
62
|
+
class SandboxRuntimeBundler extends RuntimeBundler {
|
|
63
|
+
async bundle(handlers, packageConfig) {
|
|
64
|
+
if (packageConfig) {
|
|
65
|
+
throw new packager_1.BundlerError(cli_shared_1.Text.deploy.taskPackage.packageOptionsNotSupported);
|
|
66
|
+
}
|
|
67
|
+
return await super.bundle(handlers, packageConfig);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.SandboxRuntimeBundler = SandboxRuntimeBundler;
|
|
71
|
+
class NodeRuntimeBundler extends RuntimeBundler {
|
|
72
|
+
async packageAll(archiver, handlers, packageConfig) {
|
|
73
|
+
var _a;
|
|
74
|
+
const moduleList = await super.packageAll(archiver, handlers, packageConfig);
|
|
75
|
+
const files = await new cli_shared_1.FileSystemReader().getFileGlobList((_a = packageConfig === null || packageConfig === void 0 ? void 0 : packageConfig.extraFiles) !== null && _a !== void 0 ? _a : []);
|
|
76
|
+
files.forEach((fileName) => {
|
|
77
|
+
archiver.addFileFrom(fileName, fileName);
|
|
78
|
+
});
|
|
79
|
+
return moduleList;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.NodeRuntimeBundler = NodeRuntimeBundler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment-variables/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEtB,aAAa,EAEb,KAAK,EACL,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,6BAA6B,IAAI,mCAAmC,EACpE,+BAA+B,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,8BAA8B,IAAI,kCAAkC,EACpE,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,IAAI,gCAAgC,EACjE,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AACjD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;
|
|
1
|
+
{"version":3,"file":"graphql-client.d.ts","sourceRoot":"","sources":["../../src/environment-variables/graphql-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEtB,aAAa,EAEb,KAAK,EACL,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,6BAA6B,IAAI,mCAAmC,EACpE,+BAA+B,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,8BAA8B,IAAI,kCAAkC,EACpE,8BAA8B,EAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,6BAA6B,IAAI,gCAAgC,EACjE,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAEpC,qBAAa,eAAgB,SAAQ,SAAS;CAAG;AACjD,qBAAa,0BAA2B,SAAQ,KAAK;CAAG;AAOxD,qBAAa,aACX,YAAW,4BAA4B,EAAE,+BAA+B,EAAE,8BAA8B;IAE5F,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAE5C,wBAAwB,CACnC,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,GAAG,SAAS,CAAC;IAkC1C,sBAAsB,CAAC,OAAO,EAAE,gCAAgC;IA8ChE,yBAAyB,CAAC,OAAO,EAAE,mCAAmC;CA4CpF"}
|
|
@@ -13,7 +13,7 @@ export declare class LintService {
|
|
|
13
13
|
private readonly configFile;
|
|
14
14
|
private readonly fileSystemReader;
|
|
15
15
|
constructor(configFile: ConfigFile, fileSystemReader: FileSystemReader);
|
|
16
|
-
run(environment: string, { fix }: LintOptions, logger: LintLogger, directory?: string, lintFunction?: (filesToLint: string[], manifest: import("@forge/manifest").ManifestSchema, environment: string, logger: LintLogger, parseFunction?: ((filepath: string, parser: (code: string, filepath: string, parseOptions?: Partial<import("@forge/lint").ParseOptions> | undefined) => Promise<import("@forge/lint").ASTParseResult>, readFilePromise?: typeof import("
|
|
16
|
+
run(environment: string, { fix }: LintOptions, logger: LintLogger, directory?: string, lintFunction?: (filesToLint: string[], manifest: import("@forge/manifest").ManifestSchema, environment: string, logger: LintLogger, parseFunction?: ((filepath: string, parser: (code: string, filepath: string, parseOptions?: Partial<import("@forge/lint").ParseOptions> | undefined) => Promise<import("@forge/lint").ASTParseResult>, readFilePromise?: typeof import("fs").readFile.__promisify__ | undefined) => Promise<import("@forge/lint").LintInput>) | undefined, linters?: import("@forge/lint").LinterInterface[] | undefined) => Promise<LintResult[]>): Promise<RunResult>;
|
|
17
17
|
private fix;
|
|
18
18
|
problemCount(lintResults: LintResult[]): ProblemCount;
|
|
19
19
|
private failedScopesFromLintResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint-service.d.ts","sourceRoot":"","sources":["../../src/service/lint-service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAEL,YAAY,EACZ,UAAU,EAGV,UAAU,EACV,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,SAAS;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB;IAGxC,GAAG,CACd,WAAW,EAAE,MAAM,EACnB,EAAE,GAAG,EAAE,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,SAAoB,EAC7B,YAAY
|
|
1
|
+
{"version":3,"file":"lint-service.d.ts","sourceRoot":"","sources":["../../src/service/lint-service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAsB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAEL,YAAY,EACZ,UAAU,EAGV,UAAU,EACV,YAAY,EACb,MAAM,aAAa,CAAC;AAGrB,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,SAAS;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,eAAO,MAAM,iBAAiB,UAAU,CAAC;AACzC,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB;IAGxC,GAAG,CACd,WAAW,EAAE,MAAM,EACnB,EAAE,GAAG,EAAE,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,SAAoB,EAC7B,YAAY,0hBAAO,GAClB,OAAO,CAAC,SAAS,CAAC;YA4BP,GAAG;IASV,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,YAAY;IAI5D,OAAO,CAAC,0BAA0B;IAI3B,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE;CAOzD"}
|