@contractspec/bundle.library 3.4.3 → 3.5.2
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 +494 -488
- package/CHANGELOG.md +91 -0
- package/dist/application/index.js +8 -8
- package/dist/application/mcp/cliMcp.js +8 -8
- package/dist/application/mcp/contractsMcp.js +8 -8
- package/dist/application/mcp/docsMcp.js +8 -8
- package/dist/application/mcp/index.js +8 -8
- package/dist/application/mcp/internalMcp.js +8 -8
- package/dist/application/mcp/providerRankingMcp.js +8 -8
- package/dist/bundles/LibraryBundle.d.ts +126 -0
- package/dist/bundles/LibraryBundle.js +139 -0
- package/dist/bundles/index.d.ts +1 -0
- package/dist/bundles/index.js +139 -0
- package/dist/components/docs/DocsIndexPage.js +91 -91
- package/dist/components/docs/advanced/AdvancedMCPPage.js +125 -125
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +51 -51
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
- package/dist/components/docs/advanced/index.js +482 -482
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
- package/dist/components/docs/architecture/index.js +748 -748
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +97 -97
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +125 -125
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
- package/dist/components/docs/comparison/index.js +738 -738
- package/dist/components/docs/ecosystem/IntegrationsPage.js +45 -45
- package/dist/components/docs/ecosystem/PluginsPage.js +73 -73
- package/dist/components/docs/ecosystem/RegistryPage.js +37 -37
- package/dist/components/docs/ecosystem/TemplatesPage.js +56 -56
- package/dist/components/docs/ecosystem/index.js +211 -211
- package/dist/components/docs/examples/DocsExamplesPage.js +21 -21
- package/dist/components/docs/examples/index.js +21 -21
- package/dist/components/docs/generated/docs-index.generated.d.ts +6 -6
- package/dist/components/docs/getting-started/CLIPage.js +95 -95
- package/dist/components/docs/getting-started/CompatibilityPage.js +81 -81
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +57 -57
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +61 -61
- package/dist/components/docs/getting-started/HelloWorldPage.js +77 -77
- package/dist/components/docs/getting-started/InstallationPage.js +65 -65
- package/dist/components/docs/getting-started/StartHerePage.js +51 -51
- package/dist/components/docs/getting-started/TroubleshootingPage.js +73 -73
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
- package/dist/components/docs/getting-started/index.js +731 -731
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
- package/dist/components/docs/guides/GuideContractTypesPage.js +232 -232
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +82 -82
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
- package/dist/components/docs/guides/GuidesIndexPage.js +43 -43
- package/dist/components/docs/guides/index.js +976 -976
- package/dist/components/docs/index.js +10792 -10792
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +61 -61
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +49 -49
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +69 -69
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +121 -121
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
- package/dist/components/docs/integrations/IntegrationsResendPage.js +45 -45
- package/dist/components/docs/integrations/IntegrationsS3Page.js +57 -57
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +63 -63
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
- package/dist/components/docs/integrations/IntegrationsStripePage.js +159 -159
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
- package/dist/components/docs/integrations/index.js +1642 -1642
- package/dist/components/docs/intent/ContractFirstApiPage.js +51 -51
- package/dist/components/docs/intent/DeterministicCodegenPage.js +59 -59
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
- package/dist/components/docs/intent/OpenapiAlternativePage.js +91 -91
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
- package/dist/components/docs/intent/index.js +396 -396
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
- package/dist/components/docs/knowledge/index.js +963 -963
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +43 -43
- package/dist/components/docs/libraries/LibrariesContractsPage.js +125 -125
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +35 -35
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +191 -191
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +49 -49
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +87 -87
- package/dist/components/docs/libraries/LibrariesSLOPage.js +47 -47
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +139 -139
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
- package/dist/components/docs/libraries/LibrariesTestingPage.js +49 -49
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +107 -107
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
- package/dist/components/docs/libraries/index.js +1919 -1919
- package/dist/components/docs/manifesto/ManifestoPage.js +79 -79
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +33 -33
- package/dist/components/docs/ops/index.js +92 -92
- package/dist/components/docs/reference/DocsMarkdownContent.js +27 -27
- package/dist/components/docs/reference/DocsReferenceContent.js +34 -34
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +23 -23
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +26 -26
- package/dist/components/docs/reference/DocsReferencePage.js +37 -37
- package/dist/components/docs/reference/index.js +63 -63
- package/dist/components/docs/safety/SafetyAuditingPage.js +161 -161
- package/dist/components/docs/safety/SafetyMigrationsPage.js +169 -169
- package/dist/components/docs/safety/SafetyOverviewPage.js +99 -99
- package/dist/components/docs/safety/SafetyPDPPage.js +137 -137
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +95 -95
- package/dist/components/docs/safety/SafetySigningPage.js +39 -39
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
- package/dist/components/docs/safety/index.js +733 -733
- package/dist/components/docs/shared/StudioPrompt.js +9 -9
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
- package/dist/components/docs/specs/SpecsDataViewsPage.js +119 -119
- package/dist/components/docs/specs/SpecsOverlaysPage.js +171 -171
- package/dist/components/docs/specs/SpecsOverviewPage.js +167 -167
- package/dist/components/docs/specs/SpecsPolicyPage.js +179 -179
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +141 -141
- package/dist/components/docs/specs/index.js +838 -838
- package/dist/components/docs/studio/StudioBYOKPage.js +9 -9
- package/dist/components/docs/studio/StudioDeploymentsPage.js +9 -9
- package/dist/components/docs/studio/StudioGettingStartedPage.js +9 -9
- package/dist/components/docs/studio/StudioIntegrationsPage.js +9 -9
- package/dist/components/docs/studio/StudioOverviewPage.js +33 -33
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +9 -9
- package/dist/components/docs/studio/index.js +78 -78
- package/dist/components/integrations/index.js +209 -209
- package/dist/components/integrations/molecules/IntegrationCard.js +33 -33
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +71 -71
- package/dist/components/integrations/organisms/IntegrationSettings.js +98 -98
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +40 -40
- package/dist/components/legal/PrivacyTemplate.js +477 -477
- package/dist/components/legal/TermsTemplate.js +421 -421
- package/dist/components/legal/index.js +898 -898
- package/dist/components/shared/FeatureGateNotice.js +13 -13
- package/dist/components/shared/index.js +13 -13
- package/dist/components/shell/WorkspaceHeader.js +37 -37
- package/dist/components/shell/WorkspaceProjectShellLayout.js +77 -77
- package/dist/components/shell/WorkspaceShellRenderer.d.ts +17 -0
- package/dist/components/shell/WorkspaceShellRenderer.js +229 -0
- package/dist/components/shell/WorkspaceSidebar.js +27 -27
- package/dist/components/shell/index.d.ts +1 -0
- package/dist/components/shell/index.js +140 -77
- package/dist/components/templates/index.js +272 -272
- package/dist/components/templates/messaging/ConversationList.js +27 -27
- package/dist/components/templates/messaging/MessageComposer.js +27 -27
- package/dist/components/templates/messaging/MessageThread.js +18 -18
- package/dist/components/templates/messaging/MessagingWorkspace.js +65 -65
- package/dist/components/templates/messaging/index.js +65 -65
- package/dist/components/templates/recipes/LanguageSwitcher.js +5 -5
- package/dist/components/templates/recipes/RecipeCard.js +26 -26
- package/dist/components/templates/recipes/RecipeDetail.js +33 -33
- package/dist/components/templates/recipes/RecipeList.js +80 -80
- package/dist/components/templates/recipes/index.js +80 -80
- package/dist/components/templates/todos/FilterBar.js +39 -39
- package/dist/components/templates/todos/TaskForm.js +43 -43
- package/dist/components/templates/todos/TaskItem.js +30 -30
- package/dist/components/templates/todos/TaskList.js +127 -127
- package/dist/components/templates/todos/index.js +127 -127
- package/dist/index.js +12324 -12261
- package/dist/infrastructure/elysia/index.js +8 -8
- package/dist/infrastructure/elysia/logger.js +8 -8
- package/dist/infrastructure/index.js +8 -8
- package/dist/libs/posthog/client.js +2 -2
- package/dist/node/application/index.js +8 -8
- package/dist/node/application/mcp/cliMcp.js +8 -8
- package/dist/node/application/mcp/contractsMcp.js +8 -8
- package/dist/node/application/mcp/docsMcp.js +8 -8
- package/dist/node/application/mcp/index.js +8 -8
- package/dist/node/application/mcp/internalMcp.js +8 -8
- package/dist/node/application/mcp/providerRankingMcp.js +8 -8
- package/dist/node/bundles/LibraryBundle.js +138 -0
- package/dist/node/bundles/index.js +138 -0
- package/dist/node/components/docs/DocsIndexPage.js +91 -91
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +125 -125
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +49 -49
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +51 -51
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +35 -35
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +177 -177
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +45 -45
- package/dist/node/components/docs/advanced/index.js +482 -482
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +107 -107
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +73 -73
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +117 -117
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +175 -175
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +71 -71
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +205 -205
- package/dist/node/components/docs/architecture/index.js +748 -748
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +117 -117
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +111 -111
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +117 -117
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +97 -97
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +125 -125
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +171 -171
- package/dist/node/components/docs/comparison/index.js +738 -738
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +45 -45
- package/dist/node/components/docs/ecosystem/PluginsPage.js +73 -73
- package/dist/node/components/docs/ecosystem/RegistryPage.js +37 -37
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +56 -56
- package/dist/node/components/docs/ecosystem/index.js +211 -211
- package/dist/node/components/docs/examples/DocsExamplesPage.js +21 -21
- package/dist/node/components/docs/examples/index.js +21 -21
- package/dist/node/components/docs/getting-started/CLIPage.js +95 -95
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +81 -81
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +57 -57
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +61 -61
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +77 -77
- package/dist/node/components/docs/getting-started/InstallationPage.js +65 -65
- package/dist/node/components/docs/getting-started/StartHerePage.js +51 -51
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +73 -73
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +171 -171
- package/dist/node/components/docs/getting-started/index.js +731 -731
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +80 -80
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +232 -232
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +82 -82
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +84 -84
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +324 -324
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +107 -107
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +78 -78
- package/dist/node/components/docs/guides/GuidesIndexPage.js +43 -43
- package/dist/node/components/docs/guides/index.js +976 -976
- package/dist/node/components/docs/index.js +10792 -10792
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +17 -17
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +47 -47
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +61 -61
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +49 -49
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +33 -33
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +65 -65
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +69 -69
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +65 -65
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +313 -313
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +101 -101
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +121 -121
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +49 -49
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +45 -45
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +57 -57
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +63 -63
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +139 -139
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +159 -159
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +61 -61
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +63 -63
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +65 -65
- package/dist/node/components/docs/integrations/index.js +1642 -1642
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +51 -51
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +59 -59
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +85 -85
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +91 -91
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +59 -59
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +51 -51
- package/dist/node/components/docs/intent/index.js +396 -396
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +371 -371
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +79 -79
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +185 -185
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +187 -187
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +141 -141
- package/dist/node/components/docs/knowledge/index.js +963 -963
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +85 -85
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +63 -63
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +33 -33
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +43 -43
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +125 -125
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +45 -45
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +69 -69
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +79 -79
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +129 -129
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +73 -73
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +35 -35
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +43 -43
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +53 -53
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +45 -45
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +191 -191
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +47 -47
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +53 -53
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +87 -87
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +47 -47
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +139 -139
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +57 -57
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +49 -49
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +107 -107
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +35 -35
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +89 -89
- package/dist/node/components/docs/libraries/index.js +1919 -1919
- package/dist/node/components/docs/manifesto/ManifestoPage.js +79 -79
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +59 -59
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +33 -33
- package/dist/node/components/docs/ops/index.js +92 -92
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +27 -27
- package/dist/node/components/docs/reference/DocsReferenceContent.js +34 -34
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +23 -23
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +26 -26
- package/dist/node/components/docs/reference/DocsReferencePage.js +37 -37
- package/dist/node/components/docs/reference/index.js +63 -63
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +161 -161
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +169 -169
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +99 -99
- package/dist/node/components/docs/safety/SafetyPDPPage.js +137 -137
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +95 -95
- package/dist/node/components/docs/safety/SafetySigningPage.js +39 -39
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +33 -33
- package/dist/node/components/docs/safety/index.js +733 -733
- package/dist/node/components/docs/shared/StudioPrompt.js +9 -9
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +61 -61
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +119 -119
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +171 -171
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +167 -167
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +179 -179
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +141 -141
- package/dist/node/components/docs/specs/index.js +838 -838
- package/dist/node/components/docs/studio/StudioBYOKPage.js +9 -9
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +9 -9
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +9 -9
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +9 -9
- package/dist/node/components/docs/studio/StudioOverviewPage.js +33 -33
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +9 -9
- package/dist/node/components/docs/studio/index.js +78 -78
- package/dist/node/components/integrations/index.js +209 -209
- package/dist/node/components/integrations/molecules/IntegrationCard.js +33 -33
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +71 -71
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +98 -98
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +40 -40
- package/dist/node/components/legal/PrivacyTemplate.js +477 -477
- package/dist/node/components/legal/TermsTemplate.js +421 -421
- package/dist/node/components/legal/index.js +898 -898
- package/dist/node/components/shared/FeatureGateNotice.js +13 -13
- package/dist/node/components/shared/index.js +13 -13
- package/dist/node/components/shell/WorkspaceHeader.js +37 -37
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +77 -77
- package/dist/node/components/shell/WorkspaceShellRenderer.js +228 -0
- package/dist/node/components/shell/WorkspaceSidebar.js +27 -27
- package/dist/node/components/shell/index.js +140 -77
- package/dist/node/components/templates/index.js +272 -272
- package/dist/node/components/templates/messaging/ConversationList.js +27 -27
- package/dist/node/components/templates/messaging/MessageComposer.js +27 -27
- package/dist/node/components/templates/messaging/MessageThread.js +18 -18
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +65 -65
- package/dist/node/components/templates/messaging/index.js +65 -65
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +5 -5
- package/dist/node/components/templates/recipes/RecipeCard.js +26 -26
- package/dist/node/components/templates/recipes/RecipeDetail.js +33 -33
- package/dist/node/components/templates/recipes/RecipeList.js +80 -80
- package/dist/node/components/templates/recipes/index.js +80 -80
- package/dist/node/components/templates/todos/FilterBar.js +39 -39
- package/dist/node/components/templates/todos/TaskForm.js +43 -43
- package/dist/node/components/templates/todos/TaskItem.js +30 -30
- package/dist/node/components/templates/todos/TaskList.js +127 -127
- package/dist/node/components/templates/todos/index.js +127 -127
- package/dist/node/index.js +12324 -12261
- package/dist/node/infrastructure/elysia/index.js +8 -8
- package/dist/node/infrastructure/elysia/logger.js +8 -8
- package/dist/node/infrastructure/index.js +8 -8
- package/dist/node/libs/posthog/client.js +2 -2
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +3 -3
- package/dist/node/presentation/features/atoms/index.js +3 -3
- package/dist/node/presentation/features/index.js +915 -915
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +101 -101
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +23 -23
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
- package/dist/node/presentation/features/molecules/index.js +139 -139
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +57 -57
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +7 -7
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +7 -7
- package/dist/node/presentation/features/organisms/index.js +275 -275
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +3 -3
- package/dist/presentation/features/atoms/FeatureIcon/index.js +3 -3
- package/dist/presentation/features/atoms/index.js +3 -3
- package/dist/presentation/features/index.js +915 -915
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +101 -101
- package/dist/presentation/features/molecules/FeatureCard/index.js +101 -101
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +15 -15
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +15 -15
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +23 -23
- package/dist/presentation/features/molecules/FeatureFilters/index.js +23 -23
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +67 -67
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +67 -67
- package/dist/presentation/features/molecules/index.js +139 -139
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +57 -57
- package/dist/presentation/features/organisms/FeatureDetail/index.js +57 -57
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +183 -183
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +183 -183
- package/dist/presentation/features/organisms/FeatureEventsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureFormsList.js +7 -7
- package/dist/presentation/features/organisms/FeatureOperationsList.js +7 -7
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +7 -7
- package/dist/presentation/features/organisms/index.js +275 -275
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +126 -126
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +126 -126
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +112 -112
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +112 -112
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +126 -126
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +126 -126
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +110 -110
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +110 -110
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +16 -16
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +66 -66
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +66 -66
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +112 -112
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +112 -112
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +16 -16
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +16 -16
- package/package.json +71 -22
- package/src/bundles/LibraryBundle.ts +152 -0
- package/src/bundles/index.ts +1 -0
- package/src/components/docs/generated/docs-index._common.json +441 -90
- package/src/components/docs/generated/docs-index.agent-console.json +1 -1
- package/src/components/docs/generated/docs-index.ai-chat.json +1 -1
- package/src/components/docs/generated/docs-index.ai-support-bot.json +1 -1
- package/src/components/docs/generated/docs-index.analytics-dashboard.json +1 -1
- package/src/components/docs/generated/docs-index.app-config.json +1 -1
- package/src/components/docs/generated/docs-index.audit-trail.json +1 -1
- package/src/components/docs/generated/docs-index.calendar-google.json +1 -1
- package/src/components/docs/generated/docs-index.content-generation.json +1 -1
- package/src/components/docs/generated/docs-index.crm-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.email-gmail.json +1 -1
- package/src/components/docs/generated/docs-index.feature-flags.json +1 -1
- package/src/components/docs/generated/docs-index.files.json +1 -1
- package/src/components/docs/generated/docs-index.generated.ts +7 -7
- package/src/components/docs/generated/docs-index.health.json +1 -1
- package/src/components/docs/generated/docs-index.identity-rbac.json +1 -1
- package/src/components/docs/generated/docs-index.in-app-docs.json +1 -1
- package/src/components/docs/generated/docs-index.integration-hub.json +1 -1
- package/src/components/docs/generated/docs-index.integration-posthog.json +1 -1
- package/src/components/docs/generated/docs-index.integration-stripe.json +1 -1
- package/src/components/docs/generated/docs-index.integration-supabase.json +1 -1
- package/src/components/docs/generated/docs-index.jobs.json +1 -1
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +1 -1
- package/src/components/docs/generated/docs-index.knowledge-canon.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ambient-coach.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-duo-drills.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-quest-challenges.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-registry.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-coaching.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-gamified.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-onboarding.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey-ui-shared.json +1 -1
- package/src/components/docs/generated/docs-index.learning-journey.json +1 -1
- package/src/components/docs/generated/docs-index.learning-patterns.json +1 -1
- package/src/components/docs/generated/docs-index.lifecycle-cli.json +1 -1
- package/src/components/docs/generated/docs-index.lifecycle-dashboard.json +1 -1
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +1 -1
- package/src/components/docs/generated/docs-index.manifest.json +2 -2
- package/src/components/docs/generated/docs-index.marketplace.json +1 -1
- package/src/components/docs/generated/docs-index.meeting-recorder-providers.json +1 -1
- package/src/components/docs/generated/docs-index.meeting-recorder.json +1 -1
- package/src/components/docs/generated/docs-index.metrics.json +1 -1
- package/src/components/docs/generated/docs-index.minimal.json +1 -1
- package/src/components/docs/generated/docs-index.notifications.json +1 -1
- package/src/components/docs/generated/docs-index.openbanking-powens.json +1 -1
- package/src/components/docs/generated/docs-index.openbanking.json +1 -1
- package/src/components/docs/generated/docs-index.opencode-cli.json +1 -1
- package/src/components/docs/generated/docs-index.personalization.json +1 -1
- package/src/components/docs/generated/docs-index.platform-acp.json +1 -1
- package/src/components/docs/generated/docs-index.platform-agent.json +1 -1
- package/src/components/docs/generated/docs-index.platform-context.json +1 -1
- package/src/components/docs/generated/docs-index.platform-database.json +1 -1
- package/src/components/docs/generated/docs-index.platform-docs.json +1 -1
- package/src/components/docs/generated/docs-index.platform-integrations.json +1 -1
- package/src/components/docs/generated/docs-index.platform-knowledge.json +1 -1
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +1 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +1 -1
- package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
- package/src/components/docs/generated/docs-index.product-intent.json +1 -1
- package/src/components/docs/generated/docs-index.project-management-sync.json +1 -1
- package/src/components/docs/generated/docs-index.saas-boilerplate.json +1 -1
- package/src/components/docs/generated/docs-index.service-business-os.json +1 -1
- package/src/components/docs/generated/docs-index.team-hub.json +1 -1
- package/src/components/docs/generated/docs-index.unknown.json +1 -1
- package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +1 -1
- package/src/components/docs/generated/docs-index.video-api-showcase.json +1 -1
- package/src/components/docs/generated/docs-index.video-docs-terminal.json +1 -1
- package/src/components/docs/generated/docs-index.video-marketing-clip.json +1 -1
- package/src/components/docs/generated/docs-index.voice-providers.json +1 -1
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +1 -1
- package/src/components/docs/generated/docs-index.workflow-system.json +1 -1
- package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
- package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +1 -1
- package/src/components/shell/WorkspaceShellRenderer.tsx +90 -0
- package/src/components/shell/index.ts +1 -0
|
@@ -198,70 +198,70 @@ import { SeoOptimizer } from "@contractspec/lib.content-gen/seo";
|
|
|
198
198
|
import { CodeBlock } from "@contractspec/lib.design-system";
|
|
199
199
|
import Link from "@contractspec/lib.ui-link";
|
|
200
200
|
import { ChevronRight } from "lucide-react";
|
|
201
|
-
import {
|
|
201
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
202
202
|
var metadata = new SeoOptimizer().optimize(contractFirstApiBrief2);
|
|
203
203
|
function ContractFirstApiPage() {
|
|
204
|
-
return /* @__PURE__ */
|
|
204
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
205
205
|
className: "space-y-8",
|
|
206
206
|
children: [
|
|
207
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ jsxs("div", {
|
|
208
208
|
className: "space-y-3",
|
|
209
209
|
children: [
|
|
210
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ jsx("h1", {
|
|
211
211
|
className: "text-4xl font-bold",
|
|
212
212
|
children: contractFirstApiBrief2.title
|
|
213
|
-
}
|
|
214
|
-
/* @__PURE__ */
|
|
213
|
+
}),
|
|
214
|
+
/* @__PURE__ */ jsx("p", {
|
|
215
215
|
className: "text-muted-foreground text-lg",
|
|
216
216
|
children: contractFirstApiBrief2.summary
|
|
217
|
-
}
|
|
217
|
+
})
|
|
218
218
|
]
|
|
219
|
-
}
|
|
220
|
-
/* @__PURE__ */
|
|
219
|
+
}),
|
|
220
|
+
/* @__PURE__ */ jsxs("div", {
|
|
221
221
|
className: "card-subtle space-y-4 p-6",
|
|
222
222
|
children: [
|
|
223
|
-
/* @__PURE__ */
|
|
223
|
+
/* @__PURE__ */ jsx("h2", {
|
|
224
224
|
className: "text-2xl font-bold",
|
|
225
225
|
children: "Problems Solved"
|
|
226
|
-
}
|
|
227
|
-
/* @__PURE__ */
|
|
226
|
+
}),
|
|
227
|
+
/* @__PURE__ */ jsx("ul", {
|
|
228
228
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
229
|
-
children: contractFirstApiBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
229
|
+
children: contractFirstApiBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx("li", {
|
|
230
230
|
children: problem
|
|
231
|
-
}, index
|
|
232
|
-
}
|
|
231
|
+
}, index))
|
|
232
|
+
})
|
|
233
233
|
]
|
|
234
|
-
}
|
|
235
|
-
/* @__PURE__ */
|
|
234
|
+
}),
|
|
235
|
+
/* @__PURE__ */ jsxs("div", {
|
|
236
236
|
className: "card-subtle space-y-4 p-6",
|
|
237
237
|
children: [
|
|
238
|
-
/* @__PURE__ */
|
|
238
|
+
/* @__PURE__ */ jsx("h2", {
|
|
239
239
|
className: "text-2xl font-bold",
|
|
240
240
|
children: "Solutions"
|
|
241
|
-
}
|
|
242
|
-
/* @__PURE__ */
|
|
241
|
+
}),
|
|
242
|
+
/* @__PURE__ */ jsx("ul", {
|
|
243
243
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
244
|
-
children: contractFirstApiBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
244
|
+
children: contractFirstApiBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx("li", {
|
|
245
245
|
children: solution
|
|
246
|
-
}, index
|
|
247
|
-
}
|
|
246
|
+
}, index))
|
|
247
|
+
})
|
|
248
248
|
]
|
|
249
|
-
}
|
|
250
|
-
/* @__PURE__ */
|
|
249
|
+
}),
|
|
250
|
+
/* @__PURE__ */ jsxs("div", {
|
|
251
251
|
className: "space-y-6",
|
|
252
252
|
children: [
|
|
253
|
-
/* @__PURE__ */
|
|
253
|
+
/* @__PURE__ */ jsxs("div", {
|
|
254
254
|
className: "space-y-3",
|
|
255
255
|
children: [
|
|
256
|
-
/* @__PURE__ */
|
|
256
|
+
/* @__PURE__ */ jsx("h2", {
|
|
257
257
|
className: "text-2xl font-bold",
|
|
258
258
|
children: "Quick Start"
|
|
259
|
-
}
|
|
260
|
-
/* @__PURE__ */
|
|
259
|
+
}),
|
|
260
|
+
/* @__PURE__ */ jsx("p", {
|
|
261
261
|
className: "text-muted-foreground text-sm",
|
|
262
262
|
children: "Define your first API contract and generate consistent implementations."
|
|
263
|
-
}
|
|
264
|
-
/* @__PURE__ */
|
|
263
|
+
}),
|
|
264
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
265
265
|
language: "typescript",
|
|
266
266
|
filename: "src/contracts/user-create.operation.ts",
|
|
267
267
|
code: `import { defineOperation } from '@contractspec/lib.contracts-spec/operations';
|
|
@@ -299,53 +299,53 @@ export const CreateUserOperation = defineOperation({
|
|
|
299
299
|
description: 'Create a new user account with email and password',
|
|
300
300
|
},
|
|
301
301
|
});`
|
|
302
|
-
}
|
|
302
|
+
})
|
|
303
303
|
]
|
|
304
|
-
}
|
|
305
|
-
/* @__PURE__ */
|
|
304
|
+
}),
|
|
305
|
+
/* @__PURE__ */ jsxs("div", {
|
|
306
306
|
className: "space-y-3",
|
|
307
307
|
children: [
|
|
308
|
-
/* @__PURE__ */
|
|
308
|
+
/* @__PURE__ */ jsx("h2", {
|
|
309
309
|
className: "text-2xl font-bold",
|
|
310
310
|
children: "Generate OpenAPI"
|
|
311
|
-
}
|
|
312
|
-
/* @__PURE__ */
|
|
311
|
+
}),
|
|
312
|
+
/* @__PURE__ */ jsx("p", {
|
|
313
313
|
className: "text-muted-foreground text-sm",
|
|
314
314
|
children: "Export OpenAPI documentation directly from your contracts."
|
|
315
|
-
}
|
|
316
|
-
/* @__PURE__ */
|
|
315
|
+
}),
|
|
316
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
317
317
|
language: "bash",
|
|
318
318
|
filename: "export-openapi",
|
|
319
319
|
code: `contractspec openapi export \\
|
|
320
320
|
--registry ./src/contracts/registry.ts \\
|
|
321
321
|
--out ./openapi.json`
|
|
322
|
-
}
|
|
322
|
+
})
|
|
323
323
|
]
|
|
324
|
-
}
|
|
324
|
+
})
|
|
325
325
|
]
|
|
326
|
-
}
|
|
327
|
-
/* @__PURE__ */
|
|
326
|
+
}),
|
|
327
|
+
/* @__PURE__ */ jsxs("div", {
|
|
328
328
|
className: "flex items-center gap-4 pt-4",
|
|
329
329
|
children: [
|
|
330
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ jsxs(Link, {
|
|
331
331
|
href: "/docs/guides/nextjs-one-endpoint",
|
|
332
332
|
className: "btn-primary",
|
|
333
333
|
children: [
|
|
334
334
|
"Next.js Guide ",
|
|
335
|
-
/* @__PURE__ */
|
|
335
|
+
/* @__PURE__ */ jsx(ChevronRight, {
|
|
336
336
|
size: 16
|
|
337
|
-
}
|
|
337
|
+
})
|
|
338
338
|
]
|
|
339
|
-
}
|
|
340
|
-
/* @__PURE__ */
|
|
339
|
+
}),
|
|
340
|
+
/* @__PURE__ */ jsx(Link, {
|
|
341
341
|
href: "/docs/intent/spec-driven-development",
|
|
342
342
|
className: "btn-ghost",
|
|
343
343
|
children: "Spec-driven Development"
|
|
344
|
-
}
|
|
344
|
+
})
|
|
345
345
|
]
|
|
346
|
-
}
|
|
346
|
+
})
|
|
347
347
|
]
|
|
348
|
-
}
|
|
348
|
+
});
|
|
349
349
|
}
|
|
350
350
|
|
|
351
351
|
// src/components/docs/intent/SpecDrivenDevelopmentPage.tsx
|
|
@@ -354,70 +354,70 @@ import { SeoOptimizer as SeoOptimizer2 } from "@contractspec/lib.content-gen/seo
|
|
|
354
354
|
import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
|
|
355
355
|
import Link2 from "@contractspec/lib.ui-link";
|
|
356
356
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
357
|
-
import {
|
|
357
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
358
358
|
var metadata2 = new SeoOptimizer2().optimize(specDrivenDevelopmentBrief2);
|
|
359
359
|
function SpecDrivenDevelopmentPage() {
|
|
360
|
-
return /* @__PURE__ */
|
|
360
|
+
return /* @__PURE__ */ jsxs2("div", {
|
|
361
361
|
className: "space-y-8",
|
|
362
362
|
children: [
|
|
363
|
-
/* @__PURE__ */
|
|
363
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
364
364
|
className: "space-y-3",
|
|
365
365
|
children: [
|
|
366
|
-
/* @__PURE__ */
|
|
366
|
+
/* @__PURE__ */ jsx2("h1", {
|
|
367
367
|
className: "text-4xl font-bold",
|
|
368
368
|
children: specDrivenDevelopmentBrief2.title
|
|
369
|
-
}
|
|
370
|
-
/* @__PURE__ */
|
|
369
|
+
}),
|
|
370
|
+
/* @__PURE__ */ jsx2("p", {
|
|
371
371
|
className: "text-muted-foreground text-lg",
|
|
372
372
|
children: specDrivenDevelopmentBrief2.summary
|
|
373
|
-
}
|
|
373
|
+
})
|
|
374
374
|
]
|
|
375
|
-
}
|
|
376
|
-
/* @__PURE__ */
|
|
375
|
+
}),
|
|
376
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
377
377
|
className: "card-subtle space-y-4 p-6",
|
|
378
378
|
children: [
|
|
379
|
-
/* @__PURE__ */
|
|
379
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
380
380
|
className: "text-2xl font-bold",
|
|
381
381
|
children: "Why Spec-driven?"
|
|
382
|
-
}
|
|
383
|
-
/* @__PURE__ */
|
|
382
|
+
}),
|
|
383
|
+
/* @__PURE__ */ jsx2("ul", {
|
|
384
384
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
385
|
-
children: specDrivenDevelopmentBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
385
|
+
children: specDrivenDevelopmentBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx2("li", {
|
|
386
386
|
children: problem
|
|
387
|
-
}, index
|
|
388
|
-
}
|
|
387
|
+
}, index))
|
|
388
|
+
})
|
|
389
389
|
]
|
|
390
|
-
}
|
|
391
|
-
/* @__PURE__ */
|
|
390
|
+
}),
|
|
391
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
392
392
|
className: "card-subtle space-y-4 p-6",
|
|
393
393
|
children: [
|
|
394
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
395
395
|
className: "text-2xl font-bold",
|
|
396
396
|
children: "Benefits"
|
|
397
|
-
}
|
|
398
|
-
/* @__PURE__ */
|
|
397
|
+
}),
|
|
398
|
+
/* @__PURE__ */ jsx2("ul", {
|
|
399
399
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
400
|
-
children: specDrivenDevelopmentBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
400
|
+
children: specDrivenDevelopmentBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx2("li", {
|
|
401
401
|
children: solution
|
|
402
|
-
}, index
|
|
403
|
-
}
|
|
402
|
+
}, index))
|
|
403
|
+
})
|
|
404
404
|
]
|
|
405
|
-
}
|
|
406
|
-
/* @__PURE__ */
|
|
405
|
+
}),
|
|
406
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
407
407
|
className: "space-y-6",
|
|
408
408
|
children: [
|
|
409
|
-
/* @__PURE__ */
|
|
409
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
410
410
|
className: "space-y-3",
|
|
411
411
|
children: [
|
|
412
|
-
/* @__PURE__ */
|
|
412
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
413
413
|
className: "text-2xl font-bold",
|
|
414
414
|
children: "Feature Specification Example"
|
|
415
|
-
}
|
|
416
|
-
/* @__PURE__ */
|
|
415
|
+
}),
|
|
416
|
+
/* @__PURE__ */ jsx2("p", {
|
|
417
417
|
className: "text-muted-foreground text-sm",
|
|
418
418
|
children: "Define a complete feature with operations, events, and data models."
|
|
419
|
-
}
|
|
420
|
-
/* @__PURE__ */
|
|
419
|
+
}),
|
|
420
|
+
/* @__PURE__ */ jsx2(CodeBlock2, {
|
|
421
421
|
language: "typescript",
|
|
422
422
|
filename: "src/contracts/user-management.feature.ts",
|
|
423
423
|
code: `import { defineFeature } from '@contractspec/lib.contracts-spec/features';
|
|
@@ -493,53 +493,53 @@ export const UserManagementFeature = defineFeature({
|
|
|
493
493
|
description: 'Complete user management with operations and events',
|
|
494
494
|
},
|
|
495
495
|
});`
|
|
496
|
-
}
|
|
496
|
+
})
|
|
497
497
|
]
|
|
498
|
-
}
|
|
499
|
-
/* @__PURE__ */
|
|
498
|
+
}),
|
|
499
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
500
500
|
className: "space-y-3",
|
|
501
501
|
children: [
|
|
502
|
-
/* @__PURE__ */
|
|
502
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
503
503
|
className: "text-2xl font-bold",
|
|
504
504
|
children: "Generate Type-safe Implementations"
|
|
505
|
-
}
|
|
506
|
-
/* @__PURE__ */
|
|
505
|
+
}),
|
|
506
|
+
/* @__PURE__ */ jsx2("p", {
|
|
507
507
|
className: "text-muted-foreground text-sm",
|
|
508
508
|
children: "Generate validation, types, and API handlers from your feature."
|
|
509
|
-
}
|
|
510
|
-
/* @__PURE__ */
|
|
509
|
+
}),
|
|
510
|
+
/* @__PURE__ */ jsx2(CodeBlock2, {
|
|
511
511
|
language: "bash",
|
|
512
512
|
filename: "generate-from-feature",
|
|
513
513
|
code: `contractspec generate \\
|
|
514
514
|
--input ./src/contracts/user-management.feature.ts \\
|
|
515
515
|
--output ./generated/user-management`
|
|
516
|
-
}
|
|
516
|
+
})
|
|
517
517
|
]
|
|
518
|
-
}
|
|
518
|
+
})
|
|
519
519
|
]
|
|
520
|
-
}
|
|
521
|
-
/* @__PURE__ */
|
|
520
|
+
}),
|
|
521
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
522
522
|
className: "flex items-center gap-4 pt-4",
|
|
523
523
|
children: [
|
|
524
|
-
/* @__PURE__ */
|
|
524
|
+
/* @__PURE__ */ jsxs2(Link2, {
|
|
525
525
|
href: "/docs/guides/spec-validation-and-typing",
|
|
526
526
|
className: "btn-primary",
|
|
527
527
|
children: [
|
|
528
528
|
"Type Safety Guide ",
|
|
529
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ jsx2(ChevronRight2, {
|
|
530
530
|
size: 16
|
|
531
|
-
}
|
|
531
|
+
})
|
|
532
532
|
]
|
|
533
|
-
}
|
|
534
|
-
/* @__PURE__ */
|
|
533
|
+
}),
|
|
534
|
+
/* @__PURE__ */ jsx2(Link2, {
|
|
535
535
|
href: "/docs/intent/deterministic-codegen",
|
|
536
536
|
className: "btn-ghost",
|
|
537
537
|
children: "Deterministic Codegen"
|
|
538
|
-
}
|
|
538
|
+
})
|
|
539
539
|
]
|
|
540
|
-
}
|
|
540
|
+
})
|
|
541
541
|
]
|
|
542
|
-
}
|
|
542
|
+
});
|
|
543
543
|
}
|
|
544
544
|
|
|
545
545
|
// src/components/docs/intent/DeterministicCodegenPage.tsx
|
|
@@ -548,70 +548,70 @@ import { SeoOptimizer as SeoOptimizer3 } from "@contractspec/lib.content-gen/seo
|
|
|
548
548
|
import { CodeBlock as CodeBlock3 } from "@contractspec/lib.design-system";
|
|
549
549
|
import Link3 from "@contractspec/lib.ui-link";
|
|
550
550
|
import { ChevronRight as ChevronRight3 } from "lucide-react";
|
|
551
|
-
import {
|
|
551
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
552
552
|
var metadata3 = new SeoOptimizer3().optimize(deterministicCodegenBrief2);
|
|
553
553
|
function DeterministicCodegenPage() {
|
|
554
|
-
return /* @__PURE__ */
|
|
554
|
+
return /* @__PURE__ */ jsxs3("div", {
|
|
555
555
|
className: "space-y-8",
|
|
556
556
|
children: [
|
|
557
|
-
/* @__PURE__ */
|
|
557
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
558
558
|
className: "space-y-3",
|
|
559
559
|
children: [
|
|
560
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ jsx3("h1", {
|
|
561
561
|
className: "text-4xl font-bold",
|
|
562
562
|
children: deterministicCodegenBrief2.title
|
|
563
|
-
}
|
|
564
|
-
/* @__PURE__ */
|
|
563
|
+
}),
|
|
564
|
+
/* @__PURE__ */ jsx3("p", {
|
|
565
565
|
className: "text-muted-foreground text-lg",
|
|
566
566
|
children: deterministicCodegenBrief2.summary
|
|
567
|
-
}
|
|
567
|
+
})
|
|
568
568
|
]
|
|
569
|
-
}
|
|
570
|
-
/* @__PURE__ */
|
|
569
|
+
}),
|
|
570
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
571
571
|
className: "card-subtle space-y-4 p-6",
|
|
572
572
|
children: [
|
|
573
|
-
/* @__PURE__ */
|
|
573
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
574
574
|
className: "text-2xl font-bold",
|
|
575
575
|
children: "Regeneration Challenges"
|
|
576
|
-
}
|
|
577
|
-
/* @__PURE__ */
|
|
576
|
+
}),
|
|
577
|
+
/* @__PURE__ */ jsx3("ul", {
|
|
578
578
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
579
|
-
children: deterministicCodegenBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
579
|
+
children: deterministicCodegenBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx3("li", {
|
|
580
580
|
children: problem
|
|
581
|
-
}, index
|
|
582
|
-
}
|
|
581
|
+
}, index))
|
|
582
|
+
})
|
|
583
583
|
]
|
|
584
|
-
}
|
|
585
|
-
/* @__PURE__ */
|
|
584
|
+
}),
|
|
585
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
586
586
|
className: "card-subtle space-y-4 p-6",
|
|
587
587
|
children: [
|
|
588
|
-
/* @__PURE__ */
|
|
588
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
589
589
|
className: "text-2xl font-bold",
|
|
590
590
|
children: "Deterministic Solutions"
|
|
591
|
-
}
|
|
592
|
-
/* @__PURE__ */
|
|
591
|
+
}),
|
|
592
|
+
/* @__PURE__ */ jsx3("ul", {
|
|
593
593
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
594
|
-
children: deterministicCodegenBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
594
|
+
children: deterministicCodegenBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx3("li", {
|
|
595
595
|
children: solution
|
|
596
|
-
}, index
|
|
597
|
-
}
|
|
596
|
+
}, index))
|
|
597
|
+
})
|
|
598
598
|
]
|
|
599
|
-
}
|
|
600
|
-
/* @__PURE__ */
|
|
599
|
+
}),
|
|
600
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
601
601
|
className: "space-y-6",
|
|
602
602
|
children: [
|
|
603
|
-
/* @__PURE__ */
|
|
603
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
604
604
|
className: "space-y-3",
|
|
605
605
|
children: [
|
|
606
|
-
/* @__PURE__ */
|
|
606
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
607
607
|
className: "text-2xl font-bold",
|
|
608
608
|
children: "Protected Zones"
|
|
609
|
-
}
|
|
610
|
-
/* @__PURE__ */
|
|
609
|
+
}),
|
|
610
|
+
/* @__PURE__ */ jsx3("p", {
|
|
611
611
|
className: "text-muted-foreground text-sm",
|
|
612
612
|
children: "Separate generated code from hand-written business logic with clear boundaries."
|
|
613
|
-
}
|
|
614
|
-
/* @__PURE__ */
|
|
613
|
+
}),
|
|
614
|
+
/* @__PURE__ */ jsx3(CodeBlock3, {
|
|
615
615
|
language: "typescript",
|
|
616
616
|
filename: "src/handlers/user-handlers.ts",
|
|
617
617
|
code: `// Hand-written business logic (protected from regeneration)
|
|
@@ -652,21 +652,21 @@ export const createUserHandler = wrapOperationHandler(
|
|
|
652
652
|
errorMapper: mapToStandardErrors,
|
|
653
653
|
}
|
|
654
654
|
);`
|
|
655
|
-
}
|
|
655
|
+
})
|
|
656
656
|
]
|
|
657
|
-
}
|
|
658
|
-
/* @__PURE__ */
|
|
657
|
+
}),
|
|
658
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
659
659
|
className: "space-y-3",
|
|
660
660
|
children: [
|
|
661
|
-
/* @__PURE__ */
|
|
661
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
662
662
|
className: "text-2xl font-bold",
|
|
663
663
|
children: "Incremental Regeneration"
|
|
664
|
-
}
|
|
665
|
-
/* @__PURE__ */
|
|
664
|
+
}),
|
|
665
|
+
/* @__PURE__ */ jsx3("p", {
|
|
666
666
|
className: "text-muted-foreground text-sm",
|
|
667
667
|
children: "Regenerate only what changed while preserving custom logic."
|
|
668
|
-
}
|
|
669
|
-
/* @__PURE__ */
|
|
668
|
+
}),
|
|
669
|
+
/* @__PURE__ */ jsx3(CodeBlock3, {
|
|
670
670
|
language: "bash",
|
|
671
671
|
filename: "incremental-regen",
|
|
672
672
|
code: `contractspec generate \\
|
|
@@ -674,53 +674,53 @@ export const createUserHandler = wrapOperationHandler(
|
|
|
674
674
|
--preserve-zones ./src/handlers/*.ts \\
|
|
675
675
|
--input ./src/contracts/ \\
|
|
676
676
|
--output ./generated/`
|
|
677
|
-
}
|
|
677
|
+
})
|
|
678
678
|
]
|
|
679
|
-
}
|
|
680
|
-
/* @__PURE__ */
|
|
679
|
+
}),
|
|
680
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
681
681
|
className: "space-y-3",
|
|
682
682
|
children: [
|
|
683
|
-
/* @__PURE__ */
|
|
683
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
684
684
|
className: "text-2xl font-bold",
|
|
685
685
|
children: "Conflict Detection"
|
|
686
|
-
}
|
|
687
|
-
/* @__PURE__ */
|
|
686
|
+
}),
|
|
687
|
+
/* @__PURE__ */ jsx3("p", {
|
|
688
688
|
className: "text-muted-foreground text-sm",
|
|
689
689
|
children: "Automatically detect and report conflicts during regeneration."
|
|
690
|
-
}
|
|
691
|
-
/* @__PURE__ */
|
|
690
|
+
}),
|
|
691
|
+
/* @__PURE__ */ jsx3(CodeBlock3, {
|
|
692
692
|
language: "bash",
|
|
693
693
|
filename: "check-conflicts",
|
|
694
694
|
code: `contractspec generate \\
|
|
695
695
|
--check-conflicts \\
|
|
696
696
|
--report-conflicts ./conflicts.json`
|
|
697
|
-
}
|
|
697
|
+
})
|
|
698
698
|
]
|
|
699
|
-
}
|
|
699
|
+
})
|
|
700
700
|
]
|
|
701
|
-
}
|
|
702
|
-
/* @__PURE__ */
|
|
701
|
+
}),
|
|
702
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
703
703
|
className: "flex items-center gap-4 pt-4",
|
|
704
704
|
children: [
|
|
705
|
-
/* @__PURE__ */
|
|
705
|
+
/* @__PURE__ */ jsxs3(Link3, {
|
|
706
706
|
href: "/docs/guides/generate-docs-clients-schemas",
|
|
707
707
|
className: "btn-primary",
|
|
708
708
|
children: [
|
|
709
709
|
"Client Generation ",
|
|
710
|
-
/* @__PURE__ */
|
|
710
|
+
/* @__PURE__ */ jsx3(ChevronRight3, {
|
|
711
711
|
size: 16
|
|
712
|
-
}
|
|
712
|
+
})
|
|
713
713
|
]
|
|
714
|
-
}
|
|
715
|
-
/* @__PURE__ */
|
|
714
|
+
}),
|
|
715
|
+
/* @__PURE__ */ jsx3(Link3, {
|
|
716
716
|
href: "/docs/intent/schema-validation-typescript",
|
|
717
717
|
className: "btn-ghost",
|
|
718
718
|
children: "Type Safety"
|
|
719
|
-
}
|
|
719
|
+
})
|
|
720
720
|
]
|
|
721
|
-
}
|
|
721
|
+
})
|
|
722
722
|
]
|
|
723
|
-
}
|
|
723
|
+
});
|
|
724
724
|
}
|
|
725
725
|
|
|
726
726
|
// src/components/docs/intent/SchemaValidationTypescriptPage.tsx
|
|
@@ -729,70 +729,70 @@ import { SeoOptimizer as SeoOptimizer4 } from "@contractspec/lib.content-gen/seo
|
|
|
729
729
|
import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
|
|
730
730
|
import Link4 from "@contractspec/lib.ui-link";
|
|
731
731
|
import { ChevronRight as ChevronRight4 } from "lucide-react";
|
|
732
|
-
import {
|
|
732
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
733
733
|
var metadata4 = new SeoOptimizer4().optimize(schemaValidationTypescriptBrief2);
|
|
734
734
|
function SchemaValidationTypescriptPage() {
|
|
735
|
-
return /* @__PURE__ */
|
|
735
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
736
736
|
className: "space-y-8",
|
|
737
737
|
children: [
|
|
738
|
-
/* @__PURE__ */
|
|
738
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
739
739
|
className: "space-y-3",
|
|
740
740
|
children: [
|
|
741
|
-
/* @__PURE__ */
|
|
741
|
+
/* @__PURE__ */ jsx4("h1", {
|
|
742
742
|
className: "text-4xl font-bold",
|
|
743
743
|
children: schemaValidationTypescriptBrief2.title
|
|
744
|
-
}
|
|
745
|
-
/* @__PURE__ */
|
|
744
|
+
}),
|
|
745
|
+
/* @__PURE__ */ jsx4("p", {
|
|
746
746
|
className: "text-muted-foreground text-lg",
|
|
747
747
|
children: schemaValidationTypescriptBrief2.summary
|
|
748
|
-
}
|
|
748
|
+
})
|
|
749
749
|
]
|
|
750
|
-
}
|
|
751
|
-
/* @__PURE__ */
|
|
750
|
+
}),
|
|
751
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
752
752
|
className: "card-subtle space-y-4 p-6",
|
|
753
753
|
children: [
|
|
754
|
-
/* @__PURE__ */
|
|
754
|
+
/* @__PURE__ */ jsx4("h2", {
|
|
755
755
|
className: "text-2xl font-bold",
|
|
756
756
|
children: "Validation Pain Points"
|
|
757
|
-
}
|
|
758
|
-
/* @__PURE__ */
|
|
757
|
+
}),
|
|
758
|
+
/* @__PURE__ */ jsx4("ul", {
|
|
759
759
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
760
|
-
children: schemaValidationTypescriptBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
760
|
+
children: schemaValidationTypescriptBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx4("li", {
|
|
761
761
|
children: problem
|
|
762
|
-
}, index
|
|
763
|
-
}
|
|
762
|
+
}, index))
|
|
763
|
+
})
|
|
764
764
|
]
|
|
765
|
-
}
|
|
766
|
-
/* @__PURE__ */
|
|
765
|
+
}),
|
|
766
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
767
767
|
className: "card-subtle space-y-4 p-6",
|
|
768
768
|
children: [
|
|
769
|
-
/* @__PURE__ */
|
|
769
|
+
/* @__PURE__ */ jsx4("h2", {
|
|
770
770
|
className: "text-2xl font-bold",
|
|
771
771
|
children: "Type-safe Solutions"
|
|
772
|
-
}
|
|
773
|
-
/* @__PURE__ */
|
|
772
|
+
}),
|
|
773
|
+
/* @__PURE__ */ jsx4("ul", {
|
|
774
774
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
775
|
-
children: schemaValidationTypescriptBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
775
|
+
children: schemaValidationTypescriptBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx4("li", {
|
|
776
776
|
children: solution
|
|
777
|
-
}, index
|
|
778
|
-
}
|
|
777
|
+
}, index))
|
|
778
|
+
})
|
|
779
779
|
]
|
|
780
|
-
}
|
|
781
|
-
/* @__PURE__ */
|
|
780
|
+
}),
|
|
781
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
782
782
|
className: "space-y-6",
|
|
783
783
|
children: [
|
|
784
|
-
/* @__PURE__ */
|
|
784
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
785
785
|
className: "space-y-3",
|
|
786
786
|
children: [
|
|
787
|
-
/* @__PURE__ */
|
|
787
|
+
/* @__PURE__ */ jsx4("h2", {
|
|
788
788
|
className: "text-2xl font-bold",
|
|
789
789
|
children: "Contract Schema"
|
|
790
|
-
}
|
|
791
|
-
/* @__PURE__ */
|
|
790
|
+
}),
|
|
791
|
+
/* @__PURE__ */ jsx4("p", {
|
|
792
792
|
className: "text-muted-foreground text-sm",
|
|
793
793
|
children: "Define data models with automatic TypeScript generation."
|
|
794
|
-
}
|
|
795
|
-
/* @__PURE__ */
|
|
794
|
+
}),
|
|
795
|
+
/* @__PURE__ */ jsx4(CodeBlock4, {
|
|
796
796
|
language: "typescript",
|
|
797
797
|
filename: "src/contracts/user.schema.ts",
|
|
798
798
|
code: `import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';
|
|
@@ -838,21 +838,21 @@ export const UserSchema = new SchemaModel({
|
|
|
838
838
|
description: 'User account information',
|
|
839
839
|
},
|
|
840
840
|
});`
|
|
841
|
-
}
|
|
841
|
+
})
|
|
842
842
|
]
|
|
843
|
-
}
|
|
844
|
-
/* @__PURE__ */
|
|
843
|
+
}),
|
|
844
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
845
845
|
className: "space-y-3",
|
|
846
846
|
children: [
|
|
847
|
-
/* @__PURE__ */
|
|
847
|
+
/* @__PURE__ */ jsx4("h2", {
|
|
848
848
|
className: "text-2xl font-bold",
|
|
849
849
|
children: "Generated Types"
|
|
850
|
-
}
|
|
851
|
-
/* @__PURE__ */
|
|
850
|
+
}),
|
|
851
|
+
/* @__PURE__ */ jsx4("p", {
|
|
852
852
|
className: "text-muted-foreground text-sm",
|
|
853
853
|
children: "TypeScript types are automatically generated with proper validation."
|
|
854
|
-
}
|
|
855
|
-
/* @__PURE__ */
|
|
854
|
+
}),
|
|
855
|
+
/* @__PURE__ */ jsx4(CodeBlock4, {
|
|
856
856
|
language: "typescript",
|
|
857
857
|
filename: "generated/types/user.ts",
|
|
858
858
|
code: `// Auto-generated from UserSchema
|
|
@@ -881,21 +881,21 @@ export function validateUser(data: unknown): User {
|
|
|
881
881
|
export function isUser(data: unknown): data is User {
|
|
882
882
|
return UserSchemaZod.safeParse(data).success;
|
|
883
883
|
}`
|
|
884
|
-
}
|
|
884
|
+
})
|
|
885
885
|
]
|
|
886
|
-
}
|
|
887
|
-
/* @__PURE__ */
|
|
886
|
+
}),
|
|
887
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
888
888
|
className: "space-y-3",
|
|
889
889
|
children: [
|
|
890
|
-
/* @__PURE__ */
|
|
890
|
+
/* @__PURE__ */ jsx4("h2", {
|
|
891
891
|
className: "text-2xl font-bold",
|
|
892
892
|
children: "Runtime Validation"
|
|
893
|
-
}
|
|
894
|
-
/* @__PURE__ */
|
|
893
|
+
}),
|
|
894
|
+
/* @__PURE__ */ jsx4("p", {
|
|
895
895
|
className: "text-muted-foreground text-sm",
|
|
896
896
|
children: "Use generated validation in your API handlers with zero boilerplate."
|
|
897
|
-
}
|
|
898
|
-
/* @__PURE__ */
|
|
897
|
+
}),
|
|
898
|
+
/* @__PURE__ */ jsx4(CodeBlock4, {
|
|
899
899
|
language: "typescript",
|
|
900
900
|
filename: "src/handlers/user-handler.ts",
|
|
901
901
|
code: `import { validateUser } from '../generated/types/user';
|
|
@@ -927,33 +927,33 @@ export async function createUserHandler(request: Request) {
|
|
|
927
927
|
throw error;
|
|
928
928
|
}
|
|
929
929
|
}`
|
|
930
|
-
}
|
|
930
|
+
})
|
|
931
931
|
]
|
|
932
|
-
}
|
|
932
|
+
})
|
|
933
933
|
]
|
|
934
|
-
}
|
|
935
|
-
/* @__PURE__ */
|
|
934
|
+
}),
|
|
935
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
936
936
|
className: "flex items-center gap-4 pt-4",
|
|
937
937
|
children: [
|
|
938
|
-
/* @__PURE__ */
|
|
938
|
+
/* @__PURE__ */ jsxs4(Link4, {
|
|
939
939
|
href: "/docs/guides/spec-validation-and-typing",
|
|
940
940
|
className: "btn-primary",
|
|
941
941
|
children: [
|
|
942
942
|
"Type Safety Guide ",
|
|
943
|
-
/* @__PURE__ */
|
|
943
|
+
/* @__PURE__ */ jsx4(ChevronRight4, {
|
|
944
944
|
size: 16
|
|
945
|
-
}
|
|
945
|
+
})
|
|
946
946
|
]
|
|
947
|
-
}
|
|
948
|
-
/* @__PURE__ */
|
|
947
|
+
}),
|
|
948
|
+
/* @__PURE__ */ jsx4(Link4, {
|
|
949
949
|
href: "/docs/intent/generate-client-from-schema",
|
|
950
950
|
className: "btn-ghost",
|
|
951
951
|
children: "Client Generation"
|
|
952
|
-
}
|
|
952
|
+
})
|
|
953
953
|
]
|
|
954
|
-
}
|
|
954
|
+
})
|
|
955
955
|
]
|
|
956
|
-
}
|
|
956
|
+
});
|
|
957
957
|
}
|
|
958
958
|
|
|
959
959
|
// src/components/docs/intent/OpenapiAlternativePage.tsx
|
|
@@ -962,146 +962,146 @@ import { SeoOptimizer as SeoOptimizer5 } from "@contractspec/lib.content-gen/seo
|
|
|
962
962
|
import { CodeBlock as CodeBlock5 } from "@contractspec/lib.design-system";
|
|
963
963
|
import Link5 from "@contractspec/lib.ui-link";
|
|
964
964
|
import { ChevronRight as ChevronRight5 } from "lucide-react";
|
|
965
|
-
import {
|
|
965
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
966
966
|
var metadata5 = new SeoOptimizer5().optimize(openapiAlternativeBrief2);
|
|
967
967
|
function OpenapiAlternativePage() {
|
|
968
|
-
return /* @__PURE__ */
|
|
968
|
+
return /* @__PURE__ */ jsxs5("div", {
|
|
969
969
|
className: "space-y-8",
|
|
970
970
|
children: [
|
|
971
|
-
/* @__PURE__ */
|
|
971
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
972
972
|
className: "space-y-3",
|
|
973
973
|
children: [
|
|
974
|
-
/* @__PURE__ */
|
|
974
|
+
/* @__PURE__ */ jsx5("h1", {
|
|
975
975
|
className: "text-4xl font-bold",
|
|
976
976
|
children: openapiAlternativeBrief2.title
|
|
977
|
-
}
|
|
978
|
-
/* @__PURE__ */
|
|
977
|
+
}),
|
|
978
|
+
/* @__PURE__ */ jsx5("p", {
|
|
979
979
|
className: "text-muted-foreground text-lg",
|
|
980
980
|
children: openapiAlternativeBrief2.summary
|
|
981
|
-
}
|
|
981
|
+
})
|
|
982
982
|
]
|
|
983
|
-
}
|
|
984
|
-
/* @__PURE__ */
|
|
983
|
+
}),
|
|
984
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
985
985
|
className: "card-subtle space-y-4 p-6",
|
|
986
986
|
children: [
|
|
987
|
-
/* @__PURE__ */
|
|
987
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
988
988
|
className: "text-2xl font-bold",
|
|
989
989
|
children: "OpenAPI Limitations"
|
|
990
|
-
}
|
|
991
|
-
/* @__PURE__ */
|
|
990
|
+
}),
|
|
991
|
+
/* @__PURE__ */ jsx5("ul", {
|
|
992
992
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
993
|
-
children: openapiAlternativeBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
993
|
+
children: openapiAlternativeBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx5("li", {
|
|
994
994
|
children: problem
|
|
995
|
-
}, index
|
|
996
|
-
}
|
|
995
|
+
}, index))
|
|
996
|
+
})
|
|
997
997
|
]
|
|
998
|
-
}
|
|
999
|
-
/* @__PURE__ */
|
|
998
|
+
}),
|
|
999
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1000
1000
|
className: "card-subtle space-y-4 p-6",
|
|
1001
1001
|
children: [
|
|
1002
|
-
/* @__PURE__ */
|
|
1002
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1003
1003
|
className: "text-2xl font-bold",
|
|
1004
1004
|
children: "ContractSpec Advantages"
|
|
1005
|
-
}
|
|
1006
|
-
/* @__PURE__ */
|
|
1005
|
+
}),
|
|
1006
|
+
/* @__PURE__ */ jsx5("ul", {
|
|
1007
1007
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
1008
|
-
children: openapiAlternativeBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
1008
|
+
children: openapiAlternativeBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx5("li", {
|
|
1009
1009
|
children: solution
|
|
1010
|
-
}, index
|
|
1011
|
-
}
|
|
1010
|
+
}, index))
|
|
1011
|
+
})
|
|
1012
1012
|
]
|
|
1013
|
-
}
|
|
1014
|
-
/* @__PURE__ */
|
|
1013
|
+
}),
|
|
1014
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1015
1015
|
className: "space-y-6",
|
|
1016
1016
|
children: [
|
|
1017
|
-
/* @__PURE__ */
|
|
1017
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1018
1018
|
className: "space-y-3",
|
|
1019
1019
|
children: [
|
|
1020
|
-
/* @__PURE__ */
|
|
1020
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1021
1021
|
className: "text-2xl font-bold",
|
|
1022
1022
|
children: "Comparison: OpenAPI vs ContractSpec"
|
|
1023
|
-
}
|
|
1024
|
-
/* @__PURE__ */
|
|
1023
|
+
}),
|
|
1024
|
+
/* @__PURE__ */ jsx5("p", {
|
|
1025
1025
|
className: "text-muted-foreground text-sm",
|
|
1026
1026
|
children: "Key differences between OpenAPI documentation and ContractSpec executable contracts."
|
|
1027
|
-
}
|
|
1028
|
-
/* @__PURE__ */
|
|
1027
|
+
}),
|
|
1028
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1029
1029
|
className: "grid gap-6 md:grid-cols-2",
|
|
1030
1030
|
children: [
|
|
1031
|
-
/* @__PURE__ */
|
|
1031
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1032
1032
|
className: "card-subtle space-y-3 p-4",
|
|
1033
1033
|
children: [
|
|
1034
|
-
/* @__PURE__ */
|
|
1034
|
+
/* @__PURE__ */ jsx5("h3", {
|
|
1035
1035
|
className: "text-lg font-semibold",
|
|
1036
1036
|
children: "OpenAPI"
|
|
1037
|
-
}
|
|
1038
|
-
/* @__PURE__ */
|
|
1037
|
+
}),
|
|
1038
|
+
/* @__PURE__ */ jsxs5("ul", {
|
|
1039
1039
|
className: "text-muted-foreground space-y-1 text-sm",
|
|
1040
1040
|
children: [
|
|
1041
|
-
/* @__PURE__ */
|
|
1041
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1042
1042
|
children: "• Documentation specification only"
|
|
1043
|
-
}
|
|
1044
|
-
/* @__PURE__ */
|
|
1043
|
+
}),
|
|
1044
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1045
1045
|
children: "• No runtime validation"
|
|
1046
|
-
}
|
|
1047
|
-
/* @__PURE__ */
|
|
1046
|
+
}),
|
|
1047
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1048
1048
|
children: "• Manual code generation"
|
|
1049
|
-
}
|
|
1050
|
-
/* @__PURE__ */
|
|
1049
|
+
}),
|
|
1050
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1051
1051
|
children: "• Type safety requires tools"
|
|
1052
|
-
}
|
|
1053
|
-
/* @__PURE__ */
|
|
1052
|
+
}),
|
|
1053
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1054
1054
|
children: "• Separate schemas from documentation"
|
|
1055
|
-
}
|
|
1055
|
+
})
|
|
1056
1056
|
]
|
|
1057
|
-
}
|
|
1057
|
+
})
|
|
1058
1058
|
]
|
|
1059
|
-
}
|
|
1060
|
-
/* @__PURE__ */
|
|
1059
|
+
}),
|
|
1060
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1061
1061
|
className: "card-subtle space-y-3 p-4",
|
|
1062
1062
|
children: [
|
|
1063
|
-
/* @__PURE__ */
|
|
1063
|
+
/* @__PURE__ */ jsx5("h3", {
|
|
1064
1064
|
className: "text-lg font-semibold",
|
|
1065
1065
|
children: "ContractSpec"
|
|
1066
|
-
}
|
|
1067
|
-
/* @__PURE__ */
|
|
1066
|
+
}),
|
|
1067
|
+
/* @__PURE__ */ jsxs5("ul", {
|
|
1068
1068
|
className: "text-muted-foreground space-y-1 text-sm",
|
|
1069
1069
|
children: [
|
|
1070
|
-
/* @__PURE__ */
|
|
1070
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1071
1071
|
children: "• Executable contracts"
|
|
1072
|
-
}
|
|
1073
|
-
/* @__PURE__ */
|
|
1072
|
+
}),
|
|
1073
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1074
1074
|
children: "• Built-in runtime validation"
|
|
1075
|
-
}
|
|
1076
|
-
/* @__PURE__ */
|
|
1075
|
+
}),
|
|
1076
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1077
1077
|
children: "• Automatic code generation"
|
|
1078
|
-
}
|
|
1079
|
-
/* @__PURE__ */
|
|
1078
|
+
}),
|
|
1079
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1080
1080
|
children: "• Type-safe by default"
|
|
1081
|
-
}
|
|
1082
|
-
/* @__PURE__ */
|
|
1081
|
+
}),
|
|
1082
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1083
1083
|
children: "• Unified spec and implementation"
|
|
1084
|
-
}
|
|
1084
|
+
})
|
|
1085
1085
|
]
|
|
1086
|
-
}
|
|
1086
|
+
})
|
|
1087
1087
|
]
|
|
1088
|
-
}
|
|
1088
|
+
})
|
|
1089
1089
|
]
|
|
1090
|
-
}
|
|
1090
|
+
})
|
|
1091
1091
|
]
|
|
1092
|
-
}
|
|
1093
|
-
/* @__PURE__ */
|
|
1092
|
+
}),
|
|
1093
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1094
1094
|
className: "space-y-3",
|
|
1095
1095
|
children: [
|
|
1096
|
-
/* @__PURE__ */
|
|
1096
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1097
1097
|
className: "text-2xl font-bold",
|
|
1098
1098
|
children: "Export from Contracts"
|
|
1099
|
-
}
|
|
1100
|
-
/* @__PURE__ */
|
|
1099
|
+
}),
|
|
1100
|
+
/* @__PURE__ */ jsx5("p", {
|
|
1101
1101
|
className: "text-muted-foreground text-sm",
|
|
1102
1102
|
children: "Generate OpenAPI documentation from ContractSpec for existing tooling."
|
|
1103
|
-
}
|
|
1104
|
-
/* @__PURE__ */
|
|
1103
|
+
}),
|
|
1104
|
+
/* @__PURE__ */ jsx5(CodeBlock5, {
|
|
1105
1105
|
language: "bash",
|
|
1106
1106
|
filename: "export-openapi",
|
|
1107
1107
|
code: `# From ContractSpec contracts
|
|
@@ -1113,21 +1113,21 @@ contractspec openapi export \\
|
|
|
1113
1113
|
# Compare: Manual OpenAPI vs Generated
|
|
1114
1114
|
# Manual: Write OpenAPI by hand, maintain separately
|
|
1115
1115
|
# Generated: Single source of truth, always in sync`
|
|
1116
|
-
}
|
|
1116
|
+
})
|
|
1117
1117
|
]
|
|
1118
|
-
}
|
|
1119
|
-
/* @__PURE__ */
|
|
1118
|
+
}),
|
|
1119
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1120
1120
|
className: "space-y-3",
|
|
1121
1121
|
children: [
|
|
1122
|
-
/* @__PURE__ */
|
|
1122
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1123
1123
|
className: "text-2xl font-bold",
|
|
1124
1124
|
children: "Beyond Documentation"
|
|
1125
|
-
}
|
|
1126
|
-
/* @__PURE__ */
|
|
1125
|
+
}),
|
|
1126
|
+
/* @__PURE__ */ jsx5("p", {
|
|
1127
1127
|
className: "text-muted-foreground text-sm",
|
|
1128
1128
|
children: "ContractSpec provides more than just API documentation."
|
|
1129
|
-
}
|
|
1130
|
-
/* @__PURE__ */
|
|
1129
|
+
}),
|
|
1130
|
+
/* @__PURE__ */ jsx5(CodeBlock5, {
|
|
1131
1131
|
language: "typescript",
|
|
1132
1132
|
filename: "multi-output-example.ts",
|
|
1133
1133
|
code: `// One contract, multiple outputs
|
|
@@ -1161,33 +1161,33 @@ export const outputs = {
|
|
|
1161
1161
|
// Type definitions
|
|
1162
1162
|
types: UserApiContract.toTypescript(),
|
|
1163
1163
|
};`
|
|
1164
|
-
}
|
|
1164
|
+
})
|
|
1165
1165
|
]
|
|
1166
|
-
}
|
|
1166
|
+
})
|
|
1167
1167
|
]
|
|
1168
|
-
}
|
|
1169
|
-
/* @__PURE__ */
|
|
1168
|
+
}),
|
|
1169
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1170
1170
|
className: "flex items-center gap-4 pt-4",
|
|
1171
1171
|
children: [
|
|
1172
|
-
/* @__PURE__ */
|
|
1172
|
+
/* @__PURE__ */ jsxs5(Link5, {
|
|
1173
1173
|
href: "/docs/guides/generate-docs-clients-schemas",
|
|
1174
1174
|
className: "btn-primary",
|
|
1175
1175
|
children: [
|
|
1176
1176
|
"Generate from Contracts ",
|
|
1177
|
-
/* @__PURE__ */
|
|
1177
|
+
/* @__PURE__ */ jsx5(ChevronRight5, {
|
|
1178
1178
|
size: 16
|
|
1179
|
-
}
|
|
1179
|
+
})
|
|
1180
1180
|
]
|
|
1181
|
-
}
|
|
1182
|
-
/* @__PURE__ */
|
|
1181
|
+
}),
|
|
1182
|
+
/* @__PURE__ */ jsx5(Link5, {
|
|
1183
1183
|
href: "/docs/intent/generate-client-from-schema",
|
|
1184
1184
|
className: "btn-ghost",
|
|
1185
1185
|
children: "Client Generation"
|
|
1186
|
-
}
|
|
1186
|
+
})
|
|
1187
1187
|
]
|
|
1188
|
-
}
|
|
1188
|
+
})
|
|
1189
1189
|
]
|
|
1190
|
-
}
|
|
1190
|
+
});
|
|
1191
1191
|
}
|
|
1192
1192
|
|
|
1193
1193
|
// src/components/docs/intent/GenerateClientFromSchemaPage.tsx
|
|
@@ -1196,70 +1196,70 @@ import { SeoOptimizer as SeoOptimizer6 } from "@contractspec/lib.content-gen/seo
|
|
|
1196
1196
|
import { CodeBlock as CodeBlock6 } from "@contractspec/lib.design-system";
|
|
1197
1197
|
import Link6 from "@contractspec/lib.ui-link";
|
|
1198
1198
|
import { ChevronRight as ChevronRight6 } from "lucide-react";
|
|
1199
|
-
import {
|
|
1199
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1200
1200
|
var metadata6 = new SeoOptimizer6().optimize(generateClientFromSchemaBrief2);
|
|
1201
1201
|
function GenerateClientFromSchemaPage() {
|
|
1202
|
-
return /* @__PURE__ */
|
|
1202
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
1203
1203
|
className: "space-y-8",
|
|
1204
1204
|
children: [
|
|
1205
|
-
/* @__PURE__ */
|
|
1205
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1206
1206
|
className: "space-y-3",
|
|
1207
1207
|
children: [
|
|
1208
|
-
/* @__PURE__ */
|
|
1208
|
+
/* @__PURE__ */ jsx6("h1", {
|
|
1209
1209
|
className: "text-4xl font-bold",
|
|
1210
1210
|
children: generateClientFromSchemaBrief2.title
|
|
1211
|
-
}
|
|
1212
|
-
/* @__PURE__ */
|
|
1211
|
+
}),
|
|
1212
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1213
1213
|
className: "text-muted-foreground text-lg",
|
|
1214
1214
|
children: generateClientFromSchemaBrief2.summary
|
|
1215
|
-
}
|
|
1215
|
+
})
|
|
1216
1216
|
]
|
|
1217
|
-
}
|
|
1218
|
-
/* @__PURE__ */
|
|
1217
|
+
}),
|
|
1218
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1219
1219
|
className: "card-subtle space-y-4 p-6",
|
|
1220
1220
|
children: [
|
|
1221
|
-
/* @__PURE__ */
|
|
1221
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1222
1222
|
className: "text-2xl font-bold",
|
|
1223
1223
|
children: "Client Development Problems"
|
|
1224
|
-
}
|
|
1225
|
-
/* @__PURE__ */
|
|
1224
|
+
}),
|
|
1225
|
+
/* @__PURE__ */ jsx6("ul", {
|
|
1226
1226
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
1227
|
-
children: generateClientFromSchemaBrief2.problems.map((problem, index) => /* @__PURE__ */
|
|
1227
|
+
children: generateClientFromSchemaBrief2.problems.map((problem, index) => /* @__PURE__ */ jsx6("li", {
|
|
1228
1228
|
children: problem
|
|
1229
|
-
}, index
|
|
1230
|
-
}
|
|
1229
|
+
}, index))
|
|
1230
|
+
})
|
|
1231
1231
|
]
|
|
1232
|
-
}
|
|
1233
|
-
/* @__PURE__ */
|
|
1232
|
+
}),
|
|
1233
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1234
1234
|
className: "card-subtle space-y-4 p-6",
|
|
1235
1235
|
children: [
|
|
1236
|
-
/* @__PURE__ */
|
|
1236
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1237
1237
|
className: "text-2xl font-bold",
|
|
1238
1238
|
children: "Automated Solutions"
|
|
1239
|
-
}
|
|
1240
|
-
/* @__PURE__ */
|
|
1239
|
+
}),
|
|
1240
|
+
/* @__PURE__ */ jsx6("ul", {
|
|
1241
1241
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
1242
|
-
children: generateClientFromSchemaBrief2.solutions.map((solution, index) => /* @__PURE__ */
|
|
1242
|
+
children: generateClientFromSchemaBrief2.solutions.map((solution, index) => /* @__PURE__ */ jsx6("li", {
|
|
1243
1243
|
children: solution
|
|
1244
|
-
}, index
|
|
1245
|
-
}
|
|
1244
|
+
}, index))
|
|
1245
|
+
})
|
|
1246
1246
|
]
|
|
1247
|
-
}
|
|
1248
|
-
/* @__PURE__ */
|
|
1247
|
+
}),
|
|
1248
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1249
1249
|
className: "space-y-6",
|
|
1250
1250
|
children: [
|
|
1251
|
-
/* @__PURE__ */
|
|
1251
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1252
1252
|
className: "space-y-3",
|
|
1253
1253
|
children: [
|
|
1254
|
-
/* @__PURE__ */
|
|
1254
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1255
1255
|
className: "text-2xl font-bold",
|
|
1256
1256
|
children: "Contract Definition"
|
|
1257
|
-
}
|
|
1258
|
-
/* @__PURE__ */
|
|
1257
|
+
}),
|
|
1258
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1259
1259
|
className: "text-muted-foreground text-sm",
|
|
1260
1260
|
children: "Define your API contract once, generate clients for any language."
|
|
1261
|
-
}
|
|
1262
|
-
/* @__PURE__ */
|
|
1261
|
+
}),
|
|
1262
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1263
1263
|
language: "typescript",
|
|
1264
1264
|
filename: "src/contracts/api.contract.ts",
|
|
1265
1265
|
code: `import { defineContract } from '@contractspec/lib.contracts-spec';
|
|
@@ -1333,21 +1333,21 @@ export const ApiContract = defineContract({
|
|
|
1333
1333
|
tags: ['users', 'authentication'],
|
|
1334
1334
|
},
|
|
1335
1335
|
});`
|
|
1336
|
-
}
|
|
1336
|
+
})
|
|
1337
1337
|
]
|
|
1338
|
-
}
|
|
1339
|
-
/* @__PURE__ */
|
|
1338
|
+
}),
|
|
1339
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1340
1340
|
className: "space-y-3",
|
|
1341
1341
|
children: [
|
|
1342
|
-
/* @__PURE__ */
|
|
1342
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1343
1343
|
className: "text-2xl font-bold",
|
|
1344
1344
|
children: "Generate Multiple Clients"
|
|
1345
|
-
}
|
|
1346
|
-
/* @__PURE__ */
|
|
1345
|
+
}),
|
|
1346
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1347
1347
|
className: "text-muted-foreground text-sm",
|
|
1348
1348
|
children: "Generate type-safe clients for any language from the same contract."
|
|
1349
|
-
}
|
|
1350
|
-
/* @__PURE__ */
|
|
1349
|
+
}),
|
|
1350
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1351
1351
|
language: "bash",
|
|
1352
1352
|
filename: "generate-clients",
|
|
1353
1353
|
code: `# Generate all supported language clients
|
|
@@ -1368,31 +1368,31 @@ contractspec generate clients \\
|
|
|
1368
1368
|
# --with-tests: Generate client test suites
|
|
1369
1369
|
# --with-docs: Include client documentation
|
|
1370
1370
|
# --framework: Use specific HTTP client framework`
|
|
1371
|
-
}
|
|
1371
|
+
})
|
|
1372
1372
|
]
|
|
1373
|
-
}
|
|
1374
|
-
/* @__PURE__ */
|
|
1373
|
+
}),
|
|
1374
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1375
1375
|
className: "space-y-3",
|
|
1376
1376
|
children: [
|
|
1377
|
-
/* @__PURE__ */
|
|
1377
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1378
1378
|
className: "text-2xl font-bold",
|
|
1379
1379
|
children: "Generated Client Examples"
|
|
1380
|
-
}
|
|
1381
|
-
/* @__PURE__ */
|
|
1380
|
+
}),
|
|
1381
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1382
1382
|
className: "text-muted-foreground text-sm",
|
|
1383
1383
|
children: "Each generated client is fully type-safe and idiomatic."
|
|
1384
|
-
}
|
|
1385
|
-
/* @__PURE__ */
|
|
1384
|
+
}),
|
|
1385
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1386
1386
|
className: "space-y-4",
|
|
1387
1387
|
children: [
|
|
1388
|
-
/* @__PURE__ */
|
|
1388
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1389
1389
|
className: "card-subtle p-4",
|
|
1390
1390
|
children: [
|
|
1391
|
-
/* @__PURE__ */
|
|
1391
|
+
/* @__PURE__ */ jsx6("h4", {
|
|
1392
1392
|
className: "text-lg font-semibold",
|
|
1393
1393
|
children: "TypeScript Client"
|
|
1394
|
-
}
|
|
1395
|
-
/* @__PURE__ */
|
|
1394
|
+
}),
|
|
1395
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1396
1396
|
language: "typescript",
|
|
1397
1397
|
filename: "generated/clients/typescript/index.ts",
|
|
1398
1398
|
code: `import { MyAPIClient } from './client';
|
|
@@ -1416,17 +1416,17 @@ const newUser = await client.createUser({
|
|
|
1416
1416
|
// Full type inference
|
|
1417
1417
|
// users: GetUsersResponse
|
|
1418
1418
|
// newUser: CreateUserResponse`
|
|
1419
|
-
}
|
|
1419
|
+
})
|
|
1420
1420
|
]
|
|
1421
|
-
}
|
|
1422
|
-
/* @__PURE__ */
|
|
1421
|
+
}),
|
|
1422
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1423
1423
|
className: "card-subtle p-4",
|
|
1424
1424
|
children: [
|
|
1425
|
-
/* @__PURE__ */
|
|
1425
|
+
/* @__PURE__ */ jsx6("h4", {
|
|
1426
1426
|
className: "text-lg font-semibold",
|
|
1427
1427
|
children: "Python Client"
|
|
1428
|
-
}
|
|
1429
|
-
/* @__PURE__ */
|
|
1428
|
+
}),
|
|
1429
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1430
1430
|
language: "python",
|
|
1431
1431
|
filename: "generated/clients/python/index.py",
|
|
1432
1432
|
code: `from myapi_client import MyAPIClient
|
|
@@ -1450,17 +1450,17 @@ new_user = await client.create_user(
|
|
|
1450
1450
|
# Full type hints
|
|
1451
1451
|
# users: GetUsersResponse
|
|
1452
1452
|
# new_user: CreateUserResponse`
|
|
1453
|
-
}
|
|
1453
|
+
})
|
|
1454
1454
|
]
|
|
1455
|
-
}
|
|
1456
|
-
/* @__PURE__ */
|
|
1455
|
+
}),
|
|
1456
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1457
1457
|
className: "card-subtle p-4",
|
|
1458
1458
|
children: [
|
|
1459
|
-
/* @__PURE__ */
|
|
1459
|
+
/* @__PURE__ */ jsx6("h4", {
|
|
1460
1460
|
className: "text-lg font-semibold",
|
|
1461
1461
|
children: "Go Client"
|
|
1462
|
-
}
|
|
1463
|
-
/* @__PURE__ */
|
|
1462
|
+
}),
|
|
1463
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1464
1464
|
language: "go",
|
|
1465
1465
|
filename: "generated/clients/go/client.go",
|
|
1466
1466
|
code: `package main
|
|
@@ -1491,25 +1491,25 @@ func main() {
|
|
|
1491
1491
|
// users: *GetUsersResponse
|
|
1492
1492
|
// newUser: *CreateUserResponse
|
|
1493
1493
|
}`
|
|
1494
|
-
}
|
|
1494
|
+
})
|
|
1495
1495
|
]
|
|
1496
|
-
}
|
|
1496
|
+
})
|
|
1497
1497
|
]
|
|
1498
|
-
}
|
|
1498
|
+
})
|
|
1499
1499
|
]
|
|
1500
|
-
}
|
|
1501
|
-
/* @__PURE__ */
|
|
1500
|
+
}),
|
|
1501
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1502
1502
|
className: "space-y-3",
|
|
1503
1503
|
children: [
|
|
1504
|
-
/* @__PURE__ */
|
|
1504
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1505
1505
|
className: "text-2xl font-bold",
|
|
1506
1506
|
children: "Advanced Features"
|
|
1507
|
-
}
|
|
1508
|
-
/* @__PURE__ */
|
|
1507
|
+
}),
|
|
1508
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1509
1509
|
className: "text-muted-foreground text-sm",
|
|
1510
1510
|
children: "Generated clients include enterprise-grade features out of the box."
|
|
1511
|
-
}
|
|
1512
|
-
/* @__PURE__ */
|
|
1511
|
+
}),
|
|
1512
|
+
/* @__PURE__ */ jsx6(CodeBlock6, {
|
|
1513
1513
|
language: "typescript",
|
|
1514
1514
|
filename: "client-features.ts",
|
|
1515
1515
|
code: `// Advanced client features
|
|
@@ -1556,33 +1556,33 @@ const user2 = client.getUser({ id: '123' }); // Uses cached result
|
|
|
1556
1556
|
const controller = new AbortController();
|
|
1557
1557
|
const promise = client.getUsers({ page: 1, signal: controller.signal });
|
|
1558
1558
|
controller.abort(); // Cancels the request`
|
|
1559
|
-
}
|
|
1559
|
+
})
|
|
1560
1560
|
]
|
|
1561
|
-
}
|
|
1561
|
+
})
|
|
1562
1562
|
]
|
|
1563
|
-
}
|
|
1564
|
-
/* @__PURE__ */
|
|
1563
|
+
}),
|
|
1564
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1565
1565
|
className: "flex items-center gap-4 pt-4",
|
|
1566
1566
|
children: [
|
|
1567
|
-
/* @__PURE__ */
|
|
1567
|
+
/* @__PURE__ */ jsxs6(Link6, {
|
|
1568
1568
|
href: "/docs/guides/generate-docs-clients-schemas",
|
|
1569
1569
|
className: "btn-primary",
|
|
1570
1570
|
children: [
|
|
1571
1571
|
"Client Generation Guide ",
|
|
1572
|
-
/* @__PURE__ */
|
|
1572
|
+
/* @__PURE__ */ jsx6(ChevronRight6, {
|
|
1573
1573
|
size: 16
|
|
1574
|
-
}
|
|
1574
|
+
})
|
|
1575
1575
|
]
|
|
1576
|
-
}
|
|
1577
|
-
/* @__PURE__ */
|
|
1576
|
+
}),
|
|
1577
|
+
/* @__PURE__ */ jsx6(Link6, {
|
|
1578
1578
|
href: "/docs/intent/contract-first-api",
|
|
1579
1579
|
className: "btn-ghost",
|
|
1580
1580
|
children: "Contract-first API"
|
|
1581
|
-
}
|
|
1581
|
+
})
|
|
1582
1582
|
]
|
|
1583
|
-
}
|
|
1583
|
+
})
|
|
1584
1584
|
]
|
|
1585
|
-
}
|
|
1585
|
+
});
|
|
1586
1586
|
}
|
|
1587
1587
|
export {
|
|
1588
1588
|
SpecDrivenDevelopmentPage,
|