@suitegeezus/suitecloud-cli 3.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/CONTRIBUTING.md +7 -0
  2. package/DELTA.md +235 -0
  3. package/README.md +107 -0
  4. package/docs/Command.md +299 -0
  5. package/messages.json +317 -0
  6. package/package.json +51 -0
  7. package/postinstall.js +8 -0
  8. package/resources/FUTC-LICENSE.txt +115 -0
  9. package/src/ApplicationConstants.js +87 -0
  10. package/src/CLI.js +202 -0
  11. package/src/CLIException.js +21 -0
  12. package/src/ExecutionEnvironmentContext.js +39 -0
  13. package/src/SdkExecutionContext.js +90 -0
  14. package/src/SdkExecutor.js +160 -0
  15. package/src/commands/Command.js +158 -0
  16. package/src/commands/account/manageauth/ManageAccountAction.js +126 -0
  17. package/src/commands/account/manageauth/ManageAccountCommand.js +20 -0
  18. package/src/commands/account/manageauth/ManageAccountInputHandler.js +215 -0
  19. package/src/commands/account/manageauth/ManageAccountOutputHandler.js +30 -0
  20. package/src/commands/account/setup/SetupAction.js +39 -0
  21. package/src/commands/account/setup/SetupCommand.js +21 -0
  22. package/src/commands/account/setup/SetupInputHandler.js +169 -0
  23. package/src/commands/account/setup/SetupOutputHandler.js +65 -0
  24. package/src/commands/account/setupci/AccountSetupCiAction.js +58 -0
  25. package/src/commands/account/setupci/AccountSetupCiCommand.js +20 -0
  26. package/src/commands/account/setupci/AccountSetupCiConstants.js +21 -0
  27. package/src/commands/account/setupci/AccountSetupCiOutputHandler.js +40 -0
  28. package/src/commands/account/setupci/AccountSetupCiValidation.js +100 -0
  29. package/src/commands/base/BaseAction.js +37 -0
  30. package/src/commands/base/BaseInputHandler.js +24 -0
  31. package/src/commands/base/BaseOutputHandler.js +30 -0
  32. package/src/commands/custom/hello/Action.js +58 -0
  33. package/src/commands/custom/hello/Command.js +20 -0
  34. package/src/commands/custom/hello/Handler.js +26 -0
  35. package/src/commands/custom/hello/README.md +78 -0
  36. package/src/commands/custom/hook/Action.js +28 -0
  37. package/src/commands/custom/hook/Command.js +22 -0
  38. package/src/commands/custom/hook/InputHandler.js +8 -0
  39. package/src/commands/custom/hook/OutputHandler.js +8 -0
  40. package/src/commands/custom/hook/README.md +32 -0
  41. package/src/commands/file/create/CreateFileAction.js +89 -0
  42. package/src/commands/file/create/CreateFileCommand.js +20 -0
  43. package/src/commands/file/create/CreateFileInputHandler.js +175 -0
  44. package/src/commands/file/create/CreateFileOutputHandler.js +22 -0
  45. package/src/commands/file/import/ImportFilesAction.js +112 -0
  46. package/src/commands/file/import/ImportFilesCommand.js +22 -0
  47. package/src/commands/file/import/ImportFilesInputHandler.js +130 -0
  48. package/src/commands/file/import/ImportFilesOutputHandler.js +53 -0
  49. package/src/commands/file/list/ListFilesAction.js +55 -0
  50. package/src/commands/file/list/ListFilesCommand.js +20 -0
  51. package/src/commands/file/list/ListFilesInputHandler.js +55 -0
  52. package/src/commands/file/list/ListFilesOutputHandler.js +24 -0
  53. package/src/commands/file/upload/UploadFilesAction.js +67 -0
  54. package/src/commands/file/upload/UploadFilesCommand.js +20 -0
  55. package/src/commands/file/upload/UploadFilesInputHandler.js +125 -0
  56. package/src/commands/file/upload/UploadFilesOutputHandler.js +49 -0
  57. package/src/commands/object/create/CreateObjectAction.js +33 -0
  58. package/src/commands/object/create/CreateObjectCommand.js +19 -0
  59. package/src/commands/object/create/CreateObjectInputHandler.js +82 -0
  60. package/src/commands/object/import/ImportObjectsAction.js +225 -0
  61. package/src/commands/object/import/ImportObjectsCommand.js +20 -0
  62. package/src/commands/object/import/ImportObjectsInputHandler.js +310 -0
  63. package/src/commands/object/import/ImportObjectsOutputHandler.js +114 -0
  64. package/src/commands/object/list/ListObjectsAction.js +62 -0
  65. package/src/commands/object/list/ListObjectsCommand.js +20 -0
  66. package/src/commands/object/list/ListObjectsInputHandler.js +148 -0
  67. package/src/commands/object/list/ListObjectsOutputHandler.js +29 -0
  68. package/src/commands/object/update/UpdateAction.js +138 -0
  69. package/src/commands/object/update/UpdateCommand.js +20 -0
  70. package/src/commands/object/update/UpdateInputHandler.js +170 -0
  71. package/src/commands/object/update/UpdateOutputHandler.js +61 -0
  72. package/src/commands/project/adddependencies/AddDependenciesAction.js +55 -0
  73. package/src/commands/project/adddependencies/AddDependenciesCommand.js +19 -0
  74. package/src/commands/project/adddependencies/AddDependenciesOutputHandler.js +114 -0
  75. package/src/commands/project/create/CreateProjectAction.js +370 -0
  76. package/src/commands/project/create/CreateProjectCommand.js +20 -0
  77. package/src/commands/project/create/CreateProjectInputHandler.js +169 -0
  78. package/src/commands/project/create/CreateProjectOutputHandler.js +36 -0
  79. package/src/commands/project/deploy/DeployAction.js +161 -0
  80. package/src/commands/project/deploy/DeployCommand.js +20 -0
  81. package/src/commands/project/deploy/DeployInputHandler.js +100 -0
  82. package/src/commands/project/deploy/DeployOutputHandler.js +49 -0
  83. package/src/commands/project/package/PackageAction.js +59 -0
  84. package/src/commands/project/package/PackageCommand.js +18 -0
  85. package/src/commands/project/package/PackageOutputHandler.js +18 -0
  86. package/src/commands/project/validate/ValidateAction.js +106 -0
  87. package/src/commands/project/validate/ValidateCommand.js +20 -0
  88. package/src/commands/project/validate/ValidateInputHandler.js +92 -0
  89. package/src/commands/project/validate/ValidateOutputHandler.js +74 -0
  90. package/src/core/CommandActionExecutor.js +347 -0
  91. package/src/core/CommandAuthentication.js +13 -0
  92. package/src/core/CommandOptionsValidator.js +42 -0
  93. package/src/core/CommandRegistrationService.js +130 -0
  94. package/src/core/CommandsMetadataService.js +104 -0
  95. package/src/core/extensibility/CLIConfigurationService.js +192 -0
  96. package/src/core/extensibility/CommandUserExtension.js +64 -0
  97. package/src/core/sdksetup/SdkDownloadService.js +109 -0
  98. package/src/core/sdksetup/SdkLicense.js +39 -0
  99. package/src/core/sdksetup/SdkProperties.js +51 -0
  100. package/src/loggers/ConsoleLogger.js +32 -0
  101. package/src/loggers/LoggerFontFormatter.mjs +17 -0
  102. package/src/loggers/LoggerOsConstants.js +12 -0
  103. package/src/loggers/NodeConsoleLogger.js +47 -0
  104. package/src/metadata/CommandGenerators.json +92 -0
  105. package/src/metadata/NodeCommandsMetadata.json +139 -0
  106. package/src/metadata/ObjectTypesMetadata.js +615 -0
  107. package/src/metadata/SdkCommandsMetadata.json +846 -0
  108. package/src/metadata/SdkCommandsMetadataPatch.json +130 -0
  109. package/src/metadata/SuiteScriptModulesMetadata.js +152 -0
  110. package/src/metadata/SuiteScriptTypesMetadata.js +64 -0
  111. package/src/services/AccountFileCabinetService.js +86 -0
  112. package/src/services/EnvironmentInformationService.js +31 -0
  113. package/src/services/ExecutionContextService.js +108 -0
  114. package/src/services/FileCabinetService.js +65 -0
  115. package/src/services/FileSystemService.js +245 -0
  116. package/src/services/NodeTranslationService.js +22 -0
  117. package/src/services/NpmInstallRunner.js +33 -0
  118. package/src/services/ProjectInfoService.js +209 -0
  119. package/src/services/SuiteCloudAuthProxyService.js +469 -0
  120. package/src/services/TranslationKeys.js +506 -0
  121. package/src/services/TranslationService.js +30 -0
  122. package/src/services/actionresult/ActionResult.js +129 -0
  123. package/src/services/actionresult/AuthenticateActionResult.js +85 -0
  124. package/src/services/actionresult/CreateProjectActionResult.js +100 -0
  125. package/src/services/actionresult/DeployActionResult.js +69 -0
  126. package/src/services/actionresult/HelloActionResult.js +13 -0
  127. package/src/services/actionresult/ManageAccountActionResult.js +70 -0
  128. package/src/services/settings/CLISettings.js +46 -0
  129. package/src/services/settings/CLISettingsService.js +132 -0
  130. package/src/suitecloud.js +33 -0
  131. package/src/templates/TemplateKeys.js +25 -0
  132. package/src/templates/objects/commerceextension.xml +9 -0
  133. package/src/templates/projectconfigs/default_gitignore.template +47 -0
  134. package/src/templates/projectconfigs/sdf.config.js +4 -0
  135. package/src/templates/projectconfigs/suitecloud.config.js +4 -0
  136. package/src/templates/scripts/blankscript.js +3 -0
  137. package/src/templates/unittest/jest.config.js.template +7 -0
  138. package/src/templates/unittest/jsconfig.json.template +5 -0
  139. package/src/templates/unittest/package.json.template +12 -0
  140. package/src/templates/unittest/sample-test.js.template +37 -0
  141. package/src/templates/unittest/suitecloud.config.js.template +15 -0
  142. package/src/ui/CliSpinner.js +34 -0
  143. package/src/utils/AccountCredentialsFormatter.js +62 -0
  144. package/src/utils/AccountSpecificValuesUtils.js +55 -0
  145. package/src/utils/ActionResultUtils.js +47 -0
  146. package/src/utils/ApplyInstallationPreferencesUtils.js +41 -0
  147. package/src/utils/AuthenticationUtils.js +262 -0
  148. package/src/utils/CommandUtils.js +50 -0
  149. package/src/utils/CryptoUtils.js +41 -0
  150. package/src/utils/ExceptionUtils.js +33 -0
  151. package/src/utils/FileUtils.js +43 -0
  152. package/src/utils/SdkOperationResult.js +68 -0
  153. package/src/utils/SdkOperationResultUtils.js +20 -0
  154. package/src/utils/ValidationErrorsFormatter.js +23 -0
  155. package/src/utils/http/HttpConstants.js +39 -0
  156. package/src/utils/http/ProxyAgent.js +110 -0
  157. package/src/validation/InteractiveAnswersValidator.js +205 -0
