@doswiftly/cli 0.1.23 → 0.2.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.
Files changed (98) hide show
  1. package/dist/commands/check.js +2 -2
  2. package/dist/commands/deploy.d.ts.map +1 -1
  3. package/dist/commands/deploy.js +34 -7
  4. package/dist/commands/deploy.js.map +1 -1
  5. package/dist/commands/dev.d.ts +13 -0
  6. package/dist/commands/dev.d.ts.map +1 -1
  7. package/dist/commands/dev.js +155 -63
  8. package/dist/commands/dev.js.map +1 -1
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +3 -4
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/init.d.ts.map +1 -1
  13. package/dist/commands/init.js +271 -166
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/sdk.d.ts +1 -1
  16. package/dist/commands/sdk.js +3 -3
  17. package/dist/commands/sdk.js.map +1 -1
  18. package/dist/commands/template.d.ts.map +1 -1
  19. package/dist/commands/template.js +4 -31
  20. package/dist/commands/template.js.map +1 -1
  21. package/dist/commands/verify.js +5 -5
  22. package/dist/commands/verify.js.map +1 -1
  23. package/dist/index.js +2 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/i18n.d.ts +12 -0
  26. package/dist/lib/i18n.d.ts.map +1 -1
  27. package/dist/lib/i18n.js +24 -0
  28. package/dist/lib/i18n.js.map +1 -1
  29. package/dist/lib/proxy-server.d.ts +22 -6
  30. package/dist/lib/proxy-server.d.ts.map +1 -1
  31. package/dist/lib/proxy-server.js +174 -75
  32. package/dist/lib/proxy-server.js.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/commands/types.d.ts +0 -5
  35. package/dist/commands/types.d.ts.map +0 -1
  36. package/dist/commands/types.js +0 -82
  37. package/dist/commands/types.js.map +0 -1
  38. package/templates/storefront-minimal/.env.example +0 -10
  39. package/templates/storefront-minimal/.github/workflows/build-template.yml +0 -119
  40. package/templates/storefront-minimal/app/globals.css +0 -18
  41. package/templates/storefront-minimal/app/layout.tsx +0 -26
  42. package/templates/storefront-minimal/app/page.tsx +0 -93
  43. package/templates/storefront-minimal/lib/graphql-client.ts +0 -23
  44. package/templates/storefront-minimal/next.config.ts +0 -15
  45. package/templates/storefront-minimal/open-next.config.ts +0 -3
  46. package/templates/storefront-minimal/package.json +0 -30
  47. package/templates/storefront-minimal/postcss.config.mjs +0 -5
  48. package/templates/storefront-minimal/tailwind.config.ts +0 -14
  49. package/templates/storefront-minimal/tsconfig.json +0 -27
  50. package/templates/storefront-minimal/wrangler.toml +0 -24
  51. package/templates/storefront-nextjs/.env.example +0 -68
  52. package/templates/storefront-nextjs/.github/workflows/build-template.yml +0 -119
  53. package/templates/storefront-nextjs/README.md +0 -524
  54. package/templates/storefront-nextjs/app/account/orders/page.tsx +0 -216
  55. package/templates/storefront-nextjs/app/account/page.tsx +0 -167
  56. package/templates/storefront-nextjs/app/auth/login/page.tsx +0 -135
  57. package/templates/storefront-nextjs/app/auth/register/page.tsx +0 -212
  58. package/templates/storefront-nextjs/app/cart/page.tsx +0 -263
  59. package/templates/storefront-nextjs/app/categories/[slug]/page.tsx +0 -200
  60. package/templates/storefront-nextjs/app/categories/page.tsx +0 -58
  61. package/templates/storefront-nextjs/app/checkout/page.tsx +0 -351
  62. package/templates/storefront-nextjs/app/collections/[slug]/page.tsx +0 -158
  63. package/templates/storefront-nextjs/app/collections/page.tsx +0 -61
  64. package/templates/storefront-nextjs/app/globals.css +0 -98
  65. package/templates/storefront-nextjs/app/layout.tsx +0 -39
  66. package/templates/storefront-nextjs/app/page.tsx +0 -136
  67. package/templates/storefront-nextjs/app/products/[slug]/page.tsx +0 -119
  68. package/templates/storefront-nextjs/app/products/page.tsx +0 -107
  69. package/templates/storefront-nextjs/app/search/page.tsx +0 -127
  70. package/templates/storefront-nextjs/components/auth/auth-guard.tsx +0 -94
  71. package/templates/storefront-nextjs/components/commerce/add-to-cart-button.tsx +0 -77
  72. package/templates/storefront-nextjs/components/commerce/cart-icon.tsx +0 -29
  73. package/templates/storefront-nextjs/components/commerce/currency-selector.tsx +0 -217
  74. package/templates/storefront-nextjs/components/commerce/pagination.tsx +0 -62
  75. package/templates/storefront-nextjs/components/commerce/product-actions.tsx +0 -135
  76. package/templates/storefront-nextjs/components/commerce/product-filters.tsx +0 -109
  77. package/templates/storefront-nextjs/components/commerce/product-price.tsx +0 -375
  78. package/templates/storefront-nextjs/components/commerce/search-input.tsx +0 -178
  79. package/templates/storefront-nextjs/components/commerce/sort-select.tsx +0 -64
  80. package/templates/storefront-nextjs/components/commerce/variant-selector.tsx +0 -210
  81. package/templates/storefront-nextjs/components/layout/footer.tsx +0 -107
  82. package/templates/storefront-nextjs/components/layout/header.tsx +0 -104
  83. package/templates/storefront-nextjs/components/providers.tsx +0 -62
  84. package/templates/storefront-nextjs/lib/auth/routes.ts +0 -52
  85. package/templates/storefront-nextjs/lib/currency.tsx +0 -140
  86. package/templates/storefront-nextjs/lib/format.ts +0 -159
  87. package/templates/storefront-nextjs/lib/graphql-queries.ts +0 -629
  88. package/templates/storefront-nextjs/lib/hooks.ts +0 -30
  89. package/templates/storefront-nextjs/middleware.ts +0 -80
  90. package/templates/storefront-nextjs/next.config.ts +0 -37
  91. package/templates/storefront-nextjs/open-next.config.ts +0 -3
  92. package/templates/storefront-nextjs/package.dev.json +0 -30
  93. package/templates/storefront-nextjs/package.json +0 -32
  94. package/templates/storefront-nextjs/package.json.template +0 -32
  95. package/templates/storefront-nextjs/postcss.config.mjs +0 -8
  96. package/templates/storefront-nextjs/tailwind.config.ts +0 -111
  97. package/templates/storefront-nextjs/tsconfig.json +0 -27
  98. package/templates/storefront-nextjs/wrangler.toml +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AA8BnC,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAirCD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,iBAqE1D"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AA8BnC,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,cAAc,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAgzCD,wBAAsB,WAAW,CAAC,OAAO,GAAE,WAAgB,iBAsE1D"}
