@contractspec/bundle.library 3.8.10 → 3.8.11
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.
- package/.turbo/turbo-build.log +606 -594
- package/CHANGELOG.md +37 -0
- package/dist/application/context-storage/index.js +1 -28
- package/dist/application/index.js +13 -2133
- package/dist/application/mcp/cliMcp.js +4 -452
- package/dist/application/mcp/common.js +1 -193
- package/dist/application/mcp/contractsMcp.js +2 -549
- package/dist/application/mcp/contractsMcpResources.js +2 -123
- package/dist/application/mcp/contractsMcpTools.js +1 -199
- package/dist/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/application/mcp/docsMcp.data.js +1 -147
- package/dist/application/mcp/docsMcp.js +6 -1039
- package/dist/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/application/mcp/docsMcp.reference.js +3 -235
- package/dist/application/mcp/docsMcp.resources.js +3 -519
- package/dist/application/mcp/docsMcp.tools.js +3 -518
- package/dist/application/mcp/index.js +13 -2106
- package/dist/application/mcp/internalMcp.js +2 -410
- package/dist/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/application/mcp/providerRankingMcp.js +1 -530
- package/dist/bundles/LibraryBundle.js +1 -138
- package/dist/bundles/index.js +1 -138
- package/dist/components/docs/DocsIndexPage.js +2 -912
- package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/components/docs/advanced/index.js +10 -1055
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/components/docs/architecture/index.js +20 -1340
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/components/docs/comparison/index.js +1 -1510
- package/dist/components/docs/docsManifest.js +1 -611
- package/dist/components/docs/docsManifest.test.d.ts +1 -0
- package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/components/docs/ecosystem/index.js +23 -569
- package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/components/docs/examples/index.js +4 -330
- package/dist/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/components/docs/generated/index.js +1 -74
- package/dist/components/docs/generated/loader.js +1 -74
- package/dist/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/components/docs/getting-started/index.js +18 -1869
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/components/docs/guides/index.d.ts +3 -0
- package/dist/components/docs/guides/index.js +213 -2428
- package/dist/components/docs/index.js +542 -24310
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/components/docs/integrations/index.js +52 -3100
- package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/components/docs/intent/index.js +15 -1135
- package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/components/docs/knowledge/index.js +21 -1730
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/components/docs/libraries/index.js +54 -4147
- package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/components/docs/ops/index.js +3 -202
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/components/docs/ops/ops.docs.js +10 -302
- package/dist/components/docs/product/product.docblocks.js +5 -72
- package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/components/docs/reference/index.js +4 -470
- package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/components/docs/safety/index.js +7 -1480
- package/dist/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
- package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
- package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/components/docs/specs/index.d.ts +3 -0
- package/dist/components/docs/specs/index.js +109 -1715
- package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/components/docs/studio/index.js +1 -282
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/components/integrations/index.js +2 -600
- package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/components/legal/TermsTemplate.js +1 -941
- package/dist/components/legal/index.js +1 -1963
- package/dist/components/shared/FeatureGateNotice.js +1 -38
- package/dist/components/shared/index.js +1 -38
- package/dist/components/shell/WorkspaceHeader.js +1 -100
- package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/components/shell/index.js +1 -287
- package/dist/components/templates/engine/index.js +1 -39
- package/dist/components/templates/index.js +11 -965
- package/dist/components/templates/messaging/ConversationList.js +2 -83
- package/dist/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/components/templates/messaging/MessageThread.js +3 -83
- package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/components/templates/messaging/index.js +5 -269
- package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/components/templates/recipes/RecipeList.js +3 -245
- package/dist/components/templates/recipes/index.js +3 -248
- package/dist/components/templates/todos/FilterBar.js +1 -107
- package/dist/components/templates/todos/TaskForm.js +2 -158
- package/dist/components/templates/todos/TaskItem.js +1 -77
- package/dist/components/templates/todos/TaskList.js +5 -449
- package/dist/components/templates/todos/index.js +5 -452
- package/dist/config/contractspec-blueprint.js +1 -123
- package/dist/config/contractspec-branding.js +1 -44
- package/dist/config/contractspec-routes.js +1 -24
- package/dist/config/index.js +1 -126
- package/dist/features/contracts-registry.js +1 -178
- package/dist/features/docs/docs.contracts.js +1 -17
- package/dist/features/docs/index.js +1 -17
- package/dist/features/docs.feature.js +1 -33
- package/dist/features/index.js +1 -315
- package/dist/features/mcp.feature.js +1 -30
- package/dist/features/presentations.feature.js +1 -33
- package/dist/features/registry.js +1 -116
- package/dist/index.js +556 -28593
- package/dist/infrastructure/elysia/index.js +1 -35
- package/dist/infrastructure/elysia/logger.js +1 -35
- package/dist/infrastructure/index.js +1 -35
- package/dist/libs/email/client.js +1 -114
- package/dist/libs/email/contact.js +12 -165
- package/dist/libs/email/newsletter.js +6 -167
- package/dist/libs/email/types.js +0 -2
- package/dist/libs/email/utils.js +2 -8
- package/dist/libs/email/waitlist-application.js +28 -209
- package/dist/libs/email/waitlist.js +6 -167
- package/dist/libs/email.js +46 -363
- package/dist/libs/posthog/client.js +1 -63
- package/dist/libs/posthog/native.js +1 -23
- package/dist/libs/posthog/server.js +1 -13
- package/dist/libs/pricing-examples.js +1 -18
- package/dist/node/application/context-storage/index.js +1 -28
- package/dist/node/application/index.js +13 -2133
- package/dist/node/application/mcp/cliMcp.js +4 -452
- package/dist/node/application/mcp/common.js +1 -193
- package/dist/node/application/mcp/contractsMcp.js +2 -549
- package/dist/node/application/mcp/contractsMcpResources.js +2 -123
- package/dist/node/application/mcp/contractsMcpTools.js +1 -199
- package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/node/application/mcp/docsMcp.data.js +1 -147
- package/dist/node/application/mcp/docsMcp.js +6 -1039
- package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/node/application/mcp/docsMcp.reference.js +3 -235
- package/dist/node/application/mcp/docsMcp.resources.js +3 -519
- package/dist/node/application/mcp/docsMcp.tools.js +3 -518
- package/dist/node/application/mcp/index.js +13 -2106
- package/dist/node/application/mcp/internalMcp.js +2 -410
- package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/node/application/mcp/providerRankingMcp.js +1 -530
- package/dist/node/bundles/LibraryBundle.js +1 -138
- package/dist/node/bundles/index.js +1 -138
- package/dist/node/components/docs/DocsIndexPage.js +2 -912
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/node/components/docs/advanced/index.js +10 -1055
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/node/components/docs/architecture/index.js +20 -1340
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/node/components/docs/comparison/index.js +1 -1510
- package/dist/node/components/docs/docsManifest.js +1 -611
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/node/components/docs/ecosystem/index.js +23 -569
- package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/node/components/docs/examples/index.js +4 -330
- package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/node/components/docs/generated/index.js +1 -74
- package/dist/node/components/docs/generated/loader.js +1 -74
- package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/node/components/docs/getting-started/index.js +18 -1869
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/node/components/docs/guides/index.js +213 -2428
- package/dist/node/components/docs/index.js +542 -24310
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/node/components/docs/integrations/index.js +52 -3100
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/node/components/docs/intent/index.js +15 -1135
- package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/node/components/docs/knowledge/index.js +21 -1730
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/node/components/docs/libraries/index.js +54 -4147
- package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/node/components/docs/ops/index.js +3 -202
- package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/node/components/docs/ops/ops.docs.js +10 -302
- package/dist/node/components/docs/product/product.docblocks.js +5 -72
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/node/components/docs/reference/index.js +4 -470
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/node/components/docs/safety/index.js +7 -1480
- package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/node/components/docs/specs/index.js +109 -1715
- package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/node/components/docs/studio/index.js +1 -282
- package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/node/components/integrations/index.js +2 -600
- package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/node/components/legal/TermsTemplate.js +1 -941
- package/dist/node/components/legal/index.js +1 -1963
- package/dist/node/components/shared/FeatureGateNotice.js +1 -38
- package/dist/node/components/shared/index.js +1 -38
- package/dist/node/components/shell/WorkspaceHeader.js +1 -100
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/node/components/shell/index.js +1 -287
- package/dist/node/components/templates/engine/index.js +1 -39
- package/dist/node/components/templates/index.js +11 -965
- package/dist/node/components/templates/messaging/ConversationList.js +2 -83
- package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/node/components/templates/messaging/MessageThread.js +3 -83
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/node/components/templates/messaging/index.js +5 -269
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/node/components/templates/recipes/RecipeList.js +3 -245
- package/dist/node/components/templates/recipes/index.js +3 -248
- package/dist/node/components/templates/todos/FilterBar.js +1 -107
- package/dist/node/components/templates/todos/TaskForm.js +2 -158
- package/dist/node/components/templates/todos/TaskItem.js +1 -77
- package/dist/node/components/templates/todos/TaskList.js +5 -449
- package/dist/node/components/templates/todos/index.js +5 -452
- package/dist/node/config/contractspec-blueprint.js +1 -123
- package/dist/node/config/contractspec-branding.js +1 -44
- package/dist/node/config/contractspec-routes.js +1 -24
- package/dist/node/config/index.js +1 -126
- package/dist/node/features/contracts-registry.js +1 -178
- package/dist/node/features/docs/docs.contracts.js +1 -17
- package/dist/node/features/docs/index.js +1 -17
- package/dist/node/features/docs.feature.js +1 -33
- package/dist/node/features/index.js +1 -315
- package/dist/node/features/mcp.feature.js +1 -30
- package/dist/node/features/presentations.feature.js +1 -33
- package/dist/node/features/registry.js +1 -116
- package/dist/node/index.js +556 -28593
- package/dist/node/infrastructure/elysia/index.js +1 -35
- package/dist/node/infrastructure/elysia/logger.js +1 -35
- package/dist/node/infrastructure/index.js +1 -35
- package/dist/node/libs/email/client.js +1 -114
- package/dist/node/libs/email/contact.js +12 -165
- package/dist/node/libs/email/newsletter.js +6 -167
- package/dist/node/libs/email/types.js +0 -2
- package/dist/node/libs/email/utils.js +2 -8
- package/dist/node/libs/email/waitlist-application.js +28 -209
- package/dist/node/libs/email/waitlist.js +6 -167
- package/dist/node/libs/email.js +46 -363
- package/dist/node/libs/posthog/client.js +1 -63
- package/dist/node/libs/posthog/native.js +1 -23
- package/dist/node/libs/posthog/server.js +1 -13
- package/dist/node/libs/pricing-examples.js +1 -18
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/node/presentation/features/atoms/index.js +1 -97
- package/dist/node/presentation/features/hooks/index.js +1 -397
- package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/node/presentation/features/index.js +1 -3063
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/node/presentation/features/molecules/index.js +1 -505
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/node/presentation/features/organisms/index.js +1 -1359
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/presentation/features/atoms/index.js +1 -97
- package/dist/presentation/features/hooks/index.js +1 -397
- package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/presentation/features/index.js +1 -3063
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/presentation/features/molecules/index.js +1 -505
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/presentation/features/organisms/index.js +1 -1359
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/package.json +103 -31
- package/src/components/docs/DocsIndexPage.tsx +55 -0
- package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
- package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
- package/src/components/docs/docsManifest.test.ts +70 -0
- package/src/components/docs/docsManifest.ts +71 -1
- package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
- package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
- package/src/components/docs/generated/docs-index._common.json +206 -273
- package/src/components/docs/generated/docs-index.control-plane.json +18 -0
- package/src/components/docs/generated/docs-index.defineExample.json +10 -0
- package/src/components/docs/generated/docs-index.manifest.json +22 -12
- package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
- package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
- package/src/components/docs/generated/docs-index.platform-context.json +48 -0
- package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
- package/src/components/docs/generated/docs-index.platform-database.json +40 -0
- package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
- package/src/components/docs/generated/docs-index.unknown.json +8 -0
- package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
- package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
- package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
- package/src/components/docs/guides/index.ts +3 -0
- package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
- package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
- package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
- package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
- package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
- package/src/components/docs/specs/index.ts +3 -0
- package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
- package/src/infrastructure/elysia/logger.ts +11 -3
|
@@ -1,257 +1,12 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
|
|
3
|
-
import Link from "@contractspec/lib.ui-link";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
function StudioPrompt({
|
|
6
|
-
title = "Need the operating layer on top of OSS ContractSpec?",
|
|
7
|
-
body = "ContractSpec Studio helps teams turn evidence into proposed spec changes, governed delivery loops, and execution-ready task packs while keeping the open contract system as the source of truth.",
|
|
8
|
-
ctaLabel = "See what Studio adds",
|
|
9
|
-
href = "https://www.contractspec.studio/docs"
|
|
10
|
-
}) {
|
|
11
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
12
|
-
className: "card-subtle space-y-3 p-6",
|
|
13
|
-
children: [
|
|
14
|
-
/* @__PURE__ */ jsx("h3", {
|
|
15
|
-
className: "font-semibold text-lg",
|
|
16
|
-
children: title
|
|
17
|
-
}),
|
|
18
|
-
/* @__PURE__ */ jsx("p", {
|
|
19
|
-
className: "text-muted-foreground text-sm",
|
|
20
|
-
children: body
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ jsx(Link, {
|
|
23
|
-
href,
|
|
24
|
-
className: "btn-primary",
|
|
25
|
-
children: ctaLabel
|
|
26
|
-
})
|
|
27
|
-
]
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// src/components/docs/guides/GuideImportExistingCodebasesPage.tsx
|
|
32
|
-
import { CodeBlock } from "@contractspec/lib.design-system";
|
|
33
|
-
import Link2 from "@contractspec/lib.ui-link";
|
|
34
|
-
import {
|
|
35
|
-
AlertCircle,
|
|
36
|
-
ChevronRight,
|
|
37
|
-
FileCode,
|
|
38
|
-
Scan,
|
|
39
|
-
Settings
|
|
40
|
-
} from "lucide-react";
|
|
41
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
42
|
-
var supportedFrameworks = [
|
|
43
|
-
{
|
|
44
|
-
name: "NestJS",
|
|
45
|
-
flag: "nestjs",
|
|
46
|
-
description: "Controllers, decorators, DTOs"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
name: "Express",
|
|
50
|
-
flag: "express",
|
|
51
|
-
description: "Router methods, middleware"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "Fastify",
|
|
55
|
-
flag: "fastify",
|
|
56
|
-
description: "Route definitions, schemas"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "Hono",
|
|
60
|
-
flag: "hono",
|
|
61
|
-
description: "Route handlers, validators"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: "Elysia",
|
|
65
|
-
flag: "elysia",
|
|
66
|
-
description: "Type-safe routes, schemas"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: "tRPC",
|
|
70
|
-
flag: "trpc",
|
|
71
|
-
description: "Procedure definitions"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
name: "Next.js",
|
|
75
|
-
flag: "next-api",
|
|
76
|
-
description: "API routes (app/api, pages/api)"
|
|
77
|
-
}
|
|
78
|
-
];
|
|
79
|
-
function GuideImportExistingCodebasesPage() {
|
|
80
|
-
return /* @__PURE__ */ jsxs2("div", {
|
|
81
|
-
className: "space-y-8",
|
|
82
|
-
children: [
|
|
83
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
84
|
-
className: "space-y-3",
|
|
85
|
-
children: [
|
|
86
|
-
/* @__PURE__ */ jsx2("h1", {
|
|
87
|
-
className: "font-bold text-4xl",
|
|
88
|
-
children: "Import Existing Codebases"
|
|
89
|
-
}),
|
|
90
|
-
/* @__PURE__ */ jsx2("p", {
|
|
91
|
-
className: "text-lg text-muted-foreground",
|
|
92
|
-
children: "Convert your existing API endpoints into ContractSpec contracts. Auto-detect frameworks, extract schemas, and generate explicit contract definitions from your code."
|
|
93
|
-
})
|
|
94
|
-
]
|
|
95
|
-
}),
|
|
96
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
97
|
-
className: "card-subtle space-y-4 p-6",
|
|
98
|
-
children: [
|
|
99
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
100
|
-
className: "font-bold text-2xl",
|
|
101
|
-
children: "What you'll learn"
|
|
102
|
-
}),
|
|
103
|
-
/* @__PURE__ */ jsxs2("ul", {
|
|
104
|
-
className: "space-y-2 text-muted-foreground text-sm",
|
|
105
|
-
children: [
|
|
106
|
-
/* @__PURE__ */ jsx2("li", {
|
|
107
|
-
children: "How to import existing API endpoints as ContractSpec contracts."
|
|
108
|
-
}),
|
|
109
|
-
/* @__PURE__ */ jsx2("li", {
|
|
110
|
-
children: "Framework-specific patterns and auto-detection."
|
|
111
|
-
}),
|
|
112
|
-
/* @__PURE__ */ jsx2("li", {
|
|
113
|
-
children: "Customizing imports with scopes, dry-run, and output options."
|
|
114
|
-
}),
|
|
115
|
-
/* @__PURE__ */ jsx2("li", {
|
|
116
|
-
children: "Registering imported contracts and adding handlers."
|
|
117
|
-
})
|
|
118
|
-
]
|
|
119
|
-
})
|
|
120
|
-
]
|
|
121
|
-
}),
|
|
122
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
123
|
-
className: "space-y-6",
|
|
124
|
-
children: [
|
|
125
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
126
|
-
className: "space-y-3",
|
|
127
|
-
children: [
|
|
128
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
129
|
-
className: "font-bold text-2xl",
|
|
130
|
-
children: "Why import existing code?"
|
|
131
|
-
}),
|
|
132
|
-
/* @__PURE__ */ jsx2("p", {
|
|
133
|
-
className: "text-muted-foreground text-sm",
|
|
134
|
-
children: "Instead of writing contracts from scratch, the import command extracts endpoint patterns from your existing codebase. This gives you:"
|
|
135
|
-
}),
|
|
136
|
-
/* @__PURE__ */ jsxs2("ul", {
|
|
137
|
-
className: "list-disc space-y-1 pl-5 text-muted-foreground text-sm",
|
|
138
|
-
children: [
|
|
139
|
-
/* @__PURE__ */ jsx2("li", {
|
|
140
|
-
children: "Instant spec coverage for existing APIs"
|
|
141
|
-
}),
|
|
142
|
-
/* @__PURE__ */ jsx2("li", {
|
|
143
|
-
children: "Type-safe schemas derived from your existing types"
|
|
144
|
-
}),
|
|
145
|
-
/* @__PURE__ */ jsx2("li", {
|
|
146
|
-
children: "A foundation to iterate and refine contracts"
|
|
147
|
-
}),
|
|
148
|
-
/* @__PURE__ */ jsx2("li", {
|
|
149
|
-
children: "Gradual adoption without rewriting code"
|
|
150
|
-
})
|
|
151
|
-
]
|
|
152
|
-
})
|
|
153
|
-
]
|
|
154
|
-
}),
|
|
155
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
156
|
-
className: "space-y-3",
|
|
157
|
-
children: [
|
|
158
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
159
|
-
className: "font-bold text-2xl",
|
|
160
|
-
children: "Supported frameworks"
|
|
161
|
-
}),
|
|
162
|
-
/* @__PURE__ */ jsx2("div", {
|
|
163
|
-
className: "grid gap-3 md:grid-cols-2 lg:grid-cols-3",
|
|
164
|
-
children: supportedFrameworks.map((fw) => /* @__PURE__ */ jsxs2("div", {
|
|
165
|
-
className: "flex items-start gap-3 rounded-lg border border-white/10 p-4",
|
|
166
|
-
children: [
|
|
167
|
-
/* @__PURE__ */ jsx2(FileCode, {
|
|
168
|
-
className: "text-violet-400",
|
|
169
|
-
size: 18
|
|
170
|
-
}),
|
|
171
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
172
|
-
className: "space-y-1",
|
|
173
|
-
children: [
|
|
174
|
-
/* @__PURE__ */ jsx2("h3", {
|
|
175
|
-
className: "font-semibold",
|
|
176
|
-
children: fw.name
|
|
177
|
-
}),
|
|
178
|
-
/* @__PURE__ */ jsx2("p", {
|
|
179
|
-
className: "text-muted-foreground text-xs",
|
|
180
|
-
children: fw.description
|
|
181
|
-
}),
|
|
182
|
-
/* @__PURE__ */ jsxs2("code", {
|
|
183
|
-
className: "text-violet-400 text-xs",
|
|
184
|
-
children: [
|
|
185
|
-
"--framework ",
|
|
186
|
-
fw.flag
|
|
187
|
-
]
|
|
188
|
-
})
|
|
189
|
-
]
|
|
190
|
-
})
|
|
191
|
-
]
|
|
192
|
-
}, fw.flag))
|
|
193
|
-
})
|
|
194
|
-
]
|
|
195
|
-
}),
|
|
196
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
197
|
-
className: "space-y-3",
|
|
198
|
-
children: [
|
|
199
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
200
|
-
className: "font-bold text-2xl",
|
|
201
|
-
children: "1) Quick start"
|
|
202
|
-
}),
|
|
203
|
-
/* @__PURE__ */ jsx2("p", {
|
|
204
|
-
className: "text-muted-foreground text-sm",
|
|
205
|
-
children: "Run the import command to auto-detect your framework and extract endpoints:"
|
|
206
|
-
}),
|
|
207
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
208
|
-
language: "bash",
|
|
209
|
-
filename: "import-quickstart",
|
|
210
|
-
code: `# Auto-detect framework and import all endpoints
|
|
2
|
+
import y from"@contractspec/lib.ui-link";import{jsx as r,jsxs as g}from"react/jsx-runtime";function d({title:a="Need the operating layer on top of OSS ContractSpec?",body:m="ContractSpec Studio helps teams turn evidence into proposed spec changes, governed delivery loops, and execution-ready task packs while keeping the open contract system as the source of truth.",ctaLabel:u="See what Studio adds",href:o="https://www.contractspec.studio/docs"}){return g("div",{className:"card-subtle space-y-3 p-6",children:[r("h3",{className:"font-semibold text-lg",children:a}),r("p",{className:"text-muted-foreground text-sm",children:m}),r(y,{href:o,className:"btn-primary",children:u})]})}import{CodeBlock as p}from"@contractspec/lib.design-system";import n from"@contractspec/lib.ui-link";import{AlertCircle as i,ChevronRight as v,FileCode as N,Scan as h,Settings as P}from"lucide-react";import{jsx as t,jsxs as e}from"react/jsx-runtime";var b=[{name:"NestJS",flag:"nestjs",description:"Controllers, decorators, DTOs"},{name:"Express",flag:"express",description:"Router methods, middleware"},{name:"Fastify",flag:"fastify",description:"Route definitions, schemas"},{name:"Hono",flag:"hono",description:"Route handlers, validators"},{name:"Elysia",flag:"elysia",description:"Type-safe routes, schemas"},{name:"tRPC",flag:"trpc",description:"Procedure definitions"},{name:"Next.js",flag:"next-api",description:"API routes (app/api, pages/api)"}];function G(){return e("div",{className:"space-y-8",children:[e("div",{className:"space-y-3",children:[t("h1",{className:"font-bold text-4xl",children:"Import Existing Codebases"}),t("p",{className:"text-lg text-muted-foreground",children:"Convert your existing API endpoints into ContractSpec contracts. Auto-detect frameworks, extract schemas, and generate explicit contract definitions from your code."})]}),e("div",{className:"card-subtle space-y-4 p-6",children:[t("h2",{className:"font-bold text-2xl",children:"What you'll learn"}),e("ul",{className:"space-y-2 text-muted-foreground text-sm",children:[t("li",{children:"How to import existing API endpoints as ContractSpec contracts."}),t("li",{children:"Framework-specific patterns and auto-detection."}),t("li",{children:"Customizing imports with scopes, dry-run, and output options."}),t("li",{children:"Registering imported contracts and adding handlers."})]})]}),e("div",{className:"space-y-6",children:[e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Why import existing code?"}),t("p",{className:"text-muted-foreground text-sm",children:"Instead of writing contracts from scratch, the import command extracts endpoint patterns from your existing codebase. This gives you:"}),e("ul",{className:"list-disc space-y-1 pl-5 text-muted-foreground text-sm",children:[t("li",{children:"Instant spec coverage for existing APIs"}),t("li",{children:"Type-safe schemas derived from your existing types"}),t("li",{children:"A foundation to iterate and refine contracts"}),t("li",{children:"Gradual adoption without rewriting code"})]})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"Supported frameworks"}),t("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-3",children:b.map((a)=>e("div",{className:"flex items-start gap-3 rounded-lg border border-white/10 p-4",children:[t(N,{className:"text-violet-400",size:18}),e("div",{className:"space-y-1",children:[t("h3",{className:"font-semibold",children:a.name}),t("p",{className:"text-muted-foreground text-xs",children:a.description}),e("code",{className:"text-violet-400 text-xs",children:["--framework ",a.flag]})]})]},a.flag))})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"1) Quick start"}),t("p",{className:"text-muted-foreground text-sm",children:"Run the import command to auto-detect your framework and extract endpoints:"}),t(p,{language:"bash",filename:"import-quickstart",code:`# Auto-detect framework and import all endpoints
|
|
211
3
|
contractspec import ./src
|
|
212
4
|
|
|
213
5
|
# Preview what would be imported (dry-run)
|
|
214
6
|
contractspec import ./src --dry-run
|
|
215
7
|
|
|
216
8
|
# Force a specific framework
|
|
217
|
-
contractspec import ./src --framework nestjs`
|
|
218
|
-
}),
|
|
219
|
-
/* @__PURE__ */ jsx2("p", {
|
|
220
|
-
className: "text-muted-foreground text-sm",
|
|
221
|
-
children: "Expected output: A summary of endpoints found, schemas extracted, and files generated."
|
|
222
|
-
})
|
|
223
|
-
]
|
|
224
|
-
}),
|
|
225
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
226
|
-
className: "space-y-3",
|
|
227
|
-
children: [
|
|
228
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
229
|
-
className: "font-bold text-2xl",
|
|
230
|
-
children: "2) Framework-specific patterns"
|
|
231
|
-
}),
|
|
232
|
-
/* @__PURE__ */ jsx2("p", {
|
|
233
|
-
className: "text-muted-foreground text-sm",
|
|
234
|
-
children: "The import command recognizes these patterns in each framework:"
|
|
235
|
-
})
|
|
236
|
-
]
|
|
237
|
-
}),
|
|
238
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
239
|
-
className: "space-y-3",
|
|
240
|
-
children: [
|
|
241
|
-
/* @__PURE__ */ jsxs2("h3", {
|
|
242
|
-
className: "flex items-center gap-2 font-semibold text-xl",
|
|
243
|
-
children: [
|
|
244
|
-
/* @__PURE__ */ jsx2(Scan, {
|
|
245
|
-
size: 18,
|
|
246
|
-
className: "text-blue-400"
|
|
247
|
-
}),
|
|
248
|
-
"NestJS"
|
|
249
|
-
]
|
|
250
|
-
}),
|
|
251
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
252
|
-
language: "typescript",
|
|
253
|
-
filename: "src/users/users.controller.ts (before)",
|
|
254
|
-
code: `@Controller('users')
|
|
9
|
+
contractspec import ./src --framework nestjs`}),t("p",{className:"text-muted-foreground text-sm",children:"Expected output: A summary of endpoints found, schemas extracted, and files generated."})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"2) Framework-specific patterns"}),t("p",{className:"text-muted-foreground text-sm",children:"The import command recognizes these patterns in each framework:"})]}),e("div",{className:"space-y-3",children:[e("h3",{className:"flex items-center gap-2 font-semibold text-xl",children:[t(h,{size:18,className:"text-blue-400"}),"NestJS"]}),t(p,{language:"typescript",filename:"src/users/users.controller.ts (before)",code:`@Controller('users')
|
|
255
10
|
export class UsersController {
|
|
256
11
|
@Get(':id')
|
|
257
12
|
async getUser(@Param('id') id: string): Promise<UserDto> {
|
|
@@ -263,59 +18,7 @@ export class UsersController {
|
|
|
263
18
|
async createUser(@Body() dto: CreateUserDto): Promise<UserDto> {
|
|
264
19
|
return this.usersService.create(dto);
|
|
265
20
|
}
|
|
266
|
-
}`
|
|
267
|
-
}),
|
|
268
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
269
|
-
className: "text-muted-foreground text-sm",
|
|
270
|
-
children: [
|
|
271
|
-
"Detected: ",
|
|
272
|
-
/* @__PURE__ */ jsx2("code", {
|
|
273
|
-
children: "@Controller"
|
|
274
|
-
}),
|
|
275
|
-
", ",
|
|
276
|
-
/* @__PURE__ */ jsx2("code", {
|
|
277
|
-
children: "@Get"
|
|
278
|
-
}),
|
|
279
|
-
",",
|
|
280
|
-
" ",
|
|
281
|
-
/* @__PURE__ */ jsx2("code", {
|
|
282
|
-
children: "@Post"
|
|
283
|
-
}),
|
|
284
|
-
", ",
|
|
285
|
-
/* @__PURE__ */ jsx2("code", {
|
|
286
|
-
children: "@Body"
|
|
287
|
-
}),
|
|
288
|
-
", ",
|
|
289
|
-
/* @__PURE__ */ jsx2("code", {
|
|
290
|
-
children: "@Param"
|
|
291
|
-
}),
|
|
292
|
-
",",
|
|
293
|
-
" ",
|
|
294
|
-
/* @__PURE__ */ jsx2("code", {
|
|
295
|
-
children: "@UseGuards"
|
|
296
|
-
}),
|
|
297
|
-
" decorators."
|
|
298
|
-
]
|
|
299
|
-
})
|
|
300
|
-
]
|
|
301
|
-
}),
|
|
302
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
303
|
-
className: "space-y-3",
|
|
304
|
-
children: [
|
|
305
|
-
/* @__PURE__ */ jsxs2("h3", {
|
|
306
|
-
className: "flex items-center gap-2 font-semibold text-xl",
|
|
307
|
-
children: [
|
|
308
|
-
/* @__PURE__ */ jsx2(Scan, {
|
|
309
|
-
size: 18,
|
|
310
|
-
className: "text-green-400"
|
|
311
|
-
}),
|
|
312
|
-
"Express"
|
|
313
|
-
]
|
|
314
|
-
}),
|
|
315
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
316
|
-
language: "typescript",
|
|
317
|
-
filename: "src/routes/users.ts (before)",
|
|
318
|
-
code: `const router = express.Router();
|
|
21
|
+
}`}),e("p",{className:"text-muted-foreground text-sm",children:["Detected: ",t("code",{children:"@Controller"}),", ",t("code",{children:"@Get"}),","," ",t("code",{children:"@Post"}),", ",t("code",{children:"@Body"}),", ",t("code",{children:"@Param"}),","," ",t("code",{children:"@UseGuards"})," decorators."]})]}),e("div",{className:"space-y-3",children:[e("h3",{className:"flex items-center gap-2 font-semibold text-xl",children:[t(h,{size:18,className:"text-green-400"}),"Express"]}),t(p,{language:"typescript",filename:"src/routes/users.ts (before)",code:`const router = express.Router();
|
|
319
22
|
|
|
320
23
|
router.get('/users/:id', async (req, res) => {
|
|
321
24
|
const user = await getUserById(req.params.id);
|
|
@@ -325,41 +28,7 @@ router.get('/users/:id', async (req, res) => {
|
|
|
325
28
|
router.post('/users', validateBody(CreateUserSchema), async (req, res) => {
|
|
326
29
|
const user = await createUser(req.body);
|
|
327
30
|
res.status(201).json(user);
|
|
328
|
-
});`
|
|
329
|
-
}),
|
|
330
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
331
|
-
className: "text-muted-foreground text-sm",
|
|
332
|
-
children: [
|
|
333
|
-
"Detected: ",
|
|
334
|
-
/* @__PURE__ */ jsx2("code", {
|
|
335
|
-
children: "router.get"
|
|
336
|
-
}),
|
|
337
|
-
", ",
|
|
338
|
-
/* @__PURE__ */ jsx2("code", {
|
|
339
|
-
children: "router.post"
|
|
340
|
-
}),
|
|
341
|
-
", validation middleware, Zod schemas."
|
|
342
|
-
]
|
|
343
|
-
})
|
|
344
|
-
]
|
|
345
|
-
}),
|
|
346
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
347
|
-
className: "space-y-3",
|
|
348
|
-
children: [
|
|
349
|
-
/* @__PURE__ */ jsxs2("h3", {
|
|
350
|
-
className: "flex items-center gap-2 font-semibold text-xl",
|
|
351
|
-
children: [
|
|
352
|
-
/* @__PURE__ */ jsx2(Scan, {
|
|
353
|
-
size: 18,
|
|
354
|
-
className: "text-purple-400"
|
|
355
|
-
}),
|
|
356
|
-
"Next.js API Routes"
|
|
357
|
-
]
|
|
358
|
-
}),
|
|
359
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
360
|
-
language: "typescript",
|
|
361
|
-
filename: "app/api/users/[id]/route.ts (before)",
|
|
362
|
-
code: `export async function GET(
|
|
31
|
+
});`}),e("p",{className:"text-muted-foreground text-sm",children:["Detected: ",t("code",{children:"router.get"}),", ",t("code",{children:"router.post"}),", validation middleware, Zod schemas."]})]}),e("div",{className:"space-y-3",children:[e("h3",{className:"flex items-center gap-2 font-semibold text-xl",children:[t(h,{size:18,className:"text-purple-400"}),"Next.js API Routes"]}),t(p,{language:"typescript",filename:"app/api/users/[id]/route.ts (before)",code:`export async function GET(
|
|
363
32
|
request: Request,
|
|
364
33
|
{ params }: { params: { id: string } }
|
|
365
34
|
) {
|
|
@@ -371,48 +40,7 @@ export async function POST(request: Request) {
|
|
|
371
40
|
const body = await request.json();
|
|
372
41
|
const user = await createUser(body);
|
|
373
42
|
return Response.json(user, { status: 201 });
|
|
374
|
-
}`
|
|
375
|
-
}),
|
|
376
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
377
|
-
className: "text-muted-foreground text-sm",
|
|
378
|
-
children: [
|
|
379
|
-
"Detected: ",
|
|
380
|
-
/* @__PURE__ */ jsx2("code", {
|
|
381
|
-
children: "GET"
|
|
382
|
-
}),
|
|
383
|
-
", ",
|
|
384
|
-
/* @__PURE__ */ jsx2("code", {
|
|
385
|
-
children: "POST"
|
|
386
|
-
}),
|
|
387
|
-
" exports in",
|
|
388
|
-
" ",
|
|
389
|
-
/* @__PURE__ */ jsx2("code", {
|
|
390
|
-
children: "app/api/**/route.ts"
|
|
391
|
-
}),
|
|
392
|
-
" and ",
|
|
393
|
-
/* @__PURE__ */ jsx2("code", {
|
|
394
|
-
children: "pages/api/**/*.ts"
|
|
395
|
-
}),
|
|
396
|
-
"."
|
|
397
|
-
]
|
|
398
|
-
})
|
|
399
|
-
]
|
|
400
|
-
}),
|
|
401
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
402
|
-
className: "space-y-3",
|
|
403
|
-
children: [
|
|
404
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
405
|
-
className: "font-bold text-2xl",
|
|
406
|
-
children: "3) Understanding generated contracts"
|
|
407
|
-
}),
|
|
408
|
-
/* @__PURE__ */ jsx2("p", {
|
|
409
|
-
className: "text-muted-foreground text-sm",
|
|
410
|
-
children: "The import command generates ContractSpec operations with TODO placeholders for fields it cannot infer:"
|
|
411
|
-
}),
|
|
412
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
413
|
-
language: "typescript",
|
|
414
|
-
filename: ".contractspec/generated/users.operation.ts",
|
|
415
|
-
code: `import { defineQuery, defineCommand } from "@contractspec/lib.contracts-spec";
|
|
43
|
+
}`}),e("p",{className:"text-muted-foreground text-sm",children:["Detected: ",t("code",{children:"GET"}),", ",t("code",{children:"POST"})," exports in"," ",t("code",{children:"app/api/**/route.ts"})," and ",t("code",{children:"pages/api/**/*.ts"}),"."]})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"3) Understanding generated contracts"}),t("p",{className:"text-muted-foreground text-sm",children:"The import command generates ContractSpec operations with TODO placeholders for fields it cannot infer:"}),t(p,{language:"typescript",filename:".contractspec/generated/users.operation.ts",code:`import { defineQuery, defineCommand } from "@contractspec/lib.contracts-spec";
|
|
416
44
|
import { SchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
|
|
417
45
|
|
|
418
46
|
export const GetUserQuery = defineQuery({
|
|
@@ -472,191 +100,7 @@ export const CreateUserCommand = defineCommand({
|
|
|
472
100
|
transport: {
|
|
473
101
|
rest: { method: "POST", path: "/users" },
|
|
474
102
|
},
|
|
475
|
-
});`
|
|
476
|
-
})
|
|
477
|
-
]
|
|
478
|
-
}),
|
|
479
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
480
|
-
className: "space-y-3",
|
|
481
|
-
children: [
|
|
482
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
483
|
-
className: "font-bold text-2xl",
|
|
484
|
-
children: "4) Customizing imports"
|
|
485
|
-
}),
|
|
486
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
487
|
-
className: "flex items-center gap-2",
|
|
488
|
-
children: [
|
|
489
|
-
/* @__PURE__ */ jsx2(Settings, {
|
|
490
|
-
size: 18,
|
|
491
|
-
className: "text-violet-400"
|
|
492
|
-
}),
|
|
493
|
-
/* @__PURE__ */ jsx2("h3", {
|
|
494
|
-
className: "font-semibold text-lg",
|
|
495
|
-
children: "Available options"
|
|
496
|
-
})
|
|
497
|
-
]
|
|
498
|
-
}),
|
|
499
|
-
/* @__PURE__ */ jsx2("div", {
|
|
500
|
-
className: "overflow-x-auto",
|
|
501
|
-
children: /* @__PURE__ */ jsxs2("table", {
|
|
502
|
-
className: "w-full text-sm",
|
|
503
|
-
children: [
|
|
504
|
-
/* @__PURE__ */ jsx2("thead", {
|
|
505
|
-
children: /* @__PURE__ */ jsxs2("tr", {
|
|
506
|
-
className: "border-white/10 border-b",
|
|
507
|
-
children: [
|
|
508
|
-
/* @__PURE__ */ jsx2("th", {
|
|
509
|
-
className: "py-2 pr-4 text-left",
|
|
510
|
-
children: "Option"
|
|
511
|
-
}),
|
|
512
|
-
/* @__PURE__ */ jsx2("th", {
|
|
513
|
-
className: "py-2 pr-4 text-left",
|
|
514
|
-
children: "Description"
|
|
515
|
-
}),
|
|
516
|
-
/* @__PURE__ */ jsx2("th", {
|
|
517
|
-
className: "py-2 text-left",
|
|
518
|
-
children: "Example"
|
|
519
|
-
})
|
|
520
|
-
]
|
|
521
|
-
})
|
|
522
|
-
}),
|
|
523
|
-
/* @__PURE__ */ jsxs2("tbody", {
|
|
524
|
-
className: "text-muted-foreground",
|
|
525
|
-
children: [
|
|
526
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
527
|
-
className: "border-white/5 border-b",
|
|
528
|
-
children: [
|
|
529
|
-
/* @__PURE__ */ jsx2("td", {
|
|
530
|
-
className: "py-2 pr-4",
|
|
531
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
532
|
-
children: "--scope"
|
|
533
|
-
})
|
|
534
|
-
}),
|
|
535
|
-
/* @__PURE__ */ jsx2("td", {
|
|
536
|
-
className: "py-2 pr-4",
|
|
537
|
-
children: "Limit to specific directories"
|
|
538
|
-
}),
|
|
539
|
-
/* @__PURE__ */ jsx2("td", {
|
|
540
|
-
className: "py-2",
|
|
541
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
542
|
-
children: "--scope src/users src/auth"
|
|
543
|
-
})
|
|
544
|
-
})
|
|
545
|
-
]
|
|
546
|
-
}),
|
|
547
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
548
|
-
className: "border-white/5 border-b",
|
|
549
|
-
children: [
|
|
550
|
-
/* @__PURE__ */ jsx2("td", {
|
|
551
|
-
className: "py-2 pr-4",
|
|
552
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
553
|
-
children: "--framework"
|
|
554
|
-
})
|
|
555
|
-
}),
|
|
556
|
-
/* @__PURE__ */ jsx2("td", {
|
|
557
|
-
className: "py-2 pr-4",
|
|
558
|
-
children: "Force a specific framework"
|
|
559
|
-
}),
|
|
560
|
-
/* @__PURE__ */ jsx2("td", {
|
|
561
|
-
className: "py-2",
|
|
562
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
563
|
-
children: "--framework express"
|
|
564
|
-
})
|
|
565
|
-
})
|
|
566
|
-
]
|
|
567
|
-
}),
|
|
568
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
569
|
-
className: "border-white/5 border-b",
|
|
570
|
-
children: [
|
|
571
|
-
/* @__PURE__ */ jsx2("td", {
|
|
572
|
-
className: "py-2 pr-4",
|
|
573
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
574
|
-
children: "--output"
|
|
575
|
-
})
|
|
576
|
-
}),
|
|
577
|
-
/* @__PURE__ */ jsx2("td", {
|
|
578
|
-
className: "py-2 pr-4",
|
|
579
|
-
children: "Output directory"
|
|
580
|
-
}),
|
|
581
|
-
/* @__PURE__ */ jsx2("td", {
|
|
582
|
-
className: "py-2",
|
|
583
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
584
|
-
children: "--output ./contracts"
|
|
585
|
-
})
|
|
586
|
-
})
|
|
587
|
-
]
|
|
588
|
-
}),
|
|
589
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
590
|
-
className: "border-white/5 border-b",
|
|
591
|
-
children: [
|
|
592
|
-
/* @__PURE__ */ jsx2("td", {
|
|
593
|
-
className: "py-2 pr-4",
|
|
594
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
595
|
-
children: "--dry-run"
|
|
596
|
-
})
|
|
597
|
-
}),
|
|
598
|
-
/* @__PURE__ */ jsx2("td", {
|
|
599
|
-
className: "py-2 pr-4",
|
|
600
|
-
children: "Preview without writing files"
|
|
601
|
-
}),
|
|
602
|
-
/* @__PURE__ */ jsx2("td", {
|
|
603
|
-
className: "py-2",
|
|
604
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
605
|
-
children: "--dry-run"
|
|
606
|
-
})
|
|
607
|
-
})
|
|
608
|
-
]
|
|
609
|
-
}),
|
|
610
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
611
|
-
className: "border-white/5 border-b",
|
|
612
|
-
children: [
|
|
613
|
-
/* @__PURE__ */ jsx2("td", {
|
|
614
|
-
className: "py-2 pr-4",
|
|
615
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
616
|
-
children: "--analyze"
|
|
617
|
-
})
|
|
618
|
-
}),
|
|
619
|
-
/* @__PURE__ */ jsx2("td", {
|
|
620
|
-
className: "py-2 pr-4",
|
|
621
|
-
children: "Analysis only, no code generation"
|
|
622
|
-
}),
|
|
623
|
-
/* @__PURE__ */ jsx2("td", {
|
|
624
|
-
className: "py-2",
|
|
625
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
626
|
-
children: "--analyze"
|
|
627
|
-
})
|
|
628
|
-
})
|
|
629
|
-
]
|
|
630
|
-
}),
|
|
631
|
-
/* @__PURE__ */ jsxs2("tr", {
|
|
632
|
-
children: [
|
|
633
|
-
/* @__PURE__ */ jsx2("td", {
|
|
634
|
-
className: "py-2 pr-4",
|
|
635
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
636
|
-
children: "--json"
|
|
637
|
-
})
|
|
638
|
-
}),
|
|
639
|
-
/* @__PURE__ */ jsx2("td", {
|
|
640
|
-
className: "py-2 pr-4",
|
|
641
|
-
children: "Output as JSON for scripting"
|
|
642
|
-
}),
|
|
643
|
-
/* @__PURE__ */ jsx2("td", {
|
|
644
|
-
className: "py-2",
|
|
645
|
-
children: /* @__PURE__ */ jsx2("code", {
|
|
646
|
-
children: "--json"
|
|
647
|
-
})
|
|
648
|
-
})
|
|
649
|
-
]
|
|
650
|
-
})
|
|
651
|
-
]
|
|
652
|
-
})
|
|
653
|
-
]
|
|
654
|
-
})
|
|
655
|
-
}),
|
|
656
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
657
|
-
language: "bash",
|
|
658
|
-
filename: "import-options",
|
|
659
|
-
code: `# Import only specific modules
|
|
103
|
+
});`})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"4) Customizing imports"}),e("div",{className:"flex items-center gap-2",children:[t(P,{size:18,className:"text-violet-400"}),t("h3",{className:"font-semibold text-lg",children:"Available options"})]}),t("div",{className:"overflow-x-auto",children:e("table",{className:"w-full text-sm",children:[t("thead",{children:e("tr",{className:"border-white/10 border-b",children:[t("th",{className:"py-2 pr-4 text-left",children:"Option"}),t("th",{className:"py-2 pr-4 text-left",children:"Description"}),t("th",{className:"py-2 text-left",children:"Example"})]})}),e("tbody",{className:"text-muted-foreground",children:[e("tr",{className:"border-white/5 border-b",children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--scope"})}),t("td",{className:"py-2 pr-4",children:"Limit to specific directories"}),t("td",{className:"py-2",children:t("code",{children:"--scope src/users src/auth"})})]}),e("tr",{className:"border-white/5 border-b",children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--framework"})}),t("td",{className:"py-2 pr-4",children:"Force a specific framework"}),t("td",{className:"py-2",children:t("code",{children:"--framework express"})})]}),e("tr",{className:"border-white/5 border-b",children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--output"})}),t("td",{className:"py-2 pr-4",children:"Output directory"}),t("td",{className:"py-2",children:t("code",{children:"--output ./contracts"})})]}),e("tr",{className:"border-white/5 border-b",children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--dry-run"})}),t("td",{className:"py-2 pr-4",children:"Preview without writing files"}),t("td",{className:"py-2",children:t("code",{children:"--dry-run"})})]}),e("tr",{className:"border-white/5 border-b",children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--analyze"})}),t("td",{className:"py-2 pr-4",children:"Analysis only, no code generation"}),t("td",{className:"py-2",children:t("code",{children:"--analyze"})})]}),e("tr",{children:[t("td",{className:"py-2 pr-4",children:t("code",{children:"--json"})}),t("td",{className:"py-2 pr-4",children:"Output as JSON for scripting"}),t("td",{className:"py-2",children:t("code",{children:"--json"})})]})]})]})}),t(p,{language:"bash",filename:"import-options",code:`# Import only specific modules
|
|
660
104
|
contractspec import ./src --scope src/users src/orders
|
|
661
105
|
|
|
662
106
|
# Preview with analysis
|
|
@@ -666,25 +110,7 @@ contractspec import ./src --dry-run --analyze
|
|
|
666
110
|
contractspec import ./src --output ./src/contracts/generated
|
|
667
111
|
|
|
668
112
|
# Get JSON for CI/scripting
|
|
669
|
-
contractspec import ./src --json > import-result.json`
|
|
670
|
-
})
|
|
671
|
-
]
|
|
672
|
-
}),
|
|
673
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
674
|
-
className: "space-y-3",
|
|
675
|
-
children: [
|
|
676
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
677
|
-
className: "font-bold text-2xl",
|
|
678
|
-
children: "5) Registering imported contracts"
|
|
679
|
-
}),
|
|
680
|
-
/* @__PURE__ */ jsx2("p", {
|
|
681
|
-
className: "text-muted-foreground text-sm",
|
|
682
|
-
children: "After import, register contracts and add handlers:"
|
|
683
|
-
}),
|
|
684
|
-
/* @__PURE__ */ jsx2(CodeBlock, {
|
|
685
|
-
language: "typescript",
|
|
686
|
-
filename: "src/contracts/registry.ts",
|
|
687
|
-
code: `import {
|
|
113
|
+
contractspec import ./src --json > import-result.json`})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"5) Registering imported contracts"}),t("p",{className:"text-muted-foreground text-sm",children:"After import, register contracts and add handlers:"}),t(p,{language:"typescript",filename:"src/contracts/registry.ts",code:`import {
|
|
688
114
|
OperationSpecRegistry,
|
|
689
115
|
installOp,
|
|
690
116
|
} from "@contractspec/lib.contracts-spec/operations";
|
|
@@ -704,176 +130,4 @@ installOp(registry, GetUserQuery, async (input) => {
|
|
|
704
130
|
installOp(registry, CreateUserCommand, async (input) => {
|
|
705
131
|
const user = await db.user.create({ data: input });
|
|
706
132
|
return { id: user.id };
|
|
707
|
-
});`
|
|
708
|
-
})
|
|
709
|
-
]
|
|
710
|
-
}),
|
|
711
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
712
|
-
className: "space-y-3",
|
|
713
|
-
children: [
|
|
714
|
-
/* @__PURE__ */ jsx2("h2", {
|
|
715
|
-
className: "font-bold text-2xl",
|
|
716
|
-
children: "6) After importing"
|
|
717
|
-
}),
|
|
718
|
-
/* @__PURE__ */ jsxs2("ol", {
|
|
719
|
-
className: "list-decimal space-y-2 pl-5 text-muted-foreground text-sm",
|
|
720
|
-
children: [
|
|
721
|
-
/* @__PURE__ */ jsxs2("li", {
|
|
722
|
-
children: [
|
|
723
|
-
/* @__PURE__ */ jsx2("strong", {
|
|
724
|
-
children: "Review generated contracts"
|
|
725
|
-
}),
|
|
726
|
-
" \u2014 Check the TODO placeholders and fill in descriptions, owners, and tags."
|
|
727
|
-
]
|
|
728
|
-
}),
|
|
729
|
-
/* @__PURE__ */ jsxs2("li", {
|
|
730
|
-
children: [
|
|
731
|
-
/* @__PURE__ */ jsx2("strong", {
|
|
732
|
-
children: "Refine schemas"
|
|
733
|
-
}),
|
|
734
|
-
" \u2014 Add proper types, validation rules, and error definitions."
|
|
735
|
-
]
|
|
736
|
-
}),
|
|
737
|
-
/* @__PURE__ */ jsxs2("li", {
|
|
738
|
-
children: [
|
|
739
|
-
/* @__PURE__ */ jsx2("strong", {
|
|
740
|
-
children: "Run validation"
|
|
741
|
-
}),
|
|
742
|
-
" \u2014",
|
|
743
|
-
" ",
|
|
744
|
-
/* @__PURE__ */ jsx2("code", {
|
|
745
|
-
children: "contractspec validate"
|
|
746
|
-
}),
|
|
747
|
-
" to ensure contracts are valid."
|
|
748
|
-
]
|
|
749
|
-
}),
|
|
750
|
-
/* @__PURE__ */ jsxs2("li", {
|
|
751
|
-
children: [
|
|
752
|
-
/* @__PURE__ */ jsx2("strong", {
|
|
753
|
-
children: "Register and wire handlers"
|
|
754
|
-
}),
|
|
755
|
-
" \u2014 Connect contracts to your existing business logic."
|
|
756
|
-
]
|
|
757
|
-
}),
|
|
758
|
-
/* @__PURE__ */ jsxs2("li", {
|
|
759
|
-
children: [
|
|
760
|
-
/* @__PURE__ */ jsx2("strong", {
|
|
761
|
-
children: "Iterate"
|
|
762
|
-
}),
|
|
763
|
-
" \u2014 The imported contracts are a starting point. Refine them as your spec matures."
|
|
764
|
-
]
|
|
765
|
-
})
|
|
766
|
-
]
|
|
767
|
-
})
|
|
768
|
-
]
|
|
769
|
-
}),
|
|
770
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
771
|
-
className: "space-y-3",
|
|
772
|
-
children: [
|
|
773
|
-
/* @__PURE__ */ jsxs2("h2", {
|
|
774
|
-
className: "flex items-center gap-2 font-bold text-2xl",
|
|
775
|
-
children: [
|
|
776
|
-
/* @__PURE__ */ jsx2(AlertCircle, {
|
|
777
|
-
size: 20,
|
|
778
|
-
className: "text-yellow-400"
|
|
779
|
-
}),
|
|
780
|
-
"Troubleshooting"
|
|
781
|
-
]
|
|
782
|
-
}),
|
|
783
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
784
|
-
className: "space-y-4",
|
|
785
|
-
children: [
|
|
786
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
787
|
-
className: "card-subtle space-y-2 p-4",
|
|
788
|
-
children: [
|
|
789
|
-
/* @__PURE__ */ jsx2("h3", {
|
|
790
|
-
className: "font-semibold",
|
|
791
|
-
children: "Framework not detected"
|
|
792
|
-
}),
|
|
793
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
794
|
-
className: "text-muted-foreground text-sm",
|
|
795
|
-
children: [
|
|
796
|
-
"Use ",
|
|
797
|
-
/* @__PURE__ */ jsx2("code", {
|
|
798
|
-
children: "--framework <name>"
|
|
799
|
-
}),
|
|
800
|
-
" to force a specific framework. Check that your entry files follow standard patterns."
|
|
801
|
-
]
|
|
802
|
-
})
|
|
803
|
-
]
|
|
804
|
-
}),
|
|
805
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
806
|
-
className: "card-subtle space-y-2 p-4",
|
|
807
|
-
children: [
|
|
808
|
-
/* @__PURE__ */ jsx2("h3", {
|
|
809
|
-
className: "font-semibold",
|
|
810
|
-
children: "Missing schemas"
|
|
811
|
-
}),
|
|
812
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
813
|
-
className: "text-muted-foreground text-sm",
|
|
814
|
-
children: [
|
|
815
|
-
"Schema inference works best with explicit types. If using",
|
|
816
|
-
" ",
|
|
817
|
-
/* @__PURE__ */ jsx2("code", {
|
|
818
|
-
children: "any"
|
|
819
|
-
}),
|
|
820
|
-
" or dynamic types, you'll see TODO placeholders. Fill them in manually."
|
|
821
|
-
]
|
|
822
|
-
})
|
|
823
|
-
]
|
|
824
|
-
}),
|
|
825
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
826
|
-
className: "card-subtle space-y-2 p-4",
|
|
827
|
-
children: [
|
|
828
|
-
/* @__PURE__ */ jsx2("h3", {
|
|
829
|
-
className: "font-semibold",
|
|
830
|
-
children: "Partial imports"
|
|
831
|
-
}),
|
|
832
|
-
/* @__PURE__ */ jsxs2("p", {
|
|
833
|
-
className: "text-muted-foreground text-sm",
|
|
834
|
-
children: [
|
|
835
|
-
"Some endpoints may not be detected if they use unconventional patterns. Use ",
|
|
836
|
-
/* @__PURE__ */ jsx2("code", {
|
|
837
|
-
children: "--analyze"
|
|
838
|
-
}),
|
|
839
|
-
" to see what was found, then add missing contracts manually."
|
|
840
|
-
]
|
|
841
|
-
})
|
|
842
|
-
]
|
|
843
|
-
})
|
|
844
|
-
]
|
|
845
|
-
})
|
|
846
|
-
]
|
|
847
|
-
}),
|
|
848
|
-
/* @__PURE__ */ jsx2(StudioPrompt, {
|
|
849
|
-
title: "Want evidence-driven migration priorities?",
|
|
850
|
-
body: "Studio clusters product signals into scored patterns, then proposes contract changes and execution-ready work for the highest-impact areas."
|
|
851
|
-
})
|
|
852
|
-
]
|
|
853
|
-
}),
|
|
854
|
-
/* @__PURE__ */ jsxs2("div", {
|
|
855
|
-
className: "flex items-center gap-4 pt-4",
|
|
856
|
-
children: [
|
|
857
|
-
/* @__PURE__ */ jsxs2(Link2, {
|
|
858
|
-
href: "/docs/guides/spec-validation-and-typing",
|
|
859
|
-
className: "btn-primary",
|
|
860
|
-
children: [
|
|
861
|
-
"Next: Spec validation + typing ",
|
|
862
|
-
/* @__PURE__ */ jsx2(ChevronRight, {
|
|
863
|
-
size: 16
|
|
864
|
-
})
|
|
865
|
-
]
|
|
866
|
-
}),
|
|
867
|
-
/* @__PURE__ */ jsx2(Link2, {
|
|
868
|
-
href: "/docs/guides",
|
|
869
|
-
className: "btn-ghost",
|
|
870
|
-
children: "Back to guides"
|
|
871
|
-
})
|
|
872
|
-
]
|
|
873
|
-
})
|
|
874
|
-
]
|
|
875
|
-
});
|
|
876
|
-
}
|
|
877
|
-
export {
|
|
878
|
-
GuideImportExistingCodebasesPage
|
|
879
|
-
};
|
|
133
|
+
});`})]}),e("div",{className:"space-y-3",children:[t("h2",{className:"font-bold text-2xl",children:"6) After importing"}),e("ol",{className:"list-decimal space-y-2 pl-5 text-muted-foreground text-sm",children:[e("li",{children:[t("strong",{children:"Review generated contracts"})," \u2014 Check the TODO placeholders and fill in descriptions, owners, and tags."]}),e("li",{children:[t("strong",{children:"Refine schemas"})," \u2014 Add proper types, validation rules, and error definitions."]}),e("li",{children:[t("strong",{children:"Run validation"})," \u2014"," ",t("code",{children:"contractspec validate"})," to ensure contracts are valid."]}),e("li",{children:[t("strong",{children:"Register and wire handlers"})," \u2014 Connect contracts to your existing business logic."]}),e("li",{children:[t("strong",{children:"Iterate"})," \u2014 The imported contracts are a starting point. Refine them as your spec matures."]})]})]}),e("div",{className:"space-y-3",children:[e("h2",{className:"flex items-center gap-2 font-bold text-2xl",children:[t(i,{size:20,className:"text-yellow-400"}),"Troubleshooting"]}),e("div",{className:"space-y-4",children:[e("div",{className:"card-subtle space-y-2 p-4",children:[t("h3",{className:"font-semibold",children:"Framework not detected"}),e("p",{className:"text-muted-foreground text-sm",children:["Use ",t("code",{children:"--framework <name>"})," to force a specific framework. Check that your entry files follow standard patterns."]})]}),e("div",{className:"card-subtle space-y-2 p-4",children:[t("h3",{className:"font-semibold",children:"Missing schemas"}),e("p",{className:"text-muted-foreground text-sm",children:["Schema inference works best with explicit types. If using"," ",t("code",{children:"any"})," or dynamic types, you'll see TODO placeholders. Fill them in manually."]})]}),e("div",{className:"card-subtle space-y-2 p-4",children:[t("h3",{className:"font-semibold",children:"Partial imports"}),e("p",{className:"text-muted-foreground text-sm",children:["Some endpoints may not be detected if they use unconventional patterns. Use ",t("code",{children:"--analyze"})," to see what was found, then add missing contracts manually."]})]})]})]}),t(d,{title:"Want evidence-driven migration priorities?",body:"Studio clusters product signals into scored patterns, then proposes contract changes and execution-ready work for the highest-impact areas."})]}),e("div",{className:"flex items-center gap-4 pt-4",children:[e(n,{href:"/docs/guides/spec-validation-and-typing",className:"btn-primary",children:["Next: Spec validation + typing ",t(v,{size:16})]}),t(n,{href:"/docs/guides",className:"btn-ghost",children:"Back to guides"})]})]})}export{G as GuideImportExistingCodebasesPage};
|