@contractspec/bundle.library 3.4.2 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +494 -488
- package/CHANGELOG.md +61 -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/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 +106 -106
- 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 +975 -975
- package/dist/components/docs/index.js +10791 -10791
- 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 +12323 -12260
- 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 +106 -106
- 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 +975 -975
- package/dist/node/components/docs/index.js +10791 -10791
- 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 +12323 -12260
- 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/shell/WorkspaceShellRenderer.tsx +90 -0
- package/src/components/shell/index.ts +1 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import Link from "@contractspec/lib.ui-link";
|
|
4
4
|
import { ChevronRight } from "lucide-react";
|
|
5
5
|
import { CodeBlock, InstallCommand } from "@contractspec/lib.design-system";
|
|
6
|
-
import {
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
function CLIPage() {
|
|
8
8
|
const commands = [
|
|
9
9
|
{
|
|
@@ -52,46 +52,46 @@ function CLIPage() {
|
|
|
52
52
|
usage: "contractspec diff <spec1> <spec2> [--breaking]"
|
|
53
53
|
}
|
|
54
54
|
];
|
|
55
|
-
return /* @__PURE__ */
|
|
55
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
56
56
|
className: "space-y-8",
|
|
57
57
|
children: [
|
|
58
|
-
/* @__PURE__ */
|
|
58
|
+
/* @__PURE__ */ jsxs("div", {
|
|
59
59
|
className: "space-y-2",
|
|
60
60
|
children: [
|
|
61
|
-
/* @__PURE__ */
|
|
61
|
+
/* @__PURE__ */ jsx("h1", {
|
|
62
62
|
className: "text-4xl font-bold",
|
|
63
63
|
children: "ContractSpec CLI"
|
|
64
|
-
}
|
|
65
|
-
/* @__PURE__ */
|
|
64
|
+
}),
|
|
65
|
+
/* @__PURE__ */ jsx("p", {
|
|
66
66
|
className: "text-muted-foreground text-lg",
|
|
67
67
|
children: "Command-line interface for creating, building, and validating contract specifications with AI-powered code generation."
|
|
68
|
-
}
|
|
68
|
+
})
|
|
69
69
|
]
|
|
70
|
-
}
|
|
71
|
-
/* @__PURE__ */
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ jsxs("div", {
|
|
72
72
|
className: "space-y-6",
|
|
73
73
|
children: [
|
|
74
|
-
/* @__PURE__ */
|
|
74
|
+
/* @__PURE__ */ jsxs("div", {
|
|
75
75
|
className: "space-y-3",
|
|
76
76
|
children: [
|
|
77
|
-
/* @__PURE__ */
|
|
77
|
+
/* @__PURE__ */ jsx("h2", {
|
|
78
78
|
className: "text-2xl font-bold",
|
|
79
79
|
children: "Installation"
|
|
80
|
-
}
|
|
81
|
-
/* @__PURE__ */
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ jsx(InstallCommand, {
|
|
82
82
|
package: "contractspec",
|
|
83
83
|
dev: true
|
|
84
|
-
}
|
|
84
|
+
})
|
|
85
85
|
]
|
|
86
|
-
}
|
|
87
|
-
/* @__PURE__ */
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsxs("div", {
|
|
88
88
|
className: "space-y-3",
|
|
89
89
|
children: [
|
|
90
|
-
/* @__PURE__ */
|
|
90
|
+
/* @__PURE__ */ jsx("h2", {
|
|
91
91
|
className: "text-2xl font-bold",
|
|
92
92
|
children: "Quick Start"
|
|
93
|
-
}
|
|
94
|
-
/* @__PURE__ */
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
95
95
|
language: "bash",
|
|
96
96
|
code: `# Initialize project
|
|
97
97
|
bunx contractspec init
|
|
@@ -104,121 +104,121 @@ contractspec build src/contracts/mySpec.ts
|
|
|
104
104
|
|
|
105
105
|
# Validate
|
|
106
106
|
contractspec validate src/contracts/mySpec.ts`
|
|
107
|
-
}
|
|
107
|
+
})
|
|
108
108
|
]
|
|
109
|
-
}
|
|
110
|
-
/* @__PURE__ */
|
|
109
|
+
}),
|
|
110
|
+
/* @__PURE__ */ jsxs("div", {
|
|
111
111
|
className: "space-y-4",
|
|
112
112
|
children: [
|
|
113
|
-
/* @__PURE__ */
|
|
113
|
+
/* @__PURE__ */ jsx("h2", {
|
|
114
114
|
className: "text-2xl font-bold",
|
|
115
115
|
children: "Commands"
|
|
116
|
-
}
|
|
117
|
-
/* @__PURE__ */
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ jsx("div", {
|
|
118
118
|
className: "grid gap-4",
|
|
119
|
-
children: commands.map((cmd) => /* @__PURE__ */
|
|
119
|
+
children: commands.map((cmd) => /* @__PURE__ */ jsxs("div", {
|
|
120
120
|
className: "card-subtle space-y-2 p-4",
|
|
121
121
|
children: [
|
|
122
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ jsx("h3", {
|
|
123
123
|
className: "font-mono font-bold text-violet-400",
|
|
124
124
|
children: cmd.name
|
|
125
|
-
}
|
|
126
|
-
/* @__PURE__ */
|
|
125
|
+
}),
|
|
126
|
+
/* @__PURE__ */ jsx("p", {
|
|
127
127
|
className: "text-muted-foreground text-sm",
|
|
128
128
|
children: cmd.description
|
|
129
|
-
}
|
|
130
|
-
/* @__PURE__ */
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
131
131
|
language: "bash",
|
|
132
132
|
code: cmd.usage,
|
|
133
133
|
showCopyButton: false
|
|
134
|
-
}
|
|
134
|
+
})
|
|
135
135
|
]
|
|
136
|
-
}, cmd.name
|
|
137
|
-
}
|
|
136
|
+
}, cmd.name))
|
|
137
|
+
})
|
|
138
138
|
]
|
|
139
|
-
}
|
|
140
|
-
/* @__PURE__ */
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ jsxs("div", {
|
|
141
141
|
className: "space-y-3",
|
|
142
142
|
children: [
|
|
143
|
-
/* @__PURE__ */
|
|
143
|
+
/* @__PURE__ */ jsx("h2", {
|
|
144
144
|
className: "text-2xl font-bold",
|
|
145
145
|
children: "AI Agent Modes"
|
|
146
|
-
}
|
|
147
|
-
/* @__PURE__ */
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ jsx("p", {
|
|
148
148
|
className: "text-muted-foreground",
|
|
149
149
|
children: "The CLI supports multiple AI agent modes for different use cases:"
|
|
150
|
-
}
|
|
151
|
-
/* @__PURE__ */
|
|
150
|
+
}),
|
|
151
|
+
/* @__PURE__ */ jsxs("div", {
|
|
152
152
|
className: "grid gap-3 md:grid-cols-2",
|
|
153
153
|
children: [
|
|
154
|
-
/* @__PURE__ */
|
|
154
|
+
/* @__PURE__ */ jsxs("div", {
|
|
155
155
|
className: "card-subtle p-4",
|
|
156
156
|
children: [
|
|
157
|
-
/* @__PURE__ */
|
|
157
|
+
/* @__PURE__ */ jsx("h4", {
|
|
158
158
|
className: "font-bold",
|
|
159
159
|
children: "simple"
|
|
160
|
-
}
|
|
161
|
-
/* @__PURE__ */
|
|
160
|
+
}),
|
|
161
|
+
/* @__PURE__ */ jsx("p", {
|
|
162
162
|
className: "text-muted-foreground text-sm",
|
|
163
163
|
children: "Direct LLM API calls, fast and straightforward. Best for rapid prototyping."
|
|
164
|
-
}
|
|
164
|
+
})
|
|
165
165
|
]
|
|
166
|
-
}
|
|
167
|
-
/* @__PURE__ */
|
|
166
|
+
}),
|
|
167
|
+
/* @__PURE__ */ jsxs("div", {
|
|
168
168
|
className: "card-subtle p-4",
|
|
169
169
|
children: [
|
|
170
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ jsx("h4", {
|
|
171
171
|
className: "font-bold",
|
|
172
172
|
children: "claude-code"
|
|
173
|
-
}
|
|
174
|
-
/* @__PURE__ */
|
|
173
|
+
}),
|
|
174
|
+
/* @__PURE__ */ jsx("p", {
|
|
175
175
|
className: "text-muted-foreground text-sm",
|
|
176
176
|
children: "Extended thinking with Claude. Best for production-quality code."
|
|
177
|
-
}
|
|
177
|
+
})
|
|
178
178
|
]
|
|
179
|
-
}
|
|
180
|
-
/* @__PURE__ */
|
|
179
|
+
}),
|
|
180
|
+
/* @__PURE__ */ jsxs("div", {
|
|
181
181
|
className: "card-subtle p-4",
|
|
182
182
|
children: [
|
|
183
|
-
/* @__PURE__ */
|
|
183
|
+
/* @__PURE__ */ jsx("h4", {
|
|
184
184
|
className: "font-bold",
|
|
185
185
|
children: "openai-codex"
|
|
186
|
-
}
|
|
187
|
-
/* @__PURE__ */
|
|
186
|
+
}),
|
|
187
|
+
/* @__PURE__ */ jsx("p", {
|
|
188
188
|
className: "text-muted-foreground text-sm",
|
|
189
189
|
children: "GPT-4o/o1 models. Excellent for algorithms and optimization."
|
|
190
|
-
}
|
|
190
|
+
})
|
|
191
191
|
]
|
|
192
|
-
}
|
|
193
|
-
/* @__PURE__ */
|
|
192
|
+
}),
|
|
193
|
+
/* @__PURE__ */ jsxs("div", {
|
|
194
194
|
className: "card-subtle p-4",
|
|
195
195
|
children: [
|
|
196
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ jsx("h4", {
|
|
197
197
|
className: "font-bold",
|
|
198
198
|
children: "cursor"
|
|
199
|
-
}
|
|
200
|
-
/* @__PURE__ */
|
|
199
|
+
}),
|
|
200
|
+
/* @__PURE__ */ jsx("p", {
|
|
201
201
|
className: "text-muted-foreground text-sm",
|
|
202
202
|
children: "Leverages Cursor agentic capabilities. Requires Cursor environment."
|
|
203
|
-
}
|
|
203
|
+
})
|
|
204
204
|
]
|
|
205
|
-
}
|
|
205
|
+
})
|
|
206
206
|
]
|
|
207
|
-
}
|
|
207
|
+
})
|
|
208
208
|
]
|
|
209
|
-
}
|
|
210
|
-
/* @__PURE__ */
|
|
209
|
+
}),
|
|
210
|
+
/* @__PURE__ */ jsxs("div", {
|
|
211
211
|
className: "space-y-3",
|
|
212
212
|
children: [
|
|
213
|
-
/* @__PURE__ */
|
|
213
|
+
/* @__PURE__ */ jsx("h2", {
|
|
214
214
|
className: "text-2xl font-bold",
|
|
215
215
|
children: "CI/CD Integration"
|
|
216
|
-
}
|
|
217
|
-
/* @__PURE__ */
|
|
216
|
+
}),
|
|
217
|
+
/* @__PURE__ */ jsx("p", {
|
|
218
218
|
className: "text-muted-foreground",
|
|
219
219
|
children: "Run all validation checks in CI/CD with machine-readable output:"
|
|
220
|
-
}
|
|
221
|
-
/* @__PURE__ */
|
|
220
|
+
}),
|
|
221
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
222
222
|
language: "yaml",
|
|
223
223
|
filename: ".github/workflows/validate.yml",
|
|
224
224
|
code: `- name: Validate Contracts
|
|
@@ -228,27 +228,27 @@ contractspec validate src/contracts/mySpec.ts`
|
|
|
228
228
|
uses: github/codeql-action/upload-sarif@v3
|
|
229
229
|
with:
|
|
230
230
|
sarif_file: results.sarif`
|
|
231
|
-
}
|
|
231
|
+
})
|
|
232
232
|
]
|
|
233
|
-
}
|
|
234
|
-
/* @__PURE__ */
|
|
233
|
+
}),
|
|
234
|
+
/* @__PURE__ */ jsxs("div", {
|
|
235
235
|
className: "card-subtle space-y-4 p-6",
|
|
236
236
|
children: [
|
|
237
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ jsx("h3", {
|
|
238
238
|
className: "font-bold",
|
|
239
239
|
children: "Configuration"
|
|
240
|
-
}
|
|
241
|
-
/* @__PURE__ */
|
|
240
|
+
}),
|
|
241
|
+
/* @__PURE__ */ jsxs("p", {
|
|
242
242
|
className: "text-muted-foreground text-sm",
|
|
243
243
|
children: [
|
|
244
244
|
"Create a ",
|
|
245
|
-
/* @__PURE__ */
|
|
245
|
+
/* @__PURE__ */ jsx("code", {
|
|
246
246
|
children: ".contractsrc.json"
|
|
247
|
-
}
|
|
247
|
+
}),
|
|
248
248
|
" file in your project root:"
|
|
249
249
|
]
|
|
250
|
-
}
|
|
251
|
-
/* @__PURE__ */
|
|
250
|
+
}),
|
|
251
|
+
/* @__PURE__ */ jsx(CodeBlock, {
|
|
252
252
|
language: "json",
|
|
253
253
|
filename: ".contractsrc.json",
|
|
254
254
|
code: `{
|
|
@@ -260,240 +260,240 @@ contractspec validate src/contracts/mySpec.ts`
|
|
|
260
260
|
"events": "events"
|
|
261
261
|
}
|
|
262
262
|
}`
|
|
263
|
-
}
|
|
263
|
+
})
|
|
264
264
|
]
|
|
265
|
-
}
|
|
265
|
+
})
|
|
266
266
|
]
|
|
267
|
-
}
|
|
268
|
-
/* @__PURE__ */
|
|
267
|
+
}),
|
|
268
|
+
/* @__PURE__ */ jsxs("div", {
|
|
269
269
|
className: "flex items-center gap-4 pt-4",
|
|
270
270
|
children: [
|
|
271
|
-
/* @__PURE__ */
|
|
271
|
+
/* @__PURE__ */ jsxs(Link, {
|
|
272
272
|
href: "/docs/getting-started/tools/vscode",
|
|
273
273
|
className: "btn-primary",
|
|
274
274
|
children: [
|
|
275
275
|
"Next: VS Code Extension ",
|
|
276
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ jsx(ChevronRight, {
|
|
277
277
|
size: 16
|
|
278
|
-
}
|
|
278
|
+
})
|
|
279
279
|
]
|
|
280
|
-
}
|
|
281
|
-
/* @__PURE__ */
|
|
280
|
+
}),
|
|
281
|
+
/* @__PURE__ */ jsx(Link, {
|
|
282
282
|
href: "/docs/getting-started/tools",
|
|
283
283
|
className: "btn-ghost",
|
|
284
284
|
children: "Back to Tools"
|
|
285
|
-
}
|
|
285
|
+
})
|
|
286
286
|
]
|
|
287
|
-
}
|
|
287
|
+
})
|
|
288
288
|
]
|
|
289
|
-
}
|
|
289
|
+
});
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
// src/components/docs/getting-started/CompatibilityPage.tsx
|
|
293
293
|
import Link2 from "@contractspec/lib.ui-link";
|
|
294
294
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
295
|
-
import {
|
|
295
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
296
296
|
function CompatibilityPage() {
|
|
297
|
-
return /* @__PURE__ */
|
|
297
|
+
return /* @__PURE__ */ jsxs2("div", {
|
|
298
298
|
className: "space-y-8",
|
|
299
299
|
children: [
|
|
300
|
-
/* @__PURE__ */
|
|
300
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
301
301
|
className: "space-y-2",
|
|
302
302
|
children: [
|
|
303
|
-
/* @__PURE__ */
|
|
303
|
+
/* @__PURE__ */ jsx2("h1", {
|
|
304
304
|
className: "text-4xl font-bold",
|
|
305
305
|
children: "Compatibility"
|
|
306
|
-
}
|
|
307
|
-
/* @__PURE__ */
|
|
306
|
+
}),
|
|
307
|
+
/* @__PURE__ */ jsx2("p", {
|
|
308
308
|
className: "text-muted-foreground text-lg",
|
|
309
309
|
children: "Supported runtimes, frameworks, and agent modes for ContractSpec."
|
|
310
|
-
}
|
|
310
|
+
})
|
|
311
311
|
]
|
|
312
|
-
}
|
|
313
|
-
/* @__PURE__ */
|
|
312
|
+
}),
|
|
313
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
314
314
|
className: "space-y-6",
|
|
315
315
|
children: [
|
|
316
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
317
317
|
className: "card-subtle space-y-3 p-6",
|
|
318
318
|
children: [
|
|
319
|
-
/* @__PURE__ */
|
|
319
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
320
320
|
className: "text-2xl font-bold",
|
|
321
321
|
children: "Runtimes"
|
|
322
|
-
}
|
|
323
|
-
/* @__PURE__ */
|
|
322
|
+
}),
|
|
323
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
324
324
|
className: "text-muted-foreground space-y-2",
|
|
325
325
|
children: [
|
|
326
|
-
/* @__PURE__ */
|
|
326
|
+
/* @__PURE__ */ jsx2("li", {
|
|
327
327
|
children: "Node.js 20+"
|
|
328
|
-
}
|
|
329
|
-
/* @__PURE__ */
|
|
328
|
+
}),
|
|
329
|
+
/* @__PURE__ */ jsx2("li", {
|
|
330
330
|
children: "Bun 1.0+"
|
|
331
|
-
}
|
|
331
|
+
})
|
|
332
332
|
]
|
|
333
|
-
}
|
|
333
|
+
})
|
|
334
334
|
]
|
|
335
|
-
}
|
|
336
|
-
/* @__PURE__ */
|
|
335
|
+
}),
|
|
336
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
337
337
|
className: "card-subtle space-y-3 p-6",
|
|
338
338
|
children: [
|
|
339
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
340
340
|
className: "text-2xl font-bold",
|
|
341
341
|
children: "Frameworks"
|
|
342
|
-
}
|
|
343
|
-
/* @__PURE__ */
|
|
342
|
+
}),
|
|
343
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
344
344
|
className: "text-muted-foreground space-y-2",
|
|
345
345
|
children: [
|
|
346
|
-
/* @__PURE__ */
|
|
346
|
+
/* @__PURE__ */ jsx2("li", {
|
|
347
347
|
children: "Next.js 14+ (App Router preferred)"
|
|
348
|
-
}
|
|
349
|
-
/* @__PURE__ */
|
|
348
|
+
}),
|
|
349
|
+
/* @__PURE__ */ jsx2("li", {
|
|
350
350
|
children: "Bun + Elysia or compatible HTTP servers"
|
|
351
|
-
}
|
|
351
|
+
})
|
|
352
352
|
]
|
|
353
|
-
}
|
|
353
|
+
})
|
|
354
354
|
]
|
|
355
|
-
}
|
|
356
|
-
/* @__PURE__ */
|
|
355
|
+
}),
|
|
356
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
357
357
|
className: "card-subtle space-y-3 p-6",
|
|
358
358
|
children: [
|
|
359
|
-
/* @__PURE__ */
|
|
359
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
360
360
|
className: "text-2xl font-bold",
|
|
361
361
|
children: "Package managers"
|
|
362
|
-
}
|
|
363
|
-
/* @__PURE__ */
|
|
362
|
+
}),
|
|
363
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
364
364
|
className: "text-muted-foreground space-y-2",
|
|
365
365
|
children: [
|
|
366
|
-
/* @__PURE__ */
|
|
366
|
+
/* @__PURE__ */ jsx2("li", {
|
|
367
367
|
children: "bun (recommended)"
|
|
368
|
-
}
|
|
369
|
-
/* @__PURE__ */
|
|
368
|
+
}),
|
|
369
|
+
/* @__PURE__ */ jsx2("li", {
|
|
370
370
|
children: "npm"
|
|
371
|
-
}
|
|
372
|
-
/* @__PURE__ */
|
|
371
|
+
}),
|
|
372
|
+
/* @__PURE__ */ jsx2("li", {
|
|
373
373
|
children: "pnpm"
|
|
374
|
-
}
|
|
374
|
+
})
|
|
375
375
|
]
|
|
376
|
-
}
|
|
376
|
+
})
|
|
377
377
|
]
|
|
378
|
-
}
|
|
379
|
-
/* @__PURE__ */
|
|
378
|
+
}),
|
|
379
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
380
380
|
className: "card-subtle space-y-3 p-6",
|
|
381
381
|
children: [
|
|
382
|
-
/* @__PURE__ */
|
|
382
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
383
383
|
className: "text-2xl font-bold",
|
|
384
384
|
children: "AI agent modes"
|
|
385
|
-
}
|
|
386
|
-
/* @__PURE__ */
|
|
385
|
+
}),
|
|
386
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
387
387
|
className: "text-muted-foreground space-y-2",
|
|
388
388
|
children: [
|
|
389
|
-
/* @__PURE__ */
|
|
389
|
+
/* @__PURE__ */ jsx2("li", {
|
|
390
390
|
children: "claude-code"
|
|
391
|
-
}
|
|
392
|
-
/* @__PURE__ */
|
|
391
|
+
}),
|
|
392
|
+
/* @__PURE__ */ jsx2("li", {
|
|
393
393
|
children: "openai-codex"
|
|
394
|
-
}
|
|
395
|
-
/* @__PURE__ */
|
|
394
|
+
}),
|
|
395
|
+
/* @__PURE__ */ jsx2("li", {
|
|
396
396
|
children: "cursor"
|
|
397
|
-
}
|
|
398
|
-
/* @__PURE__ */
|
|
397
|
+
}),
|
|
398
|
+
/* @__PURE__ */ jsx2("li", {
|
|
399
399
|
children: "opencode"
|
|
400
|
-
}
|
|
401
|
-
/* @__PURE__ */
|
|
400
|
+
}),
|
|
401
|
+
/* @__PURE__ */ jsx2("li", {
|
|
402
402
|
children: "simple (direct LLM)"
|
|
403
|
-
}
|
|
403
|
+
})
|
|
404
404
|
]
|
|
405
|
-
}
|
|
405
|
+
})
|
|
406
406
|
]
|
|
407
|
-
}
|
|
408
|
-
/* @__PURE__ */
|
|
407
|
+
}),
|
|
408
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
409
409
|
className: "card-subtle space-y-3 p-6",
|
|
410
410
|
children: [
|
|
411
|
-
/* @__PURE__ */
|
|
411
|
+
/* @__PURE__ */ jsx2("h2", {
|
|
412
412
|
className: "text-2xl font-bold",
|
|
413
413
|
children: "Datastores"
|
|
414
|
-
}
|
|
415
|
-
/* @__PURE__ */
|
|
414
|
+
}),
|
|
415
|
+
/* @__PURE__ */ jsx2("p", {
|
|
416
416
|
className: "text-muted-foreground",
|
|
417
417
|
children: "ContractSpec ships with Prisma-friendly defaults and can integrate with custom adapters for other databases."
|
|
418
|
-
}
|
|
419
|
-
/* @__PURE__ */
|
|
418
|
+
}),
|
|
419
|
+
/* @__PURE__ */ jsxs2("ul", {
|
|
420
420
|
className: "text-muted-foreground space-y-2",
|
|
421
421
|
children: [
|
|
422
|
-
/* @__PURE__ */
|
|
422
|
+
/* @__PURE__ */ jsx2("li", {
|
|
423
423
|
children: "PostgreSQL via Prisma"
|
|
424
|
-
}
|
|
425
|
-
/* @__PURE__ */
|
|
424
|
+
}),
|
|
425
|
+
/* @__PURE__ */ jsx2("li", {
|
|
426
426
|
children: "Custom adapters for other SQL/NoSQL stores"
|
|
427
|
-
}
|
|
427
|
+
})
|
|
428
428
|
]
|
|
429
|
-
}
|
|
429
|
+
})
|
|
430
430
|
]
|
|
431
|
-
}
|
|
431
|
+
})
|
|
432
432
|
]
|
|
433
|
-
}
|
|
434
|
-
/* @__PURE__ */
|
|
433
|
+
}),
|
|
434
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
435
435
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
436
436
|
children: [
|
|
437
|
-
/* @__PURE__ */
|
|
437
|
+
/* @__PURE__ */ jsx2(Link2, {
|
|
438
438
|
href: "/docs/getting-started/start-here",
|
|
439
439
|
className: "btn-ghost",
|
|
440
440
|
children: "Start here"
|
|
441
|
-
}
|
|
442
|
-
/* @__PURE__ */
|
|
441
|
+
}),
|
|
442
|
+
/* @__PURE__ */ jsx2(Link2, {
|
|
443
443
|
href: "/docs/getting-started/troubleshooting",
|
|
444
444
|
className: "btn-ghost",
|
|
445
445
|
children: "Troubleshooting"
|
|
446
|
-
}
|
|
447
|
-
/* @__PURE__ */
|
|
446
|
+
}),
|
|
447
|
+
/* @__PURE__ */ jsxs2(Link2, {
|
|
448
448
|
href: "/docs/getting-started/installation",
|
|
449
449
|
className: "btn-primary",
|
|
450
450
|
children: [
|
|
451
451
|
"Next: Installation ",
|
|
452
|
-
/* @__PURE__ */
|
|
452
|
+
/* @__PURE__ */ jsx2(ChevronRight2, {
|
|
453
453
|
size: 16
|
|
454
|
-
}
|
|
454
|
+
})
|
|
455
455
|
]
|
|
456
|
-
}
|
|
456
|
+
})
|
|
457
457
|
]
|
|
458
|
-
}
|
|
458
|
+
})
|
|
459
459
|
]
|
|
460
|
-
}
|
|
460
|
+
});
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
// src/components/docs/getting-started/DataViewTutorialPage.tsx
|
|
464
464
|
import Link3 from "@contractspec/lib.ui-link";
|
|
465
465
|
import { ChevronRight as ChevronRight3 } from "lucide-react";
|
|
466
466
|
import { CodeBlock as CodeBlock2 } from "@contractspec/lib.design-system";
|
|
467
|
-
import {
|
|
467
|
+
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
468
468
|
function DataViewTutorialPage() {
|
|
469
|
-
return /* @__PURE__ */
|
|
469
|
+
return /* @__PURE__ */ jsxs3("div", {
|
|
470
470
|
className: "space-y-8",
|
|
471
471
|
children: [
|
|
472
|
-
/* @__PURE__ */
|
|
472
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
473
473
|
className: "space-y-4",
|
|
474
474
|
children: [
|
|
475
|
-
/* @__PURE__ */
|
|
475
|
+
/* @__PURE__ */ jsx3("h1", {
|
|
476
476
|
className: "text-4xl font-bold",
|
|
477
477
|
children: "Display Data with DataViews"
|
|
478
|
-
}
|
|
479
|
-
/* @__PURE__ */
|
|
478
|
+
}),
|
|
479
|
+
/* @__PURE__ */ jsx3("p", {
|
|
480
480
|
className: "text-muted-foreground text-lg",
|
|
481
481
|
children: "Define a filterable, sortable transaction history view that works across web and mobile without duplicating UI code."
|
|
482
|
-
}
|
|
482
|
+
})
|
|
483
483
|
]
|
|
484
|
-
}
|
|
485
|
-
/* @__PURE__ */
|
|
484
|
+
}),
|
|
485
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
486
486
|
className: "space-y-4",
|
|
487
487
|
children: [
|
|
488
|
-
/* @__PURE__ */
|
|
488
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
489
489
|
className: "text-2xl font-bold",
|
|
490
490
|
children: "1. Define the underlying query"
|
|
491
|
-
}
|
|
492
|
-
/* @__PURE__ */
|
|
491
|
+
}),
|
|
492
|
+
/* @__PURE__ */ jsx3("p", {
|
|
493
493
|
className: "text-muted-foreground",
|
|
494
494
|
children: "First, create a query operation to fetch the data:"
|
|
495
|
-
}
|
|
496
|
-
/* @__PURE__ */
|
|
495
|
+
}),
|
|
496
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
497
497
|
language: "typescript",
|
|
498
498
|
filename: "lib/specs/billing/list-transactions.ts",
|
|
499
499
|
code: `import { defineQuery } from '@contractspec/lib.contracts-spec';
|
|
@@ -510,21 +510,21 @@ export const ListTransactions = defineQuery({
|
|
|
510
510
|
},
|
|
511
511
|
policy: { auth: 'user' },
|
|
512
512
|
});`
|
|
513
|
-
}
|
|
513
|
+
})
|
|
514
514
|
]
|
|
515
|
-
}
|
|
516
|
-
/* @__PURE__ */
|
|
515
|
+
}),
|
|
516
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
517
517
|
className: "space-y-4",
|
|
518
518
|
children: [
|
|
519
|
-
/* @__PURE__ */
|
|
519
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
520
520
|
className: "text-2xl font-bold",
|
|
521
521
|
children: "2. Define the DataView spec"
|
|
522
|
-
}
|
|
523
|
-
/* @__PURE__ */
|
|
522
|
+
}),
|
|
523
|
+
/* @__PURE__ */ jsx3("p", {
|
|
524
524
|
className: "text-muted-foreground",
|
|
525
525
|
children: "Wrap your query with presentation metadata:"
|
|
526
|
-
}
|
|
527
|
-
/* @__PURE__ */
|
|
526
|
+
}),
|
|
527
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
528
528
|
language: "typescript",
|
|
529
529
|
filename: "lib/specs/billing/transaction-history.data-view.ts",
|
|
530
530
|
code: `import { defineDataView } from '@contractspec/lib.contracts-spec';
|
|
@@ -597,21 +597,21 @@ export const TransactionHistory = defineDataView({
|
|
|
597
597
|
pagination: { pageSize: 25 },
|
|
598
598
|
},
|
|
599
599
|
});`
|
|
600
|
-
}
|
|
600
|
+
})
|
|
601
601
|
]
|
|
602
|
-
}
|
|
603
|
-
/* @__PURE__ */
|
|
602
|
+
}),
|
|
603
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
604
604
|
className: "space-y-4",
|
|
605
605
|
children: [
|
|
606
|
-
/* @__PURE__ */
|
|
606
|
+
/* @__PURE__ */ jsx3("h2", {
|
|
607
607
|
className: "text-2xl font-bold",
|
|
608
608
|
children: "3. Render on the frontend"
|
|
609
|
-
}
|
|
610
|
-
/* @__PURE__ */
|
|
609
|
+
}),
|
|
610
|
+
/* @__PURE__ */ jsx3("p", {
|
|
611
611
|
className: "text-muted-foreground",
|
|
612
612
|
children: "Use the runtime renderer in your React or React Native app:"
|
|
613
|
-
}
|
|
614
|
-
/* @__PURE__ */
|
|
613
|
+
}),
|
|
614
|
+
/* @__PURE__ */ jsx3(CodeBlock2, {
|
|
615
615
|
language: "tsx",
|
|
616
616
|
filename: "app/dashboard/transactions/page.tsx",
|
|
617
617
|
code: `'use client';
|
|
@@ -640,67 +640,67 @@ export function TransactionsPage() {
|
|
|
640
640
|
</div>
|
|
641
641
|
);
|
|
642
642
|
}`
|
|
643
|
-
}
|
|
643
|
+
})
|
|
644
644
|
]
|
|
645
|
-
}
|
|
646
|
-
/* @__PURE__ */
|
|
645
|
+
}),
|
|
646
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
647
647
|
className: "card-subtle space-y-4 p-6",
|
|
648
648
|
children: [
|
|
649
|
-
/* @__PURE__ */
|
|
649
|
+
/* @__PURE__ */ jsx3("h3", {
|
|
650
650
|
className: "font-bold",
|
|
651
651
|
children: "Why DataViews?"
|
|
652
|
-
}
|
|
653
|
-
/* @__PURE__ */
|
|
652
|
+
}),
|
|
653
|
+
/* @__PURE__ */ jsxs3("ul", {
|
|
654
654
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
655
655
|
children: [
|
|
656
|
-
/* @__PURE__ */
|
|
656
|
+
/* @__PURE__ */ jsx3("li", {
|
|
657
657
|
children: "Same spec renders on web (React) and mobile (React Native)"
|
|
658
|
-
}
|
|
659
|
-
/* @__PURE__ */
|
|
658
|
+
}),
|
|
659
|
+
/* @__PURE__ */ jsx3("li", {
|
|
660
660
|
children: "Filters, sorting, and pagination handled automatically"
|
|
661
|
-
}
|
|
662
|
-
/* @__PURE__ */
|
|
661
|
+
}),
|
|
662
|
+
/* @__PURE__ */ jsx3("li", {
|
|
663
663
|
children: "Format rules (currency, dates, badges) applied consistently"
|
|
664
|
-
}
|
|
665
|
-
/* @__PURE__ */
|
|
664
|
+
}),
|
|
665
|
+
/* @__PURE__ */ jsx3("li", {
|
|
666
666
|
children: "Export to CSV/PDF using the same spec"
|
|
667
|
-
}
|
|
668
|
-
/* @__PURE__ */
|
|
667
|
+
}),
|
|
668
|
+
/* @__PURE__ */ jsx3("li", {
|
|
669
669
|
children: "A/B test different layouts without touching the backend"
|
|
670
|
-
}
|
|
670
|
+
})
|
|
671
671
|
]
|
|
672
|
-
}
|
|
672
|
+
})
|
|
673
673
|
]
|
|
674
|
-
}
|
|
675
|
-
/* @__PURE__ */
|
|
674
|
+
}),
|
|
675
|
+
/* @__PURE__ */ jsxs3("div", {
|
|
676
676
|
className: "flex items-center gap-4 pt-4",
|
|
677
677
|
children: [
|
|
678
|
-
/* @__PURE__ */
|
|
678
|
+
/* @__PURE__ */ jsxs3(Link3, {
|
|
679
679
|
href: "/docs/libraries/data-views",
|
|
680
680
|
className: "btn-primary",
|
|
681
681
|
children: [
|
|
682
682
|
"DataView API Reference ",
|
|
683
|
-
/* @__PURE__ */
|
|
683
|
+
/* @__PURE__ */ jsx3(ChevronRight3, {
|
|
684
684
|
size: 16
|
|
685
|
-
}
|
|
685
|
+
})
|
|
686
686
|
]
|
|
687
|
-
}
|
|
688
|
-
/* @__PURE__ */
|
|
687
|
+
}),
|
|
688
|
+
/* @__PURE__ */ jsx3(Link3, {
|
|
689
689
|
href: "/docs/specs/workflows",
|
|
690
690
|
className: "btn-ghost",
|
|
691
691
|
children: "Next: Workflows"
|
|
692
|
-
}
|
|
692
|
+
})
|
|
693
693
|
]
|
|
694
|
-
}
|
|
694
|
+
})
|
|
695
695
|
]
|
|
696
|
-
}
|
|
696
|
+
});
|
|
697
697
|
}
|
|
698
698
|
|
|
699
699
|
// src/components/docs/getting-started/DeveloperToolsPage.tsx
|
|
700
700
|
import Link4 from "@contractspec/lib.ui-link";
|
|
701
701
|
import { ChevronRight as ChevronRight4, Code2, Cpu, Layers, Terminal } from "lucide-react";
|
|
702
702
|
import { CodeBlock as CodeBlock3, InstallCommand as InstallCommand2 } from "@contractspec/lib.design-system";
|
|
703
|
-
import {
|
|
703
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
704
704
|
function DeveloperToolsPage() {
|
|
705
705
|
const tools = [
|
|
706
706
|
{
|
|
@@ -752,198 +752,198 @@ function DeveloperToolsPage() {
|
|
|
752
752
|
]
|
|
753
753
|
}
|
|
754
754
|
];
|
|
755
|
-
return /* @__PURE__ */
|
|
755
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
756
756
|
className: "space-y-8",
|
|
757
757
|
children: [
|
|
758
|
-
/* @__PURE__ */
|
|
758
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
759
759
|
className: "space-y-2",
|
|
760
760
|
children: [
|
|
761
|
-
/* @__PURE__ */
|
|
761
|
+
/* @__PURE__ */ jsx4("h1", {
|
|
762
762
|
className: "text-4xl font-bold",
|
|
763
763
|
children: "Developer Tools"
|
|
764
|
-
}
|
|
765
|
-
/* @__PURE__ */
|
|
764
|
+
}),
|
|
765
|
+
/* @__PURE__ */ jsx4("p", {
|
|
766
766
|
className: "text-muted-foreground text-lg",
|
|
767
767
|
children: "ContractSpec provides a suite of tools to help you build, validate, and manage your specifications across different environments."
|
|
768
|
-
}
|
|
768
|
+
})
|
|
769
769
|
]
|
|
770
|
-
}
|
|
771
|
-
/* @__PURE__ */
|
|
770
|
+
}),
|
|
771
|
+
/* @__PURE__ */ jsx4("div", {
|
|
772
772
|
className: "grid gap-6 md:grid-cols-2",
|
|
773
773
|
children: tools.map((tool) => {
|
|
774
774
|
const IconComponent = tool.icon;
|
|
775
775
|
const isComingSoon = tool.status === "coming-soon";
|
|
776
|
-
return /* @__PURE__ */
|
|
776
|
+
return /* @__PURE__ */ jsxs4("div", {
|
|
777
777
|
className: `card-subtle relative space-y-4 p-6 ${isComingSoon ? "opacity-75" : ""}`,
|
|
778
778
|
children: [
|
|
779
|
-
isComingSoon && /* @__PURE__ */
|
|
779
|
+
isComingSoon && /* @__PURE__ */ jsx4("span", {
|
|
780
780
|
className: "absolute -top-2 right-4 rounded-full bg-violet-500/20 px-2 py-0.5 text-xs font-medium text-violet-400",
|
|
781
781
|
children: "Coming Soon"
|
|
782
|
-
}
|
|
783
|
-
/* @__PURE__ */
|
|
782
|
+
}),
|
|
783
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
784
784
|
className: "flex items-center gap-3",
|
|
785
785
|
children: [
|
|
786
|
-
/* @__PURE__ */
|
|
786
|
+
/* @__PURE__ */ jsx4("div", {
|
|
787
787
|
className: "flex h-10 w-10 items-center justify-center rounded-lg bg-violet-500/10",
|
|
788
|
-
children: /* @__PURE__ */
|
|
788
|
+
children: /* @__PURE__ */ jsx4(IconComponent, {
|
|
789
789
|
className: "h-5 w-5 text-violet-400"
|
|
790
|
-
}
|
|
791
|
-
}
|
|
792
|
-
/* @__PURE__ */
|
|
790
|
+
})
|
|
791
|
+
}),
|
|
792
|
+
/* @__PURE__ */ jsx4("h3", {
|
|
793
793
|
className: "text-lg font-bold",
|
|
794
794
|
children: tool.name
|
|
795
|
-
}
|
|
795
|
+
})
|
|
796
796
|
]
|
|
797
|
-
}
|
|
798
|
-
/* @__PURE__ */
|
|
797
|
+
}),
|
|
798
|
+
/* @__PURE__ */ jsx4("p", {
|
|
799
799
|
className: "text-muted-foreground text-sm",
|
|
800
800
|
children: tool.description
|
|
801
|
-
}
|
|
802
|
-
/* @__PURE__ */
|
|
801
|
+
}),
|
|
802
|
+
/* @__PURE__ */ jsx4("ul", {
|
|
803
803
|
className: "space-y-1",
|
|
804
|
-
children: tool.highlights.map((highlight) => /* @__PURE__ */
|
|
804
|
+
children: tool.highlights.map((highlight) => /* @__PURE__ */ jsxs4("li", {
|
|
805
805
|
className: "text-muted-foreground flex items-center gap-2 text-sm",
|
|
806
806
|
children: [
|
|
807
|
-
/* @__PURE__ */
|
|
807
|
+
/* @__PURE__ */ jsx4("span", {
|
|
808
808
|
className: "text-violet-400",
|
|
809
809
|
children: "-"
|
|
810
|
-
}
|
|
810
|
+
}),
|
|
811
811
|
highlight
|
|
812
812
|
]
|
|
813
|
-
}, highlight
|
|
814
|
-
}
|
|
815
|
-
!isComingSoon && /* @__PURE__ */
|
|
813
|
+
}, highlight))
|
|
814
|
+
}),
|
|
815
|
+
!isComingSoon && /* @__PURE__ */ jsxs4(Link4, {
|
|
816
816
|
href: tool.href,
|
|
817
817
|
className: "btn-ghost inline-flex items-center gap-1 text-sm",
|
|
818
818
|
children: [
|
|
819
819
|
"Learn more ",
|
|
820
|
-
/* @__PURE__ */
|
|
820
|
+
/* @__PURE__ */ jsx4(ChevronRight4, {
|
|
821
821
|
size: 14
|
|
822
|
-
}
|
|
822
|
+
})
|
|
823
823
|
]
|
|
824
|
-
}
|
|
824
|
+
})
|
|
825
825
|
]
|
|
826
|
-
}, tool.name
|
|
826
|
+
}, tool.name);
|
|
827
827
|
})
|
|
828
|
-
}
|
|
829
|
-
/* @__PURE__ */
|
|
828
|
+
}),
|
|
829
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
830
830
|
className: "card-subtle space-y-4 p-6",
|
|
831
831
|
children: [
|
|
832
|
-
/* @__PURE__ */
|
|
832
|
+
/* @__PURE__ */ jsx4("h3", {
|
|
833
833
|
className: "font-bold",
|
|
834
834
|
children: "Quick Install"
|
|
835
|
-
}
|
|
836
|
-
/* @__PURE__ */
|
|
835
|
+
}),
|
|
836
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
837
837
|
className: "space-y-3",
|
|
838
838
|
children: [
|
|
839
|
-
/* @__PURE__ */
|
|
839
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
840
840
|
children: [
|
|
841
|
-
/* @__PURE__ */
|
|
841
|
+
/* @__PURE__ */ jsx4("p", {
|
|
842
842
|
className: "text-muted-foreground mb-2 text-xs font-medium",
|
|
843
843
|
children: "CLI"
|
|
844
|
-
}
|
|
845
|
-
/* @__PURE__ */
|
|
844
|
+
}),
|
|
845
|
+
/* @__PURE__ */ jsx4(InstallCommand2, {
|
|
846
846
|
package: "contractspec",
|
|
847
847
|
dev: true
|
|
848
|
-
}
|
|
848
|
+
})
|
|
849
849
|
]
|
|
850
|
-
}
|
|
851
|
-
/* @__PURE__ */
|
|
850
|
+
}),
|
|
851
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
852
852
|
children: [
|
|
853
|
-
/* @__PURE__ */
|
|
853
|
+
/* @__PURE__ */ jsx4("p", {
|
|
854
854
|
className: "text-muted-foreground mb-2 text-xs font-medium",
|
|
855
855
|
children: "VS Code Extension"
|
|
856
|
-
}
|
|
857
|
-
/* @__PURE__ */
|
|
856
|
+
}),
|
|
857
|
+
/* @__PURE__ */ jsx4(CodeBlock3, {
|
|
858
858
|
language: "bash",
|
|
859
859
|
code: "code --install-extension lssm.vscode-contractspec"
|
|
860
|
-
}
|
|
860
|
+
})
|
|
861
861
|
]
|
|
862
|
-
}
|
|
862
|
+
})
|
|
863
863
|
]
|
|
864
|
-
}
|
|
864
|
+
})
|
|
865
865
|
]
|
|
866
|
-
}
|
|
867
|
-
/* @__PURE__ */
|
|
866
|
+
}),
|
|
867
|
+
/* @__PURE__ */ jsxs4("div", {
|
|
868
868
|
className: "flex items-center gap-4 pt-4",
|
|
869
869
|
children: [
|
|
870
|
-
/* @__PURE__ */
|
|
870
|
+
/* @__PURE__ */ jsxs4(Link4, {
|
|
871
871
|
href: "/docs/getting-started/tools/cli",
|
|
872
872
|
className: "btn-primary",
|
|
873
873
|
children: [
|
|
874
874
|
"Get Started with CLI ",
|
|
875
|
-
/* @__PURE__ */
|
|
875
|
+
/* @__PURE__ */ jsx4(ChevronRight4, {
|
|
876
876
|
size: 16
|
|
877
|
-
}
|
|
877
|
+
})
|
|
878
878
|
]
|
|
879
|
-
}
|
|
880
|
-
/* @__PURE__ */
|
|
879
|
+
}),
|
|
880
|
+
/* @__PURE__ */ jsx4(Link4, {
|
|
881
881
|
href: "/docs/getting-started/tools/vscode",
|
|
882
882
|
className: "btn-ghost",
|
|
883
883
|
children: "VS Code Extension"
|
|
884
|
-
}
|
|
884
|
+
})
|
|
885
885
|
]
|
|
886
|
-
}
|
|
886
|
+
})
|
|
887
887
|
]
|
|
888
|
-
}
|
|
888
|
+
});
|
|
889
889
|
}
|
|
890
890
|
|
|
891
891
|
// src/components/docs/getting-started/HelloWorldPage.tsx
|
|
892
892
|
import Link5 from "@contractspec/lib.ui-link";
|
|
893
893
|
import { ChevronRight as ChevronRight5 } from "lucide-react";
|
|
894
894
|
import { CodeBlock as CodeBlock4 } from "@contractspec/lib.design-system";
|
|
895
|
-
import {
|
|
895
|
+
import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
896
896
|
function HelloWorldPage() {
|
|
897
|
-
return /* @__PURE__ */
|
|
897
|
+
return /* @__PURE__ */ jsxs5("div", {
|
|
898
898
|
className: "space-y-8",
|
|
899
899
|
children: [
|
|
900
|
-
/* @__PURE__ */
|
|
900
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
901
901
|
className: "space-y-2",
|
|
902
902
|
children: [
|
|
903
|
-
/* @__PURE__ */
|
|
903
|
+
/* @__PURE__ */ jsx5("h1", {
|
|
904
904
|
className: "text-4xl font-bold",
|
|
905
905
|
children: "Your First Operation"
|
|
906
|
-
}
|
|
907
|
-
/* @__PURE__ */
|
|
906
|
+
}),
|
|
907
|
+
/* @__PURE__ */ jsx5("p", {
|
|
908
908
|
className: "text-muted-foreground text-lg",
|
|
909
909
|
children: "Build a payment capture operation with policy enforcement in under 10 minutes."
|
|
910
|
-
}
|
|
910
|
+
})
|
|
911
911
|
]
|
|
912
|
-
}
|
|
913
|
-
/* @__PURE__ */
|
|
912
|
+
}),
|
|
913
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
914
914
|
className: "space-y-6",
|
|
915
915
|
children: [
|
|
916
|
-
/* @__PURE__ */
|
|
916
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
917
917
|
className: "space-y-3",
|
|
918
918
|
children: [
|
|
919
|
-
/* @__PURE__ */
|
|
919
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
920
920
|
className: "text-2xl font-bold",
|
|
921
921
|
children: "What you'll build"
|
|
922
|
-
}
|
|
923
|
-
/* @__PURE__ */
|
|
922
|
+
}),
|
|
923
|
+
/* @__PURE__ */ jsx5("p", {
|
|
924
924
|
className: "text-muted-foreground",
|
|
925
925
|
children: "A real-world payment processing operation that validates input, enforces business rules, integrates with Stripe, and audits every transaction. This is production-ready code, not a toy example."
|
|
926
|
-
}
|
|
926
|
+
})
|
|
927
927
|
]
|
|
928
|
-
}
|
|
929
|
-
/* @__PURE__ */
|
|
928
|
+
}),
|
|
929
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
930
930
|
className: "space-y-3",
|
|
931
931
|
children: [
|
|
932
|
-
/* @__PURE__ */
|
|
932
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
933
933
|
className: "text-2xl font-bold",
|
|
934
934
|
children: "1. Define the operation spec"
|
|
935
|
-
}
|
|
936
|
-
/* @__PURE__ */
|
|
935
|
+
}),
|
|
936
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
937
937
|
className: "text-muted-foreground",
|
|
938
938
|
children: [
|
|
939
939
|
"Create ",
|
|
940
|
-
/* @__PURE__ */
|
|
940
|
+
/* @__PURE__ */ jsx5("code", {
|
|
941
941
|
children: "lib/specs/billing/capture-payment.ts"
|
|
942
|
-
}
|
|
942
|
+
}),
|
|
943
943
|
":"
|
|
944
944
|
]
|
|
945
|
-
}
|
|
946
|
-
/* @__PURE__ */
|
|
945
|
+
}),
|
|
946
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
947
947
|
language: "typescript",
|
|
948
948
|
filename: "lib/specs/billing/capture-payment.ts",
|
|
949
949
|
code: `import { defineCommand } from '@contractspec/lib.contracts-spec';
|
|
@@ -990,27 +990,27 @@ export const CapturePayment = defineCommand({
|
|
|
990
990
|
],
|
|
991
991
|
},
|
|
992
992
|
});`
|
|
993
|
-
}
|
|
993
|
+
})
|
|
994
994
|
]
|
|
995
|
-
}
|
|
996
|
-
/* @__PURE__ */
|
|
995
|
+
}),
|
|
996
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
997
997
|
className: "space-y-3",
|
|
998
998
|
children: [
|
|
999
|
-
/* @__PURE__ */
|
|
999
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1000
1000
|
className: "text-2xl font-bold",
|
|
1001
1001
|
children: "2. Implement the handler"
|
|
1002
|
-
}
|
|
1003
|
-
/* @__PURE__ */
|
|
1002
|
+
}),
|
|
1003
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
1004
1004
|
className: "text-muted-foreground",
|
|
1005
1005
|
children: [
|
|
1006
1006
|
"Create ",
|
|
1007
|
-
/* @__PURE__ */
|
|
1007
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1008
1008
|
children: "lib/handlers/billing/capture-payment.ts"
|
|
1009
|
-
}
|
|
1009
|
+
}),
|
|
1010
1010
|
":"
|
|
1011
1011
|
]
|
|
1012
|
-
}
|
|
1013
|
-
/* @__PURE__ */
|
|
1012
|
+
}),
|
|
1013
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1014
1014
|
language: "typescript",
|
|
1015
1015
|
filename: "lib/handlers/billing/capture-payment.ts",
|
|
1016
1016
|
code: `import { CapturePayment } from '@/lib/specs/billing/capture-payment';
|
|
@@ -1051,32 +1051,32 @@ export async function handleCapturePayment(input, ctx) {
|
|
|
1051
1051
|
receiptUrl: paymentIntent.charges.data[0]?.receipt_url,
|
|
1052
1052
|
};
|
|
1053
1053
|
}`
|
|
1054
|
-
}
|
|
1054
|
+
})
|
|
1055
1055
|
]
|
|
1056
|
-
}
|
|
1057
|
-
/* @__PURE__ */
|
|
1056
|
+
}),
|
|
1057
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1058
1058
|
className: "space-y-3",
|
|
1059
1059
|
children: [
|
|
1060
|
-
/* @__PURE__ */
|
|
1060
|
+
/* @__PURE__ */ jsx5("h2", {
|
|
1061
1061
|
className: "text-2xl font-bold",
|
|
1062
1062
|
children: "3. Register and serve"
|
|
1063
|
-
}
|
|
1064
|
-
/* @__PURE__ */
|
|
1063
|
+
}),
|
|
1064
|
+
/* @__PURE__ */ jsxs5("p", {
|
|
1065
1065
|
className: "text-muted-foreground",
|
|
1066
1066
|
children: [
|
|
1067
1067
|
"Wire it up in ",
|
|
1068
|
-
/* @__PURE__ */
|
|
1068
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1069
1069
|
children: "lib/registry.ts"
|
|
1070
|
-
}
|
|
1070
|
+
}),
|
|
1071
1071
|
" and",
|
|
1072
1072
|
" ",
|
|
1073
|
-
/* @__PURE__ */
|
|
1073
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1074
1074
|
children: "app/api/ops/[...route]/route.ts"
|
|
1075
|
-
}
|
|
1075
|
+
}),
|
|
1076
1076
|
":"
|
|
1077
1077
|
]
|
|
1078
|
-
}
|
|
1079
|
-
/* @__PURE__ */
|
|
1078
|
+
}),
|
|
1079
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1080
1080
|
language: "typescript",
|
|
1081
1081
|
filename: "lib/registry.ts",
|
|
1082
1082
|
code: `import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts-spec';
|
|
@@ -1085,8 +1085,8 @@ import { handleCapturePayment } from './handlers/billing/capture-payment';
|
|
|
1085
1085
|
|
|
1086
1086
|
export const registry = new OperationSpecRegistry();
|
|
1087
1087
|
installOp(registry, CapturePayment, handleCapturePayment);`
|
|
1088
|
-
}
|
|
1089
|
-
/* @__PURE__ */
|
|
1088
|
+
}),
|
|
1089
|
+
/* @__PURE__ */ jsx5(CodeBlock4, {
|
|
1090
1090
|
language: "typescript",
|
|
1091
1091
|
filename: "app/api/ops/[...route]/route.ts",
|
|
1092
1092
|
code: `import { makeNextAppHandler } from '@contractspec/lib.contracts-runtime-server-rest/rest-next-app';
|
|
@@ -1099,519 +1099,519 @@ const handler = makeNextAppHandler(registry, async (req) => {
|
|
|
1099
1099
|
});
|
|
1100
1100
|
|
|
1101
1101
|
export { handler as GET, handler as POST };`
|
|
1102
|
-
}
|
|
1102
|
+
})
|
|
1103
1103
|
]
|
|
1104
|
-
}
|
|
1105
|
-
/* @__PURE__ */
|
|
1104
|
+
}),
|
|
1105
|
+
/* @__PURE__ */ jsxs5("div", {
|
|
1106
1106
|
className: "card-subtle space-y-4 p-6",
|
|
1107
1107
|
children: [
|
|
1108
|
-
/* @__PURE__ */
|
|
1108
|
+
/* @__PURE__ */ jsx5("h3", {
|
|
1109
1109
|
className: "font-bold",
|
|
1110
1110
|
children: "What you just built:"
|
|
1111
|
-
}
|
|
1112
|
-
/* @__PURE__ */
|
|
1111
|
+
}),
|
|
1112
|
+
/* @__PURE__ */ jsxs5("ul", {
|
|
1113
1113
|
className: "text-muted-foreground space-y-2 text-sm",
|
|
1114
1114
|
children: [
|
|
1115
|
-
/* @__PURE__ */
|
|
1115
|
+
/* @__PURE__ */ jsxs5("li", {
|
|
1116
1116
|
children: [
|
|
1117
1117
|
"Type-safe API endpoint at",
|
|
1118
1118
|
" ",
|
|
1119
|
-
/* @__PURE__ */
|
|
1119
|
+
/* @__PURE__ */ jsx5("code", {
|
|
1120
1120
|
children: "/api/ops/billing.capturePayment"
|
|
1121
|
-
}
|
|
1121
|
+
})
|
|
1122
1122
|
]
|
|
1123
|
-
}
|
|
1124
|
-
/* @__PURE__ */
|
|
1123
|
+
}),
|
|
1124
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1125
1125
|
children: "Automatic input validation (amount must be positive, IDs required)"
|
|
1126
|
-
}
|
|
1127
|
-
/* @__PURE__ */
|
|
1126
|
+
}),
|
|
1127
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1128
1128
|
children: "Policy enforcement\u2014only invoice owner can pay"
|
|
1129
|
-
}
|
|
1130
|
-
/* @__PURE__ */
|
|
1129
|
+
}),
|
|
1130
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1131
1131
|
children: "Stripe integration with error handling"
|
|
1132
|
-
}
|
|
1133
|
-
/* @__PURE__ */
|
|
1132
|
+
}),
|
|
1133
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1134
1134
|
children: "Database transaction with audit trail"
|
|
1135
|
-
}
|
|
1136
|
-
/* @__PURE__ */
|
|
1135
|
+
}),
|
|
1136
|
+
/* @__PURE__ */ jsx5("li", {
|
|
1137
1137
|
children: "Same spec works with GraphQL, MCP, or webhooks"
|
|
1138
|
-
}
|
|
1138
|
+
})
|
|
1139
1139
|
]
|
|
1140
|
-
}
|
|
1140
|
+
})
|
|
1141
1141
|
]
|
|
1142
|
-
}
|
|
1143
|
-
/* @__PURE__ */
|
|
1142
|
+
}),
|
|
1143
|
+
/* @__PURE__ */ jsx5("div", {
|
|
1144
1144
|
className: "flex items-center gap-4 pt-4",
|
|
1145
|
-
children: /* @__PURE__ */
|
|
1145
|
+
children: /* @__PURE__ */ jsxs5(Link5, {
|
|
1146
1146
|
href: "/docs/getting-started/dataviews",
|
|
1147
1147
|
className: "btn-primary",
|
|
1148
1148
|
children: [
|
|
1149
1149
|
"Next: Display Data with DataViews ",
|
|
1150
|
-
/* @__PURE__ */
|
|
1150
|
+
/* @__PURE__ */ jsx5(ChevronRight5, {
|
|
1151
1151
|
size: 16
|
|
1152
|
-
}
|
|
1152
|
+
})
|
|
1153
1153
|
]
|
|
1154
|
-
}
|
|
1155
|
-
}
|
|
1154
|
+
})
|
|
1155
|
+
})
|
|
1156
1156
|
]
|
|
1157
|
-
}
|
|
1157
|
+
})
|
|
1158
1158
|
]
|
|
1159
|
-
}
|
|
1159
|
+
});
|
|
1160
1160
|
}
|
|
1161
1161
|
|
|
1162
1162
|
// src/components/docs/getting-started/InstallationPage.tsx
|
|
1163
1163
|
import Link6 from "@contractspec/lib.ui-link";
|
|
1164
1164
|
import { ChevronRight as ChevronRight6 } from "lucide-react";
|
|
1165
1165
|
import { CodeBlock as CodeBlock5, InstallCommand as InstallCommand3 } from "@contractspec/lib.design-system";
|
|
1166
|
-
import {
|
|
1166
|
+
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1167
1167
|
function InstallationPage() {
|
|
1168
|
-
return /* @__PURE__ */
|
|
1168
|
+
return /* @__PURE__ */ jsxs6("div", {
|
|
1169
1169
|
className: "space-y-8",
|
|
1170
1170
|
children: [
|
|
1171
|
-
/* @__PURE__ */
|
|
1171
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1172
1172
|
className: "space-y-2",
|
|
1173
1173
|
children: [
|
|
1174
|
-
/* @__PURE__ */
|
|
1174
|
+
/* @__PURE__ */ jsx6("h1", {
|
|
1175
1175
|
className: "text-4xl font-bold",
|
|
1176
1176
|
children: "Installation"
|
|
1177
|
-
}
|
|
1178
|
-
/* @__PURE__ */
|
|
1177
|
+
}),
|
|
1178
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1179
1179
|
className: "text-muted-foreground text-lg",
|
|
1180
1180
|
children: "Add ContractSpec to your existing Next.js or Bun project, or start fresh."
|
|
1181
|
-
}
|
|
1181
|
+
})
|
|
1182
1182
|
]
|
|
1183
|
-
}
|
|
1184
|
-
/* @__PURE__ */
|
|
1183
|
+
}),
|
|
1184
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1185
1185
|
className: "space-y-6",
|
|
1186
1186
|
children: [
|
|
1187
|
-
/* @__PURE__ */
|
|
1187
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1188
1188
|
className: "space-y-3",
|
|
1189
1189
|
children: [
|
|
1190
|
-
/* @__PURE__ */
|
|
1190
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1191
1191
|
className: "text-2xl font-bold",
|
|
1192
1192
|
children: "Prerequisites"
|
|
1193
|
-
}
|
|
1194
|
-
/* @__PURE__ */
|
|
1193
|
+
}),
|
|
1194
|
+
/* @__PURE__ */ jsxs6("ul", {
|
|
1195
1195
|
className: "text-muted-foreground space-y-2",
|
|
1196
1196
|
children: [
|
|
1197
|
-
/* @__PURE__ */
|
|
1197
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1198
1198
|
children: "Node.js 20+ (or Bun 1.0+)"
|
|
1199
|
-
}
|
|
1200
|
-
/* @__PURE__ */
|
|
1199
|
+
}),
|
|
1200
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1201
1201
|
children: "Existing Next.js app or Bun HTTP server"
|
|
1202
|
-
}
|
|
1203
|
-
/* @__PURE__ */
|
|
1202
|
+
}),
|
|
1203
|
+
/* @__PURE__ */ jsx6("li", {
|
|
1204
1204
|
children: "PostgreSQL database (for persistence)"
|
|
1205
|
-
}
|
|
1205
|
+
})
|
|
1206
1206
|
]
|
|
1207
|
-
}
|
|
1207
|
+
})
|
|
1208
1208
|
]
|
|
1209
|
-
}
|
|
1210
|
-
/* @__PURE__ */
|
|
1209
|
+
}),
|
|
1210
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1211
1211
|
className: "space-y-3",
|
|
1212
1212
|
children: [
|
|
1213
|
-
/* @__PURE__ */
|
|
1213
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1214
1214
|
className: "text-2xl font-bold",
|
|
1215
1215
|
children: "Install Core Libraries"
|
|
1216
|
-
}
|
|
1217
|
-
/* @__PURE__ */
|
|
1216
|
+
}),
|
|
1217
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1218
1218
|
className: "text-muted-foreground",
|
|
1219
1219
|
children: "Add the contracts runtime and your choice of adapter:"
|
|
1220
|
-
}
|
|
1221
|
-
/* @__PURE__ */
|
|
1220
|
+
}),
|
|
1221
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1222
1222
|
package: [
|
|
1223
1223
|
"@contractspec/lib.contracts-spec",
|
|
1224
1224
|
"@contractspec/lib.schema"
|
|
1225
1225
|
]
|
|
1226
|
-
}
|
|
1226
|
+
})
|
|
1227
1227
|
]
|
|
1228
|
-
}
|
|
1229
|
-
/* @__PURE__ */
|
|
1228
|
+
}),
|
|
1229
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1230
1230
|
className: "space-y-3",
|
|
1231
1231
|
children: [
|
|
1232
|
-
/* @__PURE__ */
|
|
1232
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1233
1233
|
className: "text-2xl font-bold",
|
|
1234
1234
|
children: "For Next.js projects"
|
|
1235
|
-
}
|
|
1236
|
-
/* @__PURE__ */
|
|
1235
|
+
}),
|
|
1236
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1237
1237
|
package: "@contractspec/lib.contracts-spec"
|
|
1238
|
-
}
|
|
1238
|
+
})
|
|
1239
1239
|
]
|
|
1240
|
-
}
|
|
1241
|
-
/* @__PURE__ */
|
|
1240
|
+
}),
|
|
1241
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1242
1242
|
className: "space-y-3",
|
|
1243
1243
|
children: [
|
|
1244
|
-
/* @__PURE__ */
|
|
1244
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1245
1245
|
className: "text-2xl font-bold",
|
|
1246
1246
|
children: "For database models"
|
|
1247
|
-
}
|
|
1248
|
-
/* @__PURE__ */
|
|
1247
|
+
}),
|
|
1248
|
+
/* @__PURE__ */ jsx6(InstallCommand3, {
|
|
1249
1249
|
package: [
|
|
1250
1250
|
"@contractspec/app.cli-database",
|
|
1251
1251
|
"prisma",
|
|
1252
1252
|
"@prisma/client"
|
|
1253
1253
|
]
|
|
1254
|
-
}
|
|
1254
|
+
})
|
|
1255
1255
|
]
|
|
1256
|
-
}
|
|
1257
|
-
/* @__PURE__ */
|
|
1256
|
+
}),
|
|
1257
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1258
1258
|
className: "space-y-3",
|
|
1259
1259
|
children: [
|
|
1260
|
-
/* @__PURE__ */
|
|
1260
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1261
1261
|
className: "text-2xl font-bold",
|
|
1262
1262
|
children: "Set up your project"
|
|
1263
|
-
}
|
|
1264
|
-
/* @__PURE__ */
|
|
1263
|
+
}),
|
|
1264
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1265
1265
|
className: "text-muted-foreground",
|
|
1266
1266
|
children: "Initialize a new ContractSpec project structure:"
|
|
1267
|
-
}
|
|
1268
|
-
/* @__PURE__ */
|
|
1267
|
+
}),
|
|
1268
|
+
/* @__PURE__ */ jsx6(CodeBlock5, {
|
|
1269
1269
|
language: "bash",
|
|
1270
1270
|
filename: "installation-init",
|
|
1271
1271
|
code: `bunx contractspec init
|
|
1272
1272
|
# Follow the interactive prompts to configure your project`
|
|
1273
|
-
}
|
|
1273
|
+
})
|
|
1274
1274
|
]
|
|
1275
|
-
}
|
|
1276
|
-
/* @__PURE__ */
|
|
1275
|
+
}),
|
|
1276
|
+
/* @__PURE__ */ jsxs6("div", {
|
|
1277
1277
|
className: "space-y-3",
|
|
1278
1278
|
children: [
|
|
1279
|
-
/* @__PURE__ */
|
|
1279
|
+
/* @__PURE__ */ jsx6("h2", {
|
|
1280
1280
|
className: "text-2xl font-bold",
|
|
1281
1281
|
children: "Initialize the database"
|
|
1282
|
-
}
|
|
1283
|
-
/* @__PURE__ */
|
|
1282
|
+
}),
|
|
1283
|
+
/* @__PURE__ */ jsx6("p", {
|
|
1284
1284
|
className: "text-muted-foreground",
|
|
1285
1285
|
children: "If using Prisma, set up your schema and generate the client:"
|
|
1286
|
-
}
|
|
1287
|
-
/* @__PURE__ */
|
|
1286
|
+
}),
|
|
1287
|
+
/* @__PURE__ */ jsx6(CodeBlock5, {
|
|
1288
1288
|
language: "bash",
|
|
1289
1289
|
filename: "installation-prisma",
|
|
1290
1290
|
code: `bunx prisma init
|
|
1291
1291
|
# Edit prisma/schema.prisma with your models
|
|
1292
1292
|
bunx prisma generate
|
|
1293
1293
|
bunx prisma migrate dev --name init`
|
|
1294
|
-
}
|
|
1294
|
+
})
|
|
1295
1295
|
]
|
|
1296
|
-
}
|
|
1297
|
-
/* @__PURE__ */
|
|
1296
|
+
}),
|
|
1297
|
+
/* @__PURE__ */ jsx6("div", {
|
|
1298
1298
|
className: "flex items-center gap-4 pt-4",
|
|
1299
|
-
children: /* @__PURE__ */
|
|
1299
|
+
children: /* @__PURE__ */ jsxs6(Link6, {
|
|
1300
1300
|
href: "/docs/getting-started/hello-world",
|
|
1301
1301
|
className: "btn-primary",
|
|
1302
1302
|
children: [
|
|
1303
1303
|
"Next: First Operation ",
|
|
1304
|
-
/* @__PURE__ */
|
|
1304
|
+
/* @__PURE__ */ jsx6(ChevronRight6, {
|
|
1305
1305
|
size: 16
|
|
1306
|
-
}
|
|
1306
|
+
})
|
|
1307
1307
|
]
|
|
1308
|
-
}
|
|
1309
|
-
}
|
|
1308
|
+
})
|
|
1309
|
+
})
|
|
1310
1310
|
]
|
|
1311
|
-
}
|
|
1311
|
+
})
|
|
1312
1312
|
]
|
|
1313
|
-
}
|
|
1313
|
+
});
|
|
1314
1314
|
}
|
|
1315
1315
|
|
|
1316
1316
|
// src/components/docs/getting-started/StartHerePage.tsx
|
|
1317
1317
|
import Link7 from "@contractspec/lib.ui-link";
|
|
1318
1318
|
import { ChevronRight as ChevronRight7 } from "lucide-react";
|
|
1319
1319
|
import { CodeBlock as CodeBlock6, InstallCommand as InstallCommand4 } from "@contractspec/lib.design-system";
|
|
1320
|
-
import {
|
|
1320
|
+
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1321
1321
|
function StartHerePage() {
|
|
1322
|
-
return /* @__PURE__ */
|
|
1322
|
+
return /* @__PURE__ */ jsxs7("div", {
|
|
1323
1323
|
className: "space-y-8",
|
|
1324
1324
|
children: [
|
|
1325
|
-
/* @__PURE__ */
|
|
1325
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1326
1326
|
className: "space-y-2",
|
|
1327
1327
|
children: [
|
|
1328
|
-
/* @__PURE__ */
|
|
1328
|
+
/* @__PURE__ */ jsx7("h1", {
|
|
1329
1329
|
className: "text-4xl font-bold",
|
|
1330
1330
|
children: "Start here"
|
|
1331
|
-
}
|
|
1332
|
-
/* @__PURE__ */
|
|
1331
|
+
}),
|
|
1332
|
+
/* @__PURE__ */ jsx7("p", {
|
|
1333
1333
|
className: "text-muted-foreground text-lg",
|
|
1334
1334
|
children: "A fast onboarding path from install to your first generated contract."
|
|
1335
|
-
}
|
|
1335
|
+
})
|
|
1336
1336
|
]
|
|
1337
|
-
}
|
|
1338
|
-
/* @__PURE__ */
|
|
1337
|
+
}),
|
|
1338
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1339
1339
|
className: "space-y-6",
|
|
1340
1340
|
children: [
|
|
1341
|
-
/* @__PURE__ */
|
|
1341
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1342
1342
|
className: "space-y-3",
|
|
1343
1343
|
children: [
|
|
1344
|
-
/* @__PURE__ */
|
|
1344
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1345
1345
|
className: "text-2xl font-bold",
|
|
1346
1346
|
children: "Install the CLI"
|
|
1347
|
-
}
|
|
1348
|
-
/* @__PURE__ */
|
|
1347
|
+
}),
|
|
1348
|
+
/* @__PURE__ */ jsx7(InstallCommand4, {
|
|
1349
1349
|
package: "contractspec",
|
|
1350
1350
|
dev: true
|
|
1351
|
-
}
|
|
1351
|
+
})
|
|
1352
1352
|
]
|
|
1353
|
-
}
|
|
1354
|
-
/* @__PURE__ */
|
|
1353
|
+
}),
|
|
1354
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1355
1355
|
className: "space-y-3",
|
|
1356
1356
|
children: [
|
|
1357
|
-
/* @__PURE__ */
|
|
1357
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1358
1358
|
className: "text-2xl font-bold",
|
|
1359
1359
|
children: "Add core libraries"
|
|
1360
|
-
}
|
|
1361
|
-
/* @__PURE__ */
|
|
1360
|
+
}),
|
|
1361
|
+
/* @__PURE__ */ jsx7(InstallCommand4, {
|
|
1362
1362
|
package: [
|
|
1363
1363
|
"@contractspec/lib.contracts-spec",
|
|
1364
1364
|
"@contractspec/lib.schema"
|
|
1365
1365
|
]
|
|
1366
|
-
}
|
|
1366
|
+
})
|
|
1367
1367
|
]
|
|
1368
|
-
}
|
|
1369
|
-
/* @__PURE__ */
|
|
1368
|
+
}),
|
|
1369
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1370
1370
|
className: "space-y-3",
|
|
1371
1371
|
children: [
|
|
1372
|
-
/* @__PURE__ */
|
|
1372
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1373
1373
|
className: "text-2xl font-bold",
|
|
1374
1374
|
children: "Initialize your project"
|
|
1375
|
-
}
|
|
1376
|
-
/* @__PURE__ */
|
|
1375
|
+
}),
|
|
1376
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1377
1377
|
language: "bash",
|
|
1378
1378
|
filename: "start-here-init",
|
|
1379
1379
|
code: `bunx contractspec init`
|
|
1380
|
-
}
|
|
1380
|
+
})
|
|
1381
1381
|
]
|
|
1382
|
-
}
|
|
1383
|
-
/* @__PURE__ */
|
|
1382
|
+
}),
|
|
1383
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1384
1384
|
className: "space-y-3",
|
|
1385
1385
|
children: [
|
|
1386
|
-
/* @__PURE__ */
|
|
1386
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1387
1387
|
className: "text-2xl font-bold",
|
|
1388
1388
|
children: "Create your first contract"
|
|
1389
|
-
}
|
|
1390
|
-
/* @__PURE__ */
|
|
1389
|
+
}),
|
|
1390
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1391
1391
|
language: "bash",
|
|
1392
1392
|
filename: "start-here-create",
|
|
1393
1393
|
code: `contractspec create --type operation`
|
|
1394
|
-
}
|
|
1394
|
+
})
|
|
1395
1395
|
]
|
|
1396
|
-
}
|
|
1397
|
-
/* @__PURE__ */
|
|
1396
|
+
}),
|
|
1397
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1398
1398
|
className: "space-y-3",
|
|
1399
1399
|
children: [
|
|
1400
|
-
/* @__PURE__ */
|
|
1400
|
+
/* @__PURE__ */ jsx7("h2", {
|
|
1401
1401
|
className: "text-2xl font-bold",
|
|
1402
1402
|
children: "Generate implementation"
|
|
1403
|
-
}
|
|
1404
|
-
/* @__PURE__ */
|
|
1403
|
+
}),
|
|
1404
|
+
/* @__PURE__ */ jsx7(CodeBlock6, {
|
|
1405
1405
|
language: "bash",
|
|
1406
1406
|
filename: "start-here-build",
|
|
1407
1407
|
code: `contractspec build src/contracts/mySpec.ts
|
|
1408
1408
|
contractspec validate src/contracts/mySpec.ts`
|
|
1409
|
-
}
|
|
1409
|
+
})
|
|
1410
1410
|
]
|
|
1411
|
-
}
|
|
1411
|
+
})
|
|
1412
1412
|
]
|
|
1413
|
-
}
|
|
1414
|
-
/* @__PURE__ */
|
|
1413
|
+
}),
|
|
1414
|
+
/* @__PURE__ */ jsxs7("div", {
|
|
1415
1415
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
1416
1416
|
children: [
|
|
1417
|
-
/* @__PURE__ */
|
|
1417
|
+
/* @__PURE__ */ jsxs7(Link7, {
|
|
1418
1418
|
href: "/docs/getting-started/hello-world",
|
|
1419
1419
|
className: "btn-primary",
|
|
1420
1420
|
children: [
|
|
1421
1421
|
"Next: Hello World ",
|
|
1422
|
-
/* @__PURE__ */
|
|
1422
|
+
/* @__PURE__ */ jsx7(ChevronRight7, {
|
|
1423
1423
|
size: 16
|
|
1424
|
-
}
|
|
1424
|
+
})
|
|
1425
1425
|
]
|
|
1426
|
-
}
|
|
1427
|
-
/* @__PURE__ */
|
|
1426
|
+
}),
|
|
1427
|
+
/* @__PURE__ */ jsx7(Link7, {
|
|
1428
1428
|
href: "/docs/getting-started/troubleshooting",
|
|
1429
1429
|
className: "btn-ghost",
|
|
1430
1430
|
children: "Troubleshooting"
|
|
1431
|
-
}
|
|
1432
|
-
/* @__PURE__ */
|
|
1431
|
+
}),
|
|
1432
|
+
/* @__PURE__ */ jsx7(Link7, {
|
|
1433
1433
|
href: "/docs/getting-started/compatibility",
|
|
1434
1434
|
className: "btn-ghost",
|
|
1435
1435
|
children: "Compatibility"
|
|
1436
|
-
}
|
|
1436
|
+
})
|
|
1437
1437
|
]
|
|
1438
|
-
}
|
|
1438
|
+
})
|
|
1439
1439
|
]
|
|
1440
|
-
}
|
|
1440
|
+
});
|
|
1441
1441
|
}
|
|
1442
1442
|
|
|
1443
1443
|
// src/components/docs/getting-started/TroubleshootingPage.tsx
|
|
1444
1444
|
import Link8 from "@contractspec/lib.ui-link";
|
|
1445
1445
|
import { ChevronRight as ChevronRight8 } from "lucide-react";
|
|
1446
1446
|
import { CodeBlock as CodeBlock7 } from "@contractspec/lib.design-system";
|
|
1447
|
-
import {
|
|
1447
|
+
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1448
1448
|
function TroubleshootingPage() {
|
|
1449
|
-
return /* @__PURE__ */
|
|
1449
|
+
return /* @__PURE__ */ jsxs8("div", {
|
|
1450
1450
|
className: "space-y-8",
|
|
1451
1451
|
children: [
|
|
1452
|
-
/* @__PURE__ */
|
|
1452
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1453
1453
|
className: "space-y-2",
|
|
1454
1454
|
children: [
|
|
1455
|
-
/* @__PURE__ */
|
|
1455
|
+
/* @__PURE__ */ jsx8("h1", {
|
|
1456
1456
|
className: "text-4xl font-bold",
|
|
1457
1457
|
children: "Troubleshooting"
|
|
1458
|
-
}
|
|
1459
|
-
/* @__PURE__ */
|
|
1458
|
+
}),
|
|
1459
|
+
/* @__PURE__ */ jsx8("p", {
|
|
1460
1460
|
className: "text-muted-foreground text-lg",
|
|
1461
1461
|
children: "Common issues and fixes when installing or generating with ContractSpec."
|
|
1462
|
-
}
|
|
1462
|
+
})
|
|
1463
1463
|
]
|
|
1464
|
-
}
|
|
1465
|
-
/* @__PURE__ */
|
|
1464
|
+
}),
|
|
1465
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1466
1466
|
className: "space-y-6",
|
|
1467
1467
|
children: [
|
|
1468
|
-
/* @__PURE__ */
|
|
1468
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1469
1469
|
className: "card-subtle space-y-3 p-6",
|
|
1470
1470
|
children: [
|
|
1471
|
-
/* @__PURE__ */
|
|
1471
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1472
1472
|
className: "text-2xl font-bold",
|
|
1473
1473
|
children: "Command not found"
|
|
1474
|
-
}
|
|
1475
|
-
/* @__PURE__ */
|
|
1474
|
+
}),
|
|
1475
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1476
1476
|
className: "text-muted-foreground space-y-2",
|
|
1477
1477
|
children: [
|
|
1478
|
-
/* @__PURE__ */
|
|
1478
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1479
1479
|
children: "Reinstall the CLI and ensure it is in your PATH."
|
|
1480
|
-
}
|
|
1481
|
-
/* @__PURE__ */
|
|
1480
|
+
}),
|
|
1481
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1482
1482
|
children: "Confirm Node.js 20+ or Bun 1.0+ is installed."
|
|
1483
|
-
}
|
|
1483
|
+
})
|
|
1484
1484
|
]
|
|
1485
|
-
}
|
|
1485
|
+
})
|
|
1486
1486
|
]
|
|
1487
|
-
}
|
|
1488
|
-
/* @__PURE__ */
|
|
1487
|
+
}),
|
|
1488
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1489
1489
|
className: "card-subtle space-y-3 p-6",
|
|
1490
1490
|
children: [
|
|
1491
|
-
/* @__PURE__ */
|
|
1491
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1492
1492
|
className: "text-2xl font-bold",
|
|
1493
1493
|
children: "Specs not discovered"
|
|
1494
|
-
}
|
|
1495
|
-
/* @__PURE__ */
|
|
1494
|
+
}),
|
|
1495
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1496
1496
|
className: "text-muted-foreground space-y-2",
|
|
1497
1497
|
children: [
|
|
1498
|
-
/* @__PURE__ */
|
|
1498
|
+
/* @__PURE__ */ jsxs8("li", {
|
|
1499
1499
|
children: [
|
|
1500
1500
|
"Run ",
|
|
1501
|
-
/* @__PURE__ */
|
|
1501
|
+
/* @__PURE__ */ jsx8("code", {
|
|
1502
1502
|
children: "contractspec list"
|
|
1503
|
-
}
|
|
1503
|
+
}),
|
|
1504
1504
|
" to see discovered specs."
|
|
1505
1505
|
]
|
|
1506
|
-
}
|
|
1507
|
-
/* @__PURE__ */
|
|
1506
|
+
}),
|
|
1507
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1508
1508
|
children: "Verify your spec path conventions in .contractsrc.json."
|
|
1509
|
-
}
|
|
1509
|
+
})
|
|
1510
1510
|
]
|
|
1511
|
-
}
|
|
1511
|
+
})
|
|
1512
1512
|
]
|
|
1513
|
-
}
|
|
1514
|
-
/* @__PURE__ */
|
|
1513
|
+
}),
|
|
1514
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1515
1515
|
className: "card-subtle space-y-3 p-6",
|
|
1516
1516
|
children: [
|
|
1517
|
-
/* @__PURE__ */
|
|
1517
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1518
1518
|
className: "text-2xl font-bold",
|
|
1519
1519
|
children: "Build or validate fails"
|
|
1520
|
-
}
|
|
1521
|
-
/* @__PURE__ */
|
|
1520
|
+
}),
|
|
1521
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1522
1522
|
className: "text-muted-foreground space-y-2",
|
|
1523
1523
|
children: [
|
|
1524
|
-
/* @__PURE__ */
|
|
1524
|
+
/* @__PURE__ */ jsxs8("li", {
|
|
1525
1525
|
children: [
|
|
1526
1526
|
"Run ",
|
|
1527
|
-
/* @__PURE__ */
|
|
1527
|
+
/* @__PURE__ */ jsx8("code", {
|
|
1528
1528
|
children: "contractspec validate"
|
|
1529
|
-
}
|
|
1529
|
+
}),
|
|
1530
1530
|
" to surface schema errors."
|
|
1531
1531
|
]
|
|
1532
|
-
}
|
|
1533
|
-
/* @__PURE__ */
|
|
1532
|
+
}),
|
|
1533
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1534
1534
|
children: "Check that generated files were not manually edited."
|
|
1535
|
-
}
|
|
1535
|
+
})
|
|
1536
1536
|
]
|
|
1537
|
-
}
|
|
1537
|
+
})
|
|
1538
1538
|
]
|
|
1539
|
-
}
|
|
1540
|
-
/* @__PURE__ */
|
|
1539
|
+
}),
|
|
1540
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1541
1541
|
className: "space-y-3",
|
|
1542
1542
|
children: [
|
|
1543
|
-
/* @__PURE__ */
|
|
1543
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1544
1544
|
className: "text-2xl font-bold",
|
|
1545
1545
|
children: "Diagnostics"
|
|
1546
|
-
}
|
|
1547
|
-
/* @__PURE__ */
|
|
1546
|
+
}),
|
|
1547
|
+
/* @__PURE__ */ jsx8(CodeBlock7, {
|
|
1548
1548
|
language: "bash",
|
|
1549
1549
|
filename: "troubleshooting-diagnostics",
|
|
1550
1550
|
code: `contractspec --version
|
|
1551
1551
|
contractspec list
|
|
1552
1552
|
contractspec validate src/contracts/mySpec.ts`
|
|
1553
|
-
}
|
|
1553
|
+
})
|
|
1554
1554
|
]
|
|
1555
|
-
}
|
|
1556
|
-
/* @__PURE__ */
|
|
1555
|
+
}),
|
|
1556
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1557
1557
|
className: "card-subtle space-y-3 p-6",
|
|
1558
1558
|
children: [
|
|
1559
|
-
/* @__PURE__ */
|
|
1559
|
+
/* @__PURE__ */ jsx8("h2", {
|
|
1560
1560
|
className: "text-2xl font-bold",
|
|
1561
1561
|
children: "Still blocked?"
|
|
1562
|
-
}
|
|
1563
|
-
/* @__PURE__ */
|
|
1562
|
+
}),
|
|
1563
|
+
/* @__PURE__ */ jsxs8("ul", {
|
|
1564
1564
|
className: "text-muted-foreground space-y-2",
|
|
1565
1565
|
children: [
|
|
1566
|
-
/* @__PURE__ */
|
|
1566
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1567
1567
|
children: "Confirm compatibility requirements for runtime and framework."
|
|
1568
|
-
}
|
|
1569
|
-
/* @__PURE__ */
|
|
1568
|
+
}),
|
|
1569
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1570
1570
|
children: "Re-run builds on a clean branch to isolate changes."
|
|
1571
|
-
}
|
|
1572
|
-
/* @__PURE__ */
|
|
1571
|
+
}),
|
|
1572
|
+
/* @__PURE__ */ jsx8("li", {
|
|
1573
1573
|
children: "Use a new spec and minimal adapter to validate setup."
|
|
1574
|
-
}
|
|
1574
|
+
})
|
|
1575
1575
|
]
|
|
1576
|
-
}
|
|
1576
|
+
})
|
|
1577
1577
|
]
|
|
1578
|
-
}
|
|
1578
|
+
})
|
|
1579
1579
|
]
|
|
1580
|
-
}
|
|
1581
|
-
/* @__PURE__ */
|
|
1580
|
+
}),
|
|
1581
|
+
/* @__PURE__ */ jsxs8("div", {
|
|
1582
1582
|
className: "flex flex-wrap items-center gap-3 pt-2",
|
|
1583
1583
|
children: [
|
|
1584
|
-
/* @__PURE__ */
|
|
1584
|
+
/* @__PURE__ */ jsx8(Link8, {
|
|
1585
1585
|
href: "/docs/getting-started/start-here",
|
|
1586
1586
|
className: "btn-ghost",
|
|
1587
1587
|
children: "Start here"
|
|
1588
|
-
}
|
|
1589
|
-
/* @__PURE__ */
|
|
1588
|
+
}),
|
|
1589
|
+
/* @__PURE__ */ jsx8(Link8, {
|
|
1590
1590
|
href: "/docs/getting-started/compatibility",
|
|
1591
1591
|
className: "btn-ghost",
|
|
1592
1592
|
children: "Compatibility"
|
|
1593
|
-
}
|
|
1594
|
-
/* @__PURE__ */
|
|
1593
|
+
}),
|
|
1594
|
+
/* @__PURE__ */ jsxs8(Link8, {
|
|
1595
1595
|
href: "/docs/getting-started/installation",
|
|
1596
1596
|
className: "btn-primary",
|
|
1597
1597
|
children: [
|
|
1598
1598
|
"Next: Installation ",
|
|
1599
|
-
/* @__PURE__ */
|
|
1599
|
+
/* @__PURE__ */ jsx8(ChevronRight8, {
|
|
1600
1600
|
size: 16
|
|
1601
|
-
}
|
|
1601
|
+
})
|
|
1602
1602
|
]
|
|
1603
|
-
}
|
|
1603
|
+
})
|
|
1604
1604
|
]
|
|
1605
|
-
}
|
|
1605
|
+
})
|
|
1606
1606
|
]
|
|
1607
|
-
}
|
|
1607
|
+
});
|
|
1608
1608
|
}
|
|
1609
1609
|
|
|
1610
1610
|
// src/components/docs/getting-started/VSCodeExtensionPage.tsx
|
|
1611
1611
|
import Link9 from "@contractspec/lib.ui-link";
|
|
1612
1612
|
import { ChevronRight as ChevronRight9, ExternalLink } from "lucide-react";
|
|
1613
1613
|
import { CodeBlock as CodeBlock8 } from "@contractspec/lib.design-system";
|
|
1614
|
-
import {
|
|
1614
|
+
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1615
1615
|
function VSCodeExtensionPage() {
|
|
1616
1616
|
const features = [
|
|
1617
1617
|
{
|
|
@@ -1670,371 +1670,371 @@ function VSCodeExtensionPage() {
|
|
|
1670
1670
|
description: "Generate OpenAPI specification"
|
|
1671
1671
|
}
|
|
1672
1672
|
];
|
|
1673
|
-
return /* @__PURE__ */
|
|
1673
|
+
return /* @__PURE__ */ jsxs9("div", {
|
|
1674
1674
|
className: "space-y-8",
|
|
1675
1675
|
children: [
|
|
1676
|
-
/* @__PURE__ */
|
|
1676
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1677
1677
|
className: "space-y-2",
|
|
1678
1678
|
children: [
|
|
1679
|
-
/* @__PURE__ */
|
|
1679
|
+
/* @__PURE__ */ jsx9("h1", {
|
|
1680
1680
|
className: "text-4xl font-bold",
|
|
1681
1681
|
children: "VS Code Extension"
|
|
1682
|
-
}
|
|
1683
|
-
/* @__PURE__ */
|
|
1682
|
+
}),
|
|
1683
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1684
1684
|
className: "text-muted-foreground text-lg",
|
|
1685
1685
|
children: "Spec-first development directly in VS Code. Validate, scaffold, and explore your contract specifications with real-time feedback."
|
|
1686
|
-
}
|
|
1686
|
+
})
|
|
1687
1687
|
]
|
|
1688
|
-
}
|
|
1689
|
-
/* @__PURE__ */
|
|
1688
|
+
}),
|
|
1689
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1690
1690
|
className: "flex flex-wrap gap-3",
|
|
1691
1691
|
children: [
|
|
1692
|
-
/* @__PURE__ */
|
|
1692
|
+
/* @__PURE__ */ jsxs9("a", {
|
|
1693
1693
|
href: "https://marketplace.visualstudio.com/items?itemName=lssm.vscode-contractspec",
|
|
1694
1694
|
target: "_blank",
|
|
1695
1695
|
rel: "noopener noreferrer",
|
|
1696
1696
|
className: "btn-primary inline-flex items-center gap-2",
|
|
1697
1697
|
children: [
|
|
1698
1698
|
"Install Extension ",
|
|
1699
|
-
/* @__PURE__ */
|
|
1699
|
+
/* @__PURE__ */ jsx9(ExternalLink, {
|
|
1700
1700
|
size: 16
|
|
1701
|
-
}
|
|
1701
|
+
})
|
|
1702
1702
|
]
|
|
1703
|
-
}
|
|
1704
|
-
/* @__PURE__ */
|
|
1703
|
+
}),
|
|
1704
|
+
/* @__PURE__ */ jsx9("a", {
|
|
1705
1705
|
href: "vscode:extension/lssm.vscode-contractspec",
|
|
1706
1706
|
className: "btn-ghost inline-flex items-center gap-2",
|
|
1707
1707
|
children: "Open in VS Code"
|
|
1708
|
-
}
|
|
1708
|
+
})
|
|
1709
1709
|
]
|
|
1710
|
-
}
|
|
1711
|
-
/* @__PURE__ */
|
|
1710
|
+
}),
|
|
1711
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1712
1712
|
className: "space-y-6",
|
|
1713
1713
|
children: [
|
|
1714
|
-
/* @__PURE__ */
|
|
1714
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1715
1715
|
className: "space-y-3",
|
|
1716
1716
|
children: [
|
|
1717
|
-
/* @__PURE__ */
|
|
1717
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1718
1718
|
className: "text-2xl font-bold",
|
|
1719
1719
|
children: "Installation"
|
|
1720
|
-
}
|
|
1721
|
-
/* @__PURE__ */
|
|
1720
|
+
}),
|
|
1721
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1722
1722
|
className: "space-y-2",
|
|
1723
1723
|
children: [
|
|
1724
|
-
/* @__PURE__ */
|
|
1724
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1725
1725
|
className: "text-muted-foreground text-sm",
|
|
1726
1726
|
children: [
|
|
1727
|
-
/* @__PURE__ */
|
|
1727
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1728
1728
|
children: "Option 1:"
|
|
1729
|
-
}
|
|
1729
|
+
}),
|
|
1730
1730
|
" Install from VS Code Marketplace"
|
|
1731
1731
|
]
|
|
1732
|
-
}
|
|
1733
|
-
/* @__PURE__ */
|
|
1732
|
+
}),
|
|
1733
|
+
/* @__PURE__ */ jsx9(CodeBlock8, {
|
|
1734
1734
|
language: "bash",
|
|
1735
1735
|
code: "code --install-extension lssm.vscode-contractspec"
|
|
1736
|
-
}
|
|
1737
|
-
/* @__PURE__ */
|
|
1736
|
+
}),
|
|
1737
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1738
1738
|
className: "text-muted-foreground mt-4 text-sm",
|
|
1739
1739
|
children: [
|
|
1740
|
-
/* @__PURE__ */
|
|
1740
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1741
1741
|
children: "Option 2:"
|
|
1742
|
-
}
|
|
1742
|
+
}),
|
|
1743
1743
|
' Search for "ContractSpec" in VS Code Extensions (Ctrl/Cmd+Shift+X)'
|
|
1744
1744
|
]
|
|
1745
|
-
}
|
|
1745
|
+
})
|
|
1746
1746
|
]
|
|
1747
|
-
}
|
|
1747
|
+
})
|
|
1748
1748
|
]
|
|
1749
|
-
}
|
|
1750
|
-
/* @__PURE__ */
|
|
1749
|
+
}),
|
|
1750
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1751
1751
|
className: "space-y-4",
|
|
1752
1752
|
children: [
|
|
1753
|
-
/* @__PURE__ */
|
|
1753
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1754
1754
|
className: "text-2xl font-bold",
|
|
1755
1755
|
children: "Features"
|
|
1756
|
-
}
|
|
1757
|
-
/* @__PURE__ */
|
|
1756
|
+
}),
|
|
1757
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1758
1758
|
className: "grid gap-4 md:grid-cols-3",
|
|
1759
|
-
children: features.map((section) => /* @__PURE__ */
|
|
1759
|
+
children: features.map((section) => /* @__PURE__ */ jsxs9("div", {
|
|
1760
1760
|
className: "card-subtle space-y-3 p-4",
|
|
1761
1761
|
children: [
|
|
1762
|
-
/* @__PURE__ */
|
|
1762
|
+
/* @__PURE__ */ jsx9("h3", {
|
|
1763
1763
|
className: "font-bold text-violet-400",
|
|
1764
1764
|
children: section.category
|
|
1765
|
-
}
|
|
1766
|
-
/* @__PURE__ */
|
|
1765
|
+
}),
|
|
1766
|
+
/* @__PURE__ */ jsx9("ul", {
|
|
1767
1767
|
className: "space-y-2",
|
|
1768
|
-
children: section.items.map((item) => /* @__PURE__ */
|
|
1768
|
+
children: section.items.map((item) => /* @__PURE__ */ jsxs9("li", {
|
|
1769
1769
|
className: "text-muted-foreground flex items-start gap-2 text-sm",
|
|
1770
1770
|
children: [
|
|
1771
|
-
/* @__PURE__ */
|
|
1771
|
+
/* @__PURE__ */ jsx9("span", {
|
|
1772
1772
|
className: "mt-1 text-violet-400",
|
|
1773
1773
|
children: "-"
|
|
1774
|
-
}
|
|
1775
|
-
/* @__PURE__ */
|
|
1774
|
+
}),
|
|
1775
|
+
/* @__PURE__ */ jsx9("span", {
|
|
1776
1776
|
children: item
|
|
1777
|
-
}
|
|
1777
|
+
})
|
|
1778
1778
|
]
|
|
1779
|
-
}, item
|
|
1780
|
-
}
|
|
1779
|
+
}, item))
|
|
1780
|
+
})
|
|
1781
1781
|
]
|
|
1782
|
-
}, section.category
|
|
1783
|
-
}
|
|
1782
|
+
}, section.category))
|
|
1783
|
+
})
|
|
1784
1784
|
]
|
|
1785
|
-
}
|
|
1786
|
-
/* @__PURE__ */
|
|
1785
|
+
}),
|
|
1786
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1787
1787
|
className: "space-y-4",
|
|
1788
1788
|
children: [
|
|
1789
|
-
/* @__PURE__ */
|
|
1789
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1790
1790
|
className: "text-2xl font-bold",
|
|
1791
1791
|
children: "Commands"
|
|
1792
|
-
}
|
|
1793
|
-
/* @__PURE__ */
|
|
1792
|
+
}),
|
|
1793
|
+
/* @__PURE__ */ jsxs9("p", {
|
|
1794
1794
|
className: "text-muted-foreground",
|
|
1795
1795
|
children: [
|
|
1796
1796
|
"Access commands via Command Palette (Ctrl/Cmd+Shift+P) with prefix",
|
|
1797
1797
|
" ",
|
|
1798
|
-
/* @__PURE__ */
|
|
1798
|
+
/* @__PURE__ */ jsx9("code", {
|
|
1799
1799
|
children: "ContractSpec:"
|
|
1800
|
-
}
|
|
1800
|
+
})
|
|
1801
1801
|
]
|
|
1802
|
-
}
|
|
1803
|
-
/* @__PURE__ */
|
|
1802
|
+
}),
|
|
1803
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1804
1804
|
className: "grid gap-3 md:grid-cols-2",
|
|
1805
|
-
children: commands.map((cmd) => /* @__PURE__ */
|
|
1805
|
+
children: commands.map((cmd) => /* @__PURE__ */ jsx9("div", {
|
|
1806
1806
|
className: "card-subtle flex items-center gap-3 p-3",
|
|
1807
|
-
children: /* @__PURE__ */
|
|
1807
|
+
children: /* @__PURE__ */ jsxs9("div", {
|
|
1808
1808
|
className: "flex-1",
|
|
1809
1809
|
children: [
|
|
1810
|
-
/* @__PURE__ */
|
|
1810
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1811
1811
|
className: "font-mono text-sm font-medium",
|
|
1812
1812
|
children: cmd.name
|
|
1813
|
-
}
|
|
1814
|
-
/* @__PURE__ */
|
|
1813
|
+
}),
|
|
1814
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1815
1815
|
className: "text-muted-foreground text-xs",
|
|
1816
1816
|
children: cmd.description
|
|
1817
|
-
}
|
|
1817
|
+
})
|
|
1818
1818
|
]
|
|
1819
|
-
}
|
|
1820
|
-
}, cmd.name
|
|
1821
|
-
}
|
|
1819
|
+
})
|
|
1820
|
+
}, cmd.name))
|
|
1821
|
+
})
|
|
1822
1822
|
]
|
|
1823
|
-
}
|
|
1824
|
-
/* @__PURE__ */
|
|
1823
|
+
}),
|
|
1824
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1825
1825
|
className: "space-y-3",
|
|
1826
1826
|
children: [
|
|
1827
|
-
/* @__PURE__ */
|
|
1827
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1828
1828
|
className: "text-2xl font-bold",
|
|
1829
1829
|
children: "Sidebar Views"
|
|
1830
|
-
}
|
|
1831
|
-
/* @__PURE__ */
|
|
1830
|
+
}),
|
|
1831
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1832
1832
|
className: "text-muted-foreground",
|
|
1833
1833
|
children: "The extension adds a ContractSpec activity bar (icon in sidebar) with three views:"
|
|
1834
|
-
}
|
|
1835
|
-
/* @__PURE__ */
|
|
1834
|
+
}),
|
|
1835
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1836
1836
|
className: "grid gap-4 md:grid-cols-3",
|
|
1837
1837
|
children: [
|
|
1838
|
-
/* @__PURE__ */
|
|
1838
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1839
1839
|
className: "card-subtle space-y-2 p-4",
|
|
1840
1840
|
children: [
|
|
1841
|
-
/* @__PURE__ */
|
|
1841
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1842
1842
|
className: "font-bold",
|
|
1843
1843
|
children: "Specs Explorer"
|
|
1844
|
-
}
|
|
1845
|
-
/* @__PURE__ */
|
|
1844
|
+
}),
|
|
1845
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1846
1846
|
className: "text-muted-foreground text-sm",
|
|
1847
1847
|
children: "Browse all specs organized by type. Shows name, version, and stability. Click to open, right-click for actions."
|
|
1848
|
-
}
|
|
1848
|
+
})
|
|
1849
1849
|
]
|
|
1850
|
-
}
|
|
1851
|
-
/* @__PURE__ */
|
|
1850
|
+
}),
|
|
1851
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1852
1852
|
className: "card-subtle space-y-2 p-4",
|
|
1853
1853
|
children: [
|
|
1854
|
-
/* @__PURE__ */
|
|
1854
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1855
1855
|
className: "font-bold",
|
|
1856
1856
|
children: "Dependencies"
|
|
1857
|
-
}
|
|
1858
|
-
/* @__PURE__ */
|
|
1857
|
+
}),
|
|
1858
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1859
1859
|
className: "text-muted-foreground text-sm",
|
|
1860
1860
|
children: "Visualize spec relationships. Detect circular dependencies. Navigate to referenced specs."
|
|
1861
|
-
}
|
|
1861
|
+
})
|
|
1862
1862
|
]
|
|
1863
|
-
}
|
|
1864
|
-
/* @__PURE__ */
|
|
1863
|
+
}),
|
|
1864
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1865
1865
|
className: "card-subtle space-y-2 p-4",
|
|
1866
1866
|
children: [
|
|
1867
|
-
/* @__PURE__ */
|
|
1867
|
+
/* @__PURE__ */ jsx9("h4", {
|
|
1868
1868
|
className: "font-bold",
|
|
1869
1869
|
children: "Build Results"
|
|
1870
|
-
}
|
|
1871
|
-
/* @__PURE__ */
|
|
1870
|
+
}),
|
|
1871
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1872
1872
|
className: "text-muted-foreground text-sm",
|
|
1873
1873
|
children: "Track build history (last 20). Success/failure indicators. Click to open generated files."
|
|
1874
|
-
}
|
|
1874
|
+
})
|
|
1875
1875
|
]
|
|
1876
|
-
}
|
|
1876
|
+
})
|
|
1877
1877
|
]
|
|
1878
|
-
}
|
|
1878
|
+
})
|
|
1879
1879
|
]
|
|
1880
|
-
}
|
|
1881
|
-
/* @__PURE__ */
|
|
1880
|
+
}),
|
|
1881
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1882
1882
|
className: "space-y-3",
|
|
1883
1883
|
children: [
|
|
1884
|
-
/* @__PURE__ */
|
|
1884
|
+
/* @__PURE__ */ jsx9("h2", {
|
|
1885
1885
|
className: "text-2xl font-bold",
|
|
1886
1886
|
children: "Getting Started"
|
|
1887
|
-
}
|
|
1888
|
-
/* @__PURE__ */
|
|
1887
|
+
}),
|
|
1888
|
+
/* @__PURE__ */ jsxs9("ol", {
|
|
1889
1889
|
className: "text-muted-foreground list-inside list-decimal space-y-2",
|
|
1890
1890
|
children: [
|
|
1891
|
-
/* @__PURE__ */
|
|
1891
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1892
1892
|
children: "Install the extension from VS Code Marketplace"
|
|
1893
|
-
}
|
|
1894
|
-
/* @__PURE__ */
|
|
1893
|
+
}),
|
|
1894
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1895
1895
|
children: "Open a workspace with ContractSpec files (or create one)"
|
|
1896
|
-
}
|
|
1897
|
-
/* @__PURE__ */
|
|
1896
|
+
}),
|
|
1897
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1898
1898
|
children: "Start the walkthrough: Help - Welcome - ContractSpec"
|
|
1899
|
-
}
|
|
1900
|
-
/* @__PURE__ */
|
|
1899
|
+
}),
|
|
1900
|
+
/* @__PURE__ */ jsxs9("li", {
|
|
1901
1901
|
children: [
|
|
1902
1902
|
"Create your first spec: Click ",
|
|
1903
|
-
/* @__PURE__ */
|
|
1903
|
+
/* @__PURE__ */ jsx9("strong", {
|
|
1904
1904
|
children: "+"
|
|
1905
|
-
}
|
|
1905
|
+
}),
|
|
1906
1906
|
" in Specs Explorer or run ",
|
|
1907
|
-
/* @__PURE__ */
|
|
1907
|
+
/* @__PURE__ */ jsx9("code", {
|
|
1908
1908
|
children: "ContractSpec: Create New Spec"
|
|
1909
|
-
}
|
|
1909
|
+
})
|
|
1910
1910
|
]
|
|
1911
|
-
}
|
|
1912
|
-
/* @__PURE__ */
|
|
1911
|
+
}),
|
|
1912
|
+
/* @__PURE__ */ jsx9("li", {
|
|
1913
1913
|
children: "Build from it: Click the build icon in the editor title bar"
|
|
1914
|
-
}
|
|
1914
|
+
})
|
|
1915
1915
|
]
|
|
1916
|
-
}
|
|
1916
|
+
})
|
|
1917
1917
|
]
|
|
1918
|
-
}
|
|
1919
|
-
/* @__PURE__ */
|
|
1918
|
+
}),
|
|
1919
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
1920
1920
|
className: "card-subtle space-y-4 p-6",
|
|
1921
1921
|
children: [
|
|
1922
|
-
/* @__PURE__ */
|
|
1922
|
+
/* @__PURE__ */ jsx9("h3", {
|
|
1923
1923
|
className: "font-bold",
|
|
1924
1924
|
children: "Configuration"
|
|
1925
|
-
}
|
|
1926
|
-
/* @__PURE__ */
|
|
1925
|
+
}),
|
|
1926
|
+
/* @__PURE__ */ jsx9("p", {
|
|
1927
1927
|
className: "text-muted-foreground text-sm",
|
|
1928
1928
|
children: "Configure the extension in VS Code Settings:"
|
|
1929
|
-
}
|
|
1930
|
-
/* @__PURE__ */
|
|
1929
|
+
}),
|
|
1930
|
+
/* @__PURE__ */ jsx9("div", {
|
|
1931
1931
|
className: "overflow-x-auto",
|
|
1932
|
-
children: /* @__PURE__ */
|
|
1932
|
+
children: /* @__PURE__ */ jsxs9("table", {
|
|
1933
1933
|
className: "text-muted-foreground w-full text-sm",
|
|
1934
1934
|
children: [
|
|
1935
|
-
/* @__PURE__ */
|
|
1936
|
-
children: /* @__PURE__ */
|
|
1935
|
+
/* @__PURE__ */ jsx9("thead", {
|
|
1936
|
+
children: /* @__PURE__ */ jsxs9("tr", {
|
|
1937
1937
|
className: "border-border border-b",
|
|
1938
1938
|
children: [
|
|
1939
|
-
/* @__PURE__ */
|
|
1939
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1940
1940
|
className: "p-2 text-left font-medium",
|
|
1941
1941
|
children: "Setting"
|
|
1942
|
-
}
|
|
1943
|
-
/* @__PURE__ */
|
|
1942
|
+
}),
|
|
1943
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1944
1944
|
className: "p-2 text-left font-medium",
|
|
1945
1945
|
children: "Description"
|
|
1946
|
-
}
|
|
1947
|
-
/* @__PURE__ */
|
|
1946
|
+
}),
|
|
1947
|
+
/* @__PURE__ */ jsx9("th", {
|
|
1948
1948
|
className: "p-2 text-left font-medium",
|
|
1949
1949
|
children: "Default"
|
|
1950
|
-
}
|
|
1950
|
+
})
|
|
1951
1951
|
]
|
|
1952
|
-
}
|
|
1953
|
-
}
|
|
1954
|
-
/* @__PURE__ */
|
|
1952
|
+
})
|
|
1953
|
+
}),
|
|
1954
|
+
/* @__PURE__ */ jsxs9("tbody", {
|
|
1955
1955
|
children: [
|
|
1956
|
-
/* @__PURE__ */
|
|
1956
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1957
1957
|
className: "border-border border-b",
|
|
1958
1958
|
children: [
|
|
1959
|
-
/* @__PURE__ */
|
|
1959
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1960
1960
|
className: "p-2 font-mono text-xs",
|
|
1961
1961
|
children: "validation.onSave"
|
|
1962
|
-
}
|
|
1963
|
-
/* @__PURE__ */
|
|
1962
|
+
}),
|
|
1963
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1964
1964
|
className: "p-2",
|
|
1965
1965
|
children: "Run validation on save"
|
|
1966
|
-
}
|
|
1967
|
-
/* @__PURE__ */
|
|
1966
|
+
}),
|
|
1967
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1968
1968
|
className: "p-2",
|
|
1969
1969
|
children: "true"
|
|
1970
|
-
}
|
|
1970
|
+
})
|
|
1971
1971
|
]
|
|
1972
|
-
}
|
|
1973
|
-
/* @__PURE__ */
|
|
1972
|
+
}),
|
|
1973
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1974
1974
|
className: "border-border border-b",
|
|
1975
1975
|
children: [
|
|
1976
|
-
/* @__PURE__ */
|
|
1976
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1977
1977
|
className: "p-2 font-mono text-xs",
|
|
1978
1978
|
children: "validation.onOpen"
|
|
1979
|
-
}
|
|
1980
|
-
/* @__PURE__ */
|
|
1979
|
+
}),
|
|
1980
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1981
1981
|
className: "p-2",
|
|
1982
1982
|
children: "Run validation on open"
|
|
1983
|
-
}
|
|
1984
|
-
/* @__PURE__ */
|
|
1983
|
+
}),
|
|
1984
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1985
1985
|
className: "p-2",
|
|
1986
1986
|
children: "true"
|
|
1987
|
-
}
|
|
1987
|
+
})
|
|
1988
1988
|
]
|
|
1989
|
-
}
|
|
1990
|
-
/* @__PURE__ */
|
|
1989
|
+
}),
|
|
1990
|
+
/* @__PURE__ */ jsxs9("tr", {
|
|
1991
1991
|
className: "border-border border-b",
|
|
1992
1992
|
children: [
|
|
1993
|
-
/* @__PURE__ */
|
|
1993
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1994
1994
|
className: "p-2 font-mono text-xs",
|
|
1995
1995
|
children: "api.baseUrl"
|
|
1996
|
-
}
|
|
1997
|
-
/* @__PURE__ */
|
|
1996
|
+
}),
|
|
1997
|
+
/* @__PURE__ */ jsx9("td", {
|
|
1998
1998
|
className: "p-2",
|
|
1999
1999
|
children: "Base URL for ContractSpec API"
|
|
2000
|
-
}
|
|
2001
|
-
/* @__PURE__ */
|
|
2000
|
+
}),
|
|
2001
|
+
/* @__PURE__ */ jsx9("td", {
|
|
2002
2002
|
className: "p-2",
|
|
2003
2003
|
children: "(empty)"
|
|
2004
|
-
}
|
|
2004
|
+
})
|
|
2005
2005
|
]
|
|
2006
|
-
}
|
|
2006
|
+
})
|
|
2007
2007
|
]
|
|
2008
|
-
}
|
|
2008
|
+
})
|
|
2009
2009
|
]
|
|
2010
|
-
}
|
|
2011
|
-
}
|
|
2010
|
+
})
|
|
2011
|
+
})
|
|
2012
2012
|
]
|
|
2013
|
-
}
|
|
2013
|
+
})
|
|
2014
2014
|
]
|
|
2015
|
-
}
|
|
2016
|
-
/* @__PURE__ */
|
|
2015
|
+
}),
|
|
2016
|
+
/* @__PURE__ */ jsxs9("div", {
|
|
2017
2017
|
className: "flex items-center gap-4 pt-4",
|
|
2018
2018
|
children: [
|
|
2019
|
-
/* @__PURE__ */
|
|
2019
|
+
/* @__PURE__ */ jsx9(Link9, {
|
|
2020
2020
|
href: "/docs/getting-started/tools/cli",
|
|
2021
2021
|
className: "btn-ghost",
|
|
2022
2022
|
children: "Back: CLI"
|
|
2023
|
-
}
|
|
2024
|
-
/* @__PURE__ */
|
|
2023
|
+
}),
|
|
2024
|
+
/* @__PURE__ */ jsxs9(Link9, {
|
|
2025
2025
|
href: "/docs/specs",
|
|
2026
2026
|
className: "btn-primary",
|
|
2027
2027
|
children: [
|
|
2028
2028
|
"Next: Core Concepts ",
|
|
2029
|
-
/* @__PURE__ */
|
|
2029
|
+
/* @__PURE__ */ jsx9(ChevronRight9, {
|
|
2030
2030
|
size: 16
|
|
2031
|
-
}
|
|
2031
|
+
})
|
|
2032
2032
|
]
|
|
2033
|
-
}
|
|
2033
|
+
})
|
|
2034
2034
|
]
|
|
2035
|
-
}
|
|
2035
|
+
})
|
|
2036
2036
|
]
|
|
2037
|
-
}
|
|
2037
|
+
});
|
|
2038
2038
|
}
|
|
2039
2039
|
|
|
2040
2040
|
// src/components/docs/getting-started/getting-started.docblocks.ts
|