@@ -0,0 +1,51 @@
1
+ /*
2
+ ** Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3
+ ** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4
+ */
5
+ 'use strict';
6
+
7
+ const path = require('path');
8
+ const fs = require('fs');
9
+ const HOME_PATH = require('os').homedir();
10
+
11
+ const ROOT_DIRECTORY = path.dirname(path.resolve(__dirname, '../../'));
12
+ const PACKAGE_FILE = `${ROOT_DIRECTORY}/package.json`;
13
+ const CONFIG_FILE = './config.json';
14
+ const { FOLDERS } = require('../../ApplicationConstants');
15
+ const { sdkFilename } = require(PACKAGE_FILE);
16
+
17
+ let CONFIG_FILE_CACHE = null;
18
+
19
+ class SdkProperties {
20
+ constructor() {
21
+ this._loadCache();
22
+ }
23
+
24
+ getDownloadURL() {
25
+ // read config.js file if exists or use package.json
26
+ const configFile = this.configFileExists() ? CONFIG_FILE_CACHE : require(PACKAGE_FILE);
27
+ return configFile.sdkDownloadUrl;
28
+ }
29
+
30
+ getSdkFileName() {
31
+ // read config.js file if exists or use package.json
32
+ const sdkFileName = this.configFileExists() ? CONFIG_FILE_CACHE.sdkFilename : sdkFilename
33
+ return sdkFileName;
34
+ }
35
+
36
+ configFileExists() {
37
+ return CONFIG_FILE_CACHE !== null;
38
+ }
39
+
40
+ _loadCache() {
41
+ if (fs.existsSync(path.resolve(__dirname, CONFIG_FILE))) {
42
+ CONFIG_FILE_CACHE = require(CONFIG_FILE);
43
+ }
44
+ }
45
+
46
+ getSdkPath() {
47
+ return path.join(HOME_PATH, `${FOLDERS.SUITECLOUD_SDK}/${FOLDERS.NODE_CLI}/${this.getSdkFileName()}`);
48
+ }
49
+ }
50
+
51
+ module.exports = new SdkProperties();
@@ -0,0 +1,32 @@
1
+ /*
2
+ ** Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3
+ ** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4
+ */
5
+ 'use strict';
6
+
7
+ const { padding } = require('./LoggerOsConstants');
8
+
9
+ class ConsoleLogger {
10
+ constructor() {}
11
+
12
+ info(message) {}
13
+
14
+ result(message) {}
15
+
16
+ warning(message) {}
17
+
18
+ error(message) {}
19
+
20
+ getPadding(padCount) {
21
+ if (padCount) {
22
+ let paddings = '';
23
+ for (let i = 0; i < padCount; i++) {
24
+ paddings += padding;
25
+ }
26
+ return paddings;
27
+ }
28
+ return padding;
29
+ }
30
+ }
31
+
32
+ module.exports = ConsoleLogger;
@@ -0,0 +1,17 @@
1
+ /*
2
+ ** Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3
+ ** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4
+ */
5
+ 'use strict';
6
+
7
+ import chalk from 'chalk';
8
+
9
+ export const COLORS = {
10
+ DEFAULT: chalk.white,
11
+ RESULT: chalk.green,
12
+ ERROR: chalk.red,
13
+ INFO: chalk.cyan,
14
+ WARNING: chalk.yellow,
15
+ };
16
+
17
+ export const BOLD = chalk.bold;
@@ -0,0 +1,12 @@
1
+ /*
2
+ ** Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3
+ ** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4
+ */
5
+ 'use strict';
6
+
7
+ const os = require('os');
8
+
9
+ module.exports = {
10
+ padding: '\u0020\u0020\u0020\u0020', //4 spaces
11
+ lineBreak: os.EOL,
12
+ };
@@ -0,0 +1,47 @@
1
+ /*
2
+ ** Copyright (c) 2024 Oracle and/or its affiliates. All rights reserved.
3
+ ** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
4
+ */
5
+ 'use strict';
6
+
7
+ const ConsoleLogger = require('./ConsoleLogger');
8
+
9
+ const loadLoggerFontFormatter = async () => {
10
+ const { COLORS, BOLD } = await import('./LoggerFontFormatter.mjs');
11
+ return { COLORS, BOLD };
12
+ };
13
+ const fontFormatterPromise = loadLoggerFontFormatter();
14
+
15
+ class NodeConsoleLogger extends ConsoleLogger {
16
+
17
+ info(message) {
18
+ return fontFormatterPromise.then(({ COLORS: { INFO } }) => {
19
+ this._println(message, INFO);
20
+ });
21
+ }
22
+
23
+ result(message) {
24
+ return fontFormatterPromise.then(({ COLORS: { RESULT } }) => {
25
+ this._println(message, RESULT);
26
+ });
27
+ }
28
+
29
+ warning(message) {
30
+ return fontFormatterPromise.then(({ COLORS: { WARNING } }) => {
31
+ this._println(message, WARNING);
32
+ });
33
+ }
34
+
35
+ error(message) {
36
+ return fontFormatterPromise.then(({ COLORS: { ERROR } }) => {
37
+ this._println(message, ERROR);
38
+ });
39
+ }
40
+
41
+ _println(message, color) {
42
+ console.log(color(message));
43
+ }
44
+
45
+ }
46
+
47
+ module.exports = new NodeConsoleLogger();
@@ -0,0 +1,92 @@
1
+ [
2
+ {
3
+ "commandName": "account:manageauth",
4
+ "supportsInteractiveMode": true,
5
+ "generator": "./commands/account/manageauth/ManageAccountCommand"
6
+ },
7
+ {
8
+ "commandName": "account:setup",
9
+ "supportsInteractiveMode": true,
10
+ "generator": "./commands/account/setup/SetupCommand"
11
+ },
12
+ {
13
+ "commandName": "account:setup:ci",
14
+ "supportsInteractiveMode": false,
15
+ "generator": "./commands/account/setupci/AccountSetupCiCommand"
16
+ },
17
+ {
18
+ "commandName": "custom:hello",
19
+ "supportsInteractiveMode": false,
20
+ "generator": "./commands/custom/hello/Command"
21
+ },
22
+ {
23
+ "commandName": "custom:hook",
24
+ "supportsInteractiveMode": false,
25
+ "generator": "./commands/custom/hook/Command"
26
+ },
27
+ {
28
+ "commandName": "file:create",
29
+ "supportsInteractiveMode": true,
30
+ "generator": "commands/file/create/CreateFileCommand"
31
+ },
32
+ {
33
+ "commandName": "file:import",
34
+ "supportsInteractiveMode": true,
35
+ "generator": "commands/file/import/ImportFilesCommand"
36
+ },
37
+ {
38
+ "commandName": "file:list",
39
+ "supportsInteractiveMode": true,
40
+ "generator": "commands/file/list/ListFilesCommand"
41
+ },
42
+ {
43
+ "commandName": "file:upload",
44
+ "supportsInteractiveMode": true,
45
+ "generator": "commands/file/upload/UploadFilesCommand"
46
+ },
47
+ {
48
+ "commandName": "object:import",
49
+ "supportsInteractiveMode": true,
50
+ "generator": "commands/object/import/ImportObjectsCommand"
51
+ },
52
+ {
53
+ "commandName": "object:list",
54
+ "supportsInteractiveMode": true,
55
+ "generator": "commands/object/list/ListObjectsCommand"
56
+ },
57
+ {
58
+ "commandName": "object:update",
59
+ "supportsInteractiveMode": true,
60
+ "generator": "./commands/object/update/UpdateCommand"
61
+ },
62
+ {
63
+ "commandName": "project:adddependencies",
64
+ "supportsInteractiveMode": false,
65
+ "generator": "commands/project/adddependencies/AddDependenciesCommand"
66
+ },
67
+ {
68
+ "commandName": "project:create",
69
+ "supportsInteractiveMode": true,
70
+ "generator": "commands/project/create/CreateProjectCommand"
71
+ },
72
+ {
73
+ "commandName": "project:deploy",
74
+ "supportsInteractiveMode": true,
75
+ "generator": "commands/project/deploy/DeployCommand"
76
+ },
77
+ {
78
+ "commandName": "project:package",
79
+ "supportsInteractiveMode": true,
80
+ "generator": "commands/project/package/PackageCommand"
81
+ },
82
+ {
83
+ "commandName": "project:validate",
84
+ "supportsInteractiveMode": true,
85
+ "generator": "commands/project/validate/ValidateCommand"
86
+ },
87
+ {
88
+ "commandName": "object:create",
89
+ "supportsInteractiveMode": true,
90
+ "generator": "commands/object/create/CreateObjectCommand"
91
+ }
92
+ ]
@@ -0,0 +1,139 @@
1
+ {
2
+ "custom:hook": {
3
+ "name": "custom:hook",
4
+ "sdkCommand":null,
5
+ "alias": "customhook",
6
+ "description": "Runs a passthrough for your handlers. Otherwise does nothing.",
7
+ "isSetupRequired": false,
8
+ "forceInteractiveMode": false,
9
+ "options": {
10
+ "option1": {
11
+ "name": "option1",
12
+ "description": "Arbitrary value for your custom hook to recognize",
13
+ "type": "SINGLE",
14
+ "mandatory": false,
15
+ "disableInIntegrationMode": false
16
+ },
17
+ "option2": {
18
+ "name": "option2",
19
+ "description": "Arbitrary for your custom hook to recognize",
20
+ "type": "SINGLE",
21
+ "mandatory": false,
22
+ "disableInIntegrationMode": false
23
+ },
24
+ "option3": {
25
+ "name": "option3",
26
+ "description": "Arbitrary for your custom hook to recognize",
27
+ "type": "SINGLE",
28
+ "mandatory": false,
29
+ "disableInIntegrationMode": false
30
+ },
31
+ "option4": {
32
+ "name": "option4",
33
+ "description": "Arbitrary for your custom hook to recognize",
34
+ "type": "SINGLE",
35
+ "mandatory": false,
36
+ "disableInIntegrationMode": false
37
+ },
38
+ "option5": {
39
+ "name": "option5",
40
+ "description": "Arbitrary for your custom hook to recognize",
41
+ "type": "SINGLE",
42
+ "mandatory": false,
43
+ "disableInIntegrationMode": false
44
+ },
45
+ "multi1": {
46
+ "name": "multi1",
47
+ "description": "Arbitrary array for your custom hook to recognize",
48
+ "usage": "--multi1 a b c",
49
+ "type": "SINGLE",
50
+ "mandatory": false,
51
+ "disableInIntegrationMode": false
52
+ },
53
+ "multi2": {
54
+ "name": "multi2",
55
+ "description": "Arbitrary array for your custom hook to recognize",
56
+ "usage": "--multi2 a b c",
57
+ "type": "SINGLE",
58
+ "mandatory": false,
59
+ "disableInIntegrationMode": false
60
+ },
61
+ "multi3": {
62
+ "name": "multi3",
63
+ "description": "Arbitrary array for your custom hook to recognize",
64
+ "usage": "--multi3 a b c",
65
+ "type": "SINGLE",
66
+ "mandatory": false,
67
+ "disableInIntegrationMode": false
68
+ },
69
+ "multi4": {
70
+ "name": "multi4",
71
+ "description": "Arbitrary array for your custom hook to recognize",
72
+ "usage": "--multi4 a b c",
73
+ "type": "SINGLE",
74
+ "mandatory": false,
75
+ "disableInIntegrationMode": false
76
+ },
77
+ "multi5": {
78
+ "name": "multi5",
79
+ "description": "Arbitrary array for your custom hook to recognize",
80
+ "usage": "--multi5 a b c",
81
+ "type": "SINGLE",
82
+ "mandatory": false,
83
+ "disableInIntegrationMode": false
84
+ },
85
+ "flag1": {
86
+ "name": "flag1",
87
+ "description": "Arbitrary on/off flag for your custom hook to use",
88
+ "type": "FLAG",
89
+ "mandatory": false,
90
+ "disableInIntegrationMode": false
91
+ },
92
+ "flag2": {
93
+ "name": "flag2",
94
+ "description": "Arbitrary on/off flag for your custom hook to use",
95
+ "type": "FLAG",
96
+ "mandatory": false,
97
+ "disableInIntegrationMode": false
98
+ },
99
+ "flag3": {
100
+ "name": "flag3",
101
+ "description": "Arbitrary on/off flag for your custom hook to use",
102
+ "type": "FLAG",
103
+ "mandatory": false,
104
+ "disableInIntegrationMode": false
105
+ },
106
+ "flag4": {
107
+ "name": "flag4",
108
+ "description": "Arbitrary on/off flag for your custom hook to use",
109
+ "type": "FLAG",
110
+ "mandatory": false,
111
+ "disableInIntegrationMode": false
112
+ },
113
+ "flag5": {
114
+ "name": "flag5",
115
+ "description": "Arbitrary on/off flag for your custom hook to use",
116
+ "type": "FLAG",
117
+ "mandatory": false,
118
+ "disableInIntegrationMode": false
119
+ }
120
+ }
121
+ },
122
+ "account:setup": {
123
+ "name": "account:setup",
124
+ "alias": "sa",
125
+ "description": "Sets up an account to use with SuiteCloud SDK and configures the default auth ID for the SuiteCloud project. This command requires browser-based login to NetSuite.",
126
+ "isSetupRequired": false,
127
+ "forceInteractiveMode": true,
128
+ "options": {
129
+ "dev": {
130
+ "name": "dev",
131
+ "alias": "d",
132
+ "description": "It only needs to be specified if you want to use a customized NetSuite domain.",
133
+ "type": "FLAG",
134
+ "mandatory": false,
135
+ "disableInIntegrationMode": false
136
+ }
137
+ }
138
+ }
139
+ }