From 53e0388645281608c34b93bc42a6072b9fa186a2 Mon Sep 17 00:00:00 2001 From: jycouet Date: Fri, 3 Apr 2026 18:50:11 +0200 Subject: [PATCH 1/2] chore: adding org question --- packages/sv/src/cli/create.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/sv/src/cli/create.ts b/packages/sv/src/cli/create.ts index b31804536..b7e07ffdc 100644 --- a/packages/sv/src/cli/create.ts +++ b/packages/sv/src/cli/create.ts @@ -261,14 +261,25 @@ async function createProject(cwd: ProjectPath, options: Options) { const projectPath = path.resolve(directory); const basename = path.basename(projectPath); const parentDirName = path.basename(path.dirname(projectPath)); - const projectName = parentDirName.startsWith('@') ? `${parentDirName}/${basename}` : basename; + let projectName = parentDirName.startsWith('@') ? `${parentDirName}/${basename}` : basename; if (template === 'addon' && !projectName.startsWith('@')) { // At this stage, we don't support un-scoped add-ons // FYI: a demo exists for `npx sv add my-cool-addon` - common.errorAndExit( - `Community add-ons must be published under an npm org (e.g. ${color.command('@my-org/sv')}). Unscoped package names are not supported at this stage.` - ); + const org = await p.text({ + message: `Community add-ons must be published under an npm org. What's your npm org?`, + placeholder: ' @my-org', + validate: (value) => { + if (!value) return 'Organization name is required'; + if (!value.startsWith('@')) return 'Must start with @'; + if (value.includes('/')) return 'Just the org, not the full package name'; + } + }); + if (p.isCancel(org)) { + p.cancel('Operation cancelled.'); + process.exit(0); + } + projectName = `${org}/${basename}`; } if (template === 'addon' && options.add.length > 0) { From fd15ef6a20b000269ccf570643be1611a02cb3d9 Mon Sep 17 00:00:00 2001 From: "jyc.dev" Date: Fri, 3 Apr 2026 20:14:01 +0200 Subject: [PATCH 2/2] Update packages/sv/src/cli/create.ts Co-authored-by: Scott Wu --- packages/sv/src/cli/create.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sv/src/cli/create.ts b/packages/sv/src/cli/create.ts index b7e07ffdc..3d847d4f6 100644 --- a/packages/sv/src/cli/create.ts +++ b/packages/sv/src/cli/create.ts @@ -267,7 +267,7 @@ async function createProject(cwd: ProjectPath, options: Options) { // At this stage, we don't support un-scoped add-ons // FYI: a demo exists for `npx sv add my-cool-addon` const org = await p.text({ - message: `Community add-ons must be published under an npm org. What's your npm org?`, + message: `Community add-ons must be published under an npm org. Enter the name of your npm org:`, placeholder: ' @my-org', validate: (value) => { if (!value) return 'Organization name is required';