bsmnt 0.4.3 → 0.5.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 (187) hide show
  1. package/dist/application/add-integration/index.d.ts +24 -6
  2. package/dist/application/add-integration/index.d.ts.map +1 -1
  3. package/dist/application/add-integration/index.js +130 -82
  4. package/dist/application/add-integration/index.js.map +1 -1
  5. package/dist/application/create-project/map-selection-to-registry.js +1 -1
  6. package/dist/application/create-project/map-selection-to-registry.js.map +1 -1
  7. package/dist/application/shared/project-detection.d.ts +2 -2
  8. package/dist/application/shared/project-detection.d.ts.map +1 -1
  9. package/dist/application/shared/project-detection.js +2 -2
  10. package/dist/application/shared/project-detection.js.map +1 -1
  11. package/dist/core/create/internal-ids.d.ts +4 -1
  12. package/dist/core/create/internal-ids.d.ts.map +1 -1
  13. package/dist/core/create/internal-ids.js +6 -1
  14. package/dist/core/create/internal-ids.js.map +1 -1
  15. package/dist/domain/cms.d.ts +0 -7
  16. package/dist/domain/cms.d.ts.map +1 -1
  17. package/dist/domain/cms.js.map +1 -1
  18. package/dist/domain/forms.d.ts +17 -0
  19. package/dist/domain/forms.d.ts.map +1 -0
  20. package/dist/domain/forms.js +13 -0
  21. package/dist/domain/forms.js.map +1 -0
  22. package/dist/domain/integration.d.ts +30 -0
  23. package/dist/domain/integration.d.ts.map +1 -0
  24. package/dist/domain/integration.js +12 -0
  25. package/dist/domain/integration.js.map +1 -0
  26. package/dist/domain/skills.d.ts +32 -0
  27. package/dist/domain/skills.d.ts.map +1 -1
  28. package/dist/domain/skills.js +39 -0
  29. package/dist/domain/skills.js.map +1 -1
  30. package/dist/index.js +95 -37
  31. package/dist/index.js.map +1 -1
  32. package/dist/infrastructure/agents/register-sanity-mcp.js +9 -6
  33. package/dist/infrastructure/agents/register-sanity-mcp.js.map +1 -1
  34. package/dist/infrastructure/create/apply-package-json.d.ts.map +1 -1
  35. package/dist/infrastructure/create/apply-package-json.js +19 -0
  36. package/dist/infrastructure/create/apply-package-json.js.map +1 -1
  37. package/dist/infrastructure/create/install-dependencies.d.ts.map +1 -1
  38. package/dist/infrastructure/create/install-dependencies.js +4 -0
  39. package/dist/infrastructure/create/install-dependencies.js.map +1 -1
  40. package/dist/infrastructure/create/merge-registry.d.ts.map +1 -1
  41. package/dist/infrastructure/create/merge-registry.js +8 -0
  42. package/dist/infrastructure/create/merge-registry.js.map +1 -1
  43. package/dist/infrastructure/create/setup-agent.d.ts.map +1 -1
  44. package/dist/infrastructure/create/setup-agent.js +29 -6
  45. package/dist/infrastructure/create/setup-agent.js.map +1 -1
  46. package/dist/infrastructure/create/setup-sanity.d.ts.map +1 -1
  47. package/dist/infrastructure/create/setup-sanity.js +3 -0
  48. package/dist/infrastructure/create/setup-sanity.js.map +1 -1
  49. package/dist/infrastructure/integrations/inject-integration.d.ts +3 -3
  50. package/dist/infrastructure/integrations/inject-integration.d.ts.map +1 -1
  51. package/dist/infrastructure/integrations/inject-integration.js +81 -37
  52. package/dist/infrastructure/integrations/inject-integration.js.map +1 -1
  53. package/dist/modules/features/cms/sanity/config.d.ts.map +1 -1
  54. package/dist/modules/features/cms/sanity/config.js +11 -5
  55. package/dist/modules/features/cms/sanity/config.js.map +1 -1
  56. package/dist/modules/features/cms/sanity/index.js +8 -2
  57. package/dist/modules/features/cms/sanity/index.js.map +1 -1
  58. package/dist/modules/features/cms/sanity/mergers/ci-workflow.d.ts +13 -0
  59. package/dist/modules/features/cms/sanity/mergers/ci-workflow.d.ts.map +1 -0
  60. package/dist/modules/features/cms/sanity/mergers/ci-workflow.js +38 -0
  61. package/dist/modules/features/cms/sanity/mergers/ci-workflow.js.map +1 -0
  62. package/dist/modules/features/cms/sanity/mergers/knip.d.ts +12 -0
  63. package/dist/modules/features/cms/sanity/mergers/knip.d.ts.map +1 -0
  64. package/dist/modules/features/cms/sanity/mergers/knip.js +38 -0
  65. package/dist/modules/features/cms/sanity/mergers/knip.js.map +1 -0
  66. package/dist/modules/features/cms/sanity/mergers/layout.d.ts.map +1 -1
  67. package/dist/modules/features/cms/sanity/mergers/layout.js +7 -3
  68. package/dist/modules/features/cms/sanity/mergers/layout.js.map +1 -1
  69. package/dist/modules/features/cms/sanity/mergers/sitemap.d.ts +3 -3
  70. package/dist/modules/features/cms/sanity/mergers/sitemap.d.ts.map +1 -1
  71. package/dist/modules/features/cms/sanity/mergers/sitemap.js +48 -62
  72. package/dist/modules/features/cms/sanity/mergers/sitemap.js.map +1 -1
  73. package/dist/modules/features/cms/sanity-pagebuilder/config.d.ts.map +1 -1
  74. package/dist/modules/features/cms/sanity-pagebuilder/config.js +8 -5
  75. package/dist/modules/features/cms/sanity-pagebuilder/config.js.map +1 -1
  76. package/dist/modules/features/cms/sanity-pagebuilder/index.js +2 -2
  77. package/dist/modules/features/cms/sanity-pagebuilder/index.js.map +1 -1
  78. package/dist/modules/features/forms/hubspot/config.d.ts +31 -0
  79. package/dist/modules/features/forms/hubspot/config.d.ts.map +1 -0
  80. package/dist/modules/features/forms/hubspot/config.js +25 -0
  81. package/dist/modules/features/forms/hubspot/config.js.map +1 -0
  82. package/dist/paths.d.ts +8 -0
  83. package/dist/paths.d.ts.map +1 -1
  84. package/dist/paths.js +8 -0
  85. package/dist/paths.js.map +1 -1
  86. package/package.json +17 -9
  87. package/src/assets/check-node-version.mjs +22 -0
  88. package/src/modules/features/cms/sanity/files/app/blog/page.tsx +54 -0
  89. package/src/modules/features/cms/sanity/files/app/feed.xml/route.ts +36 -0
  90. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/components/disable-draft-mode.tsx +3 -3
  91. package/src/modules/features/cms/sanity/files/lib/integrations/sanity/schemas/article.ts +7 -7
  92. package/src/modules/features/cms/sanity/files/lib/scripts/setup-ci-secrets.ts +117 -0
  93. package/src/modules/features/cms/sanity/files/lib/utils/rss.ts +96 -0
  94. package/src/modules/features/cms/sanity-pagebuilder/files/.knip.json +8 -0
  95. package/src/modules/features/cms/sanity-pagebuilder/files/app/api/[[...slug]]/route.ts +100 -0
  96. package/src/modules/features/cms/sanity-pagebuilder/files/app/api/draft-mode/disable/route.ts +7 -0
  97. package/src/modules/features/cms/sanity-pagebuilder/files/app/api/draft-mode/enable/route.ts +20 -0
  98. package/src/modules/features/cms/sanity-pagebuilder/files/app/api/revalidate/route.ts +126 -0
  99. package/src/modules/features/cms/sanity-pagebuilder/files/app/feed.xml/route.ts +40 -0
  100. package/src/modules/features/cms/sanity-pagebuilder/files/app/sitemap.md/route.ts +124 -0
  101. package/src/modules/features/cms/sanity-pagebuilder/files/app/studio/[[...tool]]/page.tsx +8 -0
  102. package/src/modules/features/cms/sanity-pagebuilder/files/components/sanity/draft-mode-toggle.tsx +27 -0
  103. package/src/modules/features/cms/sanity-pagebuilder/files/components/sanity/rich-text.tsx +87 -0
  104. package/src/modules/features/cms/sanity-pagebuilder/files/components/sanity/visual-editing.tsx +28 -0
  105. package/src/modules/features/cms/sanity-pagebuilder/files/components/ui/sanity-image/index.tsx +41 -0
  106. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/check-integration.ts +5 -0
  107. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/client.ts +27 -0
  108. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/disable-draft-mode.tsx +23 -0
  109. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/page-builder-input.tsx +39 -0
  110. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/page-category-input.tsx +50 -0
  111. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/slug-field.tsx +18 -0
  112. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/components/slug-input.tsx +14 -0
  113. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/confirm-publish-action.ts +40 -0
  114. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/env.ts +34 -0
  115. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/fetchers/layout.ts +48 -0
  116. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/fetchers/redirects.ts +17 -0
  117. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/icons.ts +62 -0
  118. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/live/index.tsx +88 -0
  119. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/markdown-proxy.config.ts +50 -0
  120. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/page-builder-config.ts +130 -0
  121. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/page-category.ts +28 -0
  122. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/page-tree-pane.tsx +420 -0
  123. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/pinned-pages.ts +54 -0
  124. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/presentation.ts +119 -0
  125. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/queries.ts +385 -0
  126. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/sanity.cli.ts +29 -0
  127. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/sanity.config.ts +113 -0
  128. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/components/index.ts +4 -0
  129. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/components/reusable/blog-content.ts +89 -0
  130. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/components/reusable/description.ts +29 -0
  131. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/components/reusable/hero.ts +28 -0
  132. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/components/singleton/content-collection.ts +45 -0
  133. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/content/author.ts +70 -0
  134. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/content/blog-category.ts +55 -0
  135. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/index.ts +96 -0
  136. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/company-data.ts +62 -0
  137. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/footer.ts +79 -0
  138. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/navbar.ts +75 -0
  139. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/layout/redirect.ts +120 -0
  140. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/link.ts +125 -0
  141. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/logo-field.ts +9 -0
  142. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/metadata.ts +68 -0
  143. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/nav-objects.ts +192 -0
  144. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/page-builder.ts +39 -0
  145. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/page-folder.ts +124 -0
  146. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/page.ts +242 -0
  147. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/schemas/shared/richText.ts +63 -0
  148. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/singletons.ts +39 -0
  149. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/structure.ts +330 -0
  150. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/utils/image.ts +8 -0
  151. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/utils/link.ts +140 -0
  152. package/src/modules/features/cms/sanity-pagebuilder/files/lib/integrations/sanity/utils/page-builder-markdown.ts +81 -0
  153. package/src/modules/features/cms/sanity-pagebuilder/files/lib/scripts/sanity-typegen.ts +45 -0
  154. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/check-redirect.ts +30 -0
  155. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/json-ld.tsx +212 -0
  156. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/metadata.ts +167 -0
  157. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/rss.ts +96 -0
  158. package/src/modules/features/cms/sanity-pagebuilder/files/lib/utils/sitemap.ts +40 -0
  159. package/src/modules/features/cms/sanity-pagebuilder/files/proxy.ts +81 -0
  160. package/src/templates/next-default/.github/workflows/ci.yml +62 -0
  161. package/src/templates/next-default/README.md +22 -0
  162. package/src/templates/next-default/knip.json +14 -0
  163. package/src/templates/next-default/lefthook.yml +5 -0
  164. package/src/templates/next-default/package.json +8 -4
  165. package/src/templates/next-experiments/.github/workflows/ci.yml +62 -0
  166. package/src/templates/next-experiments/README.md +22 -0
  167. package/src/templates/next-experiments/knip.json +14 -0
  168. package/src/templates/next-experiments/lefthook.yml +30 -0
  169. package/src/templates/next-experiments/package.json +10 -2
  170. package/src/templates/next-pagebuilder/.github/workflows/ci.yml +70 -0
  171. package/src/templates/next-pagebuilder/README.md +34 -0
  172. package/src/templates/next-pagebuilder/app/(content)/[[...slug]]/page.tsx +6 -1
  173. package/src/templates/next-pagebuilder/app/(content)/layout.tsx +3 -12
  174. package/src/templates/next-pagebuilder/components/layout/footer/index.tsx +11 -10
  175. package/src/templates/next-pagebuilder/components/layout/header/index.tsx +5 -3
  176. package/src/templates/next-pagebuilder/components/layout/json-ld/index.tsx +9 -10
  177. package/src/templates/next-pagebuilder/components/layout/wrapper/index.tsx +3 -11
  178. package/src/templates/next-pagebuilder/components/page-builder/components/content-collection/index.tsx +1 -1
  179. package/src/templates/next-pagebuilder/knip.json +27 -0
  180. package/src/templates/next-pagebuilder/lefthook.yml +5 -0
  181. package/src/templates/next-pagebuilder/lib/scripts/setup-ci-secrets.ts +117 -0
  182. package/src/templates/next-pagebuilder/package.json +9 -3
  183. package/src/templates/next-webgl/.github/workflows/ci.yml +62 -0
  184. package/src/templates/next-webgl/README.md +22 -0
  185. package/src/templates/next-webgl/knip.json +13 -0
  186. package/src/templates/next-webgl/lefthook.yml +5 -0
  187. package/src/templates/next-webgl/package.json +8 -4
