@forge/cli

13.2.0-next.10-experimental-f51f59313.2.0-next.11-experimental-aa275c1
out/command-line/register-app-commands.js
~out/command-line/register-app-commands.jsModified
+21−9
Index: package/out/command-line/register-app-commands.js
===================================================================
--- package/out/command-line/register-app-commands.js
+++ package/out/command-line/register-app-commands.js
@@ -73,8 +73,13 @@
         (name) => !!name && !name.includes('ui-kit') && !name.includes('custom-ui') && !name.includes('rovo') && name !== 'blank'
     ]
 ];
 const MAX_NAME_LENGTH = 60;
+const createAppFeatures = ({ isPersonalApp }) => {
+    if (isPersonalApp) {
+        return { isPersonalApp: true };
+    }
+};
 function formatProduct(product) {
     return (exports.PRODUCT_OPTIONS_DISPLAY[product] ??
         product
             .split('-')
@@ -195,9 +200,9 @@
         selectedDevSpace,
         isNewlyCreatedDevSpace
     };
 }
-async function createCommandHandler(ui, createAppCommand, name, { template, directory, developerSpaceId, acceptTerms }, devSpaceService, isDevSpaceSelectionEnabled, analyticsClientReporter) {
+async function createCommandHandler(ui, createAppCommand, name, { template, directory, developerSpaceId, acceptTerms, personal }, devSpaceService, isDevSpaceSelectionEnabled, analyticsClientReporter) {
     if (isDevSpaceSelectionEnabled && developerSpaceId && !(0, exports.isValidDevSpaceId)(developerSpaceId)) {
         throw new cli_shared_1.ValidationError(cli_shared_1.Text.devSpace.invalidSpaceId(developerSpaceId));
     }
     const devSpaceResult = isDevSpaceSelectionEnabled
@@ -223,18 +228,20 @@
     const selection = await promptAndSelectTemplate(ui, createAppCommand, template, directory);
     template = selection.template;
     ui.emptyLine();
     directory = directory;
+    const appFeatures = createAppFeatures({ isPersonalApp: personal });
     const args = {
         name,
         template,
         directory,
         ...(selection.requiredContext && { requiredProduct: selection.requiredContext }),
         ...(selection.installationTarget && { installationTarget: selection.installationTarget }),
         ...(selectedDevSpace?.id && { developerSpaceId: selectedDevSpace?.id }),
-        billingConsent
+        billingConsent,
+        ...(appFeatures && { appFeatures })
     };
-    const result = await ui.displayProgress(() => createAppCommand.execute(args), cli_shared_1.Text.create.cmd.start, cli_shared_1.Text.create.cmd.success(name));
+    const result = await ui.displayProgress(() => createAppCommand.execute(args), personal ? cli_shared_1.Text.create.cmd.startPersonal : cli_shared_1.Text.create.cmd.start, cli_shared_1.Text.create.cmd.success(name));
     await analyticsClientReporter.reportCreationSurvey({
         ...result.analytics,
         ...selection.analytics
     });
@@ -364,9 +371,10 @@
     const createCommand = cmd
         .command('create [name]')
         .description(cli_shared_1.Text.create.cmd.desc)
         .option('-t, --template <template name>', cli_shared_1.Text.create.optionTemplate)
-        .option('-d, --directory <directory name>', cli_shared_1.Text.create.optionDirectory);
+        .option('-d, --directory <directory name>', cli_shared_1.Text.create.optionDirectory)
+        .option('--personal', cli_shared_1.Text.create.optionPersonal);
     if (isDevSpaceSelectionEnabled) {
         createCommand.option('-s, --developer-space-id <Developer Space id>', cli_shared_1.Text.create.optionSpace);
         createCommand.option('-y, --accept-terms', cli_shared_1.Text.create.optionAcceptTerms);
     }
@@ -375,17 +383,19 @@
     });
 }
 async function registerRegisterCommand({ cmd, ui, commands: { registerAppCommand }, services: { devSpaceService, statsigService } }) {
     const isDevSpaceSelectionEnabled = await statsigService.isDevSpaceSelectionEnabled();
-    const registerCommand = cmd.command('register [name]').description(cli_shared_1.Text.register.cmd.desc);
+    const registerCommand = cmd
+        .command('register [name]')
+        .description(cli_shared_1.Text.register.cmd.desc)
+        .option('--personal', cli_shared_1.Text.create.optionPersonal);
     if (isDevSpaceSelectionEnabled) {
         registerCommand.option('-s, --developer-space-id <Developer Space id>', cli_shared_1.Text.create.optionSpace);
         registerCommand.option('-y, --accept-terms', cli_shared_1.Text.create.optionAcceptTerms);
     }
     registerCommand
         .requireManifestFile()
-        .action(async (name, options) => {
-        const { developerSpaceId, acceptTerms } = options;
+        .action(async (name, { developerSpaceId, acceptTerms, personal }) => {
         if (isDevSpaceSelectionEnabled && developerSpaceId && !(0, exports.isValidDevSpaceId)(developerSpaceId)) {
             throw new cli_shared_1.ValidationError(cli_shared_1.Text.devSpace.invalidSpaceId(developerSpaceId));
         }
         const devSpaceResult = isDevSpaceSelectionEnabled
@@ -415,14 +425,16 @@
             billingConsent = await promptAndAcceptTerms(ui, acceptTerms);
             ui.info(cli_shared_1.Text.devSpace.terms.accepted('registration'));
             ui.emptyLine();
         }
+        const appFeatures = createAppFeatures({ isPersonalApp: personal });
         const executeArgs = {
             name,
+            billingConsent,
             ...(selectedDevSpace?.id && { developerSpaceId: selectedDevSpace?.id }),
-            billingConsent
+            ...(appFeatures && { appFeatures })
         };
-        const result = await ui.displayProgress(() => registerAppCommand.execute(executeArgs), cli_shared_1.Text.register.cmd.start, cli_shared_1.Text.register.cmd.success(name));
+        const result = await ui.displayProgress(() => registerAppCommand.execute(executeArgs), personal ? cli_shared_1.Text.register.cmd.startPersonal : cli_shared_1.Text.register.cmd.start, cli_shared_1.Text.register.cmd.success(name));
         ui.info(cli_shared_1.Text.register.cmd.successDetails(result.environments));
         return result;
     });
 }