@forestadmin/forest-cloud 1.0.4 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  export default function buildCommands(): import("commander").Command;
2
- //# sourceMappingURL=build-command.d.ts.map
2
+ //# sourceMappingURL=build-commands.d.ts.map
@@ -44,4 +44,4 @@ function buildCommands() {
44
44
  });
45
45
  }
46
46
  exports.default = buildCommands;
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZC1jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNENBQXdCO0FBQ3hCLDhDQUFzQjtBQUN0Qiw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBRXhCLG9EQUE0QjtBQUM1QixvRUFBMkM7QUFDM0MsK0ZBQXFFO0FBQ3JFLHFGQUEyRDtBQUMzRCw0RUFBMkU7QUFDM0UsbUZBQTBEO0FBQzFELHlFQUFnRDtBQUdoRCxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQTBCLEVBQWMsRUFBRTtJQUNqRSxPQUFPLElBQUkscUJBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hHLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxJQUEwQixFQUFtQixFQUFFO0lBQzNFLE9BQU8sSUFBSSwwQkFBZSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUNuRixDQUFDLENBQUM7QUFFRixNQUFNLE1BQU0sR0FBVztJQUNyQixPQUFPLEVBQUUsSUFBQSxhQUFHLEdBQUU7SUFDZCxzQ0FBc0M7SUFDdEMsR0FBRyxFQUFFLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN6QyxzQ0FBc0M7SUFDdEMsS0FBSyxFQUFFLENBQUMsSUFBYSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztDQUM5QyxDQUFDO0FBRUYsU0FBUyxpQkFBaUI7SUFDeEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQzVCLFlBQU0sQ0FBQyxZQUFZLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUN6RSxDQUFDO0lBRUYsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELFNBQXdCLGFBQWE7SUFDbkMsT0FBTyxJQUFBLHVCQUFZLEVBQUM7UUFDbEIsdUJBQXVCLEVBQXZCLCtDQUF1QjtRQUN2QixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLEtBQUssRUFBTCxlQUFLO1FBQ0wsTUFBTTtRQUNOLGlCQUFpQjtRQUNqQixvQkFBb0IsRUFBRSxJQUFJLGdDQUFvQixDQUFDLFlBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekUsZUFBZSxFQUFFLElBQUksMkJBQWUsRUFBRTtLQUN2QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBWEQsZ0NBV0MifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29tbWFuZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYnVpbGQtY29tbWFuZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0Q0FBd0I7QUFDeEIsOENBQXNCO0FBQ3RCLDRDQUFvQjtBQUNwQixnREFBd0I7QUFFeEIsb0RBQTRCO0FBQzVCLG9FQUEyQztBQUMzQywrRkFBcUU7QUFDckUscUZBQTJEO0FBQzNELDRFQUEyRTtBQUMzRSxtRkFBMEQ7QUFDMUQseUVBQWdEO0FBR2hELE1BQU0sZUFBZSxHQUFHLENBQUMsSUFBMEIsRUFBYyxFQUFFO0lBQ2pFLE9BQU8sSUFBSSxxQkFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLElBQTBCLEVBQW1CLEVBQUU7SUFDM0UsT0FBTyxJQUFJLDBCQUFlLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ25GLENBQUMsQ0FBQztBQUVGLE1BQU0sTUFBTSxHQUFXO0lBQ3JCLE9BQU8sRUFBRSxJQUFBLGFBQUcsR0FBRTtJQUNkLHNDQUFzQztJQUN0QyxHQUFHLEVBQUUsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3pDLHNDQUFzQztJQUN0QyxLQUFLLEVBQUUsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0NBQzlDLENBQUM7QUFFRixTQUFTLGlCQUFpQjtJQUN4QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDNUIsWUFBTSxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQ3pFLENBQUM7SUFFRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBd0IsYUFBYTtJQUNuQyxPQUFPLElBQUEsdUJBQVksRUFBQztRQUNsQix1QkFBdUIsRUFBdkIsK0NBQXVCO1FBQ3ZCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsS0FBSyxFQUFMLGVBQUs7UUFDTCxNQUFNO1FBQ04saUJBQWlCO1FBQ2pCLG9CQUFvQixFQUFFLElBQUksZ0NBQW9CLENBQUMsWUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6RSxlQUFlLEVBQUUsSUFBSSwyQkFBZSxFQUFFO0tBQ3ZDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFYRCxnQ0FXQyJ9
package/dist/command.js CHANGED
@@ -6,7 +6,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
6
6
  };
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  const dotenv_1 = require("dotenv");
9
- const build_command_1 = __importDefault(require("./build-command"));
9
+ const build_commands_1 = __importDefault(require("./build-commands"));
10
10
  (0, dotenv_1.configDotenv)();