@@ -1,13 +1,31 @@
1
- import { type CmsId } from "../../domain/cms.js";
1
+ import { type IntegrationId } from "../../domain/integration.js";
2
2
  interface AddIntegrationOptions {
3
- cms?: CmsId;
3
+ integrations?: IntegrationId | IntegrationId[];
4
4
  }
5
5
  /**
6
- * Adds an integration to the current working directory project.
6
+ * Inject and configure a single integration into an already-validated
7
+ * Next.js project: copies files, merges dependencies, runs any
8
+ * integration-specific setup, and prints next steps.
7
9
  *
8
- * Validates the project, prompts for integration selection, copies files
9
- * using the merge orchestrator, adds dependencies, and optionally sets
10
- * up Sanity project configuration.
10
+ * Reused by the `integrate` command (looped over the selected integrations)
11
+ * and by the create flow (run after scaffolding).
12
+ */
13
+ export declare function installIntegration(integration: IntegrationId, targetDir: string, usesSrcPrefix: boolean, options?: {
14
+ silent?: boolean;
15
+ }): Promise<void>;
16
+ /**
17
+ * Integration-specific follow-up actions, returned as plain lines so callers can
18
+ * render them in their own "Next steps" block (the `integrate` command, or the
19
+ * create flow's single aggregated block).
20
+ */
21
+ export declare function getIntegrationNextSteps(integration: IntegrationId, opts?: {
22
+ sanitySetupDone?: boolean;
23
+ }): string[];
24
+ /**
25
+ * Adds one or more integrations to the current working directory project.
26
+ *
27
+ * Validates the project, resolves the integration list (from flags or an
28
+ * interactive multi-select), then injects and configures each selected one.
11
29
  */