@@ -9,7 +9,7 @@ import { detectPackageManager, getPackageManagerInfo, installDependencies, } fro
9
9
  import { getStoredToken } from "./auth.js";
10
10
  import { hasProfiles, addProfile } from "../lib/env-storage.js";
11
11
  import { getApiUrl } from "../lib/api-url.js";
12
- import { WizardEngine, selectWithBack, isBack, isCancel, next, back, cancel, clearScreen, } from "../lib/wizard-engine.js";
12
+ import { WizardEngine, selectWithBack, isBack, isCancel, next, back, cancel, skip, clearScreen, } from "../lib/wizard-engine.js";
13
13
  import { t, initI18n } from "../lib/i18n.js";
14
14
  const __filename = fileURLToPath(import.meta.url);
15
15
  const __dirname = dirname(__filename);
@@ -315,40 +315,9 @@ const stepDirectory = {
315
315
  return cancel();
316
316
  if (choice === "current") {
317
317
  const cwd = process.cwd();
318
- const projectName = basename(cwd);
319
- // Validate: directory should be empty or contain only hidden files
320
- const entries = readdirSync(cwd).filter((e) => !e.startsWith("."));
321
- if (entries.length > 0) {
322
- // Clear screen and show error with option to retry
323
- clearScreen();
324
- p.intro(pc.bgCyan(pc.black(` ${t().wizardTitle} `)));
325
- const current = ctx.stepIndex + 1;
326
- const total = ctx.totalSteps;
327
- const filled = pc.green('●'.repeat(current));
328
- const empty = pc.dim('○'.repeat(total - current));
329
- p.log.step(pc.cyan(`${t().stepOf(current, total)}: ${t().targetDirectory}`));
330
- p.log.message(`${filled}${empty}`, { symbol: '' });
331
- p.log.error(t().directoryNotEmpty);
332
- p.log.info(pc.dim(t().chooseNewDirectory));
333
- const retry = await p.confirm({
334
- message: t().tryAgain,
335
- initialValue: true,
336
- });
337
- if (p.isCancel(retry))
338
- return cancel();
339
- if (!retry)
340
- return cancel();
341
- // Clear screen and redraw for retry
342
- clearScreen();
343
- p.intro(pc.bgCyan(pc.black(` ${t().wizardTitle} `)));
344
- p.log.step(pc.cyan(`${t().stepOf(current, total)}: ${t().targetDirectory}`));
345
- p.log.message(`${filled}${empty}`, { symbol: '' });
346
- continue; // Loop back to selection
347
- }
348
318
  // Check if already initialized
349
319
  if (existsSync(join(cwd, "doswiftly.config.ts")) ||
350
320
  existsSync(join(cwd, "doswiftly.config.js"))) {
351
- // Clear screen and show error
352
321
  clearScreen();
353
322
  p.intro(pc.bgCyan(pc.black(` ${t().wizardTitle} `)));
354
323
  const current = ctx.stepIndex + 1;
@@ -367,14 +336,49 @@ const stepDirectory = {
367
336
  return cancel();
368
337
  if (!retry)
369
338
  return cancel();
370
- // Clear screen and redraw for retry
371
339
  clearScreen();
372
340
  p.intro(pc.bgCyan(pc.black(` ${t().wizardTitle} `)));
373
341
  p.log.step(pc.cyan(`${t().stepOf(current, total)}: ${t().targetDirectory}`));
374
342
  p.log.message(`${filled}${empty}`, { symbol: '' });
375
- continue; // Loop back to selection
343
+ continue;
376
344
  }
377
- return next({ targetDir: cwd, projectName });
345
+ // Check if directory has files — offer adopt flow
346
+ const entries = readdirSync(cwd).filter((e) => !e.startsWith("."));
347
+ if (entries.length > 0) {
348
+ // Read project name from package.json or directory name
349
+ const pkgPath = join(cwd, "package.json");
350
+ let projectName = basename(cwd);
351
+ if (existsSync(pkgPath)) {
352
+ try {
353
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
354
+ if (pkg.name)
355
+ projectName = pkg.name;
356
+ }
357
+ catch {
358
+ // ignore parse errors
359
+ }
360
+ }
361
+ p.log.info(pc.bold(t().existingProjectDetected));
362
+ p.log.message(pc.dim(t().existingProjectName(projectName)));
363
+ const adoptChoice = await selectWithBack({
364
+ message: t().connectToDoSwiftly,
365
+ options: [
366
+ { value: "adopt", label: t().connectToDoSwiftly },
367
+ { value: "new", label: t().createNewInstead },
368
+ ],
369
+ canGoBack: false,
370
+ });
371
+ if (isCancel(adoptChoice))
372
+ return cancel();
373
+ if (adoptChoice === "new") {
374
+ // Fall through to "new directory" flow below
375
+ break;
376
+ }
377
+ // Adopt: use cwd, mark as adopt mode
378
+ return next({ targetDir: cwd, projectName, __isAdopt: true });
379
+ }
380
+ // Empty directory — scaffold flow
381
+ return next({ targetDir: cwd, projectName: basename(cwd) });
378
382
  }
379
383
  // "new" was selected, break out of loop
380
384
  break;
@@ -535,6 +539,10 @@ const stepCodeSource = {
535
539
  stateKeys: ["codeSource"],
536
540
  canGoBack: true,
537
541
  async execute(state, ctx) {
542
+ // Adopt flow: skip template selection — user already has code
543
+ if (state.__isAdopt) {
544
+ return skip({ codeSource: { type: "empty" } });
545
+ }
538
546
  // Loop to handle internal back navigation within this step
539
547
  while (true) {
540
548
  // First prompt: choose source type
@@ -632,15 +640,19 @@ const stepConfirm = {
632
640
  },
633
641
  async execute(state, ctx) {
634
642
  // Display summary with consistent alignment
635
- const templateName = state.codeSource.type === "empty"
636
- ? "Minimal"
637
- : state.codeSource.templateName || "Template";
643
+ const isAdopt = state.__isAdopt;
644
+ const templateName = isAdopt
645
+ ? "(existing project)"
646
+ : state.codeSource.type === "empty"
647
+ ? "Minimal"
648
+ : state.codeSource.templateName || "Template";
638
649
  const summaryLines = [
639
650
  ` ${pc.dim("Directory:")} ${state.targetDir}`,
640
651
  ` ${pc.dim("Team:")} ${state.team.name}`,
641
652
  ` ${pc.dim("Project:")} ${state.project.name}`,
642
653
  ` ${pc.dim("Shop:")} ${state.shopSlug}`,
643
- ` ${pc.dim("Template:")} ${templateName}`,
654
+ ...(isAdopt ? [] : [` ${pc.dim("Template:")} ${templateName}`]),
655
+ ...(isAdopt ? [` ${pc.dim("Mode:")} ${pc.cyan("Connect existing project")}`] : []),
644
656
  ];
645
657
  console.log(); // Empty line before summary
646
658
  console.log(pc.bold(t().summary + ":"));
@@ -649,7 +661,7 @@ const stepConfirm = {
649
661
  const confirmChoice = await selectWithBack({
650
662
  message: t().continue,
651
663
  options: [
652
- { value: "yes", label: t().yes },
664
+ { value: "yes", label: isAdopt ? t().adoptSummaryYes : t().yes },
653
665
  { value: "no", label: t().cancel },
654
666
  ],
655
667
  canGoBack: ctx.canGoBack,
@@ -716,32 +728,10 @@ async function initTemplateProject(options) {
716
728
  p.cancel(t().cancelled);
717
729
  process.exit(0);
718
730
  }
719
- // Base template selection
720
- const baseTemplate = await p.select({
721
- message: "Base template to start from:",
722
- options: [
723
- {
724
- value: "storefront-nextjs-shadcn",
725
- label: "shadcn/ui (Recommended)",
726
- hint: "Next.js + shadcn/ui + Tailwind CSS",
727
- },
728
- {
729
- value: "storefront-minimal",
730
- label: "Minimal (Next.js only)",
731
- hint: "Minimal Next.js starter",
732
- },
733
- ],
734
- });
735
- if (p.isCancel(baseTemplate)) {
736
- p.cancel(t().cancelled);
737
- process.exit(0);
738
- }
739
- // UI Library label
740
- const uiLibraryMap = {
741
- "storefront-nextjs-shadcn": "shadcn/ui",
742
- "storefront-minimal": "none",
743
- };
744
- const uiLibrary = uiLibraryMap[baseTemplate] || "none";
731
+ // Only one base template available — auto-select
732
+ const baseTemplate = "storefront-nextjs-shadcn";
733
+ p.log.info(pc.dim(`Base template: Next.js 16 + shadcn/ui + Tailwind CSS + GraphQL codegen`));
734
+ const uiLibrary = "shadcn/ui";
745
735
  // Create directory
746
736
  const targetDir = templateName;
747
737
  if (existsSync(targetDir)) {
@@ -760,7 +750,6 @@ async function initTemplateProject(options) {
760
750
  "\\{\\{SHOP_SLUG\\}\\}": "{{SHOP_SLUG}}",
761
751
  "\\{\\{API_URL\\}\\}": "{{API_URL}}",
762
752
  "\\{\\{SDK_VERSION\\}\\}": "^4.0.0",
763
- "\\{\\{COMMERCE_SDK_VERSION\\}\\}": "^4.0.0",
764
753
  "\\{\\{STOREFRONT_OPS_VERSION\\}\\}": "^1.0.0",
765
754
  };
766
755
  copyTemplateDir(templateDir, targetDir, replacements);
@@ -808,65 +797,179 @@ async function initTemplateProject(options) {
808
797
  // Project Creation
809
798
  // ============================================================================
810
799
  /**
811
- * Execute project creation after wizard completes
800
+ * Merge (or create) .env.local appends missing vars without overwriting existing ones.
801
+ */
802
+ function mergeEnvLocal(targetDir, vars) {
803
+ const envPath = join(targetDir, ".env.local");
804
+ if (existsSync(envPath)) {
805
+ const existing = readFileSync(envPath, "utf-8");
806
+ const lines = [];
807
+ for (const [key, value] of Object.entries(vars)) {
808
+ // Match only non-commented, line-start occurrences of KEY=
809
+ const re = new RegExp(`^\\s*${key}=`, "m");
810
+ if (!re.test(existing)) {
811
+ lines.push(`${key}=${value}`);
812
+ }
813
+ }
814
+ if (lines.length > 0) {
815
+ writeFileSync(envPath, existing.trimEnd() +
816
+ "\n\n# Added by DoSwiftly CLI\n" +
817
+ lines.join("\n") +
818
+ "\n");
819
+ }
820
+ return "merged";
821
+ }
822
+ // Create new .env.local
823
+ const content = [
824
+ "# Generated by DoSwiftly CLI",
825
+ "",
826
+ ...Object.entries(vars).map(([k, v]) => `${k}=${v}`),
827
+ "",
828
+ ].join("\n");
829
+ writeFileSync(envPath, content);
830
+ return "created";
831
+ }
832
+ /**
833
+ * Execute project creation after wizard completes.
834
+ * Handles both scaffold (new project from template) and adopt (connect existing project).
812
835
  */
813
836
  async function createProject(state) {
814
- const { targetDir, projectName, shopSlug, codeSource, shouldInstall, __apiUrl: apiUrl, __pmInfo: pmInfo, } = state;
837
+ const { targetDir, projectName, shopSlug, codeSource, shouldInstall, __apiUrl: apiUrl, __pmInfo: pmInfo, __isAdopt: isAdopt, } = state;
815
838
  // Clear screen for clean project creation output
816
839
  clearScreen();
817
840
  p.intro(pc.bgCyan(pc.black(` ${t().wizardTitle} `)));
818
- const createSpinner = ora(t().creatingProject).start();
841
+ const spinnerText = isAdopt ? t().connectingProject : t().creatingProject;
842
+ const createSpinner = ora(spinnerText).start();
819
843
  try {
820
- // Create target directory if it doesn't exist
821
- if (!existsSync(targetDir)) {
822
- mkdirSync(targetDir, { recursive: true });
823
- }
824
- // Define placeholder replacements
825
- const replacements = {
826
- "\\{\\{PROJECT_NAME\\}\\}": projectName,
827
- "\\{\\{SHOP_SLUG\\}\\}": shopSlug,
828
- "\\{\\{API_URL\\}\\}": apiUrl,
829
- "\\{\\{SDK_VERSION\\}\\}": "^4.0.0",
830
- "\\{\\{COMMERCE_SDK_VERSION\\}\\}": "^4.0.0",
831
- "\\{\\{STOREFRONT_OPS_VERSION\\}\\}": "^1.0.0",
832
- };
833
- let templateName = "storefront-minimal";
834
- if (codeSource.type === "template" && codeSource.templateRepoUrl) {
835
- // Download remote template
836
- createSpinner.text = t().downloadingTemplate;
837
- await downloadTemplate(codeSource.templateRepoUrl, targetDir);
838
- createSpinner.text = t().configuringProject;
839
- applyReplacementsToDirectory(targetDir, replacements);
840
- templateName = codeSource.templateName || "remote-template";
844
+ if (isAdopt) {
845
+ // ── Adopt flow: only create config files, don't touch user's code ──
846
+ // Create doswiftly.config.ts
847
+ createSpinner.text = t().creatingConfig;
848
+ createDoswiftlyConfig(targetDir, shopSlug, apiUrl, projectName);
849
+ // Merge .env.local (append missing vars, don't overwrite existing)
850
+ createSpinner.text = t().creatingEnvLocal;
851
+ const envResult = mergeEnvLocal(targetDir, {
852
+ NEXT_PUBLIC_API_URL: apiUrl,
853
+ NEXT_PUBLIC_SHOP_SLUG: shopSlug,
854
+ NEXT_PUBLIC_SITE_URL: "http://localhost:3000",
855
+ NEXT_PUBLIC_SITE_NAME: projectName,
856
+ });
857
+ // Create .doswiftly directory for cache
858
+ mkdirSync(join(targetDir, ".doswiftly"), { recursive: true });
859
+ writeFileSync(join(targetDir, ".doswiftly", ".gitignore"), "*\n");
860
+ // Auto-create a default profile if none exists
861
+ if (!hasProfiles()) {
862
+ try {
863
+ addProfile({
864
+ name: "default",
865
+ apiUrl: apiUrl,
866
+ description: `Auto-created by doswiftly init for ${projectName}`,
867
+ });
868
+ }
869
+ catch {
870
+ // Non-fatal
871
+ }
872
+ }
873
+ createSpinner.succeed(t().projectConnected);
874
+ // Show what was created
875
+ p.log.message("");
876
+ p.log.info(pc.dim("Created:"));
877
+ p.log.message(pc.dim(" doswiftly.config.ts"));
878
+ p.log.message(pc.dim(envResult === "merged"
879
+ ? ` ${t().envLocalMerged}`
880
+ : ` ${t().envLocalCreated}`));
881
+ p.log.message(pc.dim(" .doswiftly/ (cache)"));
882
+ // Check if SDK is already installed
883
+ const pkgPath = join(targetDir, "package.json");
884
+ if (existsSync(pkgPath)) {
885
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
886
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
887
+ const sdkVersion = deps["@doswiftly/storefront-sdk"];
888
+ if (sdkVersion) {
889
+ p.log.message("");
890
+ p.log.info(t().sdkAlreadyInstalled(sdkVersion));
891
+ }
892
+ else if (shouldInstall) {
893
+ const installSpinner = ora(t().installingDeps).start();
894
+ try {
895
+ await installDependencies(pmInfo.name, ["@doswiftly/storefront-sdk"], {
896
+ stdio: "pipe",
897
+ cwd: targetDir,
898
+ });
899
+ installSpinner.succeed(t().depsInstalled);
900
+ }
901
+ catch (installError) {
902
+ installSpinner.fail(t().installFailed);
903
+ const errorMessage = installError instanceof Error
904
+ ? installError.message
905
+ : String(installError);
906
+ if (errorMessage) {
907
+ p.log.info(pc.dim(errorMessage.split("\n")[0]));
908
+ }
909
+ }
910
+ }
911
+ }
912
+ // Success message
913
+ p.log.message("");
914
+ p.log.success(pc.green(t().projectConnected));
915
+ p.log.message("");
916
+ p.log.message(pc.dim(t().adoptNextSteps));
917
+ p.log.message(pc.cyan(" doswiftly dev"));
918
+ p.log.message(pc.cyan(" doswiftly doctor"));
919
+ p.log.message("");
920
+ p.log.message(pc.dim(t().documentation));
921
+ p.log.message("");
841
922
  }
842
923
  else {
843
- // Copy minimal template
844
- createSpinner.text = t().copyingTemplate;
845
- const minimalTemplate = join(__dirname, "..", "..", "templates", "storefront-minimal");
846
- if (!existsSync(minimalTemplate)) {
847
- throw new Error("Minimal template not found. Please reinstall @doswiftly/cli.");
924
+ // ── Scaffold flow: create from template ──
925
+ // Create target directory if it doesn't exist
926
+ if (!existsSync(targetDir)) {
927
+ mkdirSync(targetDir, { recursive: true });
848
928
  }
849
- copyTemplateDir(minimalTemplate, targetDir, replacements);
850
- }
851
- // Remove Track 1 workflow files — build-template.yml is for SaaS developers
852
- // maintaining the template repo, not for storefront users
853
- const buildTemplateWorkflow = join(targetDir, ".github", "workflows", "build-template.yml");
854
- if (existsSync(buildTemplateWorkflow)) {
855
- unlinkSync(buildTemplateWorkflow);
856
- }
857
- // Create .env.local
858
- createSpinner.text = t().creatingEnvLocal;
859
- createEnvLocal(targetDir, shopSlug, apiUrl, projectName);
860
- // Create doswiftly.config.ts
861
- createSpinner.text = t().creatingConfig;
862
- createDoswiftlyConfig(targetDir, shopSlug, apiUrl, projectName);
863
- // Create .doswiftly directory for cache
864
- mkdirSync(join(targetDir, ".doswiftly"), { recursive: true });
865
- writeFileSync(join(targetDir, ".doswiftly", ".gitignore"), "*\n");
866
- // Create .gitignore if it doesn't exist (npm strips .gitignore from packages)
867
- const gitignorePath = join(targetDir, ".gitignore");
868
- if (!existsSync(gitignorePath)) {
869
- const gitignoreContent = `# Dependencies
929
+ // Define placeholder replacements
930
+ const replacements = {
931
+ "\\{\\{PROJECT_NAME\\}\\}": projectName,
932
+ "\\{\\{SHOP_SLUG\\}\\}": shopSlug,
933
+ "\\{\\{API_URL\\}\\}": apiUrl,
934
+ "\\{\\{SDK_VERSION\\}\\}": "^4.0.0",
935
+ "\\{\\{STOREFRONT_OPS_VERSION\\}\\}": "^1.0.0",
936
+ };
937
+ let templateName = "storefront-nextjs-shadcn";
938
+ if (codeSource.type === "template" && codeSource.templateRepoUrl) {
939
+ // Download remote template
940
+ createSpinner.text = t().downloadingTemplate;
941
+ await downloadTemplate(codeSource.templateRepoUrl, targetDir);
942
+ createSpinner.text = t().configuringProject;
943
+ applyReplacementsToDirectory(targetDir, replacements);
944
+ templateName = codeSource.templateName || "remote-template";
945
+ }
946
+ else {
947
+ // Copy default template (storefront-nextjs-shadcn)
948
+ createSpinner.text = t().copyingTemplate;
949
+ const defaultTemplate = join(__dirname, "..", "..", "templates", "storefront-nextjs-shadcn");
950
+ if (!existsSync(defaultTemplate)) {
951
+ throw new Error("Default template not found. Please reinstall @doswiftly/cli.");
952
+ }
953
+ copyTemplateDir(defaultTemplate, targetDir, replacements);
954
+ }
955
+ // Remove Track 1 workflow files — build-template.yml is for SaaS developers
956
+ const buildTemplateWorkflow = join(targetDir, ".github", "workflows", "build-template.yml");
957
+ if (existsSync(buildTemplateWorkflow)) {
958
+ unlinkSync(buildTemplateWorkflow);
959
+ }
960
+ // Create .env.local
961
+ createSpinner.text = t().creatingEnvLocal;
962
+ createEnvLocal(targetDir, shopSlug, apiUrl, projectName);
963
+ // Create doswiftly.config.ts
964
+ createSpinner.text = t().creatingConfig;
965
+ createDoswiftlyConfig(targetDir, shopSlug, apiUrl, projectName);
966
+ // Create .doswiftly directory for cache
967
+ mkdirSync(join(targetDir, ".doswiftly"), { recursive: true });
968
+ writeFileSync(join(targetDir, ".doswiftly", ".gitignore"), "*\n");
969
+ // Create .gitignore if it doesn't exist (npm strips .gitignore from packages)
970
+ const gitignorePath = join(targetDir, ".gitignore");
971
+ if (!existsSync(gitignorePath)) {
972
+ const gitignoreContent = `# Dependencies
870
973
  node_modules/
871
974
  .pnpm-store/
872
975
 
@@ -908,60 +1011,61 @@ Thumbs.db
908
1011
  # Testing
909
1012
  coverage/
910
1013
  `;
911
- writeFileSync(gitignorePath, gitignoreContent);
912
- }
913
- // Auto-create a default profile if none exists
914
- if (!hasProfiles()) {
915
- try {
916
- addProfile({
917
- name: "default",
918
- apiUrl: apiUrl,
919
- description: `Auto-created by doswiftly init for ${projectName}`,
920
- });
921
- }
922
- catch {
923
- // Non-fatal
1014
+ writeFileSync(gitignorePath, gitignoreContent);
924
1015
  }
925
- }
926
- createSpinner.succeed(t().projectCreated);
927
- // Install dependencies if requested
928
- if (shouldInstall) {
929
- const installSpinner = ora(t().installingDeps).start();
930
- try {
931
- await installDependencies(pmInfo.name, [], {
932
- stdio: "pipe",
933
- cwd: targetDir,
934
- });
935
- installSpinner.succeed(t().depsInstalled);
1016
+ // Auto-create a default profile if none exists
1017
+ if (!hasProfiles()) {
1018
+ try {
1019
+ addProfile({
1020
+ name: "default",
1021
+ apiUrl: apiUrl,
1022
+ description: `Auto-created by doswiftly init for ${projectName}`,
1023
+ });
1024
+ }
1025
+ catch {
1026
+ // Non-fatal
1027
+ }
936
1028
  }
937
- catch (installError) {
938
- installSpinner.fail(t().installFailed);
939
- const errorMessage = installError instanceof Error
940
- ? installError.message
941
- : String(installError);
942
- if (errorMessage) {
943
- p.log.info(pc.dim(errorMessage.split("\n")[0]));
1029
+ createSpinner.succeed(t().projectCreated);
1030
+ // Install dependencies if requested
1031
+ if (shouldInstall) {
1032
+ const installSpinner = ora(t().installingDeps).start();
1033
+ try {
1034
+ await installDependencies(pmInfo.name, [], {
1035
+ stdio: "pipe",
1036
+ cwd: targetDir,
1037
+ });
1038
+ installSpinner.succeed(t().depsInstalled);
1039
+ }
1040
+ catch (installError) {
1041
+ installSpinner.fail(t().installFailed);
1042
+ const errorMessage = installError instanceof Error
1043
+ ? installError.message
1044
+ : String(installError);
1045
+ if (errorMessage) {
1046
+ p.log.info(pc.dim(errorMessage.split("\n")[0]));
1047
+ }
1048
+ p.log.warn(t().runManually(projectName, pmInfo.name));
944
1049
  }
945
- p.log.warn(t().runManually(projectName, pmInfo.name));
946
1050
  }
1051
+ // Initialize git repository
1052
+ await initGitRepository(targetDir, templateName);
1053
+ // Success message
1054
+ p.log.message("");
1055
+ p.log.success(pc.green(t().projectReady));
1056
+ p.log.message("");
1057
+ p.log.message(pc.dim(t().nextSteps));
1058
+ if (targetDir !== process.cwd()) {
1059
+ p.log.message(pc.cyan(` cd ${projectName}`));
1060
+ }
1061
+ if (!shouldInstall) {
1062
+ p.log.message(pc.cyan(` ${pmInfo.name} install`));
1063
+ }
1064
+ p.log.message(pc.cyan(" doswiftly dev"));
1065
+ p.log.message("");
1066
+ p.log.message(pc.dim(t().documentation));
1067
+ p.log.message("");
947
1068
  }
948
- // Initialize git repository
949
- await initGitRepository(targetDir, templateName);
950
- // Success message
951
- p.log.message("");
952
- p.log.success(pc.green(t().projectReady));
953
- p.log.message("");
954
- p.log.message(pc.dim(t().nextSteps));
955
- if (targetDir !== process.cwd()) {
956
- p.log.message(pc.cyan(` cd ${projectName}`));
957
- }
958
- if (!shouldInstall) {
959
- p.log.message(pc.cyan(` ${pmInfo.name} install`));
960
- }
961
- p.log.message(pc.cyan(" doswiftly dev"));
962
- p.log.message("");
963
- p.log.message(pc.dim(t().documentation));
964
- p.log.message("");
965
1069
  }
966
1070
  catch (error) {
967
1071
  createSpinner.fail(pc.red(t().failedCreateProject));
@@ -1017,6 +1121,7 @@ export async function initCommand(options = {}) {
1017
1121
  __apiUrl: apiUrl,
1018
1122
  __token: token,
1019
1123
  __pmInfo: pmInfo,
1124
+ __isAdopt: false,
1020
1125
  };
1021
1126
  // Run wizard
1022
1127
  const engine = new WizardEngine(steps, initialState, {