@contractspec/bundle.library 3.8.10 → 3.8.12

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 (643) hide show
  1. package/.turbo/turbo-build.log +606 -594
  2. package/CHANGELOG.md +59 -0
  3. package/dist/application/context-storage/index.js +1 -28
  4. package/dist/application/index.js +13 -2133
  5. package/dist/application/mcp/cliMcp.js +4 -452
  6. package/dist/application/mcp/common.js +1 -193
  7. package/dist/application/mcp/contractsMcp.js +2 -549
  8. package/dist/application/mcp/contractsMcpResources.js +2 -123
  9. package/dist/application/mcp/contractsMcpTools.js +1 -199
  10. package/dist/application/mcp/docsMcp.catalog.js +3 -381
  11. package/dist/application/mcp/docsMcp.data.js +1 -147
  12. package/dist/application/mcp/docsMcp.js +6 -1039
  13. package/dist/application/mcp/docsMcp.prompts.js +6 -521
  14. package/dist/application/mcp/docsMcp.reference.js +3 -235
  15. package/dist/application/mcp/docsMcp.resources.js +3 -519
  16. package/dist/application/mcp/docsMcp.tools.js +3 -518
  17. package/dist/application/mcp/index.js +13 -2106
  18. package/dist/application/mcp/internalMcp.js +2 -410
  19. package/dist/application/mcp/normalizeMcpRequest.js +1 -21
  20. package/dist/application/mcp/providerRankingMcp.js +1 -530
  21. package/dist/bundles/LibraryBundle.js +1 -138
  22. package/dist/bundles/index.js +1 -138
  23. package/dist/components/docs/DocsIndexPage.js +2 -912
  24. package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
  25. package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  26. package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  27. package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  28. package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  29. package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  30. package/dist/components/docs/advanced/index.js +10 -1055
  31. package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  32. package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  33. package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  34. package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  35. package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  36. package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  37. package/dist/components/docs/architecture/index.js +20 -1340
  38. package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  39. package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  40. package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  41. package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  42. package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  43. package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  44. package/dist/components/docs/comparison/index.js +1 -1510
  45. package/dist/components/docs/docsManifest.js +1 -611
  46. package/dist/components/docs/docsManifest.test.d.ts +1 -0
  47. package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
  48. package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
  49. package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
  50. package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
  51. package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  52. package/dist/components/docs/ecosystem/index.js +23 -569
  53. package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
  54. package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
  55. package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
  56. package/dist/components/docs/examples/index.js +4 -330
  57. package/dist/components/docs/generated/docs-index.generated.js +1 -5
  58. package/dist/components/docs/generated/index.js +1 -74
  59. package/dist/components/docs/generated/loader.js +1 -74
  60. package/dist/components/docs/getting-started/CLIPage.js +4 -271
  61. package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
  62. package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  63. package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  64. package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
  65. package/dist/components/docs/getting-started/InstallationPage.js +3 -154
  66. package/dist/components/docs/getting-started/StartHerePage.js +2 -129
  67. package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
  68. package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  69. package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
  70. package/dist/components/docs/getting-started/index.js +18 -1869
  71. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  72. package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
  73. package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
  74. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
  75. package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  76. package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
  77. package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
  78. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  79. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
  80. package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
  81. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  82. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  83. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  84. package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
  85. package/dist/components/docs/guides/guides.docblocks.js +11 -75
  86. package/dist/components/docs/guides/index.d.ts +3 -0
  87. package/dist/components/docs/guides/index.js +213 -2428
  88. package/dist/components/docs/index.js +542 -24310
  89. package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  90. package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  91. package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  92. package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  93. package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  94. package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  95. package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  96. package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  97. package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  98. package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  99. package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  100. package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  101. package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
  102. package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
  103. package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  104. package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  105. package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
  106. package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  107. package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  108. package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  109. package/dist/components/docs/integrations/index.js +52 -3100
  110. package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
  111. package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
  112. package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  113. package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
  114. package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  115. package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  116. package/dist/components/docs/intent/index.js +15 -1135
  117. package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
  118. package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  119. package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  120. package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  121. package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  122. package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  123. package/dist/components/docs/knowledge/index.js +21 -1730
  124. package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  125. package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  126. package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  127. package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  128. package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
  129. package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  130. package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  131. package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  132. package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  133. package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  134. package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  135. package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  136. package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  137. package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  138. package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  139. package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  140. package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  141. package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  142. package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  143. package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  144. package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
  145. package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  146. package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  147. package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
  148. package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  149. package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  150. package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  151. package/dist/components/docs/libraries/index.js +54 -4147
  152. package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
  153. package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  154. package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  155. package/dist/components/docs/ops/index.js +3 -202
  156. package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  157. package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  158. package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  159. package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  160. package/dist/components/docs/ops/ops-top.docs.js +2 -17
  161. package/dist/components/docs/ops/ops.docs.js +10 -302
  162. package/dist/components/docs/product/product.docblocks.js +5 -72
  163. package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
  164. package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
  165. package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  166. package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  167. package/dist/components/docs/reference/DocsReferencePage.js +3 -265
  168. package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
  169. package/dist/components/docs/reference/index.js +4 -470
  170. package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
  171. package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
  172. package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
  173. package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
  174. package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  175. package/dist/components/docs/safety/SafetySigningPage.js +3 -90
  176. package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  177. package/dist/components/docs/safety/index.js +7 -1480
  178. package/dist/components/docs/shared/StudioPrompt.js +1 -31
  179. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
  180. package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
  181. package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  182. package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
  183. package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
  184. package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
  185. package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
  186. package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
  187. package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
  188. package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
  189. package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
  190. package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -325
  191. package/dist/components/docs/specs/index.d.ts +3 -0
  192. package/dist/components/docs/specs/index.js +109 -1715
  193. package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
  194. package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
  195. package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
  196. package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
  197. package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
  198. package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  199. package/dist/components/docs/studio/index.js +1 -282
  200. package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  201. package/dist/components/integrations/index.js +2 -600
  202. package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
  203. package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  204. package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
  205. package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  206. package/dist/components/legal/PrivacyTemplate.js +1 -1025
  207. package/dist/components/legal/TermsTemplate.js +1 -941
  208. package/dist/components/legal/index.js +1 -1963
  209. package/dist/components/shared/FeatureGateNotice.js +1 -38
  210. package/dist/components/shared/index.js +1 -38
  211. package/dist/components/shell/WorkspaceHeader.js +1 -100
  212. package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
  213. package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
  214. package/dist/components/shell/WorkspaceSidebar.js +1 -68
  215. package/dist/components/shell/index.js +1 -287
  216. package/dist/components/templates/engine/index.js +1 -39
  217. package/dist/components/templates/index.js +11 -965
  218. package/dist/components/templates/messaging/ConversationList.js +2 -83
  219. package/dist/components/templates/messaging/MessageComposer.js +4 -150
  220. package/dist/components/templates/messaging/MessageThread.js +3 -83
  221. package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
  222. package/dist/components/templates/messaging/index.js +5 -269
  223. package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
  224. package/dist/components/templates/recipes/RecipeCard.js +1 -80
  225. package/dist/components/templates/recipes/RecipeDetail.js +1 -74
  226. package/dist/components/templates/recipes/RecipeList.js +3 -245
  227. package/dist/components/templates/recipes/index.js +3 -248
  228. package/dist/components/templates/todos/FilterBar.js +1 -107
  229. package/dist/components/templates/todos/TaskForm.js +2 -158
  230. package/dist/components/templates/todos/TaskItem.js +1 -77
  231. package/dist/components/templates/todos/TaskList.js +5 -449
  232. package/dist/components/templates/todos/index.js +5 -452
  233. package/dist/config/contractspec-blueprint.js +1 -123
  234. package/dist/config/contractspec-branding.js +1 -44
  235. package/dist/config/contractspec-routes.js +1 -24
  236. package/dist/config/index.js +1 -126
  237. package/dist/features/contracts-registry.js +1 -178
  238. package/dist/features/docs/docs.contracts.js +1 -17
  239. package/dist/features/docs/index.js +1 -17
  240. package/dist/features/docs.feature.js +1 -33
  241. package/dist/features/index.js +1 -315
  242. package/dist/features/mcp.feature.js +1 -30
  243. package/dist/features/presentations.feature.js +1 -33
  244. package/dist/features/registry.js +1 -116
  245. package/dist/index.js +556 -28593
  246. package/dist/infrastructure/elysia/index.js +1 -35
  247. package/dist/infrastructure/elysia/logger.js +1 -35
  248. package/dist/infrastructure/index.js +1 -35
  249. package/dist/libs/email/client.js +1 -114
  250. package/dist/libs/email/contact.js +12 -165
  251. package/dist/libs/email/newsletter.js +6 -167
  252. package/dist/libs/email/types.js +0 -2
  253. package/dist/libs/email/utils.js +2 -8
  254. package/dist/libs/email/waitlist-application.js +28 -209
  255. package/dist/libs/email/waitlist.js +6 -167
  256. package/dist/libs/email.js +46 -363
  257. package/dist/libs/posthog/client.js +1 -63
  258. package/dist/libs/posthog/native.js +1 -23
  259. package/dist/libs/posthog/server.js +1 -13
  260. package/dist/libs/pricing-examples.js +1 -18
  261. package/dist/node/application/context-storage/index.js +1 -28
  262. package/dist/node/application/index.js +13 -2133
  263. package/dist/node/application/mcp/cliMcp.js +4 -452
  264. package/dist/node/application/mcp/common.js +1 -193
  265. package/dist/node/application/mcp/contractsMcp.js +2 -549
  266. package/dist/node/application/mcp/contractsMcpResources.js +2 -123
  267. package/dist/node/application/mcp/contractsMcpTools.js +1 -199
  268. package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
  269. package/dist/node/application/mcp/docsMcp.data.js +1 -147
  270. package/dist/node/application/mcp/docsMcp.js +6 -1039
  271. package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
  272. package/dist/node/application/mcp/docsMcp.reference.js +3 -235
  273. package/dist/node/application/mcp/docsMcp.resources.js +3 -519
  274. package/dist/node/application/mcp/docsMcp.tools.js +3 -518
  275. package/dist/node/application/mcp/index.js +13 -2106
  276. package/dist/node/application/mcp/internalMcp.js +2 -410
  277. package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
  278. package/dist/node/application/mcp/providerRankingMcp.js +1 -530
  279. package/dist/node/bundles/LibraryBundle.js +1 -138
  280. package/dist/node/bundles/index.js +1 -138
  281. package/dist/node/components/docs/DocsIndexPage.js +2 -912
  282. package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
  283. package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
  284. package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
  285. package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
  286. package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
  287. package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
  288. package/dist/node/components/docs/advanced/index.js +10 -1055
  289. package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
  290. package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
  291. package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
  292. package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
  293. package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
  294. package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
  295. package/dist/node/components/docs/architecture/index.js +20 -1340
  296. package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
  297. package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
  298. package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
  299. package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
  300. package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
  301. package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
  302. package/dist/node/components/docs/comparison/index.js +1 -1510
  303. package/dist/node/components/docs/docsManifest.js +1 -611
  304. package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
  305. package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
  306. package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
  307. package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
  308. package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
  309. package/dist/node/components/docs/ecosystem/index.js +23 -569
  310. package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
  311. package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
  312. package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
  313. package/dist/node/components/docs/examples/index.js +4 -330
  314. package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
  315. package/dist/node/components/docs/generated/index.js +1 -74
  316. package/dist/node/components/docs/generated/loader.js +1 -74
  317. package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
  318. package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
  319. package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
  320. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
  321. package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
  322. package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
  323. package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
  324. package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
  325. package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
  326. package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
  327. package/dist/node/components/docs/getting-started/index.js +18 -1869
  328. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
  329. package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
  330. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
  331. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
  332. package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
  333. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
  334. package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
  335. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
  336. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
  337. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
  338. package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
  339. package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
  340. package/dist/node/components/docs/guides/index.js +213 -2428
  341. package/dist/node/components/docs/index.js +542 -24310
  342. package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
  343. package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
  344. package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
  345. package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
  346. package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
  347. package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
  348. package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
  349. package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
  350. package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
  351. package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
  352. package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
  353. package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
  354. package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
  355. package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
  356. package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
  357. package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
  358. package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
  359. package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
  360. package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
  361. package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
  362. package/dist/node/components/docs/integrations/index.js +52 -3100
  363. package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
  364. package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
  365. package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
  366. package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
  367. package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
  368. package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
  369. package/dist/node/components/docs/intent/index.js +15 -1135
  370. package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
  371. package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
  372. package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
  373. package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
  374. package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
  375. package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
  376. package/dist/node/components/docs/knowledge/index.js +21 -1730
  377. package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
  378. package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
  379. package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
  380. package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
  381. package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
  382. package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
  383. package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
  384. package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
  385. package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
  386. package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
  387. package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
  388. package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
  389. package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
  390. package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
  391. package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
  392. package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
  393. package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
  394. package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
  395. package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
  396. package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
  397. package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
  398. package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
  399. package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
  400. package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
  401. package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
  402. package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
  403. package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
  404. package/dist/node/components/docs/libraries/index.js +54 -4147
  405. package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
  406. package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
  407. package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
  408. package/dist/node/components/docs/ops/index.js +3 -202
  409. package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
  410. package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
  411. package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
  412. package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
  413. package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
  414. package/dist/node/components/docs/ops/ops.docs.js +10 -302
  415. package/dist/node/components/docs/product/product.docblocks.js +5 -72
  416. package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
  417. package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
  418. package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
  419. package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
  420. package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
  421. package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
  422. package/dist/node/components/docs/reference/index.js +4 -470
  423. package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
  424. package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
  425. package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
  426. package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
  427. package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
  428. package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
  429. package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
  430. package/dist/node/components/docs/safety/index.js +7 -1480
  431. package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
  432. package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
  433. package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
  434. package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
  435. package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
  436. package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
  437. package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
  438. package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
  439. package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
  440. package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -325
  441. package/dist/node/components/docs/specs/index.js +109 -1715
  442. package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
  443. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
  444. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
  445. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
  446. package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
  447. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
  448. package/dist/node/components/docs/studio/index.js +1 -282
  449. package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
  450. package/dist/node/components/integrations/index.js +2 -600
  451. package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
  452. package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
  453. package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
  454. package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
  455. package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
  456. package/dist/node/components/legal/TermsTemplate.js +1 -941
  457. package/dist/node/components/legal/index.js +1 -1963
  458. package/dist/node/components/shared/FeatureGateNotice.js +1 -38
  459. package/dist/node/components/shared/index.js +1 -38
  460. package/dist/node/components/shell/WorkspaceHeader.js +1 -100
  461. package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
  462. package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
  463. package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
  464. package/dist/node/components/shell/index.js +1 -287
  465. package/dist/node/components/templates/engine/index.js +1 -39
  466. package/dist/node/components/templates/index.js +11 -965
  467. package/dist/node/components/templates/messaging/ConversationList.js +2 -83
  468. package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
  469. package/dist/node/components/templates/messaging/MessageThread.js +3 -83
  470. package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
  471. package/dist/node/components/templates/messaging/index.js +5 -269
  472. package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
  473. package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
  474. package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
  475. package/dist/node/components/templates/recipes/RecipeList.js +3 -245
  476. package/dist/node/components/templates/recipes/index.js +3 -248
  477. package/dist/node/components/templates/todos/FilterBar.js +1 -107
  478. package/dist/node/components/templates/todos/TaskForm.js +2 -158
  479. package/dist/node/components/templates/todos/TaskItem.js +1 -77
  480. package/dist/node/components/templates/todos/TaskList.js +5 -449
  481. package/dist/node/components/templates/todos/index.js +5 -452
  482. package/dist/node/config/contractspec-blueprint.js +1 -123
  483. package/dist/node/config/contractspec-branding.js +1 -44
  484. package/dist/node/config/contractspec-routes.js +1 -24
  485. package/dist/node/config/index.js +1 -126
  486. package/dist/node/features/contracts-registry.js +1 -178
  487. package/dist/node/features/docs/docs.contracts.js +1 -17
  488. package/dist/node/features/docs/index.js +1 -17
  489. package/dist/node/features/docs.feature.js +1 -33
  490. package/dist/node/features/index.js +1 -315
  491. package/dist/node/features/mcp.feature.js +1 -30
  492. package/dist/node/features/presentations.feature.js +1 -33
  493. package/dist/node/features/registry.js +1 -116
  494. package/dist/node/index.js +556 -28593
  495. package/dist/node/infrastructure/elysia/index.js +1 -35
  496. package/dist/node/infrastructure/elysia/logger.js +1 -35
  497. package/dist/node/infrastructure/index.js +1 -35
  498. package/dist/node/libs/email/client.js +1 -114
  499. package/dist/node/libs/email/contact.js +12 -165
  500. package/dist/node/libs/email/newsletter.js +6 -167
  501. package/dist/node/libs/email/types.js +0 -2
  502. package/dist/node/libs/email/utils.js +2 -8
  503. package/dist/node/libs/email/waitlist-application.js +28 -209
  504. package/dist/node/libs/email/waitlist.js +6 -167
  505. package/dist/node/libs/email.js +46 -363
  506. package/dist/node/libs/posthog/client.js +1 -63
  507. package/dist/node/libs/posthog/native.js +1 -23
  508. package/dist/node/libs/posthog/server.js +1 -13
  509. package/dist/node/libs/pricing-examples.js +1 -18
  510. package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  511. package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
  512. package/dist/node/presentation/features/atoms/index.js +1 -97
  513. package/dist/node/presentation/features/hooks/index.js +1 -397
  514. package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
  515. package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
  516. package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
  517. package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
  518. package/dist/node/presentation/features/index.js +1 -3063
  519. package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  520. package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
  521. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  522. package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  523. package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  524. package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
  525. package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  526. package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  527. package/dist/node/presentation/features/molecules/index.js +1 -505
  528. package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  529. package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  530. package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
  531. package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  532. package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  533. package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
  534. package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
  535. package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
  536. package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  537. package/dist/node/presentation/features/organisms/index.js +1 -1359
  538. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  539. package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  540. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  541. package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  542. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  543. package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  544. package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  545. package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  546. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  547. package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  548. package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  549. package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  550. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  551. package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  552. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  553. package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  554. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  555. package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  556. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  557. package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  558. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  559. package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  560. package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
  561. package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
  562. package/dist/presentation/features/atoms/index.js +1 -97
  563. package/dist/presentation/features/hooks/index.js +1 -397
  564. package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
  565. package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
  566. package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
  567. package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
  568. package/dist/presentation/features/index.js +1 -3063
  569. package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
  570. package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
  571. package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
  572. package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
  573. package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
  574. package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
  575. package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
  576. package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
  577. package/dist/presentation/features/molecules/index.js +1 -505
  578. package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
  579. package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
  580. package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
  581. package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
  582. package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
  583. package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
  584. package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
  585. package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
  586. package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
  587. package/dist/presentation/features/organisms/index.js +1 -1359
  588. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
  589. package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
  590. package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
  591. package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
  592. package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
  593. package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
  594. package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
  595. package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
  596. package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
  597. package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
  598. package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
  599. package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
  600. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
  601. package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
  602. package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
  603. package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
  604. package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
  605. package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
  606. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
  607. package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
  608. package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
  609. package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
  610. package/package.json +103 -31
  611. package/src/components/docs/DocsIndexPage.tsx +55 -0
  612. package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
  613. package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
  614. package/src/components/docs/docsManifest.test.ts +70 -0
  615. package/src/components/docs/docsManifest.ts +71 -1
  616. package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
  617. package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
  618. package/src/components/docs/generated/docs-index._common.json +206 -273
  619. package/src/components/docs/generated/docs-index.control-plane.json +18 -0
  620. package/src/components/docs/generated/docs-index.defineExample.json +10 -0
  621. package/src/components/docs/generated/docs-index.manifest.json +22 -12
  622. package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
  623. package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
  624. package/src/components/docs/generated/docs-index.platform-context.json +48 -0
  625. package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
  626. package/src/components/docs/generated/docs-index.platform-database.json +40 -0
  627. package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
  628. package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
  629. package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
  630. package/src/components/docs/generated/docs-index.unknown.json +8 -0
  631. package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
  632. package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
  633. package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
  634. package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
  635. package/src/components/docs/guides/index.ts +3 -0
  636. package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
  637. package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
  638. package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
  639. package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
  640. package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
  641. package/src/components/docs/specs/index.ts +3 -0
  642. package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
  643. package/src/infrastructure/elysia/logger.ts +11 -3