12
30
  export declare function addIntegration(options?: AddIntegrationOptions): Promise<void>;
13
31
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAkB9D,UAAU,qBAAqB;IAC9B,GAAG,CAAC,EAAE,KAAK,CAAC;CACZ;AAuDD;;;;;;GAMG;AACH,wBAAsB,cAAc,CACnC,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Of"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,6BAA6B,CAAC;AAmBrC,UAAU,qBAAqB;IAC9B,YAAY,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;CAC/C;AAwDD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,OAAO,EACtB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAChC,OAAO,CAAC,IAAI,CAAC,CAmLf;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,WAAW,EAAE,aAAa,EAC1B,IAAI,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,MAAM,EAAE,CAqBV;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CACnC,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,IAAI,CAAC,CA+Df"}
@@ -5,24 +5,26 @@ import ora from "ora";
5
5
  import pc from "picocolors";
6
6
  import prompts from "prompts";
7
7
  import { AGENT_CATALOG } from "../../domain/agents.js";
8
- import { CMS_CATALOG } from "../../domain/cms.js";
8
+ import { getIntegration, INTEGRATION_CATALOG, } from "../../domain/integration.js";
9
9
  import { buildSkillInstallCommand, getSkillInstallDefinition, } from "../../domain/skills.js";
10
10
  import { getSanityMcpManualInstruction, registerSanityMcp, } from "../../infrastructure/agents/register-sanity-mcp.js";
11
11
  import { setupSanity } from "../../infrastructure/create/setup-sanity.js";
12
12
  import { injectIntegration } from "../../infrastructure/integrations/inject-integration.js";
13
13
  import { sanityConfig } from "../../modules/features/cms/sanity/config.js";
14
+ import { hubspotConfig } from "../../modules/features/forms/hubspot/config.js";
14
15
  import { checkExistingIntegration, validateNextProject, } from "../shared/project-detection.js";
15
16
  import { formatMergeResults } from "./format-results.js";
16
17
  /**
17
- * Add CMS dependencies to package.json from integration config manifests.
18
+ * Add integration dependencies to package.json from config manifests.
18
19
  */