11
- (0, build_command_1.default)().parseAsync();
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMEJBQTBCOzs7OztBQUUxQixtQ0FBc0M7QUFFdEMsb0VBQTJDO0FBRTNDLElBQUEscUJBQVksR0FBRSxDQUFDO0FBQ2YsSUFBQSx1QkFBWSxHQUFFLENBQUMsVUFBVSxFQUFFLENBQUMifQ==
11
+ (0, build_commands_1.default)().parseAsync();
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMEJBQTBCOzs7OztBQUUxQixtQ0FBc0M7QUFFdEMsc0VBQTZDO0FBRTdDLElBQUEscUJBQVksR0FBRSxDQUFDO0FBQ2YsSUFBQSx3QkFBYSxHQUFFLENBQUMsVUFBVSxFQUFFLENBQUMifQ==
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const errors_1 = require("../errors");
8
+ const bootstrap_1 = __importDefault(require("../services/bootstrap"));
9
+ const environment_variables_1 = require("../services/environment-variables");
10
+ const shared_1 = require("../shared");
11
+ exports.default = (program, context) => {
12
+ const { logger, buildHttpServer, bootstrapPathManager, login, getEnvironmentVariables } = context;
13
+ program
14
+ .command('bootstrap')
15
+ .description('Bootstrap your project')
16
+ .argument('[name]', 'The name of your project folder')
17
+ .option('-e, --env-secret <string>', 'Environment secret, you can find it in your environment settings')
18
+ .action((0, action_runner_1.default)(logger.spinner, async (folderName, options) => {
19
+ logger.spinner.start('Bootstrapping project');
20
+ bootstrapPathManager.folderName = folderName;
21
+ const vars = await (0, shared_1.loginIfMissingAuthAndReturnEnvironmentVariables)(login, logger, getEnvironmentVariables);
22
+ vars.FOREST_ENV_SECRET = options.envSecret || vars.FOREST_ENV_SECRET;
23
+ if (!vars.FOREST_ENV_SECRET) {
24
+ throw new errors_1.BusinessError('Your forest env secret is missing.' +
25
+ ' Please provide it with the `bootstrap --env-secret <your-secret-key>` command or' +
26
+ ' add it to your .env file or in environment variables.');
27
+ }
28
+ (0, environment_variables_1.validateEnvironmentVariables)(vars);
29
+ logger.spinner.succeed('Environment found');
30
+ logger.spinner.stop();
31
+ const httpServer = buildHttpServer(vars);
32
+ await (0, shared_1.askToOverwriteCustomizationsOrAbortCommand)(logger, httpServer);
33
+ logger.spinner.start();
34
+ await (0, bootstrap_1.default)(vars, httpServer, bootstrapPathManager);
35
+ logger.spinner.succeed('Project successfully bootstrapped. You can start creating your customizations!');
36
+ }));
37
+ };
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLDZFQUFvRDtBQUNwRCxzQ0FBMEM7QUFDMUMsc0VBQThDO0FBQzlDLDZFQUFpRjtBQUNqRixzQ0FHbUI7QUFHbkIsa0JBQWUsQ0FBQyxPQUFnQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFFbEcsT0FBTztTQUNKLE9BQU8sQ0FBQyxXQUFXLENBQUM7U0FDcEIsV0FBVyxDQUFDLHdCQUF3QixDQUFDO1NBQ3JDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsaUNBQWlDLENBQUM7U0FDckQsTUFBTSxDQUNMLDJCQUEyQixFQUMzQixrRUFBa0UsQ0FDbkU7U0FDQSxNQUFNLENBQ0wsSUFBQSx1QkFBWSxFQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQWtCLEVBQUUsT0FBOEIsRUFBRSxFQUFFO1FBQ3hGLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDOUMsb0JBQW9CLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUU3QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsd0RBQStDLEVBQ2hFLEtBQUssRUFDTCxNQUFNLEVBQ04sdUJBQXVCLENBQ3hCLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFckUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixNQUFNLElBQUksc0JBQWEsQ0FDckIsb0NBQW9DO2dCQUNsQyxtRkFBbUY7Z0JBQ25GLHdEQUF3RCxDQUMzRCxDQUFDO1NBQ0g7UUFFRCxJQUFBLG9EQUE0QixFQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV0QixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxJQUFBLG1EQUEwQyxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVyRSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sSUFBQSxtQkFBUyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDcEIsZ0ZBQWdGLENBQ2pGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version"));
8
+ const environment_variables_1 = require("../services/environment-variables");
9
+ const http_server_1 = __importDefault(require("../services/http-server"));
10
+ exports.default = (program, context) => {
11
+ const { logger, getCurrentVersion, getEnvironmentVariables, login } = context;
12
+ const { spinner } = logger;
13
+ program
14
+ .command('login')
15
+ .description('Login to your project')
16
+ .action((0, action_runner_1.default)(spinner, async () => {
17
+ await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
18
+ spinner.start('Logging in');
19
+ const vars = await getEnvironmentVariables();
20
+ (0, environment_variables_1.validateServerUrl)(vars.FOREST_SERVER_URL);
21
+ await login(logger);
22
+ spinner.succeed('You are now logged in');
23
+ }));
24
+ };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9naW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw2RUFBb0Q7QUFDcEQsMkZBQWlFO0FBQ2pFLDZFQUFzRTtBQUN0RSwwRUFBaUQ7QUFHakQsa0JBQWUsQ0FBQyxPQUFnQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM5RSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQzNCLE9BQU87U0FDSixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztTQUNwQyxNQUFNLENBQ0wsSUFBQSx1QkFBWSxFQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUMvQixNQUFNLElBQUEsOEJBQWtCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEVBQUUscUJBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSx1QkFBdUIsRUFBRSxDQUFDO1FBQzdDLElBQUEseUNBQWlCLEVBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzNDLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDTixDQUFDLENBQUMifQ==
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=package.d.ts.map
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version"));
8
+ const http_server_1 = __importDefault(require("../services/http-server"));
9
+ const packager_1 = __importDefault(require("../services/packager"));
10
+ exports.default = (program, context) => {
11
+ const { logger, getCurrentVersion, distPathManager } = context;
12
+ program
13
+ .command('package')
14
+ .description('Package your code customizations')
15
+ .action((0, action_runner_1.default)(logger.spinner, async () => {
16
+ await (0, check_latest_version_1.default)(logger.spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
17
+ logger.spinner.start('Packaging code');
18
+ await (0, packager_1.default)(distPathManager);
19
+ logger.spinner.succeed('Code customizations packaged and ready for publish');
20
+ }));
21
+ };
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wYWNrYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNkVBQW9EO0FBQ3BELDJGQUFpRTtBQUNqRSwwRUFBaUQ7QUFDakQsb0VBQXlEO0FBR3pELGtCQUFlLENBQUMsT0FBZ0IsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0QsT0FBTztTQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDbEIsV0FBVyxDQUFDLGtDQUFrQyxDQUFDO1NBQy9DLE1BQU0sQ0FDTCxJQUFBLHVCQUFZLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0QyxNQUFNLElBQUEsOEJBQWtCLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxFQUFFLHFCQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUUzRixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sSUFBQSxrQkFBcUIsRUFBQyxlQUFlLENBQUMsQ0FBQztRQUM3QyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQy9FLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDTixDQUFDLENBQUMifQ==
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version"));
8
+ const errors_1 = require("../errors");
9
+ const environment_variables_1 = require("../services/environment-variables");
10
+ const http_server_1 = __importDefault(require("../services/http-server"));
11
+ const publish_1 = __importDefault(require("../services/publish"));
12
+ const shared_1 = require("../shared");
13
+ exports.default = (program, context) => {
14
+ const { logger, getCurrentVersion, distPathManager, buildEventSubscriber, buildHttpServer, getEnvironmentVariables, login, } = context;
15
+ const { spinner } = logger;
16
+ program
17
+ .command('publish')
18
+ .description('Publish your code customizations')
19
+ .option('-f, --force', 'Force the publication without asking for confirmation')
20
+ .action((0, action_runner_1.default)(spinner, async (options) => {
21
+ await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
22
+ spinner.start('Publishing code customizations');
23
+ const vars = await (0, shared_1.loginIfMissingAuthAndReturnEnvironmentVariables)(login, logger, getEnvironmentVariables);
24
+ (0, environment_variables_1.validateEnvironmentVariables)(vars);
25
+ const httpServer = buildHttpServer(vars);
26
+ if (!options.force)
27
+ await (0, shared_1.askToOverwriteCustomizationsOrAbortCommand)(logger, httpServer);
28
+ spinner.start('Publishing code customizations (operation cannot be cancelled)');
29
+ const subscriptionId = await (0, publish_1.default)(httpServer, distPathManager);
30
+ const subscriber = buildEventSubscriber(vars);
31
+ try {
32
+ const { error } = await subscriber.subscribeToCodeCustomization(subscriptionId);
33
+ if (error) {
34
+ spinner.fail(`Something went wrong: ${error}`);
35
+ }
36
+ else {
37
+ spinner.succeed('Code customizations published');
38
+ }
39
+ }
40
+ catch (error) {
41
+ throw new errors_1.BusinessError(error.message);
42
+ }
43
+ finally {
44
+ subscriber.destroy();
45
+ }
46
+ }));
47
+ };
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wdWJsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNkVBQW9EO0FBQ3BELDJGQUFpRTtBQUNqRSxzQ0FBMEM7QUFDMUMsNkVBQWlGO0FBQ2pGLDBFQUFpRDtBQUNqRCxrRUFBMEM7QUFDMUMsc0NBR21CO0FBR25CLGtCQUFlLENBQUMsT0FBZ0IsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDekQsTUFBTSxFQUNKLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLEtBQUssR0FDTixHQUFHLE9BQU8sQ0FBQztJQUNaLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFM0IsT0FBTztTQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDbEIsV0FBVyxDQUFDLGtDQUFrQyxDQUFDO1NBQy9DLE1BQU0sQ0FBQyxhQUFhLEVBQUUsdURBQXVELENBQUM7U0FDOUUsTUFBTSxDQUNMLElBQUEsdUJBQVksRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQTJCLEVBQUUsRUFBRTtRQUMxRCxNQUFNLElBQUEsOEJBQWtCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEVBQUUscUJBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsd0RBQStDLEVBQ2hFLEtBQUssRUFDTCxNQUFNLEVBQ04sdUJBQXVCLENBQ3hCLENBQUM7UUFDRixJQUFBLG9EQUE0QixFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFBRSxNQUFNLElBQUEsbURBQTBDLEVBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpGLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztRQUNoRixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsaUJBQU8sRUFBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDbEUsTUFBTSxVQUFVLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFOUMsSUFBSTtZQUNGLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLFVBQVUsQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUVoRixJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ2hEO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsQ0FBQzthQUNsRDtTQUNGO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLElBQUksc0JBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7Z0JBQVM7WUFDUixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=update-typings.d.ts.map
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version"));
8
+ const environment_variables_1 = require("../services/environment-variables");
9
+ const http_server_1 = __importDefault(require("../services/http-server"));
10
+ const update_typings_1 = require("../services/update-typings");
11
+ const shared_1 = require("../shared");
12
+ exports.default = (program, context) => {
13
+ const { logger, getCurrentVersion, buildHttpServer, distPathManager, bootstrapPathManager, login, getEnvironmentVariables, } = context;
14
+ program
15
+ .command('update-typings')
16
+ .description('Update your typings file to synchronize code autocompletion with your datasource ' +
17
+ '(whenever its schema changes)')
18
+ .action((0, action_runner_1.default)(logger.spinner, async () => {
19
+ await (0, check_latest_version_1.default)(logger.spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
20
+ logger.spinner.start('Updating typings');
21
+ const vars = await (0, shared_1.loginIfMissingAuthAndReturnEnvironmentVariables)(login, logger, getEnvironmentVariables);
22
+ (0, environment_variables_1.validateEnvironmentVariables)(vars);
23
+ const introspection = await buildHttpServer(vars).getIntrospection();
24
+ await (0, update_typings_1.updateTypingsWithCustomizations)(introspection, distPathManager, bootstrapPathManager);
25
+ logger.spinner.succeed('Your typings have been updated');
26
+ }));
27
+ };
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXR5cGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdXBkYXRlLXR5cGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw2RUFBb0Q7QUFDcEQsMkZBQWlFO0FBQ2pFLDZFQUFpRjtBQUNqRiwwRUFBaUQ7QUFDakQsK0RBQTZFO0FBQzdFLHNDQUE0RTtBQUc1RSxrQkFBZSxDQUFDLE9BQWdCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQ3pELE1BQU0sRUFDSixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLEtBQUssRUFDTCx1QkFBdUIsR0FDeEIsR0FBRyxPQUFPLENBQUM7SUFDWixPQUFPO1NBQ0osT0FBTyxDQUFDLGdCQUFnQixDQUFDO1NBQ3pCLFdBQVcsQ0FDVixtRkFBbUY7UUFDakYsK0JBQStCLENBQ2xDO1NBQ0EsTUFBTSxDQUNMLElBQUEsdUJBQVksRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3RDLE1BQU0sSUFBQSw4QkFBa0IsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEVBQUUscUJBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTNGLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLHdEQUErQyxFQUNoRSxLQUFLLEVBQ0wsTUFBTSxFQUNOLHVCQUF1QixDQUN4QixDQUFDO1FBQ0YsSUFBQSxvREFBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxNQUFNLGFBQWEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXJFLE1BQU0sSUFBQSxnREFBK0IsRUFBQyxhQUFhLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDNUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ04sQ0FBQyxDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ import { MakeCommands } from '../types';
3
+ declare const _default: (program: Command, context: MakeCommands) => void;
4
+ export default _default;
5
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const action_runner_1 = __importDefault(require("../dialogs/action-runner"));
7
+ const check_latest_version_1 = __importDefault(require("../dialogs/check-latest-version"));
8
+ const http_server_1 = __importDefault(require("../services/http-server"));
9
+ exports.default = (program, context) => {
10
+ const { logger, getCurrentVersion } = context;
11
+ program.option('-v, --version', 'output the version number').action((0, action_runner_1.default)(logger.spinner, async () => {
12
+ // we want to display before to display the warning
13
+ const version = getCurrentVersion();
14
+ logger.log(version);
15
+ await (0, check_latest_version_1.default)(logger.spinner, version, http_server_1.default.getLatestVersion);
16
+ }));
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNkVBQW9EO0FBQ3BELDJGQUFpRTtBQUNqRSwwRUFBaUQ7QUFHakQsa0JBQWUsQ0FBQyxPQUFnQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRTlDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLDJCQUEyQixDQUFDLENBQUMsTUFBTSxDQUNqRSxJQUFBLHVCQUFZLEVBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUN0QyxtREFBbUQ7UUFDbkQsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sSUFBQSw4QkFBa0IsRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -1,5 +1,4 @@
1
1
  import { Command } from 'commander';
2
- import { EnvironmentVariables, Logger, Login, MakeCommands } from './types';
3
- export declare const getOrRefreshEnvironmentVariables: (login: Login, logger: Logger, getEnvironmentVariables: () => Promise<EnvironmentVariables>) => Promise<EnvironmentVariables>;
4
- export default function makeCommands({ bootstrapPathManager, distPathManager, buildEventSubscriber, buildHttpServer, logger, getEnvironmentVariables, login, getCurrentVersion, }: MakeCommands): Command;
2
+ import { MakeCommands } from './types';
3
+ export default function makeCommands(context: MakeCommands): Command;
5
4
  //# sourceMappingURL=make-commands.d.ts.map
@@ -3,134 +3,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getOrRefreshEnvironmentVariables = void 0;
7
6
  const commander_1 = require("commander");
8
- const action_runner_1 = __importDefault(require("./dialogs/action-runner"));
9
- const ask_to_overwrite_customizations_1 = __importDefault(require("./dialogs/ask-to-overwrite-customizations"));
10
- const check_latest_version_1 = __importDefault(require("./dialogs/check-latest-version"));
11
- const errors_1 = require("./errors");
12
- const bootstrap_1 = __importDefault(require("./services/bootstrap"));
13
- const environment_variables_1 = require("./services/environment-variables");
14
- const http_server_1 = __importDefault(require("./services/http-server"));
15
- const packager_1 = __importDefault(require("./services/packager"));
16
- const publish_1 = __importDefault(require("./services/publish"));
17
- const update_typings_1 = require("./services/update-typings");
18
- const getOrRefreshEnvironmentVariables = async (login, logger, getEnvironmentVariables) => {
19
- let vars = await getEnvironmentVariables();
20
- if (!vars.FOREST_AUTH_TOKEN) {
21
- await login(logger);
22
- vars = await getEnvironmentVariables();
23
- }
24
- return vars;
25
- };
26
- exports.getOrRefreshEnvironmentVariables = getOrRefreshEnvironmentVariables;
27
- const validateAndBuildHttpServer = (envs, buildHttpServer) => {
28
- (0, environment_variables_1.validateEnvironmentVariables)(envs);
29
- return buildHttpServer(envs);
30
- };
31
- const validateAndBuildEventSubscriber = (envs, buildEventSubscriber) => {
32
- (0, environment_variables_1.validateEnvironmentVariables)(envs);
33
- return buildEventSubscriber(envs);
34
- };
35
- function makeCommands({ bootstrapPathManager, distPathManager, buildEventSubscriber, buildHttpServer, logger, getEnvironmentVariables, login, getCurrentVersion, }) {
7
+ const bootstrap_1 = __importDefault(require("./commands/bootstrap"));
8
+ const login_1 = __importDefault(require("./commands/login"));
9
+ const package_1 = __importDefault(require("./commands/package"));
10
+ const publish_1 = __importDefault(require("./commands/publish"));
11
+ const update_typings_1 = __importDefault(require("./commands/update-typings"));
12
+ const version_1 = __importDefault(require("./commands/version"));
13
+ function makeCommands(context) {
36
14
  // it's very important to use a new instance of Command each time for testing purposes
37
15
  const program = new commander_1.Command();
38
- const { spinner, log } = logger;
39
- program.option('-v, --version', 'output the version number').action((0, action_runner_1.default)(spinner, async () => {
40
- // we want to display before to display the warning
41
- const version = getCurrentVersion();
42
- log(version);
43
- await (0, check_latest_version_1.default)(spinner, version, http_server_1.default.getLatestVersion);
44
- }));
45
- program
46
- .command('update-typings')
47
- .description('Update your typings file to synchronize code autocompletion with your datasource ' +
48
- '(whenever its schema changes)')
49
- .action((0, action_runner_1.default)(spinner, async () => {
50
- await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
51
- spinner.start('Updating typings');
52
- const vars = await (0, exports.getOrRefreshEnvironmentVariables)(login, logger, getEnvironmentVariables);
53
- (0, environment_variables_1.validateEnvironmentVariables)(vars);
54
- const introspection = await validateAndBuildHttpServer(vars, buildHttpServer).getIntrospection();
55
- await (0, update_typings_1.updateTypingsWithCustomizations)(introspection, distPathManager, bootstrapPathManager);
56
- spinner.succeed('Your typings have been updated');
57
- }));
58
- program
59
- .command('bootstrap')
60
- .description('Bootstrap your project')
61
- .option('-e, --env-secret <string>', 'Environment secret, you can find it in your environment settings')
62
- .action((0, action_runner_1.default)(spinner, async (options) => {
63
- spinner.start('Bootstrapping project');
64
- const vars = await (0, exports.getOrRefreshEnvironmentVariables)(login, logger, getEnvironmentVariables);
65
- const secret = options.envSecret || vars.FOREST_ENV_SECRET;
66
- if (!secret) {
67
- throw new errors_1.BusinessError('Your forest env secret is missing.' +
68
- ' Please provide it with the `bootstrap --env-secret <your-secret-key>` command or' +
69
- ' add it to your .env file or in environment variables.');
70
- }
71
- spinner.succeed('Environment found');
72
- spinner.stop();
73
- const httpServer = validateAndBuildHttpServer({ ...vars, FOREST_ENV_SECRET: secret }, buildHttpServer);
74
- if (!(await (0, ask_to_overwrite_customizations_1.default)(spinner, httpServer.getLastPublishedCodeDetails.bind(httpServer)))) {
75
- throw new errors_1.BusinessError('Operation aborted');
76
- }
77
- spinner.start();
78
- await (0, bootstrap_1.default)(secret, httpServer, bootstrapPathManager);
79
- spinner.succeed('Project successfully bootstrapped. You can start creating your customizations!');
80
- }));
81
- program
82
- .command('login')
83
- .description('Login to your project')
84
- .action((0, action_runner_1.default)(spinner, async () => {
85
- await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
86
- spinner.start('Logging in');
87
- const vars = await getEnvironmentVariables();
88
- (0, environment_variables_1.validateServerUrl)(vars.FOREST_SERVER_URL);
89
- await login(logger);
90
- spinner.succeed('You are now logged in');
91
- }));
92
- program
93
- .command('publish')
94
- .description('Publish your code customizations')
95
- .option('-f, --force', 'Force the publication without asking for confirmation')
96
- .action((0, action_runner_1.default)(spinner, async (options) => {
97
- await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
98
- spinner.start('Publishing code customizations');
99
- const vars = await (0, exports.getOrRefreshEnvironmentVariables)(login, logger, getEnvironmentVariables);
100
- const httpServer = validateAndBuildHttpServer(vars, buildHttpServer);
101
- if (!options.force &&
102
- !(await (0, ask_to_overwrite_customizations_1.default)(spinner, httpServer.getLastPublishedCodeDetails.bind(httpServer)))) {
103
- throw new errors_1.BusinessError('Operation aborted');
104
- }
105
- spinner.start('Publishing code customizations (operation cannot be cancelled)');
106
- const subscriptionId = await (0, publish_1.default)(httpServer, distPathManager);
107
- const subscriber = validateAndBuildEventSubscriber(vars, buildEventSubscriber);
108
- try {
109
- const { error } = await subscriber.subscribeToCodeCustomization(subscriptionId);
110
- if (error) {
111
- spinner.fail(`Something went wrong: ${error}`);
112
- }
113
- else {
114
- spinner.succeed('Code customizations published');
115
- }
116
- }
117
- catch (error) {
118
- throw new errors_1.BusinessError(error.message);
119
- }
120
- finally {
121
- subscriber.destroy();
122
- }
123
- }));
124
- program
125
- .command('package')
126
- .description('Package your code customizations')
127
- .action((0, action_runner_1.default)(spinner, async () => {
128
- await (0, check_latest_version_1.default)(spinner, getCurrentVersion(), http_server_1.default.getLatestVersion);
129
- spinner.start('Packaging code');
130
- await (0, packager_1.default)(distPathManager);
131
- spinner.succeed('Code customizations packaged and ready for publish');
132
- }));
16
+ (0, bootstrap_1.default)(program, context);
17
+ (0, package_1.default)(program, context);
18
+ (0, publish_1.default)(program, context);
19
+ (0, update_typings_1.default)(program, context);
20
+ (0, login_1.default)(program, context);
21
+ (0, version_1.default)(program, context);
133
22
  return program;
134
23
  }
135
24
  exports.default = makeCommands;
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1jb21tYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlLWNvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlDQUFvQztBQUVwQyw0RUFBbUQ7QUFDbkQsZ0hBQXFGO0FBQ3JGLDBGQUFnRTtBQUNoRSxxQ0FBeUM7QUFDekMscUVBQTZDO0FBQzdDLDRFQUFtRztBQUVuRyx5RUFBZ0Q7QUFDaEQsbUVBQXdEO0FBQ3hELGlFQUF5QztBQUN6Qyw4REFBNEU7QUFVckUsTUFBTSxnQ0FBZ0MsR0FBRyxLQUFLLEVBQ25ELEtBQVksRUFDWixNQUFjLEVBQ2QsdUJBQTRELEVBQzdCLEVBQUU7SUFDakMsSUFBSSxJQUFJLEdBQUcsTUFBTSx1QkFBdUIsRUFBRSxDQUFDO0lBRTNDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDM0IsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEIsSUFBSSxHQUFHLE1BQU0sdUJBQXVCLEVBQUUsQ0FBQztLQUN4QztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBYlcsUUFBQSxnQ0FBZ0Msb0NBYTNDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxJQUEwQixFQUMxQixlQUFnQyxFQUNwQixFQUFFO0lBQ2QsSUFBQSxvREFBNEIsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUVuQyxPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLCtCQUErQixHQUFHLENBQ3RDLElBQTBCLEVBQzFCLG9CQUEwQyxFQUN6QixFQUFFO0lBQ25CLElBQUEsb0RBQTRCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkMsT0FBTyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixTQUF3QixZQUFZLENBQUMsRUFDbkMsb0JBQW9CLEVBQ3BCLGVBQWUsRUFD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
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1jb21tYW5kcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWtlLWNvbW1hbmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUNBQW9DO0FBRXBDLHFFQUF3RDtBQUN4RCw2REFBZ0Q7QUFDaEQsaUVBQW9EO0FBQ3BELGlFQUFvRDtBQUNwRCwrRUFBaUU7QUFDakUsaUVBQW9EO0FBR3BELFNBQXdCLFlBQVksQ0FBQyxPQUFxQjtJQUN4RCxzRkFBc0Y7SUFDdEYsTUFBTSxPQUFPLEdBQUcsSUFBSSxtQkFBTyxFQUFFLENBQUM7SUFFOUIsSUFBQSxtQkFBb0IsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkMsSUFBQSxpQkFBa0IsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsSUFBQSxpQkFBa0IsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckMsSUFBQSx3QkFBd0IsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0MsSUFBQSxlQUFnQixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxJQUFBLGlCQUFrQixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVyQyxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBWkQsK0JBWUMifQ==
@@ -1,13 +1,16 @@
1
1
  export default class BootstrapPathManager {
2
2
  private readonly _tmp;
3
3
  private readonly _home;
4
+ private _folderName;
4
5
  private readonly basePath;
5
6
  constructor(tmp: string, home: string, basePath?: string);
7
+ get folderName(): string;
8
+ set folderName(name: string);
6
9
  get home(): string;
7
10
  get tmp(): string;
8
11
  get zip(): string;
9
12
  get extracted(): string;
10
- get cloudCustomizer(): string;
13
+ get folder(): string;
11
14
  get typings(): string;
12
15
  get typingsDuringBootstrap(): string;
13
16
  get index(): string;
@@ -8,8 +8,15 @@ class BootstrapPathManager {
8
8
  constructor(tmp, home, basePath) {
9
9
  this._tmp = tmp;
10
10
  this._home = home;
11
+ this._folderName = 'forest-cloud';
11
12
  this.basePath = basePath ?? '.';
12
13
  }
14
+ get folderName() {
15
+ return this._folderName || 'forest-cloud';
16
+ }
17
+ set folderName(name) {
18
+ this._folderName = name;
19
+ }
13
20
  get home() {
14
21
  return this._home;
15
22
  }
@@ -22,20 +29,20 @@ class BootstrapPathManager {
22
29
  get extracted() {
23
30
  return path_1.default.join(this.tmp, 'cloud-customizer-main');
24
31
  }
25
- get cloudCustomizer() {
26
- return path_1.default.join(this.basePath, 'cloud-customizer');
32
+ get folder() {
33
+ return path_1.default.join(this.basePath, this.folderName);
27
34
  }
28
35
  get typings() {
29
36
  return path_1.default.join(this.basePath, 'typings.d.ts');
30
37
  }
31
38
  get typingsDuringBootstrap() {
32
- return path_1.default.join(this.cloudCustomizer, 'typings.d.ts');
39
+ return path_1.default.join(this.folder, 'typings.d.ts');
33
40
  }
34
41
  get index() {
35
- return path_1.default.join(this.cloudCustomizer, 'src', 'index.ts');
42
+ return path_1.default.join(this.folder, 'src', 'index.ts');
36
43
  }
37
44
  get env() {
38
- return path_1.default.join(this.cloudCustomizer, '.env');
45
+ return path_1.default.join(this.folder, '.env');
39
46
  }
40
47
  get dotEnvTemplate() {
41
48
  return path_1.default.join(__dirname, '..', 'templates', 'env.txt');
@@ -45,4 +52,4 @@ class BootstrapPathManager {
45
52
  }
46
53
  }
47
54
  exports.default = BootstrapPathManager;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLXBhdGgtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9ib290c3RyYXAtcGF0aC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLE1BQXFCLG9CQUFvQjtJQUt2QyxZQUFZLEdBQVcsRUFBRSxJQUFZLEVBQUUsUUFBaUI7UUFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQXRERCx1Q0FzREMifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLXBhdGgtbWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9ib290c3RyYXAtcGF0aC1tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLE1BQXFCLG9CQUFvQjtJQU12QyxZQUFZLEdBQVcsRUFBRSxJQUFZLEVBQUUsUUFBaUI7UUFDdEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksY0FBYyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0wsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLGNBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sY0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0Y7QUFoRUQsdUNBZ0VDIn0=
@@ -1,4 +1,5 @@
1
1
  import BootstrapPathManager from './bootstrap-path-manager';
2
2
  import HttpServer from './http-server';
3
- export default function bootstrap(envSecret: string, httpServer: HttpServer, paths: BootstrapPathManager): Promise<void>;
3
+ import { EnvironmentVariables } from '../types';
4
+ export default function bootstrap(vars: EnvironmentVariables, httpServer: HttpServer, paths: BootstrapPathManager): Promise<void>;
4
5
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const adm_zip_1 = __importDefault(require("adm-zip"));
30
30
  const fs = __importStar(require("fs"));
31
31
  const fsP = __importStar(require("fs/promises"));
32
+ const environment_variables_1 = require("./environment-variables");
32
33
  const http_server_1 = __importDefault(require("./http-server"));
33
34
  const update_typings_1 = require("./update-typings");
34
35
  const errors_1 = require("../errors");
@@ -37,35 +38,41 @@ async function tryToClearBootstrap(paths) {
37
38
  await Promise.all([
38
39
  fsP.rm(paths.zip, { force: true }),
39
40
  fsP.rm(paths.extracted, { force: true, recursive: true }),
40
- fsP.rm(paths.cloudCustomizer, { force: false, recursive: true }),
41
+ fsP.rm(paths.folder, { force: false, recursive: true }),
41
42
  ]);
42
43
  }
43
44
  catch (e) {
44
- return `\nPlease remove cloud-customizer folder and re-run bootstrap command.`;
45
+ return `\nPlease remove "${paths.folderName}" folder and re-run bootstrap command.`;
45
46
  }
46
47
  }
47
- async function generateDotEnv(envSecret, paths) {
48
+ async function generateDotEnv(vars, paths) {
48
49
  const envTemplate = await fsP.readFile(paths.dotEnvTemplate, 'utf-8');
49
- let replaced = envTemplate.replace('<FOREST_ENV_SECRET_TO_REPLACE>', envSecret);
50
+ let replaced = envTemplate.replace('<FOREST_ENV_SECRET_TO_REPLACE>', vars.FOREST_ENV_SECRET);
50
51
  replaced = replaced.replace('<TOKEN_PATH_TO_REPLACE>', paths.home);
51
- await fsP.writeFile(paths.env, replaced);
52
+ // For forest developers. We store in the .env what is non default
53
+ Object.keys(environment_variables_1.defaultEnvs)
54
+ .filter(variableKey => vars[variableKey] && vars[variableKey] !== environment_variables_1.defaultEnvs[variableKey])
55
+ .forEach(variableKey => {
56
+ replaced += `\n${variableKey}=${vars[variableKey]}`;
57
+ });
58
+ await fsP.writeFile(paths.env, `${replaced}\n`);
52
59
  }
53
- async function bootstrap(envSecret, httpServer, paths) {
54
- if (fs.existsSync(paths.cloudCustomizer)) {
55
- throw new errors_1.BusinessError('You have already a cloud-customizer folder');
60
+ async function bootstrap(vars, httpServer, paths) {
61
+ if (fs.existsSync(paths.folder)) {
62
+ throw new errors_1.BusinessError(`You have already a "${paths.folderName}" folder`);
56
63
  }
57
64
  try {
58
65
  await http_server_1.default.downloadCloudCustomizerTemplate(paths.zip);
59
66
  const zip = new adm_zip_1.default(paths.zip);
60
67
  zip.extractAllTo(paths.tmp, false);
61
68
  await Promise.all([
62
- fsP.rename(paths.extracted, paths.cloudCustomizer),
69
+ fsP.rename(paths.extracted, paths.folder),
63
70
  fsP.rm(paths.zip, { force: true }),
64
71
  ]);
65
72
  // create the .env file if it does not exist
66
73
  // we do not overwrite it because it may contain sensitive data
67
74
  if (!fs.existsSync(paths.env))
68
- await generateDotEnv(envSecret, paths);
75
+ await generateDotEnv(vars, paths);
69
76
  await fsP.writeFile(paths.index, await fsP.readFile(paths.indexTemplate));
70
77
  const introspection = await httpServer.getIntrospection();
71
78
  await (0, update_typings_1.updateTypings)(introspection, paths);
@@ -76,4 +83,4 @@ async function bootstrap(envSecret, httpServer, paths) {
76
83
  }
77
84
  }
78
85
  exports.default = bootstrap;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQTZCO0FBQzdCLHVDQUF5QjtBQUN6QixpREFBbUM7QUFHbkMsZ0VBQXVDO0FBQ3ZDLHFEQUFpRDtBQUNqRCxzQ0FBMEM7QUFFMUMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLEtBQTJCO0lBQzVELElBQUk7UUFDRixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDaEIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pELEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pFLENBQUMsQ0FBQztLQUNKO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLHVFQUF1RSxDQUFDO0tBQ2hGO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxjQUFjLENBQUMsU0FBaUIsRUFBRSxLQUEyQjtJQUMxRSxNQUFNLFdBQVcsR0FBRyxNQUFNLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RSxJQUFJLFFBQVEsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hGLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRSxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRWMsS0FBSyxVQUFVLFNBQVMsQ0FDckMsU0FBaUIsRUFDakIsVUFBc0IsRUFDdEIsS0FBMkI7SUFFM0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUN4QyxNQUFNLElBQUksc0JBQWEsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ3ZFO0lBRUQsSUFBSTtRQUNGLE1BQU0scUJBQVUsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUQsTUFBTSxHQUFHLEdBQVcsSUFBSSxpQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDO1lBQ2xELEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFFSCw0Q0FBNEM7UUFDNUMsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFBRSxNQUFNLGNBQWMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEUsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRTFFLE1BQU0sYUFBYSxHQUFHLE1BQU0sVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUQsTUFBTSxJQUFBLDhCQUFhLEVBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQzNDO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0QsTUFBTSxJQUFJLHNCQUFhLENBQUMscUJBQXFCLEtBQUssQ0FBQyxPQUFPLElBQUkscUJBQXFCLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5RjtBQUNILENBQUM7QUEvQkQsNEJBK0JDIn0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQTZCO0FBQzdCLHVDQUF5QjtBQUN6QixpREFBbUM7QUFHbkMsbUVBQXNEO0FBQ3RELGdFQUF1QztBQUN2QyxxREFBaUQ7QUFDakQsc0NBQTBDO0FBRzFDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxLQUEyQjtJQUM1RCxJQUFJO1FBQ0YsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN6RCxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxvQkFBb0IsS0FBSyxDQUFDLFVBQVUsd0NBQXdDLENBQUM7S0FDckY7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUEwQixFQUFFLEtBQTJCO0lBQ25GLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLElBQUksUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDN0YsUUFBUSxHQUFH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
@@ -1,4 +1,9 @@
1
1
  import { EnvironmentVariables } from '../types';
2
+ export declare const defaultEnvs: Readonly<{
3
+ FOREST_SERVER_URL: "https://api.forestadmin.com";
4
+ FOREST_SUBSCRIPTION_URL: "wss://api.forestadmin.com/subscriptions";
5
+ NODE_TLS_REJECT_UNAUTHORIZED: "1";
6
+ }>;
2
7
  export declare function getEnvironmentVariables(): Promise<EnvironmentVariables>;
3
8
  export declare function validateServerUrl(serverUrl: string): void;
4
9
  export declare function validateSubscriptionUrl(subscriptionUrl: string): void;
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.validateEnvironmentVariables = exports.validateSubscriptionUrl = exports.validateServerUrl = exports.getEnvironmentVariables = void 0;
29
+ exports.validateEnvironmentVariables = exports.validateSubscriptionUrl = exports.validateServerUrl = exports.getEnvironmentVariables = exports.defaultEnvs = void 0;
30
30
  const fs = __importStar(require("fs"));
31
31
  const promises_1 = require("node:fs/promises");
32
32
  const node_os_1 = require("node:os");
@@ -39,12 +39,18 @@ const getTokenFromToolbelt = async () => {
39
39
  return (0, promises_1.readFile)(tokenPath, 'utf8');
40
40
  return null;
41
41
  };
42
+ exports.defaultEnvs = Object.freeze({
43
+ FOREST_SERVER_URL: 'https://api.forestadmin.com',
44
+ FOREST_SUBSCRIPTION_URL: 'wss://api.forestadmin.com/subscriptions',
45
+ NODE_TLS_REJECT_UNAUTHORIZED: '1',
46
+ });
42
47
  async function getEnvironmentVariables() {
43
48
  return {
44
49
  FOREST_ENV_SECRET: process.env.FOREST_ENV_SECRET,
45
- FOREST_SERVER_URL: process.env.FOREST_SERVER_URL || 'https://api.forestadmin.com',
46
- FOREST_SUBSCRIPTION_URL: process.env.FOREST_SUBSCRIPTION_URL || 'wss://api.forestadmin.com/subscriptions',
50
+ FOREST_SERVER_URL: process.env.FOREST_SERVER_URL || exports.defaultEnvs.FOREST_SERVER_URL,
51
+ FOREST_SUBSCRIPTION_URL: process.env.FOREST_SUBSCRIPTION_URL || exports.defaultEnvs.FOREST_SUBSCRIPTION_URL,
47
52
  FOREST_AUTH_TOKEN: process.env.FOREST_AUTH_TOKEN || (await getTokenFromToolbelt()),
53
+ NODE_TLS_REJECT_UNAUTHORIZED: process.env.NODE_TLS_REJECT_UNAUTHORIZED || exports.defaultEnvs.NODE_TLS_REJECT_UNAUTHORIZED,
48
54
  };
49
55
  }
50
56
  exports.getEnvironmentVariables = getEnvironmentVariables;
@@ -89,4 +95,4 @@ function validateEnvironmentVariables(env) {
89
95
  validateSubscriptionUrl(env.FOREST_SUBSCRIPTION_URL);
90
96
  }
91
97
  exports.validateEnvironmentVariables = validateEnvironmentVariables;
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtdmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2Vudmlyb25tZW50LXZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwrQ0FBNEM7QUFDNUMscUNBQWtDO0FBQ2xDLGdEQUF3QjtBQUV4QixzQ0FBMEM7QUFHMUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQTRCLEVBQUU7SUFDOUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBQSxpQkFBTyxHQUFFLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXJFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFBRSxPQUFPLElBQUEsbUJBQVEsRUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFakUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFSyxLQUFLLFVBQVUsdUJBQXVCO0lBQzNDLE9BQU87UUFDTCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtRQUNoRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLDZCQUE2QjtRQUNqRix1QkFBdUIsRUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSx5Q0FBeUM7UUFDbEYsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztLQUNuRixDQUFDO0FBQ0osQ0FBQztBQVJELDBEQVFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBVyxFQUFFLFlBQW9CLEVBQUUsU0FBbUI7SUFDekUsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLE1BQU0sSUFBSSxzQkFBYSxDQUFDLFdBQVcsWUFBWSxnQ0FBZ0MsQ0FBQyxDQUFDO0tBQ2xGO0lBRUQsSUFBSSxRQUFRLENBQUM7SUFFYixJQUFJO1FBQ0YsUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3pCO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixNQUFNLElBQUksc0JBQWEsQ0FDckIsR0FBRyxZQUFZLDhDQUE4QyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQzNFLENBQUM7S0FDSDtJQUVELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMxQyxNQUFNLElBQUksc0JBQWEsQ0FDckIsR0FBRyxZQUFZLG9DQUFvQyxTQUFTO2FBQ3pELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxJQUFJLENBQUM7YUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FDbkQsQ0FBQztLQUNIO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLFNBQWlCO0lBQ2pELFdBQVcsQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxlQUF1QjtJQUM3RCxXQUFXLENBQUMsZUFBZSxFQUFFLHlCQUF5QixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsMERBRUM7QUFFRCxTQUFnQiw0QkFBNEIsQ0FBQyxHQUF5QjtJQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFO1FBQzFCLE1BQU0sSUFBSSxzQkFBYSxDQUFDLHlEQUF5RCxDQUFDLENBQUM7S0FDcEY7SUFFRCxJQUFJLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUM5RixNQUFNLElBQUksc0JBQWE7UUFDckIsbUNBQW1DO1FBQ25DLHFJQUFxSSxDQUN0SSxDQUFDO0tBQ0g7SUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFO1FBQzFCLE1BQU0sSUFBSSxzQkFBYSxDQUNyQiwrRUFBK0UsQ0FDaEYsQ0FBQztLQUNIO0lBRUQsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDekMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQXBCRCxvRUFvQkMifQ==
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtdmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2Vudmlyb25tZW50LXZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwrQ0FBNEM7QUFDNUMscUNBQWtDO0FBQ2xDLGdEQUF3QjtBQUV4QixzQ0FBMEM7QUFHMUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQTRCLEVBQUU7SUFDOUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBQSxpQkFBTyxHQUFFLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsY0FBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXJFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFBRSxPQUFPLElBQUEsbUJBQVEsRUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFakUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFVyxRQUFBLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3ZDLGlCQUFpQixFQUFFLDZCQUE2QjtJQUNoRCx1QkFBdUIsRUFBRSx5Q0FBeUM7SUFDbEUsNEJBQTRCLEVBQUUsR0FBRztDQUNsQyxDQUFDLENBQUM7QUFFSSxLQUFLLFVBQVUsdUJBQXVCO0lBQzNDLE9BQU87UUFDTCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtRQUNoRCxpQkFBaUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLG1CQUFXLENBQUMsaUJBQWlCO1FBQ2pGLHVCQUF1QixFQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixJQUFJLG1CQUFXLENBQUMsdUJBQXVCO1FBQzVFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksQ0FBQyxNQUFNLG9CQUFvQixFQUFFLENBQUM7UUFDbEYsNEJBQTRCLEVBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLElBQUksbUJBQVcsQ0FBQyw0QkFBNEI7S0FDdkYsQ0FBQztBQUNKLENBQUM7QUFWRCwwREFVQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVcsRUFBRSxZQUFvQixFQUFFLFNBQW1CO0lBQ3pFLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDUixNQUFNLElBQUksc0JBQWEsQ0FBQyxXQUFXLFlBQVksZ0NBQWdDLENBQUMsQ0FBQztLQUNsRjtJQUVELElBQUksUUFBUSxDQUFDO0lBRWIsSUFBSTtRQUNGLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUN6QjtJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osTUFBTSxJQUFJLHNCQUFhLENBQ3JCLEdBQUcsWUFBWSw4Q0FBOEMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUMzRSxDQUFDO0tBQ0g7SUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDMUMsTUFBTSxJQUFJLHNCQUFhLENBQ3JCLEdBQUcsWUFBWSxvQ0FBb0MsU0FBUzthQUN6RCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsSUFBSSxDQUFDO2FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQ25ELENBQUM7S0FDSDtBQUNILENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxTQUFpQjtJQUNqRCxXQUFXLENBQUMsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsZUFBdUI7SUFDN0QsV0FBVyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUZELDBEQUVDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQUMsR0FBeUI7SUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTtRQUMxQixNQUFNLElBQUksc0JBQWEsQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0tBQ3BGO0lBRUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxpQkFBaUIsS0FBSyxRQUFRLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDOUYsTUFBTSxJQUFJLHNCQUFhO1FBQ3JCLG1DQUFtQztRQUNuQyxxSUFBcUksQ0FDdEksQ0FBQztLQUNIO0lBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRTtRQUMxQixNQUFNLElBQUksc0JBQWEsQ0FDckIsK0VBQStFLENBQ2hGLENBQUM7S0FDSDtJQUVELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFwQkQsb0VBb0JDIn0=
@@ -0,0 +1,5 @@
1
+ import HttpServer from './services/http-server';
2
+ import { EnvironmentVariables, Logger, Login } from './types';
3
+ export declare const loginIfMissingAuthAndReturnEnvironmentVariables: (login: Login, logger: Logger, getEnvironmentVariables: () => Promise<EnvironmentVariables>) => Promise<EnvironmentVariables>;
4
+ export declare const askToOverwriteCustomizationsOrAbortCommand: (logger: Logger, httpServer: HttpServer) => Promise<void>;
5
+ //# sourceMappingURL=shared.d.ts.map
package/dist/shared.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.askToOverwriteCustomizationsOrAbortCommand = exports.loginIfMissingAuthAndReturnEnvironmentVariables = void 0;
7
+ const ask_to_overwrite_customizations_1 = __importDefault(require("./dialogs/ask-to-overwrite-customizations"));
8
+ const errors_1 = require("./errors");
9
+ const loginIfMissingAuthAndReturnEnvironmentVariables = async (login, logger, getEnvironmentVariables) => {
10
+ const vars = await getEnvironmentVariables();
11
+ if (vars.FOREST_AUTH_TOKEN)
12
+ return vars;
13
+ await login(logger);
14
+ return getEnvironmentVariables();
15
+ };
16
+ exports.loginIfMissingAuthAndReturnEnvironmentVariables = loginIfMissingAuthAndReturnEnvironmentVariables;
17
+ const askToOverwriteCustomizationsOrAbortCommand = async (logger, httpServer) => {
18
+ if (!(await (0, ask_to_overwrite_customizations_1.default)(logger.spinner, httpServer.getLastPublishedCodeDetails.bind(httpServer)))) {
19
+ throw new errors_1.BusinessError('Operation aborted');
20
+ }
21
+ };
22
+ exports.askToOverwriteCustomizationsOrAbortCommand = askToOverwriteCustomizationsOrAbortCommand;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnSEFBcUY7QUFDckYscUNBQXlDO0FBSWxDLE1BQU0sK0NBQStDLEdBQUcsS0FBSyxFQUNsRSxLQUFZLEVBQ1osTUFBYyxFQUNkLHVCQUE0RCxFQUM3QixFQUFFO0lBQ2pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sdUJBQXVCLEVBQUUsQ0FBQztJQUM3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUI7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV4QyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwQixPQUFPLHVCQUF1QixFQUFFLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBWFcsUUFBQSwrQ0FBK0MsbURBVzFEO0FBRUssTUFBTSwwQ0FBMEMsR0FBRyxLQUFLLEVBQzdELE1BQWMsRUFDZCxVQUFzQixFQUNQLEVBQUU7SUFDakIsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFBLHlDQUE0QixFQUNsQyxNQUFNLENBQUMsT0FBTyxFQUNkLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3hELENBQUMsRUFDRjtRQUNBLE1BQU0sSUFBSSxzQkFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7S0FDOUM7QUFDSCxDQUFDLENBQUM7QUFaVyxRQUFBLDBDQUEwQyw4Q0FZckQifQ==
package/dist/types.d.ts CHANGED
@@ -57,6 +57,7 @@ export type EnvironmentVariables = {
57
57
  FOREST_SERVER_URL: string;
58
58
  FOREST_SUBSCRIPTION_URL: string;
59
59
  FOREST_AUTH_TOKEN: string;
60
+ NODE_TLS_REJECT_UNAUTHORIZED: string;
60
61
  };
61
62
  export type MakeCommands = {
62
63
  buildEventSubscriber: BuildEventSubscriber;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/forest-cloud",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "description": "Utility to bootstrap and publish forest admin cloud projects customization",
5
5
  "dependencies": {
6
6
  "@forestadmin/agent": "1.38.1",
@@ -13,7 +13,7 @@
13
13
  "axios": "^1.6.7",
14
14
  "commander": "^11.1.0",
15
15
  "dotenv": "^16.4.1",
16
- "forest-cli": "^5.0.0",
16
+ "forest-cli": "^5.0.2",
17
17
  "form-data": "^4.0.0",
18
18
  "graphql": "14.5.7",
19
19
  "graphql-tag": "^2.12.6",