@@ -1,271 +1,5 @@
1
1
  // @bun
2
- // src/components/docs/intent/intent-pages.docblocks.ts
3
- var contractFirstApiBrief = {
4
- title: "Contract-first API",
5
- summary: "Design APIs by writing contracts first, then generate consistent implementations across frameworks.",
6
- problems: [
7
- "API drift between frontend and backend",
8
- "Inconsistent error handling across endpoints",
9
- "Documentation becomes outdated quickly",
10
- "Manual OpenAPI maintenance is error-prone"
11
- ],
12
- solutions: [
13
- "Single source of truth for API contracts",
14
- "Generate OpenAPI and SDKs from contracts",
15
- "Type-safe request/response validation",
16
- "Always-in-sync documentation"
17
- ],
18
- audience: {
19
- role: "API developers",
20
- industry: "Software development",
21
- maturity: "scaleup"
22
- },
23
- callToAction: "Start with a simple operation contract",
24
- references: [
25
- {
26
- label: "Next.js One Endpoint Guide",
27
- url: "/docs/guides/nextjs-one-endpoint"
28
- },
29
- {
30
- label: "API Reference",
31
- url: "/docs/api"
32
- }
33
- ]
34
- };
35
- var specDrivenDevelopmentBrief = {
36
- title: "Spec-driven development",
37
- summary: "Build features by writing specifications first, then generate type-safe implementations.",
38
- problems: [
39
- "Feature requirements are ambiguous",
40
- "Frontend and backend implementations diverge",
41
- "Testing lacks clear contract definitions",
42
- "Code reviews focus on style instead of behavior"
43
- ],
44
- solutions: [
45
- "Executable specifications as single source of truth",
46
- "Generate type-safe clients from specs",
47
- "Automated contract testing",
48
- "Clear behavior contracts for teams"
49
- ],
50
- audience: {
51
- role: "Development teams",
52
- industry: "Software engineering",
53
- maturity: "enterprise"
54
- },
55
- callToAction: "Define your first feature spec",
56
- references: [
57
- {
58
- label: "Spec Validation + Typing Guide",
59
- url: "/docs/guides/spec-validation-and-typing"
60
- },
61
- {
62
- label: "Core Contracts",
63
- url: "/docs/core-contracts"
64
- }
65
- ]
66
- };
67
- var deterministicCodegenBrief = {
68
- title: "Deterministic codegen",
69
- summary: "Regenerate code from contracts without breaking existing functionality or losing customizations.",
70
- problems: [
71
- "Generated code conflicts with manual changes",
72
- "Regeneration loses custom business logic",
73
- "Teams avoid regeneration after customization",
74
- "Code migration between versions is risky"
75
- ],
76
- solutions: [
77
- "Clear separation of generated vs hand-written code",
78
- "Incremental regeneration with conflict detection",
79
- "Protected zones for custom logic",
80
- "Automatic migration paths"
81
- ],
82
- audience: {
83
- role: "Platform engineers",
84
- industry: "Developer tools",
85
- maturity: "scaleup"
86
- },
87
- callToAction: "Try deterministic regeneration",
88
- references: [
89
- {
90
- label: "Generate Docs + Clients Guide",
91
- url: "/docs/guides/generate-docs-clients-schemas"
92
- },
93
- {
94
- label: "CLI Reference",
95
- url: "/docs/getting-started/cli"
96
- }
97
- ]
98
- };
99
- var schemaValidationTypescriptBrief = {
100
- title: "Schema validation TypeScript",
101
- summary: "Generate TypeScript types from contracts and validate data at runtime with zero overhead.",
102
- problems: [
103
- "Runtime type validation is boilerplate-heavy",
104
- "Type definitions drift from schemas",
105
- "Validation logic scattered across codebase",
106
- "Poor error messages for invalid data"
107
- ],
108
- solutions: [
109
- "Auto-generated TypeScript from contracts",
110
- "Zod schemas for runtime validation",
111
- "Type-safe validation with clear errors",
112
- "Single source of schema truth"
113
- ],
114
- audience: {
115
- role: "TypeScript developers",
116
- industry: "Web development",
117
- maturity: "early"
118
- },
119
- callToAction: "Generate typed contracts now",
120
- references: [
121
- {
122
- label: "Type Safety Guide",
123
- url: "/docs/guides/spec-validation-and-typing"
124
- },
125
- {
126
- label: "Schema Reference",
127
- url: "/docs/schemas"
128
- }
129
- ]
130
- };
131
- var openapiAlternativeBrief = {
132
- title: "OpenAPI alternative",
133
- summary: "A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",
134
- problems: [
135
- "OpenAPI is documentation-only",
136
- "No type safety from OpenAPI specs",
137
- "Manual SDK generation is complex",
138
- "Cannot validate implementations against OpenAPI"
139
- ],
140
- solutions: [
141
- "Executable contracts with validation",
142
- "Generate multiple outputs from one spec",
143
- "Type-safe by default",
144
- "Built-in testing and validation"
145
- ],
146
- audience: {
147
- role: "API architects",
148
- industry: "Enterprise software",
149
- maturity: "enterprise"
150
- },
151
- callToAction: "Compare with OpenAPI approach",
152
- references: [
153
- {
154
- label: "Generate OpenAPI from Contracts",
155
- url: "/docs/guides/generate-docs-clients-schemas"
156
- },
157
- {
158
- label: "Contract vs OpenAPI",
159
- url: "/docs/comparison/openapi"
160
- }
161
- ]
162
- };
163
- var generateClientFromSchemaBrief = {
164
- title: "Generate client from schema",
165
- summary: "Automatically generate type-safe API clients in any language from your contracts.",
166
- problems: [
167
- "Writing API clients is repetitive",
168
- "Manual clients have type mismatches",
169
- "Keeping clients in sync with APIs",
170
- "Language-specific client maintenance"
171
- ],
172
- solutions: [
173
- "Generate clients for multiple languages",
174
- "Type-safe request/response handling",
175
- "Automatic client updates from contracts",
176
- "Consistent error handling across languages"
177
- ],
178
- audience: {
179
- role: "Full-stack developers",
180
- industry: "Software development",
181
- maturity: "scaleup"
182
- },
183
- callToAction: "Generate your first API client",
184
- references: [
185
- {
186
- label: "Client Generation Guide",
187
- url: "/docs/guides/generate-docs-clients-schemas"
188
- },
189
- {
190
- label: "Supported Languages",
191
- url: "/docs/integrations"
192
- }
193
- ]
194
- };
195
-
196
- // src/components/docs/intent/ContractFirstApiPage.tsx
197
- import { contractFirstApiBrief as contractFirstApiBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
198
- import { SeoOptimizer } from "@contractspec/lib.content-gen/seo";
199
- import { CodeBlock } from "@contractspec/lib.design-system";
200
- import Link from "@contractspec/lib.ui-link";
201
- import { ChevronRight } from "lucide-react";
202
- import { jsx, jsxs } from "react/jsx-runtime";
203
- var metadata = new SeoOptimizer().optimize(contractFirstApiBrief2);
204
- function ContractFirstApiPage() {
205
- return /* @__PURE__ */ jsxs("div", {
206
- className: "space-y-8",
207
- children: [
208
- /* @__PURE__ */ jsxs("div", {
209
- className: "space-y-3",
210
- children: [
211
- /* @__PURE__ */ jsx("h1", {
212
- className: "font-bold text-4xl",
213
- children: contractFirstApiBrief2.title
214
- }),
215
- /* @__PURE__ */ jsx("p", {
216
- className: "text-lg text-muted-foreground",
217
- children: contractFirstApiBrief2.summary
218
- })
219
- ]
220
- }),
221
- /* @__PURE__ */ jsxs("div", {
222
- className: "card-subtle space-y-4 p-6",
223
- children: [
224
- /* @__PURE__ */ jsx("h2", {
225
- className: "font-bold text-2xl",
226
- children: "Problems Solved"
227
- }),
228
- /* @__PURE__ */ jsx("ul", {
229
- className: "space-y-2 text-muted-foreground text-sm",
230
- children: contractFirstApiBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx("li", {
231
- children: problem
232
- }, index))
233
- })
234
- ]
235
- }),
236
- /* @__PURE__ */ jsxs("div", {
237
- className: "card-subtle space-y-4 p-6",
238
- children: [
239
- /* @__PURE__ */ jsx("h2", {
240
- className: "font-bold text-2xl",
241
- children: "Solutions"
242
- }),
243
- /* @__PURE__ */ jsx("ul", {
244
- className: "space-y-2 text-muted-foreground text-sm",
245
- children: contractFirstApiBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx("li", {
246
- children: solution
247
- }, index))
248
- })
249
- ]
250
- }),
251
- /* @__PURE__ */ jsxs("div", {
252
- className: "space-y-6",
253
- children: [
254
- /* @__PURE__ */ jsxs("div", {
255
- className: "space-y-3",
256
- children: [
257
- /* @__PURE__ */ jsx("h2", {
258
- className: "font-bold text-2xl",
259
- children: "Quick Start"
260
- }),
261
- /* @__PURE__ */ jsx("p", {
262
- className: "text-muted-foreground text-sm",
263
- children: "Define your first API contract and generate consistent implementations."
264
- }),
265
- /* @__PURE__ */ jsx(CodeBlock, {
266
- language: "typescript",
267
- filename: "src/contracts/user-create.operation.ts",
268
- code: `import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
2
+ var B={title:"Contract-first API",summary:"Design APIs by writing contracts first, then generate consistent implementations across frameworks.",problems:["API drift between frontend and backend","Inconsistent error handling across endpoints","Documentation becomes outdated quickly","Manual OpenAPI maintenance is error-prone"],solutions:["Single source of truth for API contracts","Generate OpenAPI and SDKs from contracts","Type-safe request/response validation","Always-in-sync documentation"],audience:{role:"API developers",industry:"Software development",maturity:"scaleup"},callToAction:"Start with a simple operation contract",references:[{label:"Next.js One Endpoint Guide",url:"/docs/guides/nextjs-one-endpoint"},{label:"API Reference",url:"/docs/api"}]},s={title:"Spec-driven development",summary:"Build features by writing specifications first, then generate type-safe implementations.",problems:["Feature requirements are ambiguous","Frontend and backend implementations diverge","Testing lacks clear contract definitions","Code reviews focus on style instead of behavior"],solutions:["Executable specifications as single source of truth","Generate type-safe clients from specs","Automated contract testing","Clear behavior contracts for teams"],audience:{role:"Development teams",industry:"Software engineering",maturity:"enterprise"},callToAction:"Define your first feature spec",references:[{label:"Spec Validation + Typing Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Core Contracts",url:"/docs/core-contracts"}]},j={title:"Deterministic codegen",summary:"Regenerate code from contracts without breaking existing functionality or losing customizations.",problems:["Generated code conflicts with manual changes","Regeneration loses custom business logic","Teams avoid regeneration after customization","Code migration between versions is risky"],solutions:["Clear separation of generated vs hand-written code","Incremental regeneration with conflict detection","Protected zones for custom logic","Automatic migration paths"],audience:{role:"Platform engineers",industry:"Developer tools",maturity:"scaleup"},callToAction:"Try deterministic regeneration",references:[{label:"Generate Docs + Clients Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"CLI Reference",url:"/docs/getting-started/cli"}]},x={title:"Schema validation TypeScript",summary:"Generate TypeScript types from contracts and validate data at runtime with zero overhead.",problems:["Runtime type validation is boilerplate-heavy","Type definitions drift from schemas","Validation logic scattered across codebase","Poor error messages for invalid data"],solutions:["Auto-generated TypeScript from contracts","Zod schemas for runtime validation","Type-safe validation with clear errors","Single source of schema truth"],audience:{role:"TypeScript developers",industry:"Web development",maturity:"early"},callToAction:"Generate typed contracts now",references:[{label:"Type Safety Guide",url:"/docs/guides/spec-validation-and-typing"},{label:"Schema Reference",url:"/docs/schemas"}]},ee={title:"OpenAPI alternative",summary:"A spec-first approach that goes beyond OpenAPI with executable contracts and code generation.",problems:["OpenAPI is documentation-only","No type safety from OpenAPI specs","Manual SDK generation is complex","Cannot validate implementations against OpenAPI"],solutions:["Executable contracts with validation","Generate multiple outputs from one spec","Type-safe by default","Built-in testing and validation"],audience:{role:"API architects",industry:"Enterprise software",maturity:"enterprise"},callToAction:"Compare with OpenAPI approach",references:[{label:"Generate OpenAPI from Contracts",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Contract vs OpenAPI",url:"/docs/comparison/openapi"}]},te={title:"Generate client from schema",summary:"Automatically generate type-safe API clients in any language from your contracts.",problems:["Writing API clients is repetitive","Manual clients have type mismatches","Keeping clients in sync with APIs","Language-specific client maintenance"],solutions:["Generate clients for multiple languages","Type-safe request/response handling","Automatic client updates from contracts","Consistent error handling across languages"],audience:{role:"Full-stack developers",industry:"Software development",maturity:"scaleup"},callToAction:"Generate your first API client",references:[{label:"Client Generation Guide",url:"/docs/guides/generate-docs-clients-schemas"},{label:"Supported Languages",url:"/docs/integrations"}]};import{contractFirstApiBrief as p}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as W}from"@contractspec/lib.content-gen/seo";import{CodeBlock as T}from"@contractspec/lib.design-system";import b from"@contractspec/lib.ui-link";import{ChevronRight as Z}from"lucide-react";import{jsx as u,jsxs as d}from"react/jsx-runtime";var ie=new W().optimize(p);function H(){return d("div",{className:"space-y-8",children:[d("div",{className:"space-y-3",children:[u("h1",{className:"font-bold text-4xl",children:p.title}),u("p",{className:"text-lg text-muted-foreground",children:p.summary})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Problems Solved"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.problems.map((a,n)=>u("li",{children:a},n))})]}),d("div",{className:"card-subtle space-y-4 p-6",children:[u("h2",{className:"font-bold text-2xl",children:"Solutions"}),u("ul",{className:"space-y-2 text-muted-foreground text-sm",children:p.solutions.map((a,n)=>u("li",{children:a},n))})]}),d("div",{className:"space-y-6",children:[d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Quick Start"}),u("p",{className:"text-muted-foreground text-sm",children:"Define your first API contract and generate consistent implementations."}),u(T,{language:"typescript",filename:"src/contracts/user-create.operation.ts",code:`import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
269
3
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
270
4
 
271
5
  export const CreateUserOperation = defineOperation({
@@ -299,129 +33,7 @@ export const CreateUserOperation = defineOperation({
299
33
  tags: ['users', 'auth'],
300
34
  description: 'Create a new user account with email and password',
301
35
  },
302
- });`
303
- })
304
- ]
305
- }),
306
- /* @__PURE__ */ jsxs("div", {
307
- className: "space-y-3",
308
- children: [
309
- /* @__PURE__ */ jsx("h2", {
310
- className: "font-bold text-2xl",
311
- children: "Generate OpenAPI"
312
- }),
313
- /* @__PURE__ */ jsx("p", {
314
- className: "text-muted-foreground text-sm",
315
- children: "Export OpenAPI documentation directly from your contracts."
316
- }),
317
- /* @__PURE__ */ jsx(CodeBlock, {
318
- language: "bash",
319
- filename: "export-openapi",
320
- code: `contractspec openapi export \\
321
- --registry ./src/contracts/registry.ts \\
322
- --out ./openapi.json`
323
- })
324
- ]
325
- })
326
- ]
327
- }),
328
- /* @__PURE__ */ jsxs("div", {
329
- className: "flex items-center gap-4 pt-4",
330
- children: [
331
- /* @__PURE__ */ jsxs(Link, {
332
- href: "/docs/guides/nextjs-one-endpoint",
333
- className: "btn-primary",
334
- children: [
335
- "Next.js Guide ",
336
- /* @__PURE__ */ jsx(ChevronRight, {
337
- size: 16
338
- })
339
- ]
340
- }),
341
- /* @__PURE__ */ jsx(Link, {
342
- href: "/docs/intent/spec-driven-development",
343
- className: "btn-ghost",
344
- children: "Spec-driven Development"
345
- })
346
- ]
347
- })
348
- ]
349
- });
350
- }
351
-
352
- // src/components/docs/intent/DeterministicCodegenPage.tsx
353
- import { deterministicCodegenBrief as deterministicCodegenBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
354
- import { SeoOptimizer as SeoOptimizer2 } from "@contractspec/lib.content-gen/seo";
355
- import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
356
- import Link2 from "@contractspec/lib.ui-link";
357
- import { ChevronRight as ChevronRight2 } from "lucide-react";
358
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
359
- var metadata2 = new SeoOptimizer2().optimize(deterministicCodegenBrief2);
360
- function DeterministicCodegenPage() {
361
- return /* @__PURE__ */ jsxs2("div", {
362
- className: "space-y-8",
363
- children: [
364
- /* @__PURE__ */ jsxs2("div", {
365
- className: "space-y-3",
366
- children: [
367
- /* @__PURE__ */ jsx2("h1", {
368
- className: "font-bold text-4xl",
369
- children: deterministicCodegenBrief2.title
370
- }),
371
- /* @__PURE__ */ jsx2("p", {
372
- className: "text-lg text-muted-foreground",
373
- children: deterministicCodegenBrief2.summary
374
- })
375
- ]
376
- }),
377
- /* @__PURE__ */ jsxs2("div", {
378
- className: "card-subtle space-y-4 p-6",
379
- children: [
380
- /* @__PURE__ */ jsx2("h2", {
381
- className: "font-bold text-2xl",
382
- children: "Regeneration Challenges"
383
- }),
384
- /* @__PURE__ */ jsx2("ul", {
385
- className: "space-y-2 text-muted-foreground text-sm",
386
- children: deterministicCodegenBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx2("li", {
387
- children: problem
388
- }, index))
389
- })
390
- ]
391
- }),
392
- /* @__PURE__ */ jsxs2("div", {
393
- className: "card-subtle space-y-4 p-6",
394
- children: [
395
- /* @__PURE__ */ jsx2("h2", {
396
- className: "font-bold text-2xl",
397
- children: "Deterministic Solutions"
398
- }),
399
- /* @__PURE__ */ jsx2("ul", {
400
- className: "space-y-2 text-muted-foreground text-sm",
401
- children: deterministicCodegenBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx2("li", {
402
- children: solution
403
- }, index))
404
- })
405
- ]
406
- }),
407
- /* @__PURE__ */ jsxs2("div", {
408
- className: "space-y-6",
409
- children: [
410
- /* @__PURE__ */ jsxs2("div", {
411
- className: "space-y-3",
412
- children: [
413
- /* @__PURE__ */ jsx2("h2", {
414
- className: "font-bold text-2xl",
415
- children: "Protected Zones"
416
- }),
417
- /* @__PURE__ */ jsx2("p", {
418
- className: "text-muted-foreground text-sm",
419
- children: "Separate generated code from hand-written business logic with clear boundaries."
420
- }),
421
- /* @__PURE__ */ jsx2(CodeBlock2, {
422
- language: "typescript",
423
- filename: "src/handlers/user-handlers.ts",
424
- code: `// Hand-written business logic (protected from regeneration)
36
+ });`})]}),d("div",{className:"space-y-3",children:[u("h2",{className:"font-bold text-2xl",children:"Generate OpenAPI"}),u("p",{className:"text-muted-foreground text-sm",children:"Export OpenAPI documentation directly from your contracts."}),u(T,{language:"bash",filename:"export-openapi",code:"contractspec openapi export \\\n --registry ./src/contracts/registry.ts \\\n --out ./openapi.json"})]})]}),d("div",{className:"flex items-center gap-4 pt-4",children:[d(b,{href:"/docs/guides/nextjs-one-endpoint",className:"btn-primary",children:["Next.js Guide ",u(Z,{size:16})]}),u(b,{href:"/docs/intent/spec-driven-development",className:"btn-ghost",children:"Spec-driven Development"})]})]})}import{deterministicCodegenBrief as A}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as J}from"@contractspec/lib.content-gen/seo";import{CodeBlock as G}from"@contractspec/lib.design-system";import S from"@contractspec/lib.ui-link";import{ChevronRight as Q}from"lucide-react";import{jsx as r,jsxs as f}from"react/jsx-runtime";var me=new J().optimize(A);function R(){return f("div",{className:"space-y-8",children:[f("div",{className:"space-y-3",children:[r("h1",{className:"font-bold text-4xl",children:A.title}),r("p",{className:"text-lg text-muted-foreground",children:A.summary})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Regeneration Challenges"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.problems.map((a,n)=>r("li",{children:a},n))})]}),f("div",{className:"card-subtle space-y-4 p-6",children:[r("h2",{className:"font-bold text-2xl",children:"Deterministic Solutions"}),r("ul",{className:"space-y-2 text-muted-foreground text-sm",children:A.solutions.map((a,n)=>r("li",{children:a},n))})]}),f("div",{className:"space-y-6",children:[f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Protected Zones"}),r("p",{className:"text-muted-foreground text-sm",children:"Separate generated code from hand-written business logic with clear boundaries."}),r(G,{language:"typescript",filename:"src/handlers/user-handlers.ts",code:`// Hand-written business logic (protected from regeneration)
425
37
  export class UserService {
426
38
  async createUser(input: CreateUserInput): Promise<CreateUserOutput> {
427
39
  // Custom validation and business rules
@@ -458,151 +70,7 @@ export const createUserHandler = wrapOperationHandler(
458
70
  operationName: 'createUser',
459
71
  errorMapper: mapToStandardErrors,
460
72
  }
461
- );`
462
- })
463
- ]
464
- }),
465
- /* @__PURE__ */ jsxs2("div", {
466
- className: "space-y-3",
467
- children: [
468
- /* @__PURE__ */ jsx2("h2", {
469
- className: "font-bold text-2xl",
470
- children: "Incremental Regeneration"
471
- }),
472
- /* @__PURE__ */ jsx2("p", {
473
- className: "text-muted-foreground text-sm",
474
- children: "Regenerate only what changed while preserving custom logic."
475
- }),
476
- /* @__PURE__ */ jsx2(CodeBlock2, {
477
- language: "bash",
478
- filename: "incremental-regen",
479
- code: `contractspec generate \\
480
- --incremental \\
481
- --preserve-zones ./src/handlers/*.ts \\
482
- --input ./src/contracts/ \\
483
- --output ./generated/`
484
- })
485
- ]
486
- }),
487
- /* @__PURE__ */ jsxs2("div", {
488
- className: "space-y-3",
489
- children: [
490
- /* @__PURE__ */ jsx2("h2", {
491
- className: "font-bold text-2xl",
492
- children: "Conflict Detection"
493
- }),
494
- /* @__PURE__ */ jsx2("p", {
495
- className: "text-muted-foreground text-sm",
496
- children: "Automatically detect and report conflicts during regeneration."
497
- }),
498
- /* @__PURE__ */ jsx2(CodeBlock2, {
499
- language: "bash",
500
- filename: "check-conflicts",
501
- code: `contractspec generate \\
502
- --check-conflicts \\
503
- --report-conflicts ./conflicts.json`
504
- })
505
- ]
506
- })
507
- ]
508
- }),
509
- /* @__PURE__ */ jsxs2("div", {
510
- className: "flex items-center gap-4 pt-4",
511
- children: [
512
- /* @__PURE__ */ jsxs2(Link2, {
513
- href: "/docs/guides/generate-docs-clients-schemas",
514
- className: "btn-primary",
515
- children: [
516
- "Client Generation ",
517
- /* @__PURE__ */ jsx2(ChevronRight2, {
518
- size: 16
519
- })
520
- ]
521
- }),
522
- /* @__PURE__ */ jsx2(Link2, {
523
- href: "/docs/intent/schema-validation-typescript",
524
- className: "btn-ghost",
525
- children: "Type Safety"
526
- })
527
- ]
528
- })
529
- ]
530
- });
531
- }
532
-
533
- // src/components/docs/intent/GenerateClientFromSchemaPage.tsx
534
- import { generateClientFromSchemaBrief as generateClientFromSchemaBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
535
- import { SeoOptimizer as SeoOptimizer3 } from "@contractspec/lib.content-gen/seo";
536
- import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
537
- import Link3 from "@contractspec/lib.ui-link";
538
- import { ChevronRight as ChevronRight3 } from "lucide-react";
539
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
540
- var metadata3 = new SeoOptimizer3().optimize(generateClientFromSchemaBrief2);
541
- function GenerateClientFromSchemaPage() {
542
- return /* @__PURE__ */ jsxs3("div", {
543
- className: "space-y-8",
544
- children: [
545
- /* @__PURE__ */ jsxs3("div", {
546
- className: "space-y-3",
547
- children: [
548
- /* @__PURE__ */ jsx3("h1", {
549
- className: "font-bold text-4xl",
550
- children: generateClientFromSchemaBrief2.title
551
- }),
552
- /* @__PURE__ */ jsx3("p", {
553
- className: "text-lg text-muted-foreground",
554
- children: generateClientFromSchemaBrief2.summary
555
- })
556
- ]
557
- }),
558
- /* @__PURE__ */ jsxs3("div", {
559
- className: "card-subtle space-y-4 p-6",
560
- children: [
561
- /* @__PURE__ */ jsx3("h2", {
562
- className: "font-bold text-2xl",
563
- children: "Client Development Problems"
564
- }),
565
- /* @__PURE__ */ jsx3("ul", {
566
- className: "space-y-2 text-muted-foreground text-sm",
567
- children: generateClientFromSchemaBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx3("li", {
568
- children: problem
569
- }, index))
570
- })
571
- ]
572
- }),
573
- /* @__PURE__ */ jsxs3("div", {
574
- className: "card-subtle space-y-4 p-6",
575
- children: [
576
- /* @__PURE__ */ jsx3("h2", {
577
- className: "font-bold text-2xl",
578
- children: "Automated Solutions"
579
- }),
580
- /* @__PURE__ */ jsx3("ul", {
581
- className: "space-y-2 text-muted-foreground text-sm",
582
- children: generateClientFromSchemaBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx3("li", {
583
- children: solution
584
- }, index))
585
- })
586
- ]
587
- }),
588
- /* @__PURE__ */ jsxs3("div", {
589
- className: "space-y-6",
590
- children: [
591
- /* @__PURE__ */ jsxs3("div", {
592
- className: "space-y-3",
593
- children: [
594
- /* @__PURE__ */ jsx3("h2", {
595
- className: "font-bold text-2xl",
596
- children: "Contract Definition"
597
- }),
598
- /* @__PURE__ */ jsx3("p", {
599
- className: "text-muted-foreground text-sm",
600
- children: "Define your API contract once, generate clients for any language."
601
- }),
602
- /* @__PURE__ */ jsx3(CodeBlock3, {
603
- language: "typescript",
604
- filename: "src/contracts/api.contract.ts",
605
- code: `import { defineContract } from '@contractspec/lib.contracts-spec';
73
+ );`})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Incremental Regeneration"}),r("p",{className:"text-muted-foreground text-sm",children:"Regenerate only what changed while preserving custom logic."}),r(G,{language:"bash",filename:"incremental-regen",code:"contractspec generate \\\n --incremental \\\n --preserve-zones ./src/handlers/*.ts \\\n --input ./src/contracts/ \\\n --output ./generated/"})]}),f("div",{className:"space-y-3",children:[r("h2",{className:"font-bold text-2xl",children:"Conflict Detection"}),r("p",{className:"text-muted-foreground text-sm",children:"Automatically detect and report conflicts during regeneration."}),r(G,{language:"bash",filename:"check-conflicts",code:"contractspec generate \\\n --check-conflicts \\\n --report-conflicts ./conflicts.json"})]})]}),f("div",{className:"flex items-center gap-4 pt-4",children:[f(S,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation ",r(Q,{size:16})]}),r(S,{href:"/docs/intent/schema-validation-typescript",className:"btn-ghost",children:"Type Safety"})]})]})}import{generateClientFromSchemaBrief as I}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as U}from"@contractspec/lib.content-gen/seo";import{CodeBlock as g}from"@contractspec/lib.design-system";import O from"@contractspec/lib.ui-link";import{ChevronRight as X}from"lucide-react";import{jsx as t,jsxs as i}from"react/jsx-runtime";var be=new U().optimize(I);function Y(){return i("div",{className:"space-y-8",children:[i("div",{className:"space-y-3",children:[t("h1",{className:"font-bold text-4xl",children:I.title}),t("p",{className:"text-lg text-muted-foreground",children:I.summary})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[t("h2",{className:"font-bold text-2xl",children:"Client Development Problems"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.problems.map((a,n)=>t("li",{children:a},n))})]}),i("div",{className:"card-subtle space-y-4 p-6",children:[t("h2",{className:"font-bold text-2xl",children:"Automated Solutions"}),t("ul",{className:"space-y-2 text-muted-foreground text-sm",children:I.solutions.map((a,n)=>t("li",{children:a},n))})]}),i("div",{className:"space-y-6",children:[i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Contract Definition"}),t("p",{className:"text-muted-foreground text-sm",children:"Define your API contract once, generate clients for any language."}),t(g,{language:"typescript",filename:"src/contracts/api.contract.ts",code:`import { defineContract } from '@contractspec/lib.contracts-spec';
606
74
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
607
75
 
608
76
  export const ApiContract = defineContract({
@@ -672,25 +140,7 @@ export const ApiContract = defineContract({
672
140
  description: 'User management API with authentication',
673
141
  tags: ['users', 'authentication'],
674
142
  },
675
- });`
676
- })
677
- ]
678
- }),
679
- /* @__PURE__ */ jsxs3("div", {
680
- className: "space-y-3",
681
- children: [
682
- /* @__PURE__ */ jsx3("h2", {
683
- className: "font-bold text-2xl",
684
- children: "Generate Multiple Clients"
685
- }),
686
- /* @__PURE__ */ jsx3("p", {
687
- className: "text-muted-foreground text-sm",
688
- children: "Generate type-safe clients for any language from the same contract."
689
- }),
690
- /* @__PURE__ */ jsx3(CodeBlock3, {
691
- language: "bash",
692
- filename: "generate-clients",
693
- code: `# Generate all supported language clients
143
+ });`})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Generate Multiple Clients"}),t("p",{className:"text-muted-foreground text-sm",children:"Generate type-safe clients for any language from the same contract."}),t(g,{language:"bash",filename:"generate-clients",code:`# Generate all supported language clients
694
144
  contractspec generate clients \\
695
145
  --contract ./src/contracts/api.contract.ts \\
696
146
  --output ./generated/clients \\
@@ -707,35 +157,7 @@ contractspec generate clients \\
707
157
  # --with-types: Include TypeScript definitions
708
158
  # --with-tests: Generate client test suites
709
159
  # --with-docs: Include client documentation
710
- # --framework: Use specific HTTP client framework`
711
- })
712
- ]
713
- }),
714
- /* @__PURE__ */ jsxs3("div", {
715
- className: "space-y-3",
716
- children: [
717
- /* @__PURE__ */ jsx3("h2", {
718
- className: "font-bold text-2xl",
719
- children: "Generated Client Examples"
720
- }),
721
- /* @__PURE__ */ jsx3("p", {
722
- className: "text-muted-foreground text-sm",
723
- children: "Each generated client is fully type-safe and idiomatic."
724
- }),
725
- /* @__PURE__ */ jsxs3("div", {
726
- className: "space-y-4",
727
- children: [
728
- /* @__PURE__ */ jsxs3("div", {
729
- className: "card-subtle p-4",
730
- children: [
731
- /* @__PURE__ */ jsx3("h4", {
732
- className: "font-semibold text-lg",
733
- children: "TypeScript Client"
734
- }),
735
- /* @__PURE__ */ jsx3(CodeBlock3, {
736
- language: "typescript",
737
- filename: "generated/clients/typescript/index.ts",
738
- code: `import { MyAPIClient } from './client';
160
+ # --framework: Use specific HTTP client framework`})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Generated Client Examples"}),t("p",{className:"text-muted-foreground text-sm",children:"Each generated client is fully type-safe and idiomatic."}),i("div",{className:"space-y-4",children:[i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"TypeScript Client"}),t(g,{language:"typescript",filename:"generated/clients/typescript/index.ts",code:`import { MyAPIClient } from './client';
739
161
 
740
162
  const client = new MyAPIClient({
741
163
  baseUrl: 'https://api.example.com',
@@ -755,21 +177,7 @@ const newUser = await client.createUser({
755
177
 
756
178
  // Full type inference
757
179
  // users: GetUsersResponse
758
- // newUser: CreateUserResponse`
759
- })
760
- ]
761
- }),
762
- /* @__PURE__ */ jsxs3("div", {
763
- className: "card-subtle p-4",
764
- children: [
765
- /* @__PURE__ */ jsx3("h4", {
766
- className: "font-semibold text-lg",
767
- children: "Python Client"
768
- }),
769
- /* @__PURE__ */ jsx3(CodeBlock3, {
770
- language: "python",
771
- filename: "generated/clients/python/index.py",
772
- code: `from myapi_client import MyAPIClient
180
+ // newUser: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"Python Client"}),t(g,{language:"python",filename:"generated/clients/python/index.py",code:`from myapi_client import MyAPIClient
773
181
 
774
182
  client = MyAPIClient(
775
183
  base_url='https://api.example.com',
@@ -789,21 +197,7 @@ new_user = await client.create_user(
789
197
 
790
198
  # Full type hints
791
199
  # users: GetUsersResponse
792
- # new_user: CreateUserResponse`
793
- })
794
- ]
795
- }),
796
- /* @__PURE__ */ jsxs3("div", {
797
- className: "card-subtle p-4",
798
- children: [
799
- /* @__PURE__ */ jsx3("h4", {
800
- className: "font-semibold text-lg",
801
- children: "Go Client"
802
- }),
803
- /* @__PURE__ */ jsx3(CodeBlock3, {
804
- language: "go",
805
- filename: "generated/clients/go/client.go",
806
- code: `package main
200
+ # new_user: CreateUserResponse`})]}),i("div",{className:"card-subtle p-4",children:[t("h4",{className:"font-semibold text-lg",children:"Go Client"}),t(g,{language:"go",filename:"generated/clients/go/client.go",code:`package main
807
201
 
808
202
  import (
809
203
  "context"
@@ -830,29 +224,7 @@ func main() {
830
224
  // Full type checking at compile time
831
225
  // users: *GetUsersResponse
832
226
  // newUser: *CreateUserResponse
833
- }`
834
- })
835
- ]
836
- })
837
- ]
838
- })
839
- ]
840
- }),
841
- /* @__PURE__ */ jsxs3("div", {
842
- className: "space-y-3",
843
- children: [
844
- /* @__PURE__ */ jsx3("h2", {
845
- className: "font-bold text-2xl",
846
- children: "Advanced Features"
847
- }),
848
- /* @__PURE__ */ jsx3("p", {
849
- className: "text-muted-foreground text-sm",
850
- children: "Generated clients include enterprise-grade features out of the box."
851
- }),
852
- /* @__PURE__ */ jsx3(CodeBlock3, {
853
- language: "typescript",
854
- filename: "client-features.ts",
855
- code: `// Advanced client features
227
+ }`})]})]})]}),i("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Advanced Features"}),t("p",{className:"text-muted-foreground text-sm",children:"Generated clients include enterprise-grade features out of the box."}),t(g,{language:"typescript",filename:"client-features.ts",code:`// Advanced client features
856
228
  const client = new MyAPIClient({
857
229
  baseUrl: 'https://api.example.com',
858
230
  apiKey: 'your-api-key',
@@ -895,185 +267,7 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
895
267
  // Request cancellation
896
268
  const controller = new AbortController();
897
269
  const promise = client.getUsers({ page: 1, signal: controller.signal });
898
- controller.abort(); // Cancels the request`
899
- })
900
- ]
901
- })
902
- ]
903
- }),
904
- /* @__PURE__ */ jsxs3("div", {
905
- className: "flex items-center gap-4 pt-4",
906
- children: [
907
- /* @__PURE__ */ jsxs3(Link3, {
908
- href: "/docs/guides/generate-docs-clients-schemas",
909
- className: "btn-primary",
910
- children: [
911
- "Client Generation Guide ",
912
- /* @__PURE__ */ jsx3(ChevronRight3, {
913
- size: 16
914
- })
915
- ]
916
- }),
917
- /* @__PURE__ */ jsx3(Link3, {
918
- href: "/docs/intent/contract-first-api",
919
- className: "btn-ghost",
920
- children: "Contract-first API"
921
- })
922
- ]
923
- })
924
- ]
925
- });
926
- }
927
-
928
- // src/components/docs/intent/OpenapiAlternativePage.tsx
929
- import { openapiAlternativeBrief as openapiAlternativeBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
930
- import { SeoOptimizer as SeoOptimizer4 } from "@contractspec/lib.content-gen/seo";
931
- import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
932
- import Link4 from "@contractspec/lib.ui-link";
933
- import { ChevronRight as ChevronRight4 } from "lucide-react";
934
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
935
- var metadata4 = new SeoOptimizer4().optimize(openapiAlternativeBrief2);
936
- function OpenapiAlternativePage() {
937
- return /* @__PURE__ */ jsxs4("div", {
938
- className: "space-y-8",
939
- children: [
940
- /* @__PURE__ */ jsxs4("div", {
941
- className: "space-y-3",
942
- children: [
943
- /* @__PURE__ */ jsx4("h1", {
944
- className: "font-bold text-4xl",
945
- children: openapiAlternativeBrief2.title
946
- }),
947
- /* @__PURE__ */ jsx4("p", {
948
- className: "text-lg text-muted-foreground",
949
- children: openapiAlternativeBrief2.summary
950
- })
951
- ]
952
- }),
953
- /* @__PURE__ */ jsxs4("div", {
954
- className: "card-subtle space-y-4 p-6",
955
- children: [
956
- /* @__PURE__ */ jsx4("h2", {
957
- className: "font-bold text-2xl",
958
- children: "OpenAPI Limitations"
959
- }),
960
- /* @__PURE__ */ jsx4("ul", {
961
- className: "space-y-2 text-muted-foreground text-sm",
962
- children: openapiAlternativeBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx4("li", {
963
- children: problem
964
- }, index))
965
- })
966
- ]
967
- }),
968
- /* @__PURE__ */ jsxs4("div", {
969
- className: "card-subtle space-y-4 p-6",
970
- children: [
971
- /* @__PURE__ */ jsx4("h2", {
972
- className: "font-bold text-2xl",
973
- children: "ContractSpec Advantages"
974
- }),
975
- /* @__PURE__ */ jsx4("ul", {
976
- className: "space-y-2 text-muted-foreground text-sm",
977
- children: openapiAlternativeBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx4("li", {
978
- children: solution
979
- }, index))
980
- })
981
- ]
982
- }),
983
- /* @__PURE__ */ jsxs4("div", {
984
- className: "space-y-6",
985
- children: [
986
- /* @__PURE__ */ jsxs4("div", {
987
- className: "space-y-3",
988
- children: [
989
- /* @__PURE__ */ jsx4("h2", {
990
- className: "font-bold text-2xl",
991
- children: "Comparison: OpenAPI vs ContractSpec"
992
- }),
993
- /* @__PURE__ */ jsx4("p", {
994
- className: "text-muted-foreground text-sm",
995
- children: "Key differences between OpenAPI documentation and ContractSpec executable contracts."
996
- }),
997
- /* @__PURE__ */ jsxs4("div", {
998
- className: "grid gap-6 md:grid-cols-2",
999
- children: [
1000
- /* @__PURE__ */ jsxs4("div", {
1001
- className: "card-subtle space-y-3 p-4",
1002
- children: [
1003
- /* @__PURE__ */ jsx4("h3", {
1004
- className: "font-semibold text-lg",
1005
- children: "OpenAPI"
1006
- }),
1007
- /* @__PURE__ */ jsxs4("ul", {
1008
- className: "space-y-1 text-muted-foreground text-sm",
1009
- children: [
1010
- /* @__PURE__ */ jsx4("li", {
1011
- children: "\u2022 Documentation specification only"
1012
- }),
1013
- /* @__PURE__ */ jsx4("li", {
1014
- children: "\u2022 No runtime validation"
1015
- }),
1016
- /* @__PURE__ */ jsx4("li", {
1017
- children: "\u2022 Manual code generation"
1018
- }),
1019
- /* @__PURE__ */ jsx4("li", {
1020
- children: "\u2022 Type safety requires tools"
1021
- }),
1022
- /* @__PURE__ */ jsx4("li", {
1023
- children: "\u2022 Separate schemas from documentation"
1024
- })
1025
- ]
1026
- })
1027
- ]
1028
- }),
1029
- /* @__PURE__ */ jsxs4("div", {
1030
- className: "card-subtle space-y-3 p-4",
1031
- children: [
1032
- /* @__PURE__ */ jsx4("h3", {
1033
- className: "font-semibold text-lg",
1034
- children: "ContractSpec"
1035
- }),
1036
- /* @__PURE__ */ jsxs4("ul", {
1037
- className: "space-y-1 text-muted-foreground text-sm",
1038
- children: [
1039
- /* @__PURE__ */ jsx4("li", {
1040
- children: "\u2022 Executable contracts"
1041
- }),
1042
- /* @__PURE__ */ jsx4("li", {
1043
- children: "\u2022 Built-in runtime validation"
1044
- }),
1045
- /* @__PURE__ */ jsx4("li", {
1046
- children: "\u2022 Automatic code generation"
1047
- }),
1048
- /* @__PURE__ */ jsx4("li", {
1049
- children: "\u2022 Type-safe by default"
1050
- }),
1051
- /* @__PURE__ */ jsx4("li", {
1052
- children: "\u2022 Unified spec and implementation"
1053
- })
1054
- ]
1055
- })
1056
- ]
1057
- })
1058
- ]
1059
- })
1060
- ]
1061
- }),
1062
- /* @__PURE__ */ jsxs4("div", {
1063
- className: "space-y-3",
1064
- children: [
1065
- /* @__PURE__ */ jsx4("h2", {
1066
- className: "font-bold text-2xl",
1067
- children: "Export from Contracts"
1068
- }),
1069
- /* @__PURE__ */ jsx4("p", {
1070
- className: "text-muted-foreground text-sm",
1071
- children: "Generate OpenAPI documentation from ContractSpec for existing tooling."
1072
- }),
1073
- /* @__PURE__ */ jsx4(CodeBlock4, {
1074
- language: "bash",
1075
- filename: "export-openapi",
1076
- code: `# From ContractSpec contracts
270
+ controller.abort(); // Cancels the request`})]})]}),i("div",{className:"flex items-center gap-4 pt-4",children:[i(O,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Client Generation Guide ",t(X,{size:16})]}),t(O,{href:"/docs/intent/contract-first-api",className:"btn-ghost",children:"Contract-first API"})]})]})}import{openapiAlternativeBrief as w}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as _}from"@contractspec/lib.content-gen/seo";import{CodeBlock as q}from"@contractspec/lib.design-system";import E from"@contractspec/lib.ui-link";import{ChevronRight as $}from"lucide-react";import{jsx as e,jsxs as c}from"react/jsx-runtime";var We=new _().optimize(w);function D(){return c("div",{className:"space-y-8",children:[c("div",{className:"space-y-3",children:[e("h1",{className:"font-bold text-4xl",children:w.title}),e("p",{className:"text-lg text-muted-foreground",children:w.summary})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"OpenAPI Limitations"}),e("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.problems.map((a,n)=>e("li",{children:a},n))})]}),c("div",{className:"card-subtle space-y-4 p-6",children:[e("h2",{className:"font-bold text-2xl",children:"ContractSpec Advantages"}),e("ul",{className:"space-y-2 text-muted-foreground text-sm",children:w.solutions.map((a,n)=>e("li",{children:a},n))})]}),c("div",{className:"space-y-6",children:[c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Comparison: OpenAPI vs ContractSpec"}),e("p",{className:"text-muted-foreground text-sm",children:"Key differences between OpenAPI documentation and ContractSpec executable contracts."}),c("div",{className:"grid gap-6 md:grid-cols-2",children:[c("div",{className:"card-subtle space-y-3 p-4",children:[e("h3",{className:"font-semibold text-lg",children:"OpenAPI"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"\u2022 Documentation specification only"}),e("li",{children:"\u2022 No runtime validation"}),e("li",{children:"\u2022 Manual code generation"}),e("li",{children:"\u2022 Type safety requires tools"}),e("li",{children:"\u2022 Separate schemas from documentation"})]})]}),c("div",{className:"card-subtle space-y-3 p-4",children:[e("h3",{className:"font-semibold text-lg",children:"ContractSpec"}),c("ul",{className:"space-y-1 text-muted-foreground text-sm",children:[e("li",{children:"\u2022 Executable contracts"}),e("li",{children:"\u2022 Built-in runtime validation"}),e("li",{children:"\u2022 Automatic code generation"}),e("li",{children:"\u2022 Type-safe by default"}),e("li",{children:"\u2022 Unified spec and implementation"})]})]})]})]}),c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Export from Contracts"}),e("p",{className:"text-muted-foreground text-sm",children:"Generate OpenAPI documentation from ContractSpec for existing tooling."}),e(q,{language:"bash",filename:"export-openapi",code:`# From ContractSpec contracts
1077
271
  contractspec openapi export \\
1078
272
  --registry ./src/contracts/registry.ts \\
1079
273
  --format yaml \\
@@ -1081,25 +275,7 @@ contractspec openapi export \\
1081
275
 
1082
276
  # Compare: Manual OpenAPI vs Generated
1083
277
  # Manual: Write OpenAPI by hand, maintain separately
1084
- # Generated: Single source of truth, always in sync`
1085
- })
1086
- ]
1087
- }),
1088
- /* @__PURE__ */ jsxs4("div", {
1089
- className: "space-y-3",
1090
- children: [
1091
- /* @__PURE__ */ jsx4("h2", {
1092
- className: "font-bold text-2xl",
1093
- children: "Beyond Documentation"
1094
- }),
1095
- /* @__PURE__ */ jsx4("p", {
1096
- className: "text-muted-foreground text-sm",
1097
- children: "ContractSpec provides more than just API documentation."
1098
- }),
1099
- /* @__PURE__ */ jsx4(CodeBlock4, {
1100
- language: "typescript",
1101
- filename: "multi-output-example.ts",
1102
- code: `// One contract, multiple outputs
278
+ # Generated: Single source of truth, always in sync`})]}),c("div",{className:"space-y-3",children:[e("h2",{className:"font-bold text-2xl",children:"Beyond Documentation"}),e("p",{className:"text-muted-foreground text-sm",children:"ContractSpec provides more than just API documentation."}),e(q,{language:"typescript",filename:"multi-output-example.ts",code:`// One contract, multiple outputs
1103
279
  import { UserApiContract } from './contracts/user-api.contract';
1104
280
 
1105
281
  // Generated outputs
@@ -1129,109 +305,7 @@ export const outputs = {
1129
305
 
1130
306
  // Type definitions
1131
307
  types: UserApiContract.toTypescript(),
1132
- };`
1133
- })
1134
- ]
1135
- })
1136
- ]
1137
- }),
1138
- /* @__PURE__ */ jsxs4("div", {
1139
- className: "flex items-center gap-4 pt-4",
1140
- children: [
1141
- /* @__PURE__ */ jsxs4(Link4, {
1142
- href: "/docs/guides/generate-docs-clients-schemas",
1143
- className: "btn-primary",
1144
- children: [
1145
- "Generate from Contracts ",
1146
- /* @__PURE__ */ jsx4(ChevronRight4, {
1147
- size: 16
1148
- })
1149
- ]
1150
- }),
1151
- /* @__PURE__ */ jsx4(Link4, {
1152
- href: "/docs/intent/generate-client-from-schema",
1153
- className: "btn-ghost",
1154
- children: "Client Generation"
1155
- })
1156
- ]
1157
- })
1158
- ]
1159
- });
1160
- }
1161
-
1162
- // src/components/docs/intent/SchemaValidationTypescriptPage.tsx
1163
- import { schemaValidationTypescriptBrief as schemaValidationTypescriptBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
1164
- import { SeoOptimizer as SeoOptimizer5 } from "@contractspec/lib.content-gen/seo";
1165
- import { CodeBlock as CodeBlock5 } from "@contractspec/lib.design-system";
1166
- import Link5 from "@contractspec/lib.ui-link";
1167
- import { ChevronRight as ChevronRight5 } from "lucide-react";
1168
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
1169
- var metadata5 = new SeoOptimizer5().optimize(schemaValidationTypescriptBrief2);
1170
- function SchemaValidationTypescriptPage() {
1171
- return /* @__PURE__ */ jsxs5("div", {
1172
- className: "space-y-8",
1173
- children: [
1174
- /* @__PURE__ */ jsxs5("div", {
1175
- className: "space-y-3",
1176
- children: [
1177
- /* @__PURE__ */ jsx5("h1", {
1178
- className: "font-bold text-4xl",
1179
- children: schemaValidationTypescriptBrief2.title
1180
- }),
1181
- /* @__PURE__ */ jsx5("p", {
1182
- className: "text-lg text-muted-foreground",
1183
- children: schemaValidationTypescriptBrief2.summary
1184
- })
1185
- ]
1186
- }),
1187
- /* @__PURE__ */ jsxs5("div", {
1188
- className: "card-subtle space-y-4 p-6",
1189
- children: [
1190
- /* @__PURE__ */ jsx5("h2", {
1191
- className: "font-bold text-2xl",
1192
- children: "Validation Pain Points"
1193
- }),
1194
- /* @__PURE__ */ jsx5("ul", {
1195
- className: "space-y-2 text-muted-foreground text-sm",
1196
- children: schemaValidationTypescriptBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx5("li", {
1197
- children: problem
1198
- }, index))
1199
- })
1200
- ]
1201
- }),
1202
- /* @__PURE__ */ jsxs5("div", {
1203
- className: "card-subtle space-y-4 p-6",
1204
- children: [
1205
- /* @__PURE__ */ jsx5("h2", {
1206
- className: "font-bold text-2xl",
1207
- children: "Type-safe Solutions"
1208
- }),
1209
- /* @__PURE__ */ jsx5("ul", {
1210
- className: "space-y-2 text-muted-foreground text-sm",
1211
- children: schemaValidationTypescriptBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx5("li", {
1212
- children: solution
1213
- }, index))
1214
- })
1215
- ]
1216
- }),
1217
- /* @__PURE__ */ jsxs5("div", {
1218
- className: "space-y-6",
1219
- children: [
1220
- /* @__PURE__ */ jsxs5("div", {
1221
- className: "space-y-3",
1222
- children: [
1223
- /* @__PURE__ */ jsx5("h2", {
1224
- className: "font-bold text-2xl",
1225
- children: "Contract Schema"
1226
- }),
1227
- /* @__PURE__ */ jsx5("p", {
1228
- className: "text-muted-foreground text-sm",
1229
- children: "Define data models with automatic TypeScript generation."
1230
- }),
1231
- /* @__PURE__ */ jsx5(CodeBlock5, {
1232
- language: "typescript",
1233
- filename: "src/contracts/user.schema.ts",
1234
- code: `import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
308
+ };`})]})]}),c("div",{className:"flex items-center gap-4 pt-4",children:[c(E,{href:"/docs/guides/generate-docs-clients-schemas",className:"btn-primary",children:["Generate from Contracts ",e($,{size:16})]}),e(E,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{schemaValidationTypescriptBrief as P}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as z}from"@contractspec/lib.content-gen/seo";import{CodeBlock as v}from"@contractspec/lib.design-system";import K from"@contractspec/lib.ui-link";import{ChevronRight as V}from"lucide-react";import{jsx as o,jsxs as y}from"react/jsx-runtime";var Ye=new z().optimize(P);function F(){return y("div",{className:"space-y-8",children:[y("div",{className:"space-y-3",children:[o("h1",{className:"font-bold text-4xl",children:P.title}),o("p",{className:"text-lg text-muted-foreground",children:P.summary})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Validation Pain Points"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.problems.map((a,n)=>o("li",{children:a},n))})]}),y("div",{className:"card-subtle space-y-4 p-6",children:[o("h2",{className:"font-bold text-2xl",children:"Type-safe Solutions"}),o("ul",{className:"space-y-2 text-muted-foreground text-sm",children:P.solutions.map((a,n)=>o("li",{children:a},n))})]}),y("div",{className:"space-y-6",children:[y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Contract Schema"}),o("p",{className:"text-muted-foreground text-sm",children:"Define data models with automatic TypeScript generation."}),o(v,{language:"typescript",filename:"src/contracts/user.schema.ts",code:`import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
1235
309
 
1236
310
  export const UserSchema = new SchemaModel({
1237
311
  type: 'object',
@@ -1273,25 +347,7 @@ export const UserSchema = new SchemaModel({
1273
347
  name: 'User',
1274
348
  description: 'User account information',
1275
349
  },
1276
- });`
1277
- })
1278
- ]
1279
- }),
1280
- /* @__PURE__ */ jsxs5("div", {
1281
- className: "space-y-3",
1282
- children: [
1283
- /* @__PURE__ */ jsx5("h2", {
1284
- className: "font-bold text-2xl",
1285
- children: "Generated Types"
1286
- }),
1287
- /* @__PURE__ */ jsx5("p", {
1288
- className: "text-muted-foreground text-sm",
1289
- children: "TypeScript types are automatically generated with proper validation."
1290
- }),
1291
- /* @__PURE__ */ jsx5(CodeBlock5, {
1292
- language: "typescript",
1293
- filename: "generated/types/user.ts",
1294
- code: `// Auto-generated from UserSchema
350
+ });`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Generated Types"}),o("p",{className:"text-muted-foreground text-sm",children:"TypeScript types are automatically generated with proper validation."}),o(v,{language:"typescript",filename:"generated/types/user.ts",code:`// Auto-generated from UserSchema
1295
351
  export interface User {
1296
352
  id: string;
1297
353
  email: string;
@@ -1316,25 +372,7 @@ export function validateUser(data: unknown): User {
1316
372
 
1317
373
  export function isUser(data: unknown): data is User {
1318
374
  return UserSchemaZod.safeParse(data).success;
1319
- }`
1320
- })
1321
- ]
1322
- }),
1323
- /* @__PURE__ */ jsxs5("div", {
1324
- className: "space-y-3",
1325
- children: [
1326
- /* @__PURE__ */ jsx5("h2", {
1327
- className: "font-bold text-2xl",
1328
- children: "Runtime Validation"
1329
- }),
1330
- /* @__PURE__ */ jsx5("p", {
1331
- className: "text-muted-foreground text-sm",
1332
- children: "Use generated validation in your API handlers with zero boilerplate."
1333
- }),
1334
- /* @__PURE__ */ jsx5(CodeBlock5, {
1335
- language: "typescript",
1336
- filename: "src/handlers/user-handler.ts",
1337
- code: `import { validateUser } from '../generated/types/user';
375
+ }`})]}),y("div",{className:"space-y-3",children:[o("h2",{className:"font-bold text-2xl",children:"Runtime Validation"}),o("p",{className:"text-muted-foreground text-sm",children:"Use generated validation in your API handlers with zero boilerplate."}),o(v,{language:"typescript",filename:"src/handlers/user-handler.ts",code:`import { validateUser } from '../generated/types/user';
1338
376
 
1339
377
  export async function createUserHandler(request: Request) {
1340
378
  try {
@@ -1362,109 +400,7 @@ export async function createUserHandler(request: Request) {
1362
400
 
1363
401
  throw error;
1364
402
  }
1365
- }`
1366
- })
1367
- ]
1368
- })
1369
- ]
1370
- }),
1371
- /* @__PURE__ */ jsxs5("div", {
1372
- className: "flex items-center gap-4 pt-4",
1373
- children: [
1374
- /* @__PURE__ */ jsxs5(Link5, {
1375
- href: "/docs/guides/spec-validation-and-typing",
1376
- className: "btn-primary",
1377
- children: [
1378
- "Type Safety Guide ",
1379
- /* @__PURE__ */ jsx5(ChevronRight5, {
1380
- size: 16
1381
- })
1382
- ]
1383
- }),
1384
- /* @__PURE__ */ jsx5(Link5, {
1385
- href: "/docs/intent/generate-client-from-schema",
1386
- className: "btn-ghost",
1387
- children: "Client Generation"
1388
- })
1389
- ]
1390
- })
1391
- ]
1392
- });
1393
- }
1394
-
1395
- // src/components/docs/intent/SpecDrivenDevelopmentPage.tsx
1396
- import { specDrivenDevelopmentBrief as specDrivenDevelopmentBrief2 } from "@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";
1397
- import { SeoOptimizer as SeoOptimizer6 } from "@contractspec/lib.content-gen/seo";
1398
- import { CodeBlock as CodeBlock6 } from "@contractspec/lib.design-system";
1399
- import Link6 from "@contractspec/lib.ui-link";
1400
- import { ChevronRight as ChevronRight6 } from "lucide-react";
1401
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
1402
- var metadata6 = new SeoOptimizer6().optimize(specDrivenDevelopmentBrief2);
1403
- function SpecDrivenDevelopmentPage() {
1404
- return /* @__PURE__ */ jsxs6("div", {
1405
- className: "space-y-8",
1406
- children: [
1407
- /* @__PURE__ */ jsxs6("div", {
1408
- className: "space-y-3",
1409
- children: [
1410
- /* @__PURE__ */ jsx6("h1", {
1411
- className: "font-bold text-4xl",
1412
- children: specDrivenDevelopmentBrief2.title
1413
- }),
1414
- /* @__PURE__ */ jsx6("p", {
1415
- className: "text-lg text-muted-foreground",
1416
- children: specDrivenDevelopmentBrief2.summary
1417
- })
1418
- ]
1419
- }),
1420
- /* @__PURE__ */ jsxs6("div", {
1421
- className: "card-subtle space-y-4 p-6",
1422
- children: [
1423
- /* @__PURE__ */ jsx6("h2", {
1424
- className: "font-bold text-2xl",
1425
- children: "Why Spec-driven?"
1426
- }),
1427
- /* @__PURE__ */ jsx6("ul", {
1428
- className: "space-y-2 text-muted-foreground text-sm",
1429
- children: specDrivenDevelopmentBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx6("li", {
1430
- children: problem
1431
- }, index))
1432
- })
1433
- ]
1434
- }),
1435
- /* @__PURE__ */ jsxs6("div", {
1436
- className: "card-subtle space-y-4 p-6",
1437
- children: [
1438
- /* @__PURE__ */ jsx6("h2", {
1439
- className: "font-bold text-2xl",
1440
- children: "Benefits"
1441
- }),
1442
- /* @__PURE__ */ jsx6("ul", {
1443
- className: "space-y-2 text-muted-foreground text-sm",
1444
- children: specDrivenDevelopmentBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx6("li", {
1445
- children: solution
1446
- }, index))
1447
- })
1448
- ]
1449
- }),
1450
- /* @__PURE__ */ jsxs6("div", {
1451
- className: "space-y-6",
1452
- children: [
1453
- /* @__PURE__ */ jsxs6("div", {
1454
- className: "space-y-3",
1455
- children: [
1456
- /* @__PURE__ */ jsx6("h2", {
1457
- className: "font-bold text-2xl",
1458
- children: "Feature Specification Example"
1459
- }),
1460
- /* @__PURE__ */ jsx6("p", {
1461
- className: "text-muted-foreground text-sm",
1462
- children: "Define a complete feature with operations, events, and data models."
1463
- }),
1464
- /* @__PURE__ */ jsx6(CodeBlock6, {
1465
- language: "typescript",
1466
- filename: "src/contracts/user-management.feature.ts",
1467
- code: `import { defineFeature } from '@contractspec/lib.contracts-spec/features';
403
+ }`})]})]}),y("div",{className:"flex items-center gap-4 pt-4",children:[y(K,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",o(V,{size:16})]}),o(K,{href:"/docs/intent/generate-client-from-schema",className:"btn-ghost",children:"Client Generation"})]})]})}import{specDrivenDevelopmentBrief as h}from"@contractspec/bundle.library/components/docs/intent/intent-pages.docblocks";import{SeoOptimizer as L}from"@contractspec/lib.content-gen/seo";import{CodeBlock as M}from"@contractspec/lib.design-system";import N from"@contractspec/lib.ui-link";import{ChevronRight as C}from"lucide-react";import{jsx as l,jsxs as m}from"react/jsx-runtime";var Ce=new L().optimize(h);function k(){return m("div",{className:"space-y-8",children:[m("div",{className:"space-y-3",children:[l("h1",{className:"font-bold text-4xl",children:h.title}),l("p",{className:"text-lg text-muted-foreground",children:h.summary})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Why Spec-driven?"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.problems.map((a,n)=>l("li",{children:a},n))})]}),m("div",{className:"card-subtle space-y-4 p-6",children:[l("h2",{className:"font-bold text-2xl",children:"Benefits"}),l("ul",{className:"space-y-2 text-muted-foreground text-sm",children:h.solutions.map((a,n)=>l("li",{children:a},n))})]}),m("div",{className:"space-y-6",children:[m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Feature Specification Example"}),l("p",{className:"text-muted-foreground text-sm",children:"Define a complete feature with operations, events, and data models."}),l(M,{language:"typescript",filename:"src/contracts/user-management.feature.ts",code:`import { defineFeature } from '@contractspec/lib.contracts-spec/features';
1468
404
  import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
1469
405
  import { defineEvent } from '@contractspec/lib.contracts-spec/events';
1470
406
  import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
@@ -1536,60 +472,4 @@ export const UserManagementFeature = defineFeature({
1536
472
  version: '1.0.0',
1537
473
  description: 'Complete user management with operations and events',
1538
474
  },
1539
- });`
1540
- })
1541
- ]
1542
- }),
1543
- /* @__PURE__ */ jsxs6("div", {
1544
- className: "space-y-3",
1545
- children: [
1546
- /* @__PURE__ */ jsx6("h2", {
1547
- className: "font-bold text-2xl",
1548
- children: "Generate Type-safe Implementations"
1549
- }),
1550
- /* @__PURE__ */ jsx6("p", {
1551
- className: "text-muted-foreground text-sm",
1552
- children: "Generate validation, types, and API handlers from your feature."
1553
- }),
1554
- /* @__PURE__ */ jsx6(CodeBlock6, {
1555
- language: "bash",
1556
- filename: "generate-from-feature",
1557
- code: `contractspec generate \\
1558
- --input ./src/contracts/user-management.feature.ts \\
1559
- --output ./generated/user-management`
1560
- })
1561
- ]
1562
- })
1563
- ]
1564
- }),
1565
- /* @__PURE__ */ jsxs6("div", {
1566
- className: "flex items-center gap-4 pt-4",
1567
- children: [
1568
- /* @__PURE__ */ jsxs6(Link6, {
1569
- href: "/docs/guides/spec-validation-and-typing",
1570
- className: "btn-primary",
1571
- children: [
1572
- "Type Safety Guide ",
1573
- /* @__PURE__ */ jsx6(ChevronRight6, {
1574
- size: 16
1575
- })
1576
- ]
1577
- }),
1578
- /* @__PURE__ */ jsx6(Link6, {
1579
- href: "/docs/intent/deterministic-codegen",
1580
- className: "btn-ghost",
1581
- children: "Deterministic Codegen"
1582
- })
1583
- ]
1584
- })
1585
- ]
1586
- });
1587
- }
1588
- export {
1589
- SpecDrivenDevelopmentPage,
1590
- SchemaValidationTypescriptPage,
1591
- OpenapiAlternativePage,
1592
- GenerateClientFromSchemaPage,
1593
- DeterministicCodegenPage,
1594
- ContractFirstApiPage
1595
- };
475
+ });`})]}),m("div",{className:"space-y-3",children:[l("h2",{className:"font-bold text-2xl",children:"Generate Type-safe Implementations"}),l("p",{className:"text-muted-foreground text-sm",children:"Generate validation, types, and API handlers from your feature."}),l(M,{language:"bash",filename:"generate-from-feature",code:"contractspec generate \\\n --input ./src/contracts/user-management.feature.ts \\\n --output ./generated/user-management"})]})]}),m("div",{className:"flex items-center gap-4 pt-4",children:[m(N,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Type Safety Guide ",l(C,{size:16})]}),l(N,{href:"/docs/intent/deterministic-codegen",className:"btn-ghost",children:"Deterministic Codegen"})]})]})}export{k as SpecDrivenDevelopmentPage,F as SchemaValidationTypescriptPage,D as OpenapiAlternativePage,Y as GenerateClientFromSchemaPage,R as DeterministicCodegenPage,H as ContractFirstApiPage};