19
20
  async function addDependencies(targetDir, integration) {
20
21
  const pkgPath = path.join(targetDir, "package.json");
21
22
  const pkg = (await fs.readJson(pkgPath));
22
- const cmsConfigs = {
23
+ const integrationConfigs = {
23
24
  sanity: sanityConfig,
25
+ hubspot: hubspotConfig,
24
26
  };
25
- const config = cmsConfigs[integration];
27
+ const config = integrationConfigs[integration];
26
28
  if (config) {
27
29
  pkg.dependencies = {
28
30
  ...pkg.dependencies,
@@ -45,45 +47,16 @@ async function addDependencies(targetDir, integration) {
45
47
  await fs.writeJson(pkgPath, pkg, { spaces: 2 });
46
48
  }
47
49
  /**
48
- * Adds an integration to the current working directory project.
50
+ * Inject and configure a single integration into an already-validated
51
+ * Next.js project: copies files, merges dependencies, runs any
52
+ * integration-specific setup, and prints next steps.
49
53
  *
50
- * Validates the project, prompts for integration selection, copies files
51
- * using the merge orchestrator, adds dependencies, and optionally sets
52
- * up Sanity project configuration.
54
+ * Reused by the `integrate` command (looped over the selected integrations)
55
+ * and by the create flow (run after scaffolding).
53
56
  */
54
- export async function addIntegration(options = {}) {
55
- const targetDir = process.cwd();
56
- // 1. Validate current directory is a Next.js project
57
- const validationSpinner = ora("Validating project...").start();
58
- const validation = await validateNextProject(targetDir);
59
- if (!validation.valid) {
60
- validationSpinner.fail(pc.red(validation.error));
61
- console.log(pc.yellow("\nMake sure you're in a Next.js App Router project directory.\n"));
62
- return;
63
- }
64
- const projectStructure = validation.usesSrcPrefix ? "src/" : "root";
65
- validationSpinner.succeed(pc.green(`Found Next.js project: ${pc.cyan(validation.pkg.name ?? "unnamed")} (${projectStructure} structure)`));
66
- // 2. Select integration (or use flag)
67
- let integration = options.cms;
68
- if (!integration) {
69
- const { selectedIntegration } = (await prompts({
70
- type: "select",
71
- name: "selectedIntegration",
72
- message: "Which integration would you like to add?",
73
- choices: CMS_CATALOG.map((cms) => ({
74
- title: cms.label,
75
- description: cms.description,
76
- value: cms.id,
77
- })),
78
- }));
79
- if (!selectedIntegration) {
80
- console.log(pc.yellow("\nOperation cancelled.\n"));
81
- return;
82
- }
83
- integration = selectedIntegration;
84
- }
85
- // 3. Check if integration already exists
86
- const alreadyExists = await checkExistingIntegration(targetDir, integration, validation.usesSrcPrefix);
57
+ export async function installIntegration(integration, targetDir, usesSrcPrefix, options = {}) {
58
+ // Check if integration already exists
59
+ const alreadyExists = await checkExistingIntegration(targetDir, integration, usesSrcPrefix);
87
60
  if (alreadyExists) {
88
61
  const { overwrite } = (await prompts({
89
62
  type: "confirm",
@@ -92,11 +65,11 @@ export async function addIntegration(options = {}) {
92
65
  initial: false,
93
66
  }));
94
67
  if (!overwrite) {
95
- console.log(pc.yellow("Operation cancelled."));
68
+ console.log(pc.yellow(`Skipped ${integration}.`));
96
69
  return;
97
70
  }
98
71
  }
99
- // 4. Inject integration files using the merge orchestrator
72
+ // Inject integration files using the merge orchestrator
100
73
  const integrationSpinner = ora(`Adding ${pc.cyan(integration)} integration...`).start();
101
74
  try {
102
75
  const results = await injectIntegration(targetDir, integration, integrationSpinner);
@@ -108,7 +81,6 @@ export async function addIntegration(options = {}) {
108
81
  else {
109
82
  integrationSpinner.succeed(pc.green(`${integration} integration added:`));
110
83
  }
111
- // Display detailed results
112
84
  for (const line of resultLines) {
113
85
  console.log(pc.dim(line));
114
86
  }
@@ -118,7 +90,7 @@ export async function addIntegration(options = {}) {
118
90
  integrationSpinner.fail(pc.red(`Failed to inject ${integration} integration: ${message}`));
119
91
  return;
120
92
  }
121
- // 5. Add dependencies to package.json
93
+ // Add dependencies to package.json
122
94
  const depsSpinner = ora("Adding dependencies to package.json...").start();
123
95
  try {
124
96
  await addDependencies(targetDir, integration);
@@ -128,7 +100,7 @@ export async function addIntegration(options = {}) {
128
100
  const message = e instanceof Error ? e.message : String(e);
129
101
  depsSpinner.warn(pc.yellow(`Failed to update package.json: ${message}`));
130
102
  }
131
- // 6. Optional MCP registration + Agent Toolkit
103
+ // Sanity-only: optional MCP server registration
132
104
  if (integration === "sanity") {
133
105
  const detectedMcpAgents = AGENT_CATALOG.filter((agent) => fs.existsSync(path.join(targetDir, agent.folder)));
134
106
  if (detectedMcpAgents.length > 0) {
@@ -161,33 +133,38 @@ export async function addIntegration(options = {}) {
161
133
  }
162
134
  }
163
135
  }
164
- // Agent toolkit skills — detect all known agent directories
136
+ }
137
+ // Install the integration's recommended agent skills into detected agents.
138
+ const skillIds = getIntegration(integration).skills;
139
+ if (skillIds.length > 0) {
165
140
  const detectedAgents = AGENT_CATALOG.filter((agent) => fs.existsSync(path.join(targetDir, agent.folder))).map((agent) => agent.cliArg);
166
141
  if (detectedAgents.length > 0) {
167
- const skillsSpinner = ora("Installing Sanity agent toolkit...").start();
168
- let installed = false;
169
- const install = getSkillInstallDefinition("sanity-agent-toolkit");
170
- for (const agentArg of detectedAgents) {
171
- try {
172
- execSync(buildSkillInstallCommand("sanity-agent-toolkit", { agentArg }), {
173
- cwd: targetDir,
174
- stdio: "ignore",
175
- });
176
- installed = true;
142
+ for (const skillId of skillIds) {
143
+ const skillsSpinner = ora(`Installing ${skillId} skill...`).start();
144
+ let installed = false;
145
+ const install = getSkillInstallDefinition(skillId);
146
+ for (const agentArg of detectedAgents) {
147
+ try {
148
+ execSync(buildSkillInstallCommand(skillId, { agentArg }), {
149
+ cwd: targetDir,
150
+ stdio: "ignore",
151
+ });
152
+ installed = true;
153
+ }
154
+ catch {
155
+ // Non-fatal per agent
156
+ }
177
157
  }
178
- catch {
179
- // Non-fatal per agent
158
+ if (installed) {
159
+ skillsSpinner.succeed(pc.green(`${skillId} skill installed.`));
160
+ }
161
+ else {
162
+ skillsSpinner.warn(pc.yellow(`Could not install ${skillId}. Add manually: bunx skills add ${install.source}`));
180
163
  }
181
- }
182
- if (installed) {
183
- skillsSpinner.succeed(pc.green("Sanity agent toolkit installed."));
184
- }
185
- else {
186
- skillsSpinner.warn(pc.yellow(`Could not install Sanity agent toolkit. Add manually: bunx skills add ${install.source}`));
187
164
  }
188
165
  }
189
166
  }
190
- // 7. Automated Sanity Project Setup
167
+ // Automated Sanity project setup
191
168
  let sanitySetupDone = false;
192
169
  if (integration === "sanity") {
193
170
  try {
@@ -199,25 +176,96 @@ export async function addIntegration(options = {}) {
199
176
  console.log(pc.dim(" You can set up Sanity manually later.\n"));
200
177
  }
201
178
  }
202
- // 8. Success message with next steps
203
- console.log(`\n${pc.bold(pc.green("Success!"))} ${pc.cyan(integration)} integration added to your project.`);
204
- console.log(`\n${pc.bold("Next steps:")}`);
205
- console.log(pc.cyan(" 1. Run: bun install"));
179
+ // Next steps. Suppressed when another flow (e.g. create) aggregates them into
180
+ // a single block.
181
+ if (!options.silent) {
182
+ console.log(`\n${pc.bold(pc.green("Success!"))} ${pc.cyan(integration)} integration added to your project.`);
183
+ console.log(`\n${pc.bold("Next steps:")}`);
184
+ console.log(pc.cyan(" - Run: bun install"));
185
+ for (const step of getIntegrationNextSteps(integration, {
186
+ sanitySetupDone,
187
+ })) {
188
+ console.log(pc.cyan(` - ${step}`));
189
+ }
190
+ console.log();
191
+ }
192
+ }
193
+ /**
194
+ * Integration-specific follow-up actions, returned as plain lines so callers can
195
+ * render them in their own "Next steps" block (the `integrate` command, or the
196
+ * create flow's single aggregated block).
197
+ */
198
+ export function getIntegrationNextSteps(integration, opts = {}) {
206
199
  if (integration === "sanity") {
207
- if (sanitySetupDone) {
208
- console.log(pc.cyan(" 2. Run: bun sanity:typegen"));
209
- console.log(pc.cyan(" 3. Access Sanity Studio at: /studio"));
200
+ if (opts.sanitySetupDone) {
201
+ return ["Run: bun sanity:typegen", "Access Sanity Studio at: /studio"];
210
202
  }
211
- else {
212
- console.log(pc.cyan(" 2. Create a Sanity project at https://sanity.io/manage"));
213
- console.log(pc.cyan(" 3. Add your Sanity credentials to .env.local:"));
214
- console.log(pc.dim(" NEXT_PUBLIC_SANITY_PROJECT_ID=your-project-id"));
215
- console.log(pc.dim(" NEXT_PUBLIC_SANITY_DATASET=production"));
216
- console.log(pc.dim(" SANITY_API_READ_TOKEN=your-read-token"));
217
- console.log(pc.cyan(" 4. Run: bun sanity:typegen"));
218
- console.log(pc.cyan(" 5. Access Sanity Studio at: /studio"));
203
+ return [
204
+ "Create a Sanity project at https://sanity.io/manage and add credentials to .env.local (NEXT_PUBLIC_SANITY_PROJECT_ID, NEXT_PUBLIC_SANITY_DATASET, SANITY_API_READ_TOKEN)",
205
+ "Run: bun sanity:typegen",
206
+ "Access Sanity Studio at: /studio",
207
+ ];
208
+ }
209
+ if (integration === "hubspot") {
210
+ return [
211
+ "Create a HubSpot private app with the 'forms' and 'account-info.security.read' scopes",
212
+ "Add HUBSPOT_ACCESS_TOKEN to .env.local",
213
+ "Render <HubSpotForm /> from @/lib/integrations/hubspot/form (see its README)",
214
+ ];
215
+ }
216
+ return [];
217
+ }
218
+ /**
219
+ * Adds one or more integrations to the current working directory project.
220
+ *
221
+ * Validates the project, resolves the integration list (from flags or an
222
+ * interactive multi-select), then injects and configures each selected one.
223
+ */
224
+ export async function addIntegration(options = {}) {
225
+ const targetDir = process.cwd();
226
+ // 1. Validate current directory is a Next.js project
227
+ const validationSpinner = ora("Validating project...").start();
228
+ const validation = await validateNextProject(targetDir);
229
+ if (!validation.valid) {
230
+ validationSpinner.fail(pc.red(validation.error));
231
+ console.log(pc.yellow("\nMake sure you're in a Next.js App Router project directory.\n"));
232
+ return;
233
+ }
234
+ const projectStructure = validation.usesSrcPrefix ? "src/" : "root";
235
+ validationSpinner.succeed(pc.green(`Found Next.js project: ${pc.cyan(validation.pkg.name ?? "unnamed")} (${projectStructure} structure)`));
236
+ // 2. Resolve the integration list from flags or a multi-select prompt
237
+ const requested = options.integrations
238
+ ? Array.isArray(options.integrations)
239
+ ? options.integrations
240
+ : [options.integrations]
241
+ : undefined;
242
+ let selection;
243
+ if (requested && requested.length > 0) {
244
+ selection = requested;
245
+ }
246
+ else {
247
+ const { selected } = (await prompts({
248
+ type: "multiselect",
249
+ name: "selected",
250
+ message: "Which integrations would you like to add?",
251
+ choices: INTEGRATION_CATALOG.map((entry) => ({
252
+ title: entry.label,
253
+ description: entry.description,
254
+ value: entry.id,
255
+ })),
256
+ hint: "Space to select, Enter to confirm",
257
+ }));
258
+ if (!selected || selected.length === 0) {
259
+ console.log(pc.yellow("\nOperation cancelled.\n"));
260
+ return;
219
261
  }
262
+ selection = selected;
263
+ }
264
+ // 3. Install in catalog order (CMS before forms) so Sanity lands before the
265
+ // HubSpot Sanity adapter, which is only copied when Sanity is already present.
266
+ const ordered = INTEGRATION_CATALOG.map((entry) => entry.id).filter((id) => selection.includes(id));
267
+ for (const integration of ordered) {
268
+ await installIntegration(integration, targetDir, validation.usesSrcPrefix);
220
269
  }
221
- console.log();
222
270
  }
223
271
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAgB,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EACN,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,6BAA6B,EAC7B,iBAAiB,GACjB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EACN,wBAAwB,EACxB,mBAAmB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAmBzD;;GAEG;AACH,KAAK,UAAU,eAAe,CAC7B,SAAiB,EACjB,WAAkB;IAElB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoB,CAAC;IAE5D,MAAM,UAAU,GAAsC;QACrD,MAAM,EAAE,YAAY;KACpB,CAAC;IACF,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAI,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,YAAY,GAAG;YAClB,GAAG,GAAG,CAAC,YAAY;YACnB,GAAG,MAAM,CAAC,YAAY;SACtB,CAAC;QACF,IACC,MAAM,CAAC,eAAe;YACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAC7C,CAAC;YACF,GAAG,CAAC,eAAe,GAAG;gBACrB,GAAG,GAAG,CAAC,eAAe;gBACtB,GAAG,MAAM,CAAC,eAAe;aACzB,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,GAAG;gBACb,GAAG,GAAG,CAAC,OAAO;gBACd,GAAG,MAAM,CAAC,OAAO;aACjB,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CACnC,UAAiC,EAAE;IAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhC,qDAAqD;IACrD,MAAM,iBAAiB,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/D,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CACV,EAAE,CAAC,MAAM,CACR,iEAAiE,CACjE,CACD,CAAC;QACF,OAAO;IACR,CAAC;IAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,iBAAiB,CAAC,OAAO,CACxB,EAAE,CAAC,KAAK,CACP,0BAA0B,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,gBAAgB,aAAa,CACrG,CACD,CAAC;IAEF,sCAAsC;IACtC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAE9B,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,EAAE,mBAAmB,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC;YAC9C,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,0CAA0C;YACnD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,KAAK,EAAE,GAAG,CAAC,EAAE;aACb,CAAC,CAAC;SACH,CAAC,CAAoC,CAAC;QAEvC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACnD,OAAO;QACR,CAAC;QAED,WAAW,GAAG,mBAAmB,CAAC;IACnC,CAAC;IAED,yCAAyC;IACzC,MAAM,aAAa,GAAG,MAAM,wBAAwB,CACnD,SAAS,EACT,WAAW,EACX,UAAU,CAAC,aAAa,CACxB,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,yCAAyC;YAC3E,OAAO,EAAE,KAAK;SACd,CAAC,CAA4B,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC/C,OAAO;QACR,CAAC;IACF,CAAC;IAED,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,GAAG,CAC7B,UAAU,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAC/C,CAAC,KAAK,EAAE,CAAC;IAEV,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACtC,SAAS,EACT,WAAW,EACX,kBAAkB,CAClB,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,SAAS,EAAE,CAAC;YACf,kBAAkB,CAAC,IAAI,CACtB,EAAE,CAAC,MAAM,CAAC,GAAG,WAAW,uCAAuC,CAAC,CAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACP,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,qBAAqB,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,2BAA2B;QAC3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,CAAC;IACF,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,kBAAkB,CAAC,IAAI,CACtB,EAAE,CAAC,GAAG,CAAC,oBAAoB,WAAW,iBAAiB,OAAO,EAAE,CAAC,CACjE,CAAC;QACF,OAAO;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC1E,IAAI,CAAC;QACJ,MAAM,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9C,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3D,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,+CAA+C;IAC/C,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACxD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CACjD,CAAC;QAEF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,OAAO,CAAC;gBACpC,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,+CAA+C;gBACxD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1C,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,KAAK,EAAE,KAAK,CAAC,EAAE;oBACf,QAAQ,EAAE,IAAI;iBACd,CAAC,CAAC;gBACH,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,mCAAmC;aACzC,CAAC,CAA8B,CAAC;YAEjC,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,GAAG,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACnE,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAEhE,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACP,UAAU,CAAC,IAAI,CACd,EAAE,CAAC,MAAM,CAAC,2CAA2C,CAAC,CACtD,CAAC;oBACF,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAC/B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,CAC7C,CAAC;wBACF,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;wBAC5C,OAAO,CAAC,GAAG,CACV,EAAE,CAAC,MAAM,CACR,OAAO,KAAK,KAAK,OAAO,CAAC,MAAM,IAAI,oCAAoC,EAAE,CACzE,CACD,CAAC;wBACF,OAAO,CAAC,GAAG,CACV,EAAE,CAAC,GAAG,CACL,eAAe,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC7D,CACD,CAAC;oBACH,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,4DAA4D;QAC5D,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CACjD,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE/B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,GAAG,CAAC,oCAAoC,CAAC,CAAC,KAAK,EAAE,CAAC;YACxE,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,OAAO,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;YAClE,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACJ,QAAQ,CACP,wBAAwB,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,EAC9D;wBACC,GAAG,EAAE,SAAS;wBACd,KAAK,EAAE,QAAQ;qBACf,CACD,CAAC;oBACF,SAAS,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACR,sBAAsB;gBACvB,CAAC;YACF,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACf,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACP,aAAa,CAAC,IAAI,CACjB,EAAE,CAAC,MAAM,CACR,yEAAyE,OAAO,CAAC,MAAM,EAAE,CACzF,CACD,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAED,oCAAoC;IACpC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC;YACJ,eAAe,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,GAAG,CACV,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,qCAAqC,CAC/F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9C,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CACV,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CACnE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/application/add-integration/index.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export function mapSelectionToRegistry(selection) {
14
14
  function mapCmsToFeatureId(cms) {
15
15
  if (cms === null)
16
16
  return null;
17
- return CMS_FEATURE_MODULE_IDS[cms];
17
+ return CMS_FEATURE_MODULE_IDS[cms] ?? null;
18
18
  }
19
19
  function mapAnimationToFeatureId(animation) {
20
20
  if (animation === null)
@@ -1 +1 @@
1
- {"version":3,"file":"map-selection-to-registry.js","sourceRoot":"","sources":["../../../src/application/create-project/map-selection-to-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,GACjB,MAAM,mCAAmC,CAAC;AAO3C,MAAM,UAAU,sBAAsB,CACrC,SAA0B;IAE1B,MAAM,UAAU,GAAG;QAClB,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC;QAChC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC;QAC5C,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC5C,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;KAC1C,CAAC,MAAM,CAAC,CAAC,SAAS,EAAgC,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAE1E,OAAO;QACN,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC/C,UAAU;KACV,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,GAA2B;IAE3B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,uBAAuB,CAC/B,SAAuC;IAEvC,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,4BAA4B,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAC3B,KAAwC;IAExC,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAC1B,IAAsC;IAEtC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"map-selection-to-registry.js","sourceRoot":"","sources":["../../../src/application/create-project/map-selection-to-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,GACjB,MAAM,mCAAmC,CAAC;AAO3C,MAAM,UAAU,sBAAsB,CACrC,SAA0B;IAE1B,MAAM,UAAU,GAAG;QAClB,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC;QAChC,uBAAuB,CAAC,SAAS,CAAC,SAAS,CAAC;QAC5C,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAC5C,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;KAC1C,CAAC,MAAM,CAAC,CAAC,SAAS,EAAgC,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC;IAE1E,OAAO;QACN,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC/C,UAAU;KACV,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACzB,GAA2B;IAE3B,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED,SAAS,uBAAuB,CAC/B,SAAuC;IAEvC,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,4BAA4B,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,mBAAmB,CAC3B,KAAwC;IAExC,OAAO,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAC1B,IAAsC;IAEtC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type CmsId } from "../../domain/cms.js";
1
+ import { type IntegrationId } from "../../domain/integration.js";
2
2
  interface PackageJson {
3
3
  name?: string;
4
4
  dependencies?: Record<string, string>;
@@ -26,7 +26,7 @@ export declare function validateNextProject(targetDir: string): Promise<ProjectV
26
26
  * Check whether an integration is already installed in the target project.
27
27
  * Respects the project's `src/` layout when resolving the conventional path.
28
28
  */
29
- export declare function checkExistingIntegration(targetDir: string, integration: CmsId, usesSrcPrefix: boolean): Promise<boolean>;
29
+ export declare function checkExistingIntegration(targetDir: string, integration: IntegrationId, usesSrcPrefix: boolean): Promise<boolean>;
30
30
  /** Return `"src/"` when the project uses `src/app`, otherwise `""`. */
31
31
  export declare function detectSrcPrefix(targetDir: string): Promise<string>;
32
32
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"project-detection.d.ts","sourceRoot":"","sources":["../../../src/application/shared/project-detection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEtD,UAAU,WAAW;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACxC,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACxC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,iBAAiB,GAC1B,wBAAwB,GACxB,wBAAwB,CAAC;AAE5B;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC,CAoC5B;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC7C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,KAAK,EAClB,aAAa,EAAE,OAAO,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,uEAAuE;AACvE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE"}
1
+ {"version":3,"file":"project-detection.d.ts","sourceRoot":"","sources":["../../../src/application/shared/project-detection.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,aAAa,EAClB,MAAM,6BAA6B,CAAC;AAErC,UAAU,WAAW;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACxC,KAAK,EAAE,IAAI,CAAC;IACZ,GAAG,EAAE,WAAW,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACxC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,iBAAiB,GAC1B,wBAAwB,GACxB,wBAAwB,CAAC;AAE5B;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACxC,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,iBAAiB,CAAC,CAoC5B;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC7C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,aAAa,EAC1B,aAAa,EAAE,OAAO,GACpB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED,uEAAuE;AACvE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGxE"}
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
2
  import fs from "fs-extra";
3
- import { CMS } from "../../domain/cms.js";
3
+ import { getIntegration, } from "../../domain/integration.js";
4
4
  /**
5
5
  * Validate that the given directory is a Next.js App Router project.
6
6
  *
@@ -40,7 +40,7 @@ export async function validateNextProject(targetDir) {
40
40
  * Respects the project's `src/` layout when resolving the conventional path.
41
41
  */
42
42
  export async function checkExistingIntegration(targetDir, integration, usesSrcPrefix) {
43
- const basePath = CMS[integration].integrationPath;
43
+ const basePath = getIntegration(integration).integrationPath;
44
44
  const prefix = usesSrcPrefix ? "src/" : "";
45
45
  const integrationPath = path.join(targetDir, prefix + basePath);
46
46
  return fs.existsSync(integrationPath);
@@ -1 +1 @@
1
- {"version":3,"file":"project-detection.js","sourceRoot":"","sources":["../../../src/application/shared/project-detection.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAc,MAAM,qBAAqB,CAAC;AAwBtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,SAAiB;IAEjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,4CAA4C;SACnD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAgB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgB,CAAC;IAE7E,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EACJ,8EAA8E;SAC/E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEpE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EACJ,0FAA0F;SAC3F,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,SAAiB,EACjB,WAAkB,EAClB,aAAsB;IAEtB,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACtD,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"project-detection.js","sourceRoot":"","sources":["../../../src/application/shared/project-detection.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EACN,cAAc,GAEd,MAAM,6BAA6B,CAAC;AAwBrC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,SAAiB;IAEjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACrC,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,4CAA4C;SACnD,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAgB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgB,CAAC;IAE7E,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,EAAE,IAAI,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC;IACpE,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EACJ,8EAA8E;SAC/E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEpE,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EACJ,0FAA0F;SAC3F,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAE/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,SAAiB,EACjB,WAA0B,EAC1B,aAAsB;IAEtB,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAChE,OAAO,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB;IACtD,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1E,OAAO,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACnC,CAAC"}
@@ -12,10 +12,13 @@ export declare const CREATE_MERGER_IDS: {
12
12
  readonly sanityLayout: "sanity:layout";
13
13
  readonly sanitySitemap: "sanity:sitemap";
14
14
  readonly sanityCheckIntegration: "sanity:check-integration";
15
+ readonly sanityCiWorkflow: "sanity:ci-workflow";
16
+ readonly sanityKnip: "sanity:knip";
15
17
  };
16
18
  export type CreateMergerId = (typeof CREATE_MERGER_IDS)[keyof typeof CREATE_MERGER_IDS];
17
19
  export declare const PRESET_MODULE_IDS: Record<TemplateId, string>;
18
- export declare const CMS_FEATURE_MODULE_IDS: Record<CmsId, string>;
20
+ export declare const SANITY_FEATURE_MODULE_ID = "feature:cms-sanity";
21
+ export declare const CMS_FEATURE_MODULE_IDS: Partial<Record<CmsId, string>>;
19
22
  export declare const SANITY_PAGEBUILDER_FEATURE_MODULE_ID = "feature:cms-sanity-pagebuilder";
20
23
  export declare const ANIMATION_FEATURE_MODULE_IDS: Record<AnimationId, string>;
21
24
  export declare const AGENT_FEATURE_MODULE_IDS: Record<AgentId, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ids.d.ts","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAChC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKxD,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAExD,CAAC;AAEF,eAAO,MAAM,oCAAoC,mCAChB,CAAC;AAElC,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAC"}
1
+ {"version":3,"file":"internal-ids.d.ts","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAChC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAC;AAEX,MAAM,MAAM,cAAc,GACzB,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAKxD,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAEjE,CAAC;AAEF,eAAO,MAAM,oCAAoC,mCAChB,CAAC;AAElC,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAGpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAM5D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI1D,CAAC"}
@@ -6,6 +6,8 @@ export const CREATE_MERGER_IDS = {
6
6
  sanityLayout: "sanity:layout",
7
7
  sanitySitemap: "sanity:sitemap",
8
8
  sanityCheckIntegration: "sanity:check-integration",
9
+ sanityCiWorkflow: "sanity:ci-workflow",
10
+ sanityKnip: "sanity:knip",
9
11
  };
10
12
  export const PRESET_MODULE_IDS = {
11
13
  "next-default": "preset:next-default",
@@ -13,8 +15,11 @@ export const PRESET_MODULE_IDS = {
13
15
  "next-webgl": "preset:next-webgl",
14
16
  "next-experiments": "preset:next-experiments",
15
17
  };
18
+ export const SANITY_FEATURE_MODULE_ID = "feature:cms-sanity";
19
+ // Only CMSs that participate in the create pipeline have a feature module.
20
+ // Integrate-only integrations (e.g. hubspot) are intentionally absent.
16
21
  export const CMS_FEATURE_MODULE_IDS = {
17
- sanity: "feature:cms-sanity",
22
+ sanity: SANITY_FEATURE_MODULE_ID,
18
23
  };
19
24
  export const SANITY_PAGEBUILDER_FEATURE_MODULE_ID = "feature:cms-sanity-pagebuilder";
20
25
  export const ANIMATION_FEATURE_MODULE_IDS = {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-ids.js","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,sBAAsB;CACjC,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,0BAA0B;CACzC,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D,cAAc,EAAE,qBAAqB;IACrC,kBAAkB,EAAE,yBAAyB;IAC7C,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAA0B;IAC5D,MAAM,EAAE,oBAAoB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAChD,gCAAgC,CAAC;AAElC,MAAM,CAAC,MAAM,4BAA4B,GAAgC;IACxE,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,0BAA0B;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA4B;IAChE,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,qBAAqB;IAC5B,MAAM,EAAE,sBAAsB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,aAAa,EAAE,0BAA0B;IACzC,iBAAiB,EAAE,8BAA8B;IACjD,2BAA2B,EAAE,wCAAwC;CACrE,CAAC"}
1
+ {"version":3,"file":"internal-ids.js","sourceRoot":"","sources":["../../../src/core/create/internal-ids.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,UAAU,EAAE,aAAa;IACzB,kBAAkB,EAAE,sBAAsB;CACjC,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,YAAY,EAAE,eAAe;IAC7B,aAAa,EAAE,gBAAgB;IAC/B,sBAAsB,EAAE,0BAA0B;IAClD,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE,aAAa;CAChB,CAAC;AAKX,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC5D,cAAc,EAAE,qBAAqB;IACrC,kBAAkB,EAAE,yBAAyB;IAC7C,YAAY,EAAE,mBAAmB;IACjC,kBAAkB,EAAE,yBAAyB;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAE7D,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACrE,MAAM,EAAE,wBAAwB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,oCAAoC,GAChD,gCAAgC,CAAC;AAElC,MAAM,CAAC,MAAM,4BAA4B,GAAgC;IACxE,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,0BAA0B;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAA4B;IAChE,MAAM,EAAE,sBAAsB;IAC9B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,qBAAqB;IAC5B,MAAM,EAAE,sBAAsB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAA2B;IAC9D,aAAa,EAAE,0BAA0B;IACzC,iBAAiB,EAAE,8BAA8B;IACjD,2BAA2B,EAAE,wCAAwC;CACrE,CAAC"}
@@ -1,10 +1,3 @@
1
- import type { SkillId } from "./skills.js";
2
- export interface CmsDefinition {
3
- label: string;
4
- description: string;
5
- integrationPath: string;
6
- skills: readonly SkillId[];
7
- }
8
1
  export declare const CMS: {
9
2
  readonly sanity: {
10
3
  readonly label: "Sanity CMS";
@@ -1 +1 @@
1
- {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/domain/cms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,GAAG;;;;;;;CAOkC,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG,MAAM,OAAO,GAAG,CAAC;AAErC,eAAO,MAAM,WAAW;;;;;QACb,KAAK;GAEb,CAAC"}
1
+ {"version":3,"file":"cms.d.ts","sourceRoot":"","sources":["../../src/domain/cms.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG;;;;;;;CAO0C,CAAC;AAE3D,MAAM,MAAM,KAAK,GAAG,MAAM,OAAO,GAAG,CAAC;AAErC,eAAO,MAAM,WAAW;;;;;QACb,KAAK;GAEb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cms.js","sourceRoot":"","sources":["../../src/domain/cms.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,GAAG,GAAG;IAClB,MAAM,EAAE;QACP,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,2CAA2C;QACxD,eAAe,EAAE,yBAAyB;QAC1C,MAAM,EAAE,CAAC,sBAAsB,CAAC;KAChC;CACgD,CAAC;AAInD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,EAAE,EAAE,EAAW;IACf,GAAG,GAAG;CACN,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cms.js","sourceRoot":"","sources":["../../src/domain/cms.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,GAAG,GAAG;IAClB,MAAM,EAAE;QACP,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,2CAA2C;QACxD,eAAe,EAAE,yBAAyB;QAC1C,MAAM,EAAE,CAAC,sBAAsB,CAAC;KAChC;CACwD,CAAC;AAI3D,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAClE,EAAE,EAAE,EAAW;IACf,GAAG,GAAG;CACN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const FORMS: {
2
+ readonly hubspot: {
3
+ readonly label: "HubSpot Forms";
4
+ readonly description: "Embed HubSpot forms, styled and CMS-agnostic";
5
+ readonly integrationPath: "lib/integrations/hubspot";
6
+ readonly skills: readonly ["hubspot-pagebuilder-block"];
7
+ };
8
+ };
9
+ export type FormId = keyof typeof FORMS;
10
+ export declare const FORMS_CATALOG: {
11
+ label: "HubSpot Forms";
12
+ description: "Embed HubSpot forms, styled and CMS-agnostic";
13
+ integrationPath: "lib/integrations/hubspot";
14
+ skills: readonly ["hubspot-pagebuilder-block"];
15
+ id: FormId;
16
+ }[];
17
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../src/domain/forms.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;CAOwC,CAAC;AAE3D,MAAM,MAAM,MAAM,GAAG,MAAM,OAAO,KAAK,CAAC;AAExC,eAAO,MAAM,aAAa;;;;;QACf,MAAM;GAEd,CAAC"}
@@ -0,0 +1,13 @@
1
+ export const FORMS = {
2
+ hubspot: {
3
+ label: "HubSpot Forms",
4
+ description: "Embed HubSpot forms, styled and CMS-agnostic",
5
+ integrationPath: "lib/integrations/hubspot",
6
+ skills: ["hubspot-pagebuilder-block"],
7
+ },
8
+ };
9
+ export const FORMS_CATALOG = Object.entries(FORMS).map(([id, form]) => ({
10
+ id: id,
11
+ ...form,
12
+ }));
13
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/domain/forms.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,OAAO,EAAE;QACR,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,8CAA8C;QAC3D,eAAe,EAAE,0BAA0B;QAC3C,MAAM,EAAE,CAAC,2BAA2B,CAAC;KACrC;CACwD,CAAC;AAI3D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvE,EAAE,EAAE,EAAY;IAChB,GAAG,IAAI;CACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type CmsId } from "./cms.js";
2
+ import { type FormId } from "./forms.js";
3
+ import type { SkillId } from "./skills.js";
4
+ /**
5
+ * Shared shape for every integration the CLI can inject (CMS or forms).
6
+ */
7
+ export interface IntegrationDefinition {
8
+ label: string;
9
+ description: string;
10
+ integrationPath: string;
11
+ skills: readonly SkillId[];
12
+ }
13
+ /** Any injectable integration — a CMS (`CmsId`) or a forms provider (`FormId`). */
14
+ export type IntegrationId = CmsId | FormId;
15
+ /** Combined catalog used by the interactive integrate/create prompts. */
16
+ export declare const INTEGRATION_CATALOG: ({
17
+ label: "Sanity CMS";
18
+ description: "Headless CMS with real-time collaboration";
19
+ integrationPath: "lib/integrations/sanity";
20
+ skills: readonly ["sanity-agent-toolkit"];
21
+ id: CmsId;
22
+ } | {
23
+ label: "HubSpot Forms";
24
+ description: "Embed HubSpot forms, styled and CMS-agnostic";
25
+ integrationPath: "lib/integrations/hubspot";
26
+ skills: readonly ["hubspot-pagebuilder-block"];
27
+ id: FormId;
28
+ })[];
29
+ export declare function getIntegration(id: IntegrationId): IntegrationDefinition;
30
+ //# sourceMappingURL=integration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../src/domain/integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAwB,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CAC3B;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAO3C,yEAAyE;AACzE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;IAAqC,CAAC;AAEtE,wBAAgB,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,qBAAqB,CAEvE"}