@salesforce/cli 1.15.0 → 1.18.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [1.18.0](https://github.com/salesforcecli/cli/compare/v1.17.0...v1.18.0) (2022-03-09)
6
+
7
+ ## [1.17.0](https://github.com/salesforcecli/cli/compare/v1.16.0...v1.17.0) (2022-03-02)
8
+
9
+ ## [1.16.0](https://github.com/salesforcecli/cli/compare/v1.15.0...v1.16.0) (2022-02-23)
10
+
5
11
  ## [1.15.0](https://github.com/salesforcecli/cli/compare/v1.14.0...v1.15.0) (2022-02-16)
6
12
 
7
13
  ## [1.14.0](https://github.com/salesforcecli/cli/compare/v1.13.0...v1.14.0) (2022-02-15)
package/README.md CHANGED
@@ -31,7 +31,7 @@ $ npm install -g @salesforce/cli
31
31
  $ sf COMMAND
32
32
  running command...
33
33
  $ sf (--version|-v)
34
- @salesforce/cli/1.15.0 linux-x64 node-v14.19.0
34
+ @salesforce/cli/1.18.0 linux-x64 node-v14.19.0
35
35
  $ sf --help [COMMAND]
36
36
  USAGE
37
37
  $ sf COMMAND
@@ -52,6 +52,7 @@ USAGE
52
52
  - [`sf deploy`](#sf-deploy)
53
53
  - [`sf deploy functions`](#sf-deploy-functions)
54
54
  - [`sf deploy metadata`](#sf-deploy-metadata)
55
+ - [`sf env compute collaborator add`](#sf-env-compute-collaborator-add)
55
56
  - [`sf env create compute`](#sf-env-create-compute)
56
57
  - [`sf env delete`](#sf-env-delete)
57
58
  - [`sf env display`](#sf-env-display)
@@ -322,7 +323,7 @@ EXAMPLES
322
323
  $ sf deploy --interactive
323
324
  ```
324
325
 
325
- _See code: [@salesforce/plugin-deploy-retrieve](https://github.com/salesforcecli/plugin-deploy-retrieve/blob/v1.0.6/src/commands/deploy.ts)_
326
+ _See code: [@salesforce/plugin-deploy-retrieve](https://github.com/salesforcecli/plugin-deploy-retrieve/blob/v1.1.1/src/commands/deploy.ts)_
326
327
 
327
328
  ## `sf deploy functions`
328
329
 
@@ -462,6 +463,23 @@ ENVIRONMENT VARIABLES
462
463
  or force:source:push.
463
464
  ```
464
465
 
466
+ ## `sf env compute collaborator add`
467
+
468
+ Add a Heroku user as a collaborator on this Functions account, allowing them to attach Heroku add-ons to compute environments.
469
+
470
+ ```
471
+ USAGE
472
+ $ sf env compute collaborator add -h <value>
473
+
474
+ FLAGS
475
+ -h, --heroku-user=<value> (required) Email address of the Heroku user you're adding as a collaborator.
476
+
477
+ EXAMPLES
478
+ Add a Heroku user as a collaborator on this Functions account.
479
+
480
+ $ sf env compute collaborator add --heroku-user example@heroku.com
481
+ ```
482
+
465
483
  ## `sf env create compute`
466
484
 
467
485
  Create a compute environment for use with Salesforce Functions.
@@ -1003,7 +1021,7 @@ DESCRIPTION
1003
1021
  Display help for sf.
1004
1022
  ```
1005
1023
 
1006
- _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.10/src/commands/help.ts)_
1024
+ _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_
1007
1025
 
1008
1026
  ## `sf info:releasenotes:display [-v <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
1009
1027
 
@@ -1070,7 +1088,7 @@ EXAMPLES
1070
1088
  $ sf login
1071
1089
  ```
1072
1090
 
1073
- _See code: [@salesforce/plugin-login](https://github.com/salesforcecli/plugin-login/blob/v1.0.7/src/commands/login.ts)_
1091
+ _See code: [@salesforce/plugin-login](https://github.com/salesforcecli/plugin-login/blob/v1.0.8/src/commands/login.ts)_
1074
1092
 
1075
1093
  ## `sf login functions`
1076
1094
 
@@ -1337,7 +1355,7 @@ EXAMPLES
1337
1355
  $ sf logout --no-prompt
1338
1356
  ```
1339
1357
 
1340
- _See code: [@salesforce/plugin-login](https://github.com/salesforcecli/plugin-login/blob/v1.0.7/src/commands/logout.ts)_
1358
+ _See code: [@salesforce/plugin-login](https://github.com/salesforcecli/plugin-login/blob/v1.0.8/src/commands/logout.ts)_
1341
1359
 
1342
1360
  ## `sf logout functions`
1343
1361
 
@@ -1677,7 +1695,7 @@ USAGE
1677
1695
 
1678
1696
  FLAGS
1679
1697
  -b, --debug-port=<value> [default: 9229] Port for remote debugging.
1680
- -l, --language=(javascript|typescript|java|auto) [default: auto]
1698
+ -l, --language=(javascript|typescript|java|auto) [default: auto] The language that the function runs in.
1681
1699
  -p, --port=<value> [default: 8080] Port for running the function.
1682
1700
  -v, --verbose Output additional logs.
1683
1701
 
package/bin/run CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ /* tslint:disable:no-var-requires only-arrow-functions */
4
+ /* eslint-disable global-require, prefer-arrow-callback */
5
+
3
6
  // Since the CLI is a single process, we can have a larger amount of max listeners since
4
7
  // the process gets shut down. Don't set it to 0 (no limit) since we should still be aware
5
8
  // of rouge event listeners
@@ -8,6 +11,26 @@ process.setMaxListeners(parseInt(process.env.SF_MAX_EVENT_LISTENERS, 10) || 1000
8
11
  // Don't let other plugins override the CLI specified max listener count
9
12
  process.setMaxListeners = () => {};
10
13
 
11
- require('@oclif/core').run()
12
- .then(require('@oclif/core/flush'))
13
- .catch(require('@oclif/core/handle'))
14
+ // Check node version before requiring additional packages
15
+ require('../dist/versions').checkNodeVersion();
16
+
17
+ const cli = require('../dist/cli');
18
+ const pjson = require('../package.json');
19
+
20
+ // OVERRIDES gets replaced with particular values for binary builds,
21
+ // but simply use defaults for npm and local invocations
22
+ const overrides = {
23
+ /* @OVERRIDES@ */
24
+ };
25
+ const version = overrides.version || pjson.version;
26
+ const channel = overrides.channel || 'stable';
27
+
28
+ cli
29
+ .create(version, channel)
30
+ .run()
31
+ .then(function (result) {
32
+ require('@oclif/core/flush')();
33
+ })
34
+ .catch(function (err) {
35
+ require('@oclif/core/handle')(err);
36
+ });
package/dist/cli.js ADDED
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.create = exports.configureAutoUpdate = exports.configureUpdateSites = exports.UPDATE_DISABLED_DEMO = exports.UPDATE_DISABLED_NPM = exports.UPDATE_DISABLED_INSTALLER = void 0;
10
+ const os = require("os");
11
+ const path = require("path");
12
+ const core_1 = require("@oclif/core");
13
+ const kit_1 = require("@salesforce/kit");
14
+ const ts_types_1 = require("@salesforce/ts-types");
15
+ const Debug = require("debug");
16
+ const env_1 = require("./util/env");
17
+ const debug = Debug('sf');
18
+ const envVars = [
19
+ ...new Set([
20
+ ...Object.keys(process.env).filter((e) => e.startsWith('SF_') || e.startsWith('SFDX_')),
21
+ 'NODE_OPTIONS',
22
+ env_1.Env.SF_AUTOUPDATE_DISABLE,
23
+ 'SF_BINPATH',
24
+ 'SF_COMPILE_CACHE',
25
+ env_1.Env.SF_DISABLE_AUTOUPDATE,
26
+ env_1.Env.SF_ENV,
27
+ env_1.Env.SF_INSTALLER,
28
+ env_1.Env.SF_LAZY_LOAD_MODULES,
29
+ env_1.Env.SF_NPM_REGISTRY,
30
+ 'SF_REDIRECTED',
31
+ env_1.Env.SF_S3_HOST,
32
+ env_1.Env.SF_UPDATE_INSTRUCTIONS,
33
+ ]),
34
+ ];
35
+ exports.UPDATE_DISABLED_INSTALLER = 'Manual and automatic CLI updates have been disabled by setting "SF_AUTOUPDATE_DISABLE=true". ' +
36
+ 'To check for a new version, unset that environment variable.';
37
+ exports.UPDATE_DISABLED_NPM = 'Use "npm update --global @salesforce/cli" to update npm-based installations.';
38
+ exports.UPDATE_DISABLED_DEMO = 'Manual and automatic CLI updates have been disabled in DEMO mode. ' +
39
+ 'To check for a new version, unset the environment variable SF_ENV.';
40
+ function configureUpdateSites(config, env = env_1.default) {
41
+ const s3Host = env.getS3HostOverride();
42
+ if (s3Host) {
43
+ // Override config value if set via envar
44
+ (0, kit_1.set)(config, 'pjson.oclif.update.s3.host', s3Host);
45
+ }
46
+ const npmRegistry = env.getNpmRegistryOverride();
47
+ if (npmRegistry) {
48
+ // Override config value if set via envar
49
+ (0, kit_1.set)(config, 'pjson.oclif.warn-if-update-available.registry', npmRegistry);
50
+ }
51
+ }
52
+ exports.configureUpdateSites = configureUpdateSites;
53
+ function configureAutoUpdate(envars) {
54
+ if (envars.isDemoMode()) {
55
+ // Disable autoupdates in demo mode
56
+ envars.setAutoupdateDisabled(true);
57
+ envars.setUpdateInstructions(exports.UPDATE_DISABLED_DEMO);
58
+ return;
59
+ }
60
+ if (envars.isInstaller()) {
61
+ envars.normalizeAutoupdateDisabled();
62
+ if (envars.isAutoupdateDisabled()) {
63
+ envars.setUpdateInstructions(exports.UPDATE_DISABLED_INSTALLER);
64
+ }
65
+ return;
66
+ }
67
+ // Not an installer, so this must be running from an npm installation
68
+ if (!envars.isAutoupdateDisabledSet()) {
69
+ // Disable autoupdates if run from an npm install or in local dev, if not explicitly set
70
+ envars.setAutoupdateDisabled(true);
71
+ }
72
+ if (envars.isAutoupdateDisabled()) {
73
+ envars.setUpdateInstructions(exports.UPDATE_DISABLED_NPM);
74
+ }
75
+ }
76
+ exports.configureAutoUpdate = configureAutoUpdate;
77
+ function debugCliInfo(version, channel, env, config) {
78
+ function debugSection(section, items) {
79
+ const pad = 25;
80
+ debug('%s:', section.padStart(pad));
81
+ items.forEach(([name, value]) => debug('%s: %s', name.padStart(pad), value));
82
+ }
83
+ debugSection('OS', [
84
+ ['platform', os.platform()],
85
+ ['architecture', os.arch()],
86
+ ['release', os.release()],
87
+ ['shell', config.shell],
88
+ ]);
89
+ debugSection('NODE', [['version', process.versions.node]]);
90
+ debugSection('CLI', [
91
+ ['version', version],
92
+ ['channel', channel],
93
+ ['bin', config.bin],
94
+ ['data', config.dataDir],
95
+ ['cache', config.cacheDir],
96
+ ['config', config.configDir],
97
+ ]);
98
+ debugSection('ENV', [...envVars].map((key) => [key, env.getString(key, '<not set>')]));
99
+ debugSection('ARGS', process.argv.map((arg, i) => [i.toString(), arg]));
100
+ }
101
+ function create(version, channel, run, env = env_1.default) {
102
+ const root = path.resolve(__dirname, '..');
103
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
104
+ const pjson = require(path.resolve(__dirname, '..', 'package.json'));
105
+ const args = process.argv.slice(2);
106
+ return {
107
+ async run() {
108
+ const config = new core_1.Config({ name: (0, ts_types_1.get)(pjson, 'oclif.bin'), root, version, channel });
109
+ await config.load();
110
+ configureUpdateSites(config, env);
111
+ configureAutoUpdate(env);
112
+ debugCliInfo(version, channel, env, config);
113
+ // Example of how run is used in a test https://github.com/salesforcecli/cli/pull/171/files#diff-1deee0a575599b2df117c280da319f7938aaf6fdb0c04bcdbde769dbf464be69R46
114
+ return run ? run(args, config) : await (0, core_1.run)(args, config);
115
+ },
116
+ };
117
+ }
118
+ exports.create = create;
119
+ //# sourceMappingURL=cli.js.map
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SfCommandHelp = void 0;
4
4
  /*
5
- * Copyright (c) 2020, salesforce.com, inc.
5
+ * Copyright (c) 2022, salesforce.com, inc.
6
6
  * All rights reserved.
7
7
  * Licensed under the BSD 3-Clause license.
8
8
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  /*
4
- * Copyright (c) 2020, salesforce.com, inc.
4
+ * Copyright (c) 2022, salesforce.com, inc.
5
5
  * All rights reserved.
6
6
  * Licensed under the BSD 3-Clause license.
7
7
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hook = void 0;
4
+ /*
5
+ * Copyright (c) 2022, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const core_1 = require("@oclif/core");
11
+ // eslint-disable-next-line @typescript-eslint/require-await
12
+ const hook = async function (opts) {
13
+ if (opts.config.root.includes('sfdx')) {
14
+ core_1.CliUx.ux.warn('Running "sf update" has no effect because you\'re using a version of sf that was installed by sfdx. To update sf, run "sfdx update".');
15
+ }
16
+ };
17
+ exports.hook = hook;
18
+ //# sourceMappingURL=preupdate.js.map
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Env = void 0;
4
+ /*
5
+ * Copyright (c) 2022, salesforce.com, inc.
6
+ * All rights reserved.
7
+ * Licensed under the BSD 3-Clause license.
8
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
+ */
10
+ const core_1 = require("@salesforce/core");
11
+ class Env extends core_1.EnvVars {
12
+ constructor(env = process.env) {
13
+ super(env);
14
+ }
15
+ isAutoupdateDisabled() {
16
+ return this.getBoolean(Env.SF_AUTOUPDATE_DISABLE) || this.getBoolean(Env.SF_DISABLE_AUTOUPDATE);
17
+ }
18
+ isAutoupdateDisabledSet() {
19
+ return !!this.getString(Env.SF_AUTOUPDATE_DISABLE) || !!this.getString(Env.SF_DISABLE_AUTOUPDATE);
20
+ }
21
+ setAutoupdateDisabled(value, updateInstructions) {
22
+ this.setBoolean(Env.SF_AUTOUPDATE_DISABLE, value);
23
+ this.setBoolean(Env.SF_DISABLE_AUTOUPDATE, value);
24
+ if (updateInstructions) {
25
+ this.setUpdateInstructions(updateInstructions);
26
+ }
27
+ }
28
+ setUpdateInstructions(value) {
29
+ this.setString(Env.SF_UPDATE_INSTRUCTIONS, value);
30
+ }
31
+ isDemoMode() {
32
+ return (this.getString(Env.SF_ENV, 'production') || '').toLowerCase() === 'demo';
33
+ }
34
+ isInstaller() {
35
+ // Check SFDX_INSTALLER instead of SF_INSTALLER until such time sf has its own installers
36
+ return this.getBoolean(Env.SFDX_INSTALLER);
37
+ }
38
+ getS3HostOverride() {
39
+ return this.getString(Env.SF_S3_HOST);
40
+ }
41
+ setS3HostOverride(value) {
42
+ return this.setString(Env.SF_S3_HOST, value);
43
+ }
44
+ getNpmRegistryOverride() {
45
+ return this.getString(Env.SF_NPM_REGISTRY);
46
+ }
47
+ setNpmRegistryOverride(value) {
48
+ return this.setString(Env.SF_NPM_REGISTRY, value);
49
+ }
50
+ isLazyRequireEnabled() {
51
+ return this.getBoolean(Env.SF_LAZY_LOAD_MODULES);
52
+ }
53
+ normalizeAutoupdateDisabled() {
54
+ // Ensure that the legacy envar always causes the oclif counterpart to be set
55
+ // see https://github.com/oclif/plugin-update/blob/3946fb296a0a95544ab6364b36a1f7422c8aeddf/src/hooks/init.ts#L22
56
+ if (this.getBoolean(Env.SF_AUTOUPDATE_DISABLE)) {
57
+ this.setBoolean(Env.SF_DISABLE_AUTOUPDATE, true);
58
+ }
59
+ else if (this.getBoolean(Env.SF_DISABLE_AUTOUPDATE)) {
60
+ this.setBoolean(Env.SF_AUTOUPDATE_DISABLE, true);
61
+ }
62
+ }
63
+ }
64
+ exports.Env = Env;
65
+ Env.SF_AUTOUPDATE_DISABLE = 'SF_AUTOUPDATE_DISABLE';
66
+ Env.SF_DISABLE_AUTOUPDATE = 'SF_DISABLE_AUTOUPDATE';
67
+ Env.SF_ENV = 'SF_ENV';
68
+ Env.SF_INSTALLER = 'SF_INSTALLER';
69
+ Env.SFDX_INSTALLER = 'SFDX_INSTALLER';
70
+ Env.SF_LAZY_LOAD_MODULES = 'SF_LAZY_LOAD_MODULES';
71
+ Env.SF_NPM_REGISTRY = 'SF_NPM_REGISTRY';
72
+ Env.SF_S3_HOST = 'SF_S3_HOST';
73
+ Env.SF_UPDATE_INSTRUCTIONS = 'SF_UPDATE_INSTRUCTIONS';
74
+ exports.default = new Env();
75
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /* eslint-disable */
3
+ /*
4
+ * Copyright (c) 2022, salesforce.com, inc.
5
+ * All rights reserved.
6
+ * Licensed under the BSD 3-Clause license.
7
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.checkNodeVersion = exports.isVersion = void 0;
11
+ const semver = require("semver");
12
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
13
+ const pjson = require('../package.json');
14
+ /**
15
+ * Determines whether or not a tag string is a semantic version.
16
+ *
17
+ * @param {*} tag The possible version string
18
+ * @returns {boolean} True, if the string is recognized as a semantic version
19
+ */
20
+ function isVersion(tag) {
21
+ if (!tag) {
22
+ return false;
23
+ }
24
+ return !!semver.valid(tag) || false;
25
+ }
26
+ exports.isVersion = isVersion;
27
+ module.exports.isVersion = isVersion;
28
+ /**
29
+ * Checks the current Node version for compatibility before launching the CLI.
30
+ */
31
+ function checkNodeVersion(preferThrow = false, currentVersion = process.versions.node, requiredVersion = pjson.engines.node.slice(2)) {
32
+ if (semver.compare(currentVersion, requiredVersion) < 0) {
33
+ const message = `Unsupported Node.js version ${currentVersion}, version ${requiredVersion} or later is required.`;
34
+ if (!preferThrow) {
35
+ // eslint-disable-next-line no-console
36
+ console.error(message);
37
+ process.exit(1);
38
+ }
39
+ else {
40
+ throw new Error(message);
41
+ }
42
+ }
43
+ }
44
+ exports.checkNodeVersion = checkNodeVersion;
45
+ module.exports.checkNodeVersion = checkNodeVersion;
46
+ //# sourceMappingURL=versions.js.map