@contractspec/bundle.library 1.11.1 → 1.13.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 +571 -1050
- package/.turbo/turbo-prebuild.log +1 -0
- package/CHANGELOG.md +47 -0
- package/dist/__tests__/env-setup.d.ts +2 -0
- package/dist/__tests__/env-setup.d.ts.map +1 -0
- package/dist/__tests__/mocks/prisma.d.ts +16 -0
- package/dist/__tests__/mocks/prisma.d.ts.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/application/index.d.ts +2 -4
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +696 -5
- package/dist/application/mcp/cliMcp.d.ts +79 -85
- package/dist/application/mcp/cliMcp.d.ts.map +1 -1
- package/dist/application/mcp/cliMcp.js +329 -218
- package/dist/application/mcp/common.d.ts +90 -103
- package/dist/application/mcp/common.d.ts.map +1 -1
- package/dist/application/mcp/common.js +73 -61
- package/dist/application/mcp/docsMcp.d.ts +79 -85
- package/dist/application/mcp/docsMcp.d.ts.map +1 -1
- package/dist/application/mcp/docsMcp.js +259 -136
- package/dist/application/mcp/index.d.ts +4 -4
- package/dist/application/mcp/index.d.ts.map +1 -0
- package/dist/application/mcp/index.js +696 -4
- package/dist/application/mcp/internalMcp.d.ts +79 -85
- package/dist/application/mcp/internalMcp.d.ts.map +1 -1
- package/dist/application/mcp/internalMcp.js +285 -172
- package/dist/components/docs/DocsIndexPage.d.ts +1 -6
- package/dist/components/docs/DocsIndexPage.d.ts.map +1 -1
- package/dist/components/docs/DocsIndexPage.js +259 -211
- package/dist/components/docs/advanced/AdvancedMCPPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedMCPPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedMCPPage.js +269 -212
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +105 -74
- package/dist/components/docs/advanced/AdvancedRenderersPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedRenderersPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +116 -86
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +88 -71
- package/dist/components/docs/advanced/AdvancedTelemetryPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedTelemetryPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +371 -203
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.d.ts +1 -6
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.d.ts.map +1 -1
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +97 -72
- package/dist/components/docs/advanced/index.d.ts +7 -7
- package/dist/components/docs/advanced/index.d.ts.map +1 -0
- package/dist/components/docs/advanced/index.js +1221 -8
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.d.ts +1 -6
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.d.ts.map +1 -1
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +235 -171
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts +1 -6
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.d.ts.map +1 -1
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +251 -180
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.d.ts +1 -6
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.d.ts.map +1 -1
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +366 -282
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.d.ts +1 -6
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.d.ts.map +1 -1
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +162 -113
- package/dist/components/docs/architecture/ArchitectureOverviewPage.d.ts +1 -6
- package/dist/components/docs/architecture/ArchitectureOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +446 -321
- package/dist/components/docs/architecture/index.d.ts +6 -6
- package/dist/components/docs/architecture/index.d.ts.map +1 -0
- package/dist/components/docs/architecture/index.js +1913 -6
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +244 -198
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +228 -168
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +244 -198
- package/dist/components/docs/comparison/ComparisonOverviewPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +201 -166
- package/dist/components/docs/comparison/ComparisonWindmillPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonWindmillPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +253 -175
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.d.ts +1 -6
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.d.ts.map +1 -1
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +338 -274
- package/dist/components/docs/comparison/index.d.ts +7 -7
- package/dist/components/docs/comparison/index.d.ts.map +1 -0
- package/dist/components/docs/comparison/index.js +1511 -8
- package/dist/components/docs/ecosystem/IntegrationsPage.d.ts +1 -6
- package/dist/components/docs/ecosystem/IntegrationsPage.d.ts.map +1 -1
- package/dist/components/docs/ecosystem/IntegrationsPage.js +96 -76
- package/dist/components/docs/ecosystem/PluginsPage.d.ts +1 -6
- package/dist/components/docs/ecosystem/PluginsPage.d.ts.map +1 -1
- package/dist/components/docs/ecosystem/PluginsPage.js +139 -114
- package/dist/components/docs/ecosystem/RegistryPage.d.ts +1 -6
- package/dist/components/docs/ecosystem/RegistryPage.d.ts.map +1 -1
- package/dist/components/docs/ecosystem/RegistryPage.js +81 -71
- package/dist/components/docs/ecosystem/TemplatesPage.d.ts +1 -6
- package/dist/components/docs/ecosystem/TemplatesPage.d.ts.map +1 -1
- package/dist/components/docs/ecosystem/TemplatesPage.js +136 -84
- package/dist/components/docs/ecosystem/ecosystem.docblocks.d.ts +2 -1
- package/dist/components/docs/ecosystem/ecosystem.docblocks.d.ts.map +1 -0
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js +45 -51
- package/dist/components/docs/ecosystem/index.d.ts +6 -5
- package/dist/components/docs/ecosystem/index.d.ts.map +1 -0
- package/dist/components/docs/ecosystem/index.js +614 -6
- package/dist/components/docs/examples/DocsExamplesPage.d.ts +1 -6
- package/dist/components/docs/examples/DocsExamplesPage.d.ts.map +1 -1
- package/dist/components/docs/examples/DocsExamplesPage.js +79 -65
- package/dist/components/docs/examples/index.d.ts +2 -2
- package/dist/components/docs/examples/index.d.ts.map +1 -0
- package/dist/components/docs/examples/index.js +85 -3
- package/dist/components/docs/generated/docs-index.generated.d.ts +24 -27
- package/dist/components/docs/generated/docs-index.generated.d.ts.map +1 -1
- package/dist/components/docs/generated/docs-index.generated.js +6 -6
- package/dist/components/docs/generated/index.d.ts +3 -3
- package/dist/components/docs/generated/index.d.ts.map +1 -0
- package/dist/components/docs/generated/index.js +74 -2
- package/dist/components/docs/generated/loader.d.ts +6 -10
- package/dist/components/docs/generated/loader.d.ts.map +1 -1
- package/dist/components/docs/generated/loader.js +60 -48
- package/dist/components/docs/getting-started/CLIPage.d.ts +1 -6
- package/dist/components/docs/getting-started/CLIPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/CLIPage.js +265 -231
- package/dist/components/docs/getting-started/CompatibilityPage.d.ts +1 -6
- package/dist/components/docs/getting-started/CompatibilityPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/CompatibilityPage.js +171 -115
- package/dist/components/docs/getting-started/DataViewTutorialPage.d.ts +1 -6
- package/dist/components/docs/getting-started/DataViewTutorialPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +128 -105
- package/dist/components/docs/getting-started/DeveloperToolsPage.d.ts +1 -6
- package/dist/components/docs/getting-started/DeveloperToolsPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +191 -151
- package/dist/components/docs/getting-started/HelloWorldPage.d.ts +1 -6
- package/dist/components/docs/getting-started/HelloWorldPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/HelloWorldPage.js +176 -138
- package/dist/components/docs/getting-started/InstallationPage.d.ts +1 -6
- package/dist/components/docs/getting-started/InstallationPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/InstallationPage.js +149 -115
- package/dist/components/docs/getting-started/StartHerePage.d.ts +1 -6
- package/dist/components/docs/getting-started/StartHerePage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/StartHerePage.js +125 -98
- package/dist/components/docs/getting-started/TroubleshootingPage.d.ts +1 -6
- package/dist/components/docs/getting-started/TroubleshootingPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/TroubleshootingPage.js +164 -111
- package/dist/components/docs/getting-started/VSCodeExtensionPage.d.ts +1 -6
- package/dist/components/docs/getting-started/VSCodeExtensionPage.d.ts.map +1 -1
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +429 -353
- package/dist/components/docs/getting-started/getting-started.docblocks.d.ts +2 -6
- package/dist/components/docs/getting-started/getting-started.docblocks.d.ts.map +1 -1
- package/dist/components/docs/getting-started/getting-started.docblocks.js +36 -37
- package/dist/components/docs/getting-started/index.d.ts +11 -11
- package/dist/components/docs/getting-started/index.d.ts.map +1 -0
- package/dist/components/docs/getting-started/index.js +2184 -12
- package/dist/components/docs/guides/GuideCIDiffGatingPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideCIDiffGatingPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +192 -143
- package/dist/components/docs/guides/GuideContractTypesPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideContractTypesPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideContractTypesPage.js +532 -440
- package/dist/components/docs/guides/GuideDocsPipelinePage.d.ts +1 -6
- package/dist/components/docs/guides/GuideDocsPipelinePage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +202 -142
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +205 -152
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +743 -543
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +260 -199
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.d.ts +1 -6
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +190 -139
- package/dist/components/docs/guides/GuidesIndexPage.d.ts +1 -6
- package/dist/components/docs/guides/GuidesIndexPage.d.ts.map +1 -1
- package/dist/components/docs/guides/GuidesIndexPage.js +141 -115
- package/dist/components/docs/guides/guides.docblocks.d.ts +2 -1
- package/dist/components/docs/guides/guides.docblocks.d.ts.map +1 -0
- package/dist/components/docs/guides/guides.docblocks.js +65 -87
- package/dist/components/docs/guides/index.d.ts +10 -9
- package/dist/components/docs/guides/index.d.ts.map +1 -0
- package/dist/components/docs/guides/index.js +2903 -11
- package/dist/components/docs/index.d.ts +20 -135
- package/dist/components/docs/index.d.ts.map +1 -0
- package/dist/components/docs/index.js +28182 -136
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +40 -33
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +103 -72
- package/dist/components/docs/integrations/IntegrationsGmailPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsGmailPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +107 -79
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +77 -57
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +138 -95
- package/dist/components/docs/integrations/IntegrationsOverviewPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +598 -481
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +217 -146
- package/dist/components/docs/integrations/IntegrationsPowensPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsPowensPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +298 -243
- package/dist/components/docs/integrations/IntegrationsQdrantPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsQdrantPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +112 -82
- package/dist/components/docs/integrations/IntegrationsResendPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsResendPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsResendPage.js +100 -71
- package/dist/components/docs/integrations/IntegrationsS3Page.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsS3Page.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsS3Page.js +122 -84
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +248 -167
- package/dist/components/docs/integrations/IntegrationsStripePage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsStripePage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsStripePage.js +332 -255
- package/dist/components/docs/integrations/IntegrationsTwilioPage.d.ts +1 -6
- package/dist/components/docs/integrations/IntegrationsTwilioPage.d.ts.map +1 -1
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +126 -87
- package/dist/components/docs/integrations/index.d.ts +15 -15
- package/dist/components/docs/integrations/index.d.ts.map +1 -0
- package/dist/components/docs/integrations/index.js +3312 -16
- package/dist/components/docs/intent/ContractFirstApiPage.d.ts +3 -8
- package/dist/components/docs/intent/ContractFirstApiPage.d.ts.map +1 -1
- package/dist/components/docs/intent/ContractFirstApiPage.js +120 -96
- package/dist/components/docs/intent/DeterministicCodegenPage.d.ts +3 -8
- package/dist/components/docs/intent/DeterministicCodegenPage.d.ts.map +1 -1
- package/dist/components/docs/intent/DeterministicCodegenPage.js +138 -117
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.d.ts +3 -8
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.d.ts.map +1 -1
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +198 -168
- package/dist/components/docs/intent/OpenapiAlternativePage.d.ts +3 -8
- package/dist/components/docs/intent/OpenapiAlternativePage.d.ts.map +1 -1
- package/dist/components/docs/intent/OpenapiAlternativePage.js +196 -146
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.d.ts +3 -8
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.d.ts.map +1 -1
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +138 -117
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.d.ts +3 -8
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.d.ts.map +1 -1
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +120 -96
- package/dist/components/docs/intent/index.d.ts +8 -7
- package/dist/components/docs/intent/index.d.ts.map +1 -0
- package/dist/components/docs/intent/index.js +1595 -8
- package/dist/components/docs/intent/intent-pages.docblocks.d.ts +7 -11
- package/dist/components/docs/intent/intent-pages.docblocks.d.ts.map +1 -1
- package/dist/components/docs/intent/intent-pages.docblocks.js +196 -173
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.d.ts +1 -6
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.d.ts.map +1 -1
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +748 -447
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.d.ts +1 -6
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.d.ts.map +1 -1
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +189 -125
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts +1 -6
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +405 -294
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.d.ts +1 -6
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.d.ts.map +1 -1
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +389 -288
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.d.ts +1 -6
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.d.ts.map +1 -1
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +300 -227
- package/dist/components/docs/knowledge/index.d.ts +6 -6
- package/dist/components/docs/knowledge/index.d.ts.map +1 -0
- package/dist/components/docs/knowledge/index.js +2444 -6
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +193 -132
- package/dist/components/docs/libraries/LibrariesAiAgentPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesAiAgentPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +141 -89
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +75 -59
- package/dist/components/docs/libraries/LibrariesContentGenPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesContentGenPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +96 -67
- package/dist/components/docs/libraries/LibrariesContractsPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesContractsPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesContractsPage.js +277 -140
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +107 -76
- package/dist/components/docs/libraries/LibrariesDataBackendPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesDataBackendPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +162 -106
- package/dist/components/docs/libraries/LibrariesDataViewsPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesDataViewsPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +181 -112
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +273 -158
- package/dist/components/docs/libraries/LibrariesEvolutionPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesEvolutionPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +121 -91
- package/dist/components/docs/libraries/LibrariesGraphQLPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesGraphQLPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +169 -118
- package/dist/components/docs/libraries/LibrariesGrowthPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesGrowthPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +83 -62
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +103 -84
- package/dist/components/docs/libraries/LibrariesObservabilityPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesObservabilityPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +123 -100
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +104 -86
- package/dist/components/docs/libraries/LibrariesOverviewPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +481 -356
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +108 -93
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +127 -96
- package/dist/components/docs/libraries/LibrariesResiliencePage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesResiliencePage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +114 -97
- package/dist/components/docs/libraries/LibrariesRuntimePage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesRuntimePage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +196 -116
- package/dist/components/docs/libraries/LibrariesSLOPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesSLOPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesSLOPage.js +111 -83
- package/dist/components/docs/libraries/LibrariesSchemaPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesSchemaPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +268 -151
- package/dist/components/docs/libraries/LibrariesSupportBotPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesSupportBotPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +129 -77
- package/dist/components/docs/libraries/LibrariesTestingPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesTestingPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesTestingPage.js +121 -91
- package/dist/components/docs/libraries/LibrariesUIKitPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesUIKitPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +226 -136
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +83 -62
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.d.ts +1 -6
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.d.ts.map +1 -1
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +177 -111
- package/dist/components/docs/libraries/index.d.ts +28 -28
- package/dist/components/docs/libraries/index.d.ts.map +1 -0
- package/dist/components/docs/libraries/index.js +5005 -29
- package/dist/components/docs/manifesto/ManifestoPage.d.ts +1 -6
- package/dist/components/docs/manifesto/ManifestoPage.d.ts.map +1 -1
- package/dist/components/docs/manifesto/ManifestoPage.js +190 -183
- package/dist/components/docs/ops/AutoEvolutionOpsPage.d.ts +1 -6
- package/dist/components/docs/ops/AutoEvolutionOpsPage.d.ts.map +1 -1
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +130 -92
- package/dist/components/docs/ops/DistributedTracingOpsPage.d.ts +1 -6
- package/dist/components/docs/ops/DistributedTracingOpsPage.d.ts.map +1 -1
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +69 -55
- package/dist/components/docs/ops/index.d.ts +3 -3
- package/dist/components/docs/ops/index.d.ts.map +1 -0
- package/dist/components/docs/ops/index.js +213 -3
- package/dist/components/docs/ops/ops-lifecycle.docblocks.d.ts +2 -6
- package/dist/components/docs/ops/ops-lifecycle.docblocks.d.ts.map +1 -1
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js +38 -38
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.d.ts +2 -6
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.d.ts.map +1 -1
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +68 -68
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.d.ts +2 -6
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.d.ts.map +1 -1
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +69 -69
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.d.ts +2 -6
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.d.ts.map +1 -1
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +69 -69
- package/dist/components/docs/ops/ops-top.docs.d.ts +2 -6
- package/dist/components/docs/ops/ops-top.docs.d.ts.map +1 -1
- package/dist/components/docs/ops/ops-top.docs.js +17 -15
- package/dist/components/docs/ops/ops.docs.d.ts +2 -6
- package/dist/components/docs/ops/ops.docs.d.ts.map +1 -1
- package/dist/components/docs/ops/ops.docs.js +579 -16
- package/dist/components/docs/product/product.docblocks.d.ts +2 -6
- package/dist/components/docs/product/product.docblocks.d.ts.map +1 -1
- package/dist/components/docs/product/product.docblocks.js +66 -67
- package/dist/components/docs/reference/DocsMarkdownContent.d.ts +3 -10
- package/dist/components/docs/reference/DocsMarkdownContent.d.ts.map +1 -1
- package/dist/components/docs/reference/DocsMarkdownContent.js +188 -64
- package/dist/components/docs/reference/DocsReferenceContent.d.ts +5 -12
- package/dist/components/docs/reference/DocsReferenceContent.d.ts.map +1 -1
- package/dist/components/docs/reference/DocsReferenceContent.js +251 -45
- package/dist/components/docs/reference/DocsReferenceIndexClient.d.ts +4 -10
- package/dist/components/docs/reference/DocsReferenceIndexClient.d.ts.map +1 -1
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +120 -98
- package/dist/components/docs/reference/DocsReferenceIndexPage.d.ts +1 -6
- package/dist/components/docs/reference/DocsReferenceIndexPage.d.ts.map +1 -1
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +205 -9
- package/dist/components/docs/reference/DocsReferencePage.d.ts +5 -12
- package/dist/components/docs/reference/DocsReferencePage.d.ts.map +1 -1
- package/dist/components/docs/reference/DocsReferencePage.js +264 -11
- package/dist/components/docs/reference/docsMarkdownParser.d.ts +15 -18
- package/dist/components/docs/reference/docsMarkdownParser.d.ts.map +1 -1
- package/dist/components/docs/reference/docsMarkdownParser.js +87 -90
- package/dist/components/docs/reference/index.d.ts +3 -3
- package/dist/components/docs/reference/index.d.ts.map +1 -0
- package/dist/components/docs/reference/index.js +472 -3
- package/dist/components/docs/safety/SafetyAuditingPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetyAuditingPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetyAuditingPage.js +348 -210
- package/dist/components/docs/safety/SafetyMigrationsPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetyMigrationsPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetyMigrationsPage.js +357 -220
- package/dist/components/docs/safety/SafetyOverviewPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetyOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetyOverviewPage.js +236 -194
- package/dist/components/docs/safety/SafetyPDPPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetyPDPPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetyPDPPage.js +299 -201
- package/dist/components/docs/safety/SafetySecurityTrustPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetySecurityTrustPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +204 -154
- package/dist/components/docs/safety/SafetySigningPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetySigningPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetySigningPage.js +89 -66
- package/dist/components/docs/safety/SafetyTenantIsolationPage.d.ts +1 -6
- package/dist/components/docs/safety/SafetyTenantIsolationPage.d.ts.map +1 -1
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +77 -59
- package/dist/components/docs/safety/index.d.ts +8 -8
- package/dist/components/docs/safety/index.d.ts.map +1 -0
- package/dist/components/docs/safety/index.js +1698 -9
- package/dist/components/docs/shared/StudioPrompt.d.ts +6 -15
- package/dist/components/docs/shared/StudioPrompt.d.ts.map +1 -1
- package/dist/components/docs/shared/StudioPrompt.js +30 -26
- package/dist/components/docs/specs/SpecsCapabilitiesPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsCapabilitiesPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +156 -126
- package/dist/components/docs/specs/SpecsDataViewsPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsDataViewsPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsDataViewsPage.js +258 -168
- package/dist/components/docs/specs/SpecsOverlaysPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsOverlaysPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsOverlaysPage.js +370 -205
- package/dist/components/docs/specs/SpecsOverviewPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsOverviewPage.js +346 -277
- package/dist/components/docs/specs/SpecsPolicyPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsPolicyPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsPolicyPage.js +418 -311
- package/dist/components/docs/specs/SpecsWorkflowsPage.d.ts +1 -6
- package/dist/components/docs/specs/SpecsWorkflowsPage.d.ts.map +1 -1
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +310 -205
- package/dist/components/docs/specs/index.d.ts +7 -7
- package/dist/components/docs/specs/index.d.ts.map +1 -0
- package/dist/components/docs/specs/index.js +2082 -8
- package/dist/components/docs/studio/StudioBYOKPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioBYOKPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioBYOKPage.js +78 -76
- package/dist/components/docs/studio/StudioDeploymentsPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioDeploymentsPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioDeploymentsPage.js +99 -81
- package/dist/components/docs/studio/StudioGettingStartedPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioGettingStartedPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioGettingStartedPage.js +82 -80
- package/dist/components/docs/studio/StudioIntegrationsPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioIntegrationsPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioIntegrationsPage.js +70 -65
- package/dist/components/docs/studio/StudioOverviewPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioOverviewPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioOverviewPage.js +71 -66
- package/dist/components/docs/studio/StudioVisualBuilderPage.d.ts +1 -6
- package/dist/components/docs/studio/StudioVisualBuilderPage.d.ts.map +1 -1
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +118 -99
- package/dist/components/docs/studio/index.d.ts +7 -7
- package/dist/components/docs/studio/index.d.ts.map +1 -0
- package/dist/components/docs/studio/index.js +538 -8
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.d.ts +2 -6
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.d.ts.map +1 -1
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +17 -16
- package/dist/components/integrations/index.d.ts +5 -5
- package/dist/components/integrations/index.d.ts.map +1 -0
- package/dist/components/integrations/index.js +601 -5
- package/dist/components/integrations/molecules/IntegrationCard.d.ts +11 -26
- package/dist/components/integrations/molecules/IntegrationCard.d.ts.map +1 -1
- package/dist/components/integrations/molecules/IntegrationCard.js +98 -60
- package/dist/components/integrations/organisms/IntegrationMarketplace.d.ts +13 -22
- package/dist/components/integrations/organisms/IntegrationMarketplace.d.ts.map +1 -1
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +211 -77
- package/dist/components/integrations/organisms/IntegrationSettings.d.ts +15 -27
- package/dist/components/integrations/organisms/IntegrationSettings.d.ts.map +1 -1
- package/dist/components/integrations/organisms/IntegrationSettings.js +281 -189
- package/dist/components/integrations/organisms/KnowledgeSourceList.d.ts +12 -22
- package/dist/components/integrations/organisms/KnowledgeSourceList.d.ts.map +1 -1
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +102 -65
- package/dist/components/legal/PrivacyTemplate.d.ts +3 -8
- package/dist/components/legal/PrivacyTemplate.d.ts.map +1 -1
- package/dist/components/legal/PrivacyTemplate.js +1023 -842
- package/dist/components/legal/TermsTemplate.d.ts +3 -8
- package/dist/components/legal/TermsTemplate.d.ts.map +1 -1
- package/dist/components/legal/TermsTemplate.js +939 -780
- package/dist/components/legal/index.d.ts +3 -3
- package/dist/components/legal/index.d.ts.map +1 -0
- package/dist/components/legal/index.js +1963 -3
- package/dist/components/shared/FeatureGateNotice.d.ts +6 -16
- package/dist/components/shared/FeatureGateNotice.d.ts.map +1 -1
- package/dist/components/shared/FeatureGateNotice.js +37 -32
- package/dist/components/shared/index.d.ts +2 -2
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/components/shared/index.js +39 -3
- package/dist/components/shell/WorkspaceHeader.d.ts +19 -32
- package/dist/components/shell/WorkspaceHeader.d.ts.map +1 -1
- package/dist/components/shell/WorkspaceHeader.js +97 -59
- package/dist/components/shell/WorkspaceProjectShellLayout.d.ts +9 -28
- package/dist/components/shell/WorkspaceProjectShellLayout.d.ts.map +1 -1
- package/dist/components/shell/WorkspaceProjectShellLayout.js +220 -35
- package/dist/components/shell/WorkspaceSidebar.d.ts +12 -22
- package/dist/components/shell/WorkspaceSidebar.d.ts.map +1 -1
- package/dist/components/shell/WorkspaceSidebar.js +67 -31
- package/dist/components/shell/index.d.ts +4 -4
- package/dist/components/shell/index.d.ts.map +1 -0
- package/dist/components/shell/index.js +224 -4
- package/dist/components/templates/engine/index.d.ts +18 -12
- package/dist/components/templates/engine/index.d.ts.map +1 -1
- package/dist/components/templates/engine/index.js +28 -41
- package/dist/components/templates/index.d.ts +4 -16
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/components/templates/index.js +1067 -17
- package/dist/components/templates/messaging/ConversationList.d.ts +4 -12
- package/dist/components/templates/messaging/ConversationList.d.ts.map +1 -1
- package/dist/components/templates/messaging/ConversationList.js +79 -52
- package/dist/components/templates/messaging/MessageComposer.d.ts +5 -14
- package/dist/components/templates/messaging/MessageComposer.d.ts.map +1 -1
- package/dist/components/templates/messaging/MessageComposer.js +159 -52
- package/dist/components/templates/messaging/MessageThread.d.ts +5 -14
- package/dist/components/templates/messaging/MessageThread.d.ts.map +1 -1
- package/dist/components/templates/messaging/MessageThread.js +78 -75
- package/dist/components/templates/messaging/MessagingWorkspace.d.ts +1 -6
- package/dist/components/templates/messaging/MessagingWorkspace.d.ts.map +1 -1
- package/dist/components/templates/messaging/MessagingWorkspace.js +290 -25
- package/dist/components/templates/messaging/index.d.ts +5 -5
- package/dist/components/templates/messaging/index.d.ts.map +1 -0
- package/dist/components/templates/messaging/index.js +300 -5
- package/dist/components/templates/messaging/types.d.ts +20 -23
- package/dist/components/templates/messaging/types.d.ts.map +1 -1
- package/dist/components/templates/messaging/types.js +1 -0
- package/dist/components/templates/recipes/LanguageSwitcher.d.ts +4 -12
- package/dist/components/templates/recipes/LanguageSwitcher.d.ts.map +1 -1
- package/dist/components/templates/recipes/LanguageSwitcher.js +15 -16
- package/dist/components/templates/recipes/RecipeCard.d.ts +6 -15
- package/dist/components/templates/recipes/RecipeCard.d.ts.map +1 -1
- package/dist/components/templates/recipes/RecipeCard.js +79 -57
- package/dist/components/templates/recipes/RecipeDetail.d.ts +4 -11
- package/dist/components/templates/recipes/RecipeDetail.d.ts.map +1 -1
- package/dist/components/templates/recipes/RecipeDetail.js +72 -47
- package/dist/components/templates/recipes/RecipeList.d.ts +1 -6
- package/dist/components/templates/recipes/RecipeList.d.ts.map +1 -1
- package/dist/components/templates/recipes/RecipeList.js +236 -72
- package/dist/components/templates/recipes/index.d.ts +5 -5
- package/dist/components/templates/recipes/index.d.ts.map +1 -0
- package/dist/components/templates/recipes/index.js +282 -5
- package/dist/components/templates/recipes/types.d.ts +23 -26
- package/dist/components/templates/recipes/types.d.ts.map +1 -1
- package/dist/components/templates/recipes/types.js +1 -0
- package/dist/components/templates/todos/FilterBar.d.ts +11 -20
- package/dist/components/templates/todos/FilterBar.d.ts.map +1 -1
- package/dist/components/templates/todos/FilterBar.js +106 -95
- package/dist/components/templates/todos/TaskForm.d.ts +4 -11
- package/dist/components/templates/todos/TaskForm.d.ts.map +1 -1
- package/dist/components/templates/todos/TaskForm.js +150 -127
- package/dist/components/templates/todos/TaskItem.d.ts +6 -15
- package/dist/components/templates/todos/TaskItem.d.ts.map +1 -1
- package/dist/components/templates/todos/TaskItem.js +75 -64
- package/dist/components/templates/todos/TaskList.d.ts +1 -6
- package/dist/components/templates/todos/TaskList.d.ts.map +1 -1
- package/dist/components/templates/todos/TaskList.js +446 -102
- package/dist/components/templates/todos/index.d.ts +5 -5
- package/dist/components/templates/todos/index.d.ts.map +1 -0
- package/dist/components/templates/todos/index.js +488 -5
- package/dist/components/templates/todos/types.d.ts +14 -17
- package/dist/components/templates/todos/types.d.ts.map +1 -1
- package/dist/components/templates/todos/types.js +1 -0
- package/dist/config/contractspec-blueprint.d.ts +2 -7
- package/dist/config/contractspec-blueprint.d.ts.map +1 -1
- package/dist/config/contractspec-blueprint.js +122 -70
- package/dist/config/contractspec-branding.d.ts +3 -8
- package/dist/config/contractspec-branding.d.ts.map +1 -1
- package/dist/config/contractspec-branding.js +43 -66
- package/dist/config/contractspec-routes.d.ts +2 -7
- package/dist/config/contractspec-routes.d.ts.map +1 -1
- package/dist/config/contractspec-routes.js +24 -68
- package/dist/config/index.d.ts +5 -5
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +126 -4
- package/dist/features/contracts-registry.d.ts +39 -37
- package/dist/features/contracts-registry.d.ts.map +1 -1
- package/dist/features/contracts-registry.js +122 -85
- package/dist/features/docs/docs.contracts.d.ts +2 -2
- package/dist/features/docs/docs.contracts.d.ts.map +1 -0
- package/dist/features/docs/docs.contracts.js +18 -3
- package/dist/features/docs/index.d.ts +2 -2
- package/dist/features/docs/index.d.ts.map +1 -0
- package/dist/features/docs/index.js +18 -3
- package/dist/features/docs.feature.d.ts +2 -7
- package/dist/features/docs.feature.d.ts.map +1 -1
- package/dist/features/docs.feature.js +33 -59
- package/dist/features/index.d.ts +10 -9
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +310 -8
- package/dist/features/mcp.feature.d.ts +2 -7
- package/dist/features/mcp.feature.d.ts.map +1 -1
- package/dist/features/mcp.feature.js +30 -56
- package/dist/features/presentations.feature.d.ts +2 -7
- package/dist/features/presentations.feature.d.ts.map +1 -1
- package/dist/features/presentations.feature.js +33 -60
- package/dist/features/registry.d.ts +4 -9
- package/dist/features/registry.d.ts.map +1 -1
- package/dist/features/registry.js +109 -31
- package/dist/index.d.ts +9 -158
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32497 -158
- package/dist/infrastructure/elysia/index.d.ts +2 -2
- package/dist/infrastructure/elysia/index.d.ts.map +1 -0
- package/dist/infrastructure/elysia/index.js +36 -3
- package/dist/infrastructure/elysia/logger.d.ts +6 -9
- package/dist/infrastructure/elysia/logger.d.ts.map +1 -1
- package/dist/infrastructure/elysia/logger.js +33 -29
- package/dist/infrastructure/index.d.ts +2 -3
- package/dist/infrastructure/index.d.ts.map +1 -0
- package/dist/infrastructure/index.js +36 -4
- package/dist/libs/email/client.d.ts +9 -12
- package/dist/libs/email/client.d.ts.map +1 -1
- package/dist/libs/email/client.js +107 -105
- package/dist/libs/email/client.test.d.ts +2 -0
- package/dist/libs/email/client.test.d.ts.map +1 -0
- package/dist/libs/email/contact.d.ts +2 -6
- package/dist/libs/email/contact.d.ts.map +1 -1
- package/dist/libs/email/contact.js +153 -41
- package/dist/libs/email/newsletter.d.ts +2 -6
- package/dist/libs/email/newsletter.d.ts.map +1 -1
- package/dist/libs/email/newsletter.js +167 -54
- package/dist/libs/email/types.d.ts +48 -52
- package/dist/libs/email/types.d.ts.map +1 -1
- package/dist/libs/email/types.js +3 -1
- package/dist/libs/email/utils.d.ts +2 -5
- package/dist/libs/email/utils.d.ts.map +1 -1
- package/dist/libs/email/utils.js +9 -7
- package/dist/libs/email/waitlist-application.d.ts +2 -6
- package/dist/libs/email/waitlist-application.d.ts.map +1 -1
- package/dist/libs/email/waitlist-application.js +187 -69
- package/dist/libs/email/waitlist.d.ts +2 -6
- package/dist/libs/email/waitlist.d.ts.map +1 -1
- package/dist/libs/email/waitlist.js +169 -56
- package/dist/libs/email.d.ts +6 -6
- package/dist/libs/email.d.ts.map +1 -0
- package/dist/libs/email.js +541 -6
- package/dist/libs/posthog/client.d.ts +15 -17
- package/dist/libs/posthog/client.d.ts.map +1 -1
- package/dist/libs/posthog/client.js +56 -44
- package/dist/libs/posthog/native.d.ts +6 -9
- package/dist/libs/posthog/native.d.ts.map +1 -1
- package/dist/libs/posthog/native.js +21 -16
- package/dist/libs/posthog/server.d.ts +3 -6
- package/dist/libs/posthog/server.d.ts.map +1 -1
- package/dist/libs/posthog/server.js +11 -12
- package/dist/libs/pricing-examples.d.ts +13 -16
- package/dist/libs/pricing-examples.d.ts.map +1 -1
- package/dist/libs/pricing-examples.js +18 -20
- package/dist/node/application/index.js +696 -0
- package/dist/node/application/mcp/cliMcp.js +341 -0
- package/dist/node/application/mcp/common.js +77 -0
- package/dist/node/application/mcp/docsMcp.js +267 -0
- package/dist/node/application/mcp/index.js +696 -0
- package/dist/node/application/mcp/internalMcp.js +294 -0
- package/dist/node/components/docs/DocsIndexPage.js +270 -0
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +337 -0
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +107 -0
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +132 -0
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +124 -0
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +417 -0
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +108 -0
- package/dist/node/components/docs/advanced/index.js +1220 -0
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +383 -0
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +386 -0
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +528 -0
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +172 -0
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +448 -0
- package/dist/node/components/docs/architecture/index.js +1913 -0
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +245 -0
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +230 -0
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +245 -0
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +202 -0
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +254 -0
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +339 -0
- package/dist/node/components/docs/comparison/index.js +1510 -0
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +102 -0
- package/dist/node/components/docs/ecosystem/PluginsPage.js +200 -0
- package/dist/node/components/docs/ecosystem/RegistryPage.js +119 -0
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +146 -0
- package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +49 -0
- package/dist/node/components/docs/ecosystem/index.js +614 -0
- package/dist/node/components/docs/examples/DocsExamplesPage.js +84 -0
- package/dist/node/components/docs/examples/index.js +84 -0
- package/dist/node/components/docs/generated/docs-index.generated.js +5 -0
- package/dist/node/components/docs/generated/index.js +74 -0
- package/dist/node/components/docs/generated/loader.js +74 -0
- package/dist/node/components/docs/getting-started/CLIPage.js +292 -0
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +173 -0
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +238 -0
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +194 -0
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +273 -0
- package/dist/node/components/docs/getting-started/InstallationPage.js +156 -0
- package/dist/node/components/docs/getting-started/StartHerePage.js +129 -0
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +169 -0
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +432 -0
- package/dist/node/components/docs/getting-started/getting-started.docblocks.js +137 -0
- package/dist/node/components/docs/getting-started/index.js +2183 -0
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +197 -0
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +738 -0
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +225 -0
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +211 -0
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +878 -0
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +318 -0
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +255 -0
- package/dist/node/components/docs/guides/GuidesIndexPage.js +149 -0
- package/dist/node/components/docs/guides/guides.docblocks.js +111 -0
- package/dist/node/components/docs/guides/index.js +2902 -0
- package/dist/node/components/docs/index.js +28181 -0
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +51 -0
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +123 -0
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +131 -0
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +104 -0
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +195 -0
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +650 -0
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +261 -0
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +352 -0
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +178 -0
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +123 -0
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +163 -0
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +422 -0
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +425 -0
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +146 -0
- package/dist/node/components/docs/integrations/index.js +3311 -0
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +159 -0
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +184 -0
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +398 -0
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +237 -0
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +236 -0
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +197 -0
- package/dist/node/components/docs/intent/index.js +1594 -0
- package/dist/node/components/docs/intent/intent-pages.docblocks.js +201 -0
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +829 -0
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +340 -0
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +464 -0
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +454 -0
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +361 -0
- package/dist/node/components/docs/knowledge/index.js +2444 -0
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +227 -0
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +168 -0
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +96 -0
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +119 -0
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +302 -0
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +123 -0
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +183 -0
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +204 -0
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +312 -0
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +164 -0
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +186 -0
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +116 -0
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +118 -0
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +149 -0
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +135 -0
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +483 -0
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +129 -0
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +151 -0
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +138 -0
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +239 -0
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +126 -0
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +304 -0
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +144 -0
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +159 -0
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +247 -0
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +108 -0
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +200 -0
- package/dist/node/components/docs/libraries/index.js +5004 -0
- package/dist/node/components/docs/manifesto/ManifestoPage.js +191 -0
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +141 -0
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +73 -0
- package/dist/node/components/docs/ops/index.js +213 -0
- package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +151 -0
- package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +123 -0
- package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +134 -0
- package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +146 -0
- package/dist/node/components/docs/ops/ops-top.docs.js +25 -0
- package/dist/node/components/docs/ops/ops.docs.js +580 -0
- package/dist/node/components/docs/product/product.docblocks.js +78 -0
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +196 -0
- package/dist/node/components/docs/reference/DocsReferenceContent.js +257 -0
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +128 -0
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +207 -0
- package/dist/node/components/docs/reference/DocsReferencePage.js +266 -0
- package/dist/node/components/docs/reference/docsMarkdownParser.js +92 -0
- package/dist/node/components/docs/reference/index.js +472 -0
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +380 -0
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +381 -0
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +238 -0
- package/dist/node/components/docs/safety/SafetyPDPPage.js +318 -0
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +206 -0
- package/dist/node/components/docs/safety/SafetySigningPage.js +92 -0
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +88 -0
- package/dist/node/components/docs/safety/index.js +1697 -0
- package/dist/node/components/docs/shared/StudioPrompt.js +31 -0
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +195 -0
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +299 -0
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +408 -0
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +348 -0
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +473 -0
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +363 -0
- package/dist/node/components/docs/specs/index.js +2081 -0
- package/dist/node/components/docs/studio/StudioBYOKPage.js +80 -0
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +101 -0
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +94 -0
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +72 -0
- package/dist/node/components/docs/studio/StudioOverviewPage.js +74 -0
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +121 -0
- package/dist/node/components/docs/studio/index.js +537 -0
- package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +20 -0
- package/dist/node/components/integrations/index.js +601 -0
- package/dist/node/components/integrations/molecules/IntegrationCard.js +100 -0
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +214 -0
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +285 -0
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +103 -0
- package/dist/node/components/legal/PrivacyTemplate.js +1025 -0
- package/dist/node/components/legal/TermsTemplate.js +941 -0
- package/dist/node/components/legal/index.js +1963 -0
- package/dist/node/components/shared/FeatureGateNotice.js +38 -0
- package/dist/node/components/shared/index.js +38 -0
- package/dist/node/components/shell/WorkspaceHeader.js +100 -0
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +222 -0
- package/dist/node/components/shell/WorkspaceSidebar.js +68 -0
- package/dist/node/components/shell/index.js +224 -0
- package/dist/node/components/templates/engine/index.js +39 -0
- package/dist/node/components/templates/index.js +1066 -0
- package/dist/node/components/templates/messaging/ConversationList.js +96 -0
- package/dist/node/components/templates/messaging/MessageComposer.js +168 -0
- package/dist/node/components/templates/messaging/MessageThread.js +96 -0
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +296 -0
- package/dist/node/components/templates/messaging/index.js +300 -0
- package/dist/node/components/templates/messaging/types.js +0 -0
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +16 -0
- package/dist/node/components/templates/recipes/RecipeCard.js +80 -0
- package/dist/node/components/templates/recipes/RecipeDetail.js +74 -0
- package/dist/node/components/templates/recipes/RecipeList.js +279 -0
- package/dist/node/components/templates/recipes/index.js +282 -0
- package/dist/node/components/templates/recipes/types.js +0 -0
- package/dist/node/components/templates/todos/FilterBar.js +107 -0
- package/dist/node/components/templates/todos/TaskForm.js +164 -0
- package/dist/node/components/templates/todos/TaskItem.js +77 -0
- package/dist/node/components/templates/todos/TaskList.js +485 -0
- package/dist/node/components/templates/todos/index.js +488 -0
- package/dist/node/components/templates/todos/types.js +0 -0
- package/dist/node/config/contractspec-blueprint.js +123 -0
- package/dist/node/config/contractspec-branding.js +44 -0
- package/dist/node/config/contractspec-routes.js +24 -0
- package/dist/node/config/index.js +126 -0
- package/dist/node/features/contracts-registry.js +174 -0
- package/dist/node/features/docs/docs.contracts.js +17 -0
- package/dist/node/features/docs/index.js +17 -0
- package/dist/node/features/docs.feature.js +33 -0
- package/dist/node/features/index.js +311 -0
- package/dist/node/features/mcp.feature.js +30 -0
- package/dist/node/features/presentations.feature.js +33 -0
- package/dist/node/features/registry.js +116 -0
- package/dist/node/index.js +32496 -0
- package/dist/node/infrastructure/elysia/index.js +35 -0
- package/dist/node/infrastructure/elysia/logger.js +35 -0
- package/dist/node/infrastructure/index.js +35 -0
- package/dist/node/libs/email/client.js +114 -0
- package/dist/node/libs/email/contact.js +182 -0
- package/dist/node/libs/email/newsletter.js +207 -0
- package/dist/node/libs/email/types.js +2 -0
- package/dist/node/libs/email/utils.js +8 -0
- package/dist/node/libs/email/waitlist-application.js +281 -0
- package/dist/node/libs/email/waitlist.js +217 -0
- package/dist/node/libs/email.js +542 -0
- package/dist/node/libs/posthog/client.js +63 -0
- package/dist/node/libs/posthog/native.js +23 -0
- package/dist/node/libs/posthog/server.js +13 -0
- package/dist/node/libs/pricing-examples.js +18 -0
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +97 -0
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +97 -0
- package/dist/node/presentation/features/atoms/index.js +97 -0
- package/dist/node/presentation/features/hooks/index.js +393 -0
- package/dist/node/presentation/features/hooks/useContractsRegistry.js +285 -0
- package/dist/node/presentation/features/hooks/useFeatureFilters.js +75 -0
- package/dist/node/presentation/features/hooks/useFeatureRegistry.js +147 -0
- package/dist/node/presentation/features/hooks/useRelatedDocs.js +28 -0
- package/dist/node/presentation/features/index.js +3059 -0
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +366 -0
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +366 -0
- package/dist/node/presentation/features/molecules/FeatureCard/types.js +0 -0
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +50 -0
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +50 -0
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +92 -0
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +92 -0
- package/dist/node/presentation/features/molecules/FeatureFilters/types.js +0 -0
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +176 -0
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +176 -0
- package/dist/node/presentation/features/molecules/index.js +505 -0
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +300 -0
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +154 -0
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +154 -0
- package/dist/node/presentation/features/organisms/FeatureDetail/types.js +0 -0
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +909 -0
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +909 -0
- package/dist/node/presentation/features/organisms/FeatureDiscovery/types.js +0 -0
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +298 -0
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +298 -0
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +176 -0
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +300 -0
- package/dist/node/presentation/features/organisms/index.js +1355 -0
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +332 -0
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +332 -0
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/types.js +0 -0
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +338 -0
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +338 -0
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +303 -0
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +303 -0
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/types.js +0 -0
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +336 -0
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +336 -0
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +329 -0
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +329 -0
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/types.js +0 -0
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +336 -0
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +336 -0
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +302 -0
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +302 -0
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/types.js +0 -0
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +214 -0
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +214 -0
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +187 -0
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +187 -0
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +306 -0
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +306 -0
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/types.js +0 -0
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +338 -0
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +338 -0
- package/dist/node/presentation/features/templates/types.js +0 -0
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.d.ts +16 -28
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.d.ts.map +1 -1
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +89 -78
- package/dist/presentation/features/atoms/FeatureIcon/index.d.ts +2 -2
- package/dist/presentation/features/atoms/FeatureIcon/index.d.ts.map +1 -0
- package/dist/presentation/features/atoms/FeatureIcon/index.js +98 -3
- package/dist/presentation/features/atoms/index.d.ts +2 -3
- package/dist/presentation/features/atoms/index.d.ts.map +1 -0
- package/dist/presentation/features/atoms/index.js +98 -4
- package/dist/presentation/features/hooks/index.d.ts +4 -4
- package/dist/presentation/features/hooks/index.d.ts.map +1 -0
- package/dist/presentation/features/hooks/index.js +393 -4
- package/dist/presentation/features/hooks/useContractsRegistry.d.ts +10 -14
- package/dist/presentation/features/hooks/useContractsRegistry.d.ts.map +1 -1
- package/dist/presentation/features/hooks/useContractsRegistry.js +282 -19
- package/dist/presentation/features/hooks/useFeatureFilters.d.ts +24 -28
- package/dist/presentation/features/hooks/useFeatureFilters.d.ts.map +1 -1
- package/dist/presentation/features/hooks/useFeatureFilters.js +73 -74
- package/dist/presentation/features/hooks/useFeatureRegistry.d.ts +17 -21
- package/dist/presentation/features/hooks/useFeatureRegistry.d.ts.map +1 -1
- package/dist/presentation/features/hooks/useFeatureRegistry.js +144 -33
- package/dist/presentation/features/hooks/useRelatedDocs.d.ts +5 -8
- package/dist/presentation/features/hooks/useRelatedDocs.d.ts.map +1 -1
- package/dist/presentation/features/hooks/useRelatedDocs.js +25 -28
- package/dist/presentation/features/index.d.ts +27 -57
- package/dist/presentation/features/index.d.ts.map +1 -0
- package/dist/presentation/features/index.js +3060 -48
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.d.ts +2 -12
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +364 -80
- package/dist/presentation/features/molecules/FeatureCard/index.d.ts +3 -3
- package/dist/presentation/features/molecules/FeatureCard/index.d.ts.map +1 -0
- package/dist/presentation/features/molecules/FeatureCard/index.js +367 -3
- package/dist/presentation/features/molecules/FeatureCard/types.d.ts +8 -12
- package/dist/presentation/features/molecules/FeatureCard/types.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureCard/types.js +1 -0
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.d.ts +15 -27
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +48 -40
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.d.ts +2 -2
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.d.ts.map +1 -0
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +51 -3
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.d.ts +2 -18
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +90 -77
- package/dist/presentation/features/molecules/FeatureFilters/index.d.ts +3 -3
- package/dist/presentation/features/molecules/FeatureFilters/index.d.ts.map +1 -0
- package/dist/presentation/features/molecules/FeatureFilters/index.js +93 -3
- package/dist/presentation/features/molecules/FeatureFilters/types.d.ts +20 -24
- package/dist/presentation/features/molecules/FeatureFilters/types.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureFilters/types.js +1 -0
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.d.ts +5 -12
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.d.ts.map +1 -1
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +173 -136
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.d.ts +2 -2
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.d.ts.map +1 -0
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +177 -3
- package/dist/presentation/features/molecules/index.d.ts +5 -11
- package/dist/presentation/features/molecules/index.d.ts.map +1 -0
- package/dist/presentation/features/molecules/index.js +506 -10
- package/dist/presentation/features/organisms/FeatureDataViewsList.d.ts +4 -11
- package/dist/presentation/features/organisms/FeatureDataViewsList.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +297 -25
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.d.ts +2 -11
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +150 -138
- package/dist/presentation/features/organisms/FeatureDetail/index.d.ts +3 -3
- package/dist/presentation/features/organisms/FeatureDetail/index.d.ts.map +1 -0
- package/dist/presentation/features/organisms/FeatureDetail/index.js +155 -3
- package/dist/presentation/features/organisms/FeatureDetail/types.d.ts +6 -10
- package/dist/presentation/features/organisms/FeatureDetail/types.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureDetail/types.js +1 -0
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.d.ts +2 -14
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +901 -154
- package/dist/presentation/features/organisms/FeatureDiscovery/index.d.ts +3 -3
- package/dist/presentation/features/organisms/FeatureDiscovery/index.d.ts.map +1 -0
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +909 -2
- package/dist/presentation/features/organisms/FeatureDiscovery/types.d.ts +14 -18
- package/dist/presentation/features/organisms/FeatureDiscovery/types.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureDiscovery/types.js +1 -0
- package/dist/presentation/features/organisms/FeatureEventsList.d.ts +4 -11
- package/dist/presentation/features/organisms/FeatureEventsList.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureEventsList.js +295 -25
- package/dist/presentation/features/organisms/FeatureFormsList.d.ts +4 -11
- package/dist/presentation/features/organisms/FeatureFormsList.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureFormsList.js +295 -25
- package/dist/presentation/features/organisms/FeatureOperationsList.d.ts +4 -11
- package/dist/presentation/features/organisms/FeatureOperationsList.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeatureOperationsList.js +174 -25
- package/dist/presentation/features/organisms/FeaturePresentationsList.d.ts +4 -11
- package/dist/presentation/features/organisms/FeaturePresentationsList.d.ts.map +1 -1
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +297 -25
- package/dist/presentation/features/organisms/index.d.ts +8 -12
- package/dist/presentation/features/organisms/index.d.ts.map +1 -0
- package/dist/presentation/features/organisms/index.js +1356 -11
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.d.ts +2 -13
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +329 -231
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.d.ts +3 -3
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +332 -2
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.d.ts +8 -12
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/types.js +1 -0
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.d.ts +2 -10
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +335 -30
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +338 -2
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.d.ts +2 -13
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +300 -210
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.d.ts +3 -3
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +303 -2
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.d.ts +8 -12
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/types.js +1 -0
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.d.ts +2 -10
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +333 -30
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +336 -2
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.d.ts +2 -13
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +326 -231
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.d.ts +3 -3
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +329 -2
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.d.ts +8 -12
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/types.js +1 -0
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.d.ts +2 -10
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +333 -30
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +336 -2
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.d.ts +2 -13
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +300 -205
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.d.ts +3 -3
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +302 -2
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.d.ts +8 -12
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/types.js +1 -0
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.d.ts +2 -10
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +212 -31
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +214 -2
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.d.ts +5 -13
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +186 -26
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +188 -3
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.d.ts +2 -13
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +303 -210
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.d.ts +3 -3
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +306 -2
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.d.ts +9 -13
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/types.js +1 -0
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.d.ts +2 -10
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.d.ts.map +1 -1
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +335 -30
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.d.ts +2 -2
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.d.ts.map +1 -0
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +338 -2
- package/dist/presentation/features/templates/types.d.ts +4 -8
- package/dist/presentation/features/templates/types.d.ts.map +1 -1
- package/dist/presentation/features/templates/types.js +1 -0
- package/package.json +2113 -309
- package/src/components/docs/generated/docs-index._common.json +18 -18
- package/src/components/docs/generated/docs-index.agent-console.json +47 -47
- package/src/components/docs/generated/docs-index.ai-chat.json +13 -13
- package/src/components/docs/generated/docs-index.analytics-dashboard.json +21 -21
- package/src/components/docs/generated/docs-index.app-config.json +17 -17
- package/src/components/docs/generated/docs-index.audit-trail.json +6 -6
- package/src/components/docs/generated/docs-index.crm-pipeline.json +20 -20
- package/src/components/docs/generated/docs-index.feature-flags.json +27 -27
- package/src/components/docs/generated/docs-index.files.json +22 -22
- package/src/components/docs/generated/docs-index.identity-rbac.json +39 -39
- package/src/components/docs/generated/docs-index.integration-hub.json +33 -33
- package/src/components/docs/generated/docs-index.jobs.json +17 -17
- package/src/components/docs/generated/docs-index.kb-update-pipeline.json +16 -16
- package/src/components/docs/generated/docs-index.learning-journey-crm-onboarding.json +6 -6
- package/src/components/docs/generated/docs-index.learning-journey-platform-tour.json +6 -6
- package/src/components/docs/generated/docs-index.learning-journey-registry.json +4 -4
- package/src/components/docs/generated/docs-index.learning-journey-studio-onboarding.json +6 -6
- package/src/components/docs/generated/docs-index.learning-journey.json +27 -27
- package/src/components/docs/generated/docs-index.locale-jurisdiction-gate.json +6 -6
- package/src/components/docs/generated/docs-index.manifest.json +8 -3
- package/src/components/docs/generated/docs-index.marketplace.json +42 -42
- package/src/components/docs/generated/docs-index.meeting-recorder.json +50 -0
- package/src/components/docs/generated/docs-index.metrics.json +24 -24
- package/src/components/docs/generated/docs-index.notifications.json +8 -8
- package/src/components/docs/generated/docs-index.openbanking.json +8 -8
- package/src/components/docs/generated/docs-index.platform-integrations.json +113 -17
- package/src/components/docs/generated/docs-index.platform-knowledge.json +7 -7
- package/src/components/docs/generated/docs-index.pocket-family-office.json +15 -15
- package/src/components/docs/generated/docs-index.policy-safe-knowledge-assistant.json +1 -1
- package/src/components/docs/generated/docs-index.saas-boilerplate.json +26 -26
- package/src/components/docs/generated/docs-index.service-business-os.json +24 -24
- package/src/components/docs/generated/docs-index.team-hub.json +23 -23
- package/src/components/docs/generated/docs-index.versioned-knowledge-base.json +10 -10
- package/src/components/docs/generated/docs-index.wealth-snapshot.json +19 -19
- package/src/components/docs/generated/docs-index.workflow-system.json +54 -54
- package/src/components/docs/generated/docs-index.workspace-cli.json +1 -1
- package/tsdown.config.js +1 -2
- package/.turbo/turbo-build$colon$bundle.log +0 -1052
- package/dist/application/mcp/cliMcp.js.map +0 -1
- package/dist/application/mcp/common.js.map +0 -1
- package/dist/application/mcp/docsMcp.js.map +0 -1
- package/dist/application/mcp/internalMcp.js.map +0 -1
- package/dist/components/docs/DocsIndexPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedMCPPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedRenderersPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js.map +0 -1
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js.map +0 -1
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js.map +0 -1
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js.map +0 -1
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js.map +0 -1
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js.map +0 -1
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonOverviewPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonWindmillPage.js.map +0 -1
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js.map +0 -1
- package/dist/components/docs/ecosystem/IntegrationsPage.js.map +0 -1
- package/dist/components/docs/ecosystem/PluginsPage.js.map +0 -1
- package/dist/components/docs/ecosystem/RegistryPage.js.map +0 -1
- package/dist/components/docs/ecosystem/TemplatesPage.js.map +0 -1
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js.map +0 -1
- package/dist/components/docs/examples/DocsExamplesPage.js.map +0 -1
- package/dist/components/docs/generated/docs-index.generated.js.map +0 -1
- package/dist/components/docs/generated/loader.js.map +0 -1
- package/dist/components/docs/getting-started/CLIPage.js.map +0 -1
- package/dist/components/docs/getting-started/CompatibilityPage.js.map +0 -1
- package/dist/components/docs/getting-started/DataViewTutorialPage.js.map +0 -1
- package/dist/components/docs/getting-started/DeveloperToolsPage.js.map +0 -1
- package/dist/components/docs/getting-started/HelloWorldPage.js.map +0 -1
- package/dist/components/docs/getting-started/InstallationPage.js.map +0 -1
- package/dist/components/docs/getting-started/StartHerePage.js.map +0 -1
- package/dist/components/docs/getting-started/TroubleshootingPage.js.map +0 -1
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js.map +0 -1
- package/dist/components/docs/getting-started/getting-started.docblocks.js.map +0 -1
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js.map +0 -1
- package/dist/components/docs/guides/GuideContractTypesPage.js.map +0 -1
- package/dist/components/docs/guides/GuideDocsPipelinePage.js.map +0 -1
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js.map +0 -1
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js.map +0 -1
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js.map +0 -1
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js.map +0 -1
- package/dist/components/docs/guides/GuidesIndexPage.js.map +0 -1
- package/dist/components/docs/guides/guides.docblocks.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsGmailPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsPowensPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsResendPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsS3Page.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsStripePage.js.map +0 -1
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js.map +0 -1
- package/dist/components/docs/intent/ContractFirstApiPage.js.map +0 -1
- package/dist/components/docs/intent/DeterministicCodegenPage.js.map +0 -1
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js.map +0 -1
- package/dist/components/docs/intent/OpenapiAlternativePage.js.map +0 -1
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js.map +0 -1
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js.map +0 -1
- package/dist/components/docs/intent/intent-pages.docblocks.js.map +0 -1
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js.map +0 -1
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js.map +0 -1
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js.map +0 -1
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js.map +0 -1
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesContentGenPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesContractsPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesGrowthPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesOverviewPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesResiliencePage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesRuntimePage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesSLOPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesSchemaPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesTestingPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesUIKitPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js.map +0 -1
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js.map +0 -1
- package/dist/components/docs/manifesto/ManifestoPage.js.map +0 -1
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js.map +0 -1
- package/dist/components/docs/ops/DistributedTracingOpsPage.js.map +0 -1
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js.map +0 -1
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js.map +0 -1
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js.map +0 -1
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js.map +0 -1
- package/dist/components/docs/ops/ops-top.docs.js.map +0 -1
- package/dist/components/docs/ops/ops.docs.js.map +0 -1
- package/dist/components/docs/product/product.docblocks.js.map +0 -1
- package/dist/components/docs/reference/DocsMarkdownContent.js.map +0 -1
- package/dist/components/docs/reference/DocsReferenceContent.js.map +0 -1
- package/dist/components/docs/reference/DocsReferenceIndexClient.js.map +0 -1
- package/dist/components/docs/reference/DocsReferenceIndexPage.js.map +0 -1
- package/dist/components/docs/reference/DocsReferencePage.js.map +0 -1
- package/dist/components/docs/reference/docsMarkdownParser.js.map +0 -1
- package/dist/components/docs/safety/SafetyAuditingPage.js.map +0 -1
- package/dist/components/docs/safety/SafetyMigrationsPage.js.map +0 -1
- package/dist/components/docs/safety/SafetyOverviewPage.js.map +0 -1
- package/dist/components/docs/safety/SafetyPDPPage.js.map +0 -1
- package/dist/components/docs/safety/SafetySecurityTrustPage.js.map +0 -1
- package/dist/components/docs/safety/SafetySigningPage.js.map +0 -1
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js.map +0 -1
- package/dist/components/docs/shared/StudioPrompt.js.map +0 -1
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js.map +0 -1
- package/dist/components/docs/specs/SpecsDataViewsPage.js.map +0 -1
- package/dist/components/docs/specs/SpecsOverlaysPage.js.map +0 -1
- package/dist/components/docs/specs/SpecsOverviewPage.js.map +0 -1
- package/dist/components/docs/specs/SpecsPolicyPage.js.map +0 -1
- package/dist/components/docs/specs/SpecsWorkflowsPage.js.map +0 -1
- package/dist/components/docs/studio/StudioBYOKPage.js.map +0 -1
- package/dist/components/docs/studio/StudioDeploymentsPage.js.map +0 -1
- package/dist/components/docs/studio/StudioGettingStartedPage.js.map +0 -1
- package/dist/components/docs/studio/StudioIntegrationsPage.js.map +0 -1
- package/dist/components/docs/studio/StudioOverviewPage.js.map +0 -1
- package/dist/components/docs/studio/StudioVisualBuilderPage.js.map +0 -1
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js.map +0 -1
- package/dist/components/integrations/molecules/IntegrationCard.js.map +0 -1
- package/dist/components/integrations/organisms/IntegrationMarketplace.js.map +0 -1
- package/dist/components/integrations/organisms/IntegrationSettings.js.map +0 -1
- package/dist/components/integrations/organisms/KnowledgeSourceList.js.map +0 -1
- package/dist/components/legal/PrivacyTemplate.js.map +0 -1
- package/dist/components/legal/TermsTemplate.js.map +0 -1
- package/dist/components/shared/FeatureGateNotice.js.map +0 -1
- package/dist/components/shell/WorkspaceHeader.js.map +0 -1
- package/dist/components/shell/WorkspaceProjectShellLayout.js.map +0 -1
- package/dist/components/shell/WorkspaceSidebar.js.map +0 -1
- package/dist/components/templates/engine/index.js.map +0 -1
- package/dist/components/templates/messaging/ConversationList.js.map +0 -1
- package/dist/components/templates/messaging/MessageComposer.js.map +0 -1
- package/dist/components/templates/messaging/MessageThread.js.map +0 -1
- package/dist/components/templates/messaging/MessagingWorkspace.js.map +0 -1
- package/dist/components/templates/recipes/LanguageSwitcher.js.map +0 -1
- package/dist/components/templates/recipes/RecipeCard.js.map +0 -1
- package/dist/components/templates/recipes/RecipeDetail.js.map +0 -1
- package/dist/components/templates/recipes/RecipeList.js.map +0 -1
- package/dist/components/templates/todos/FilterBar.js.map +0 -1
- package/dist/components/templates/todos/TaskForm.js.map +0 -1
- package/dist/components/templates/todos/TaskItem.js.map +0 -1
- package/dist/components/templates/todos/TaskList.js.map +0 -1
- package/dist/config/contractspec-blueprint.js.map +0 -1
- package/dist/config/contractspec-branding.js.map +0 -1
- package/dist/config/contractspec-routes.js.map +0 -1
- package/dist/features/contracts-registry.js.map +0 -1
- package/dist/features/docs.feature.js.map +0 -1
- package/dist/features/mcp.feature.js.map +0 -1
- package/dist/features/presentations.feature.js.map +0 -1
- package/dist/features/registry.js.map +0 -1
- package/dist/infrastructure/elysia/logger.js.map +0 -1
- package/dist/libs/content-gen/dist/seo/optimizer.js +0 -49
- package/dist/libs/content-gen/dist/seo/optimizer.js.map +0 -1
- package/dist/libs/email/client.js.map +0 -1
- package/dist/libs/email/contact.js.map +0 -1
- package/dist/libs/email/newsletter.js.map +0 -1
- package/dist/libs/email/utils.js.map +0 -1
- package/dist/libs/email/waitlist-application.js.map +0 -1
- package/dist/libs/email/waitlist.js.map +0 -1
- package/dist/libs/posthog/client.js.map +0 -1
- package/dist/libs/posthog/native.js.map +0 -1
- package/dist/libs/posthog/server.js.map +0 -1
- package/dist/libs/pricing-examples.js.map +0 -1
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js.map +0 -1
- package/dist/presentation/features/hooks/useContractsRegistry.js.map +0 -1
- package/dist/presentation/features/hooks/useFeatureFilters.js.map +0 -1
- package/dist/presentation/features/hooks/useFeatureRegistry.js.map +0 -1
- package/dist/presentation/features/hooks/useRelatedDocs.js.map +0 -1
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js.map +0 -1
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js.map +0 -1
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js.map +0 -1
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureDataViewsList.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureEventsList.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureFormsList.js.map +0 -1
- package/dist/presentation/features/organisms/FeatureOperationsList.js.map +0 -1
- package/dist/presentation/features/organisms/FeaturePresentationsList.js.map +0 -1
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js.map +0 -1
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IntegrationsPage.js","names":[],"sources":["../../../../src/components/docs/ecosystem/IntegrationsPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\nexport function EcosystemIntegrationsPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Integrations</h1>\n <p className=\"text-muted-foreground text-lg\">\n Reference integrations show how to extend ContractSpec with real-world\n adapters and generators.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Reference plugin</h2>\n <p className=\"text-muted-foreground text-sm\">\n The example markdown generator plugin ships as a working reference\n implementation.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"install-example\"\n code={`bun add @contractspec/lib.plugin.example-generator\n\n# Or in a workspace\nbun add -D @contractspec/lib.plugin.example-generator`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Providers and adapters</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Payments: Stripe</li>\n <li>Email: Postmark, Gmail</li>\n <li>Voice: ElevenLabs</li>\n <li>Vector DB: Qdrant</li>\n <li>Storage: GCS</li>\n </ul>\n <p className=\"text-muted-foreground text-sm\">\n Use provider modules as inspiration for adapter plugins.\n </p>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/ecosystem/registry\" className=\"btn-primary\">\n Registry resolution <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/ecosystem/templates\" className=\"btn-ghost\">\n Plugin templates\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,4BAA4B;AAC1C,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAiB,EACpD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAAqB;KACxD,oBAAC;MAAE,WAAU;gBAAgC;OAGzC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;OAIN;;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAA2B;KAC9D,qBAAC;MAAG,WAAU;;OACZ,oBAAC,kBAAG,qBAAqB;OACzB,oBAAC,kBAAG,2BAA2B;OAC/B,oBAAC,kBAAG,sBAAsB;OAC1B,oBAAC,kBAAG,sBAAsB;OAC1B,oBAAC,kBAAG,iBAAiB;;OAClB;KACL,oBAAC;MAAE,WAAU;gBAAgC;OAEzC;;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAA2B,WAAU;gBAAc,wBACxC,oBAAC,gBAAa,MAAM,KAAM;MACzC,EACP,oBAAC;KAAK,MAAK;KAA4B,WAAU;eAAY;MAEtD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginsPage.js","names":[],"sources":["../../../../src/components/docs/ecosystem/PluginsPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\nexport function EcosystemPluginsPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Plugin API</h1>\n <p className=\"text-muted-foreground text-lg\">\n Extend ContractSpec with generators, validators, adapters, formatters,\n and registry resolvers.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Core capabilities</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Generators for code, docs, and schemas.</li>\n <li>Validators for policy checks and compliance gates.</li>\n <li>Adapters for framework and runtime integration.</li>\n <li>Formatters and diff renderers for deterministic output.</li>\n <li>Registry resolvers for local and remote plugin discovery.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Plugin interface</h2>\n <p className=\"text-muted-foreground text-sm\">\n Define capabilities and lifecycle hooks in a single plugin\n entrypoint.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"plugin.ts\"\n code={`import type {\n ContractSpecPlugin,\n PluginContext,\n GeneratorCapability,\n} from \"@contractspec/lib.plugins\";\n\nexport const MarkdownGeneratorPlugin: ContractSpecPlugin = {\n meta: {\n id: \"markdown-generator\",\n version: \"1.0.0\",\n type: \"generator\",\n provides: [\"docs\"],\n },\n register(context: PluginContext) {\n const generator: GeneratorCapability = {\n id: \"markdown\",\n description: \"Generate Markdown docs\",\n generate: async (specs) => {\n // Implementation...\n },\n };\n\n context.generators.register(generator);\n },\n};`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Lifecycle hooks</h2>\n <p className=\"text-muted-foreground text-sm\">\n Use lifecycle hooks to configure, validate, and dispose resources.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lifecycle.ts\"\n code={`export const MarkdownGeneratorPlugin: ContractSpecPlugin = {\n meta: {\n id: \"markdown-generator\",\n version: \"1.0.0\",\n type: \"generator\",\n provides: [\"docs\"],\n },\n register(context) {\n // Register capabilities\n },\n configure(options, context) {\n // Optional: apply workspace configuration\n },\n validate(specs, context) {\n // Optional: add validation checks\n },\n generate(specs, context) {\n // Required: emit outputs\n },\n dispose() {\n // Optional: cleanup\n },\n};`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Register a plugin</h2>\n <p className=\"text-muted-foreground text-sm\">\n Configure plugins in <code>.contractsrc.json</code> to load them in\n the CLI and runtime.\n </p>\n <CodeBlock\n language=\"json\"\n filename=\".contractsrc.json\"\n code={`{\n \"plugins\": [\n {\n \"id\": \"markdown-generator\",\n \"package\": \"@contractspec/plugin.markdown\",\n \"capabilities\": [\"generator\"],\n \"options\": {\n \"outputDir\": \"./docs/generated\",\n \"format\": \"table\"\n }\n }\n ]\n}`}\n />\n </div>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/ecosystem/templates\" className=\"btn-primary\">\n Plugin templates <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/ecosystem/integrations\" className=\"btn-ghost\">\n Integrations\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,uBAAuB;AACrC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAe,EAClD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,4CAA4C;MAChD,oBAAC,kBAAG,uDAAuD;MAC3D,oBAAC,kBAAG,oDAAoD;MACxD,oBAAC,kBAAG,4DAA4D;MAChE,oBAAC,kBAAG,8DAA8D;;MAC/D;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAqB;OACxD,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;SAyBN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAoB;OACvD,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;SAuBN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAsB;OACzD,qBAAC;QAAE,WAAU;;SAAgC;SACtB,oBAAC,oBAAK,sBAAwB;;;SAEjD;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;SAaN;;OACE;;KACF;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAA4B,WAAU;gBAAc,qBAC5C,oBAAC,gBAAa,MAAM,KAAM;MACtC,EACP,oBAAC;KAAK,MAAK;KAA+B,WAAU;eAAY;MAEzD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryPage.js","names":[],"sources":["../../../../src/components/docs/ecosystem/RegistryPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\nexport function EcosystemRegistryPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Registry resolution</h1>\n <p className=\"text-muted-foreground text-lg\">\n Resolve plugins from local workspaces, npm packages, or remote\n registries.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Resolution order</h2>\n <p className=\"text-muted-foreground text-sm\">\n Control where ContractSpec loads plugins and how versions are\n resolved.\n </p>\n <CodeBlock\n language=\"json\"\n filename=\".contractsrc.json\"\n code={`{\n \"plugins\": [\n {\n \"id\": \"markdown-generator\",\n \"package\": \"@contractspec/plugin.markdown-generator\",\n \"capabilities\": [\"generator\"],\n \"options\": {\n \"outputDir\": \"./docs/generated\",\n \"format\": \"table\"\n }\n }\n ],\n \"pluginRegistry\": {\n \"resolutionOrder\": [\"workspace\", \"npm\", \"remote\"],\n \"allowPrerelease\": false,\n \"sources\": {\n \"remote\": \"https://registry.contractspec.io\"\n }\n }\n}`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Custom registry resolvers</h2>\n <p className=\"text-muted-foreground text-sm\">\n Register resolver plugins to load plugins from private registries.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"registry-resolver.ts\"\n code={`import type { RegistryResolverPlugin } from \"@contractspec/lib.plugins\";\n\nexport const PrivateRegistryResolver: RegistryResolverPlugin = {\n meta: {\n id: \"private-registry\",\n version: \"1.0.0\",\n type: \"registryResolver\",\n provides: [\"private-registry\"],\n },\n resolve: async (request) => {\n // Fetch plugin package metadata from private registry\n const result = await fetch(\n \"https://registry.acme.io/\" + request.package\n );\n return result.json();\n },\n};`}\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/ecosystem/integrations\" className=\"btn-primary\">\n Integrations <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/ecosystem/templates\" className=\"btn-ghost\">\n Plugin templates\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,wBAAwB;AACtC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAwB,EAC3D,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAAqB;KACxD,oBAAC;MAAE,WAAU;gBAAgC;OAGzC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;;;;;;;;;;;;;;;;OAoBN;;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAA8B;KACjE,oBAAC;MAAE,WAAU;gBAAgC;OAEzC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;;;;;;;;;;;;;OAiBN;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAA+B,WAAU;gBAAc,iBACnD,oBAAC,gBAAa,MAAM,KAAM;MAClC,EACP,oBAAC;KAAK,MAAK;KAA4B,WAAU;eAAY;MAEtD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatesPage.js","names":[],"sources":["../../../../src/components/docs/ecosystem/TemplatesPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function EcosystemTemplatesPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Plugin templates</h1>\n <p className=\"text-muted-foreground text-lg\">\n Scaffold new plugins with create-contractspec-plugin.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Create a new plugin</h2>\n <p className=\"text-muted-foreground text-sm\">\n Generate a plugin scaffold with tests, documentation, and CI wiring.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"create-plugin\"\n code={`bunx create-contractspec-plugin create \\\\\n --name markdown-generator \\\\\n --description \"Markdown docs generator\" \\\\\n --author \"Your name\"`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Template outputs</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>src/generator.ts, src/types.ts, src/config.ts</li>\n <li>tests/ with sample fixtures</li>\n <li>.github/workflows/ci.yml</li>\n <li>README.md with usage instructions</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Publish and install</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"publish-plugin\"\n code={`bun run build\nbun publish\n\n# install in a ContractSpec workspace\nbun add @contractspec/integration.markdown-generator`}\n />\n </div>\n\n <StudioPrompt\n title=\"Need managed plugin distribution?\"\n body=\"Studio can host private plugin registries, approvals, and policy gates for teams.\"\n />\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/ecosystem/plugins\" className=\"btn-primary\">\n Plugin API <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/ecosystem/registry\" className=\"btn-ghost\">\n Registry resolution\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,yBAAyB;AACvC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAqB,EACxD,oBAAC;KAAE,WAAU;eAAgC;MAEzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAAwB;KAC3D,oBAAC;MAAE,WAAU;gBAAgC;OAEzC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;OAIN;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAqB,EACxD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,kDAAkD;MACtD,oBAAC,kBAAG,gCAAgC;MACpC,oBAAC,kBAAG,6BAA6B;MACjC,oBAAC,kBAAG,sCAAsC;;MACvC;KACD;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAwB,EAC3D,oBAAC;KACC,UAAS;KACT,UAAS;KACT,MAAM;;;;;MAKN;KACE;GAEN,oBAAC;IACC,OAAM;IACN,MAAK;KACL;GAEF,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAA0B,WAAU;gBAAc,eAChD,oBAAC,gBAAa,MAAM,KAAM;MAChC,EACP,oBAAC;KAAK,MAAK;KAA2B,WAAU;eAAY;MAErD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ecosystem.docblocks.js","names":[],"sources":["../../../../src/components/docs/ecosystem/ecosystem.docblocks.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst ecosystemDocBlocks: DocBlock[] = [\n {\n id: 'docs.ecosystem.plugins',\n title: 'Plugin API',\n summary: 'Build generators, validators, adapters, and registry resolvers.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/ecosystem/plugins',\n tags: ['ecosystem', 'plugins', 'extensions'],\n body: `# Plugin API\n\nContractSpec plugins extend the platform with generators, validators, adapters, formatters, and registry resolvers. Define capabilities in code, register them through configuration, and ship reusable packages.`,\n },\n {\n id: 'docs.ecosystem.integrations',\n title: 'Integrations',\n summary: 'Reference plugins and integrations you can extend.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/ecosystem/integrations',\n tags: ['ecosystem', 'integrations'],\n body: `# Integrations\n\nReference integrations demonstrate how to extend ContractSpec with real-world plugins. Use them as starting points for your own adapters and generators.`,\n },\n {\n id: 'docs.ecosystem.templates',\n title: 'Plugin templates',\n summary: 'Scaffold new plugins with create-contractspec-plugin.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/ecosystem/templates',\n tags: ['ecosystem', 'templates'],\n body: '# Plugin templates\\n\\nUse `create-contractspec-plugin` to scaffold a new plugin package with tests, documentation, and CI wiring.',\n },\n\n {\n id: 'docs.ecosystem.registry',\n title: 'Registry resolution',\n summary: 'Discover plugins locally or from remote registries.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/ecosystem/registry',\n tags: ['ecosystem', 'registry'],\n body: '# Registry resolution\\n\\nPlugins can be resolved from local workspaces, npm packages, or remote registries. Configure resolution order in `.contractsrc.json` and use registry resolver plugins for custom sources.',\n },\n];\n\nregisterDocBlocks(ecosystemDocBlocks);\n"],"mappings":";;;AAmDA,kBAhDuC;CACrC;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAa;GAAW;GAAa;EAC5C,MAAM;;;EAGP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,aAAa,eAAe;EACnC,MAAM;;;EAGP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,aAAa,YAAY;EAChC,MAAM;EACP;CAED;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,aAAa,WAAW;EAC/B,MAAM;EACP;CACF,CAEoC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DocsExamplesPage.js","names":[],"sources":["../../../../src/components/docs/examples/DocsExamplesPage.tsx"],"sourcesContent":["'use client';\n\nimport { listExamples } from '@contractspec/module.examples';\nimport {\n ButtonLink,\n DataViewList,\n StatusChip,\n} from '@contractspec/lib.design-system';\nimport { VStack, HStack } from '@contractspec/lib.ui-kit-web/ui/stack';\nimport { H1, Muted } from '@contractspec/lib.ui-kit-web/ui/typography';\nimport { ExampleCatalogDataView } from '@contractspec/lib.contracts/docs';\n\ninterface ExampleItem extends Record<string, unknown> {\n id: string;\n title: string;\n summary?: string;\n route: string;\n tags?: string[];\n sandboxEnabled: boolean;\n}\n\nfunction buildReferenceRoute(key: string) {\n return `/docs/reference/${key}/${key}`;\n}\n\nexport function DocsExamplesPage() {\n const items: ExampleItem[] = listExamples()\n .map((example) => {\n const title = example.meta.title ?? example.meta.key;\n return {\n id: example.meta.key,\n title,\n summary: example.meta.summary ?? example.meta.description,\n route: buildReferenceRoute(example.meta.key),\n tags: example.meta.tags,\n sandboxEnabled: example.surfaces.sandbox.enabled,\n };\n })\n .sort((a, b) => a.title.localeCompare(b.title));\n\n const listSpec = {\n ...ExampleCatalogDataView,\n view: {\n ...ExampleCatalogDataView.view,\n kind: 'list' as const,\n },\n };\n\n return (\n <VStack gap=\"xl\">\n <VStack gap=\"sm\">\n <H1>Examples</H1>\n <Muted>\n Curated examples and templates you can explore in the sandbox or use\n as reference implementations.\n </Muted>\n </VStack>\n\n <DataViewList\n spec={listSpec}\n items={items}\n emptyState={<Muted>No examples available.</Muted>}\n renderActions={(example) => {\n return (\n <HStack gap=\"xs\" justify=\"end\">\n {example.sandboxEnabled ? (\n <ButtonLink href=\"/sandbox\" size=\"sm\" variant=\"outline\">\n Sandbox\n </ButtonLink>\n ) : null}\n <ButtonLink href={example.route} size=\"sm\">\n Reference\n </ButtonLink>\n {example.tags?.[0] ? (\n <StatusChip size=\"sm\" label={example.tags[0]} />\n ) : null}\n </HStack>\n );\n }}\n />\n </VStack>\n );\n}\n"],"mappings":";;;;;;;;;;AAqBA,SAAS,oBAAoB,KAAa;AACxC,QAAO,mBAAmB,IAAI,GAAG;;AAGnC,SAAgB,mBAAmB;CACjC,MAAM,QAAuB,cAAc,CACxC,KAAK,YAAY;EAChB,MAAM,QAAQ,QAAQ,KAAK,SAAS,QAAQ,KAAK;AACjD,SAAO;GACL,IAAI,QAAQ,KAAK;GACjB;GACA,SAAS,QAAQ,KAAK,WAAW,QAAQ,KAAK;GAC9C,OAAO,oBAAoB,QAAQ,KAAK,IAAI;GAC5C,MAAM,QAAQ,KAAK;GACnB,gBAAgB,QAAQ,SAAS,QAAQ;GAC1C;GACD,CACD,MAAM,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,MAAM,CAAC;CAEjD,MAAM,WAAW;EACf,GAAG;EACH,MAAM;GACJ,GAAG,uBAAuB;GAC1B,MAAM;GACP;EACF;AAED,QACE,qBAAC;EAAO,KAAI;aACV,qBAAC;GAAO,KAAI;cACV,oBAAC,gBAAG,aAAa,EACjB,oBAAC,mBAAM,uGAGC;IACD,EAET,oBAAC;GACC,MAAM;GACC;GACP,YAAY,oBAAC,mBAAM,2BAA8B;GACjD,gBAAgB,YAAY;AAC1B,WACE,qBAAC;KAAO,KAAI;KAAK,SAAQ;;MACtB,QAAQ,iBACP,oBAAC;OAAW,MAAK;OAAW,MAAK;OAAK,SAAQ;iBAAU;QAE3C,GACX;MACJ,oBAAC;OAAW,MAAM,QAAQ;OAAO,MAAK;iBAAK;QAE9B;MACZ,QAAQ,OAAO,KACd,oBAAC;OAAW,MAAK;OAAK,OAAO,QAAQ,KAAK;QAAM,GAC9C;;MACG;;IAGb;GACK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"docs-index.generated.js","names":[],"sources":["../../../../src/components/docs/generated/docs-index.generated.ts"],"sourcesContent":["export type DocsIndexSource = 'generated' | 'docblock';\n\nexport interface DocsIndexEntry {\n id: string;\n title: string;\n summary?: string;\n route?: string;\n source: DocsIndexSource;\n contentPath?: string;\n tags?: string[];\n kind?: string;\n visibility?: string;\n version?: string;\n owners?: string[];\n}\n\nexport interface DocsIndexChunk {\n key: string;\n file: string;\n total: number;\n}\n\nexport interface DocsIndexManifest {\n generatedAt: string;\n total: number;\n version: string | null;\n contentRoot: string | null;\n chunks: DocsIndexChunk[];\n}\n\nexport const DOCS_INDEX_MANIFEST = 'docs-index.manifest.json';\n"],"mappings":";AA8BA,MAAa,sBAAsB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","names":[],"sources":["../../../../src/components/docs/generated/loader.ts"],"sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { DOCS_INDEX_MANIFEST } from './docs-index.generated';\nimport type { DocsIndexEntry, DocsIndexManifest } from './docs-index.generated';\n\nconst baseDir = dirname(fileURLToPath(import.meta.url));\nlet manifestPromise: Promise<DocsIndexManifest> | null = null;\nlet docsPromise: Promise<DocsIndexEntry[]> | null = null;\nconst chunkCache = new Map<string, Promise<DocsIndexEntry[]>>();\n\nfunction chunkKeyForId(id: string): string {\n if (!id) return '_common';\n if (id.includes('/')) {\n const [prefix] = id.split('/');\n return prefix || '_common';\n }\n return '_common';\n}\n\nasync function loadManifest(): Promise<DocsIndexManifest> {\n if (!manifestPromise) {\n manifestPromise = readFile(join(baseDir, DOCS_INDEX_MANIFEST), 'utf8').then(\n (content) => JSON.parse(content) as DocsIndexManifest\n );\n }\n return manifestPromise;\n}\n\nfunction resolveContentRoot(manifest: DocsIndexManifest): string {\n const root = manifest.contentRoot ?? '.';\n return join(baseDir, root);\n}\n\nasync function loadChunk(fileName: string): Promise<DocsIndexEntry[]> {\n const cached = chunkCache.get(fileName);\n if (cached) return cached;\n\n const load = readFile(join(baseDir, fileName), 'utf8').then(\n (content) => JSON.parse(content) as DocsIndexEntry[]\n );\n chunkCache.set(fileName, load);\n return load;\n}\n\nexport async function listGeneratedDocs(): Promise<readonly DocsIndexEntry[]> {\n if (!docsPromise) {\n docsPromise = (async () => {\n const manifest = await loadManifest();\n const chunks = await Promise.all(\n manifest.chunks.map((chunk) => loadChunk(chunk.file))\n );\n return chunks.flat();\n })();\n }\n\n return docsPromise;\n}\n\nexport async function getDocsIndexManifest(): Promise<DocsIndexManifest> {\n return loadManifest();\n}\n\nexport async function getGeneratedDocById(id: string): Promise<{\n entry: DocsIndexEntry;\n content: string;\n} | null> {\n const manifest = await loadManifest();\n const key = chunkKeyForId(id);\n const chunk = manifest.chunks.find((item) => item.key === key);\n if (!chunk) return null;\n\n const entries = await loadChunk(chunk.file);\n const entry = entries.find((doc) => doc.id === id);\n if (!entry || !entry.contentPath) return null;\n\n const contentPath = join(resolveContentRoot(manifest), entry.contentPath);\n try {\n const content = await readFile(contentPath, 'utf8');\n return { entry, content };\n } catch {\n return null;\n }\n}\n"],"mappings":";;;;;;AAMA,MAAM,UAAU,QAAQ,cAAc,OAAO,KAAK,IAAI,CAAC;AACvD,IAAI,kBAAqD;AACzD,IAAI,cAAgD;AACpD,MAAM,6BAAa,IAAI,KAAwC;AAE/D,SAAS,cAAc,IAAoB;AACzC,KAAI,CAAC,GAAI,QAAO;AAChB,KAAI,GAAG,SAAS,IAAI,EAAE;EACpB,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI;AAC9B,SAAO,UAAU;;AAEnB,QAAO;;AAGT,eAAe,eAA2C;AACxD,KAAI,CAAC,gBACH,mBAAkB,SAAS,KAAK,SAAS,oBAAoB,EAAE,OAAO,CAAC,MACpE,YAAY,KAAK,MAAM,QAAQ,CACjC;AAEH,QAAO;;AAGT,SAAS,mBAAmB,UAAqC;AAE/D,QAAO,KAAK,SADC,SAAS,eAAe,IACX;;AAG5B,eAAe,UAAU,UAA6C;CACpE,MAAM,SAAS,WAAW,IAAI,SAAS;AACvC,KAAI,OAAQ,QAAO;CAEnB,MAAM,OAAO,SAAS,KAAK,SAAS,SAAS,EAAE,OAAO,CAAC,MACpD,YAAY,KAAK,MAAM,QAAQ,CACjC;AACD,YAAW,IAAI,UAAU,KAAK;AAC9B,QAAO;;AAGT,eAAsB,oBAAwD;AAC5E,KAAI,CAAC,YACH,gBAAe,YAAY;EACzB,MAAM,WAAW,MAAM,cAAc;AAIrC,UAHe,MAAM,QAAQ,IAC3B,SAAS,OAAO,KAAK,UAAU,UAAU,MAAM,KAAK,CAAC,CACtD,EACa,MAAM;KAClB;AAGN,QAAO;;AAGT,eAAsB,uBAAmD;AACvE,QAAO,cAAc;;AAGvB,eAAsB,oBAAoB,IAGhC;CACR,MAAM,WAAW,MAAM,cAAc;CACrC,MAAM,MAAM,cAAc,GAAG;CAC7B,MAAM,QAAQ,SAAS,OAAO,MAAM,SAAS,KAAK,QAAQ,IAAI;AAC9D,KAAI,CAAC,MAAO,QAAO;CAGnB,MAAM,SADU,MAAM,UAAU,MAAM,KAAK,EACrB,MAAM,QAAQ,IAAI,OAAO,GAAG;AAClD,KAAI,CAAC,SAAS,CAAC,MAAM,YAAa,QAAO;CAEzC,MAAM,cAAc,KAAK,mBAAmB,SAAS,EAAE,MAAM,YAAY;AACzE,KAAI;AAEF,SAAO;GAAE;GAAO,SADA,MAAM,SAAS,aAAa,OAAO;GAC1B;SACnB;AACN,SAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CLIPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/CLIPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock, InstallCommand } from '@contractspec/lib.design-system';\n\nexport function CLIPage() {\n const commands = [\n {\n name: 'create',\n description: 'Interactive wizard to create contract specifications',\n usage: 'contractspec create [--type operation] [--ai]',\n },\n {\n name: 'build',\n description:\n 'Generate implementation code from contract specs using AI agents',\n usage: 'contractspec build <spec-file> [--agent-mode claude-code]',\n },\n {\n name: 'validate',\n description: 'Validate contract specifications and implementations',\n usage: 'contractspec validate <spec-file> [--check-implementation]',\n },\n {\n name: 'list',\n description: 'List all contract specifications in the project',\n usage: 'contractspec list [--type operation] [--json]',\n },\n {\n name: 'watch',\n description: 'Watch specs and auto-regenerate on changes',\n usage: 'contractspec watch [--build] [--validate]',\n },\n {\n name: 'sync',\n description: 'Sync contracts by building all discovered specs',\n usage: 'contractspec sync [--dry-run]',\n },\n {\n name: 'ci',\n description: 'Run all validation checks for CI/CD pipelines',\n usage: 'contractspec ci [--format sarif] [--output results.sarif]',\n },\n {\n name: 'deps',\n description: 'Analyze contract dependencies and relationships',\n usage: 'contractspec deps [--circular] [--format dot]',\n },\n {\n name: 'diff',\n description: 'Compare contract specifications and show differences',\n usage: 'contractspec diff <spec1> <spec2> [--breaking]',\n },\n ];\n\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">ContractSpec CLI</h1>\n <p className=\"text-muted-foreground text-lg\">\n Command-line interface for creating, building, and validating contract\n specifications with AI-powered code generation.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Installation</h2>\n <InstallCommand package=\"contractspec\" dev />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Quick Start</h2>\n <CodeBlock\n language=\"bash\"\n code={`# Initialize project\nbunx contractspec init\n\n# Create a spec\ncontractspec create --type operation\n\n# Generate code\ncontractspec build src/contracts/mySpec.ts\n\n# Validate\ncontractspec validate src/contracts/mySpec.ts`}\n />\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Commands</h2>\n <div className=\"grid gap-4\">\n {commands.map((cmd) => (\n <div key={cmd.name} className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-mono font-bold text-violet-400\">\n {cmd.name}\n </h3>\n <p className=\"text-muted-foreground text-sm\">\n {cmd.description}\n </p>\n <CodeBlock\n language=\"bash\"\n code={cmd.usage}\n showCopyButton={false}\n />\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">AI Agent Modes</h2>\n <p className=\"text-muted-foreground\">\n The CLI supports multiple AI agent modes for different use cases:\n </p>\n <div className=\"grid gap-3 md:grid-cols-2\">\n <div className=\"card-subtle p-4\">\n <h4 className=\"font-bold\">simple</h4>\n <p className=\"text-muted-foreground text-sm\">\n Direct LLM API calls, fast and straightforward. Best for rapid\n prototyping.\n </p>\n </div>\n <div className=\"card-subtle p-4\">\n <h4 className=\"font-bold\">claude-code</h4>\n <p className=\"text-muted-foreground text-sm\">\n Extended thinking with Claude. Best for production-quality code.\n </p>\n </div>\n <div className=\"card-subtle p-4\">\n <h4 className=\"font-bold\">openai-codex</h4>\n <p className=\"text-muted-foreground text-sm\">\n GPT-4o/o1 models. Excellent for algorithms and optimization.\n </p>\n </div>\n <div className=\"card-subtle p-4\">\n <h4 className=\"font-bold\">cursor</h4>\n <p className=\"text-muted-foreground text-sm\">\n Leverages Cursor agentic capabilities. Requires Cursor\n environment.\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">CI/CD Integration</h2>\n <p className=\"text-muted-foreground\">\n Run all validation checks in CI/CD with machine-readable output:\n </p>\n <CodeBlock\n language=\"yaml\"\n filename=\".github/workflows/validate.yml\"\n code={`- name: Validate Contracts\n run: contractspec ci --format sarif --output results.sarif\n\n- name: Upload SARIF\n uses: github/codeql-action/upload-sarif@v3\n with:\n sarif_file: results.sarif`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h3 className=\"font-bold\">Configuration</h3>\n <p className=\"text-muted-foreground text-sm\">\n Create a <code>.contractsrc.json</code> file in your project root:\n </p>\n <CodeBlock\n language=\"json\"\n filename=\".contractsrc.json\"\n code={`{\n \"aiProvider\": \"claude\",\n \"agentMode\": \"claude-code\",\n \"outputDir\": \"./src\",\n \"conventions\": {\n \"operations\": \"interactions/commands|queries\",\n \"events\": \"events\"\n }\n}`}\n />\n </div>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/getting-started/tools/vscode\" className=\"btn-primary\">\n Next: VS Code Extension <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/getting-started/tools\" className=\"btn-ghost\">\n Back to Tools\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,UAAU;AAkDxB,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAqB,EACxD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAiB,EACpD,oBAAC;OAAe,SAAQ;OAAe;QAAM;OACzC;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAgB,EACnD,oBAAC;OACC,UAAS;OACT,MAAM;;;;;;;;;;;QAWN;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAa,EAChD,oBAAC;OAAI,WAAU;iBArFN;QACf;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aACE;SACF,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACD;SACE,MAAM;SACN,aAAa;SACb,OAAO;SACR;QACF,CAuCmB,KAAK,QACb,qBAAC;QAAmB,WAAU;;SAC5B,oBAAC;UAAG,WAAU;oBACX,IAAI;WACF;SACL,oBAAC;UAAE,WAAU;oBACV,IAAI;WACH;SACJ,oBAAC;UACC,UAAS;UACT,MAAM,IAAI;UACV,gBAAgB;WAChB;;UAXM,IAAI,KAYR,CACN;QACE;OACF;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAmB;OACtD,oBAAC;QAAE,WAAU;kBAAwB;SAEjC;OACJ,qBAAC;QAAI,WAAU;;SACb,qBAAC;UAAI,WAAU;qBACb,oBAAC;WAAG,WAAU;qBAAY;YAAW,EACrC,oBAAC;WAAE,WAAU;qBAAgC;YAGzC;WACA;SACN,qBAAC;UAAI,WAAU;qBACb,oBAAC;WAAG,WAAU;qBAAY;YAAgB,EAC1C,oBAAC;WAAE,WAAU;qBAAgC;YAEzC;WACA;SACN,qBAAC;UAAI,WAAU;qBACb,oBAAC;WAAG,WAAU;qBAAY;YAAiB,EAC3C,oBAAC;WAAE,WAAU;qBAAgC;YAEzC;WACA;SACN,qBAAC;UAAI,WAAU;qBACb,oBAAC;WAAG,WAAU;qBAAY;YAAW,EACrC,oBAAC;WAAE,WAAU;qBAAgC;YAGzC;WACA;;SACF;;OACF;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAsB;OACzD,oBAAC;QAAE,WAAU;kBAAwB;SAEjC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;SAON;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAY;SAAkB;OAC5C,qBAAC;QAAE,WAAU;;SAAgC;SAClC,oBAAC,oBAAK,sBAAwB;;;SACrC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;SASN;;OACE;;KACF;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAAqC,WAAU;gBAAc,4BAC9C,oBAAC,gBAAa,MAAM,KAAM;MAC7C,EACP,oBAAC;KAAK,MAAK;KAA8B,WAAU;eAAY;MAExD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CompatibilityPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/CompatibilityPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\n\nexport function CompatibilityPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Compatibility</h1>\n <p className=\"text-muted-foreground text-lg\">\n Supported runtimes, frameworks, and agent modes for ContractSpec.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Runtimes</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>Node.js 20+</li>\n <li>Bun 1.0+</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Frameworks</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>Next.js 14+ (App Router preferred)</li>\n <li>Bun + Elysia or compatible HTTP servers</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Package managers</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>bun (recommended)</li>\n <li>npm</li>\n <li>pnpm</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">AI agent modes</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>claude-code</li>\n <li>openai-codex</li>\n <li>cursor</li>\n <li>opencode</li>\n <li>simple (direct LLM)</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Datastores</h2>\n <p className=\"text-muted-foreground\">\n ContractSpec ships with Prisma-friendly defaults and can integrate\n with custom adapters for other databases.\n </p>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>PostgreSQL via Prisma</li>\n <li>Custom adapters for other SQL/NoSQL stores</li>\n </ul>\n </div>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3 pt-2\">\n <Link href=\"/docs/getting-started/start-here\" className=\"btn-ghost\">\n Start here\n </Link>\n <Link\n href=\"/docs/getting-started/troubleshooting\"\n className=\"btn-ghost\"\n >\n Troubleshooting\n </Link>\n <Link href=\"/docs/getting-started/installation\" className=\"btn-primary\">\n Next: Installation <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAGA,SAAgB,oBAAoB;AAClC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAkB,EACrD,oBAAC;KAAE,WAAU;eAAgC;MAEzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAa,EAChD,qBAAC;OAAG,WAAU;kBACZ,oBAAC,kBAAG,gBAAgB,EACpB,oBAAC,kBAAG,aAAa;QACd;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAe,EAClD,qBAAC;OAAG,WAAU;kBACZ,oBAAC,kBAAG,uCAAuC,EAC3C,oBAAC,kBAAG,4CAA4C;QAC7C;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAqB,EACxD,qBAAC;OAAG,WAAU;;QACZ,oBAAC,kBAAG,sBAAsB;QAC1B,oBAAC,kBAAG,QAAQ;QACZ,oBAAC,kBAAG,SAAS;;QACV;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAmB,EACtD,qBAAC;OAAG,WAAU;;QACZ,oBAAC,kBAAG,gBAAgB;QACpB,oBAAC,kBAAG,iBAAiB;QACrB,oBAAC,kBAAG,WAAW;QACf,oBAAC,kBAAG,aAAa;QACjB,oBAAC,kBAAG,wBAAwB;;QACzB;OACD;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAe;OAClD,oBAAC;QAAE,WAAU;kBAAwB;SAGjC;OACJ,qBAAC;QAAG,WAAU;mBACZ,oBAAC,kBAAG,0BAA0B,EAC9B,oBAAC,kBAAG,+CAA+C;SAChD;;OACD;;KACF;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAK,MAAK;MAAmC,WAAU;gBAAY;OAE7D;KACP,oBAAC;MACC,MAAK;MACL,WAAU;gBACX;OAEM;KACP,qBAAC;MAAK,MAAK;MAAqC,WAAU;iBAAc,uBACnD,oBAAC,gBAAa,MAAM,KAAM;OACxC;;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataViewTutorialPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/DataViewTutorialPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock } from '@contractspec/lib.design-system';\n\nexport function DataViewTutorialPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-4\">\n <h1 className=\"text-4xl font-bold\">Display Data with DataViews</h1>\n <p className=\"text-muted-foreground text-lg\">\n Define a filterable, sortable transaction history view that works\n across web and mobile without duplicating UI code.\n </p>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">1. Define the underlying query</h2>\n <p className=\"text-muted-foreground\">\n First, create a query operation to fetch the data:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lib/specs/billing/list-transactions.ts\"\n code={`import { defineQuery } from '@contractspec/lib.contracts';\n\nexport const ListTransactions = defineQuery({\n meta: {\n key: 'billing.listTransactions',\n version: '1.0.0',\n description: 'Fetch customer transaction history',\n },\n io: {\n input: /* pagination + filters */,\n output: /* array of transactions */,\n },\n policy: { auth: 'user' },\n});`}\n />\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">2. Define the DataView spec</h2>\n <p className=\"text-muted-foreground\">\n Wrap your query with presentation metadata:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lib/specs/billing/transaction-history.data-view.ts\"\n code={`import { defineDataView } from '@contractspec/lib.contracts';\nimport { ListTransactions } from './list-transactions';\n\nexport const TransactionHistory = defineDataView({\n meta: {\n key: 'billing.transactionHistory',\n version: '1.0.0',\n entity: 'transaction',\n description: 'Customer payment history',\n goal: 'Help customers track spending',\n context: 'Account dashboard',\n owners: ['team-billing'],\n stability: 'stable',\n tags: ['payments'],\n },\n source: {\n primary: ListTransactions,\n },\n view: {\n kind: 'list',\n fields: [\n {\n key: 'date',\n label: 'Date',\n dataPath: 'createdAt',\n format: 'date',\n sortable: true\n },\n {\n key: 'description',\n label: 'Description',\n dataPath: 'description'\n },\n {\n key: 'amount',\n label: 'Amount',\n dataPath: 'amount',\n format: 'currency',\n sortable: true\n },\n {\n key: 'status',\n label: 'Status',\n dataPath: 'status',\n format: 'badge'\n },\n ],\n filters: [\n {\n key: 'status',\n label: 'Status',\n field: 'status',\n type: 'enum',\n options: [\n { value: 'succeeded', label: 'Paid' },\n { value: 'pending', label: 'Pending' },\n { value: 'failed', label: 'Failed' },\n ],\n },\n {\n key: 'dateRange',\n label: 'Date Range',\n field: 'createdAt',\n type: 'dateRange',\n },\n ],\n defaultSort: { field: 'date', direction: 'desc' },\n pagination: { pageSize: 25 },\n },\n});`}\n />\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">3. Render on the frontend</h2>\n <p className=\"text-muted-foreground\">\n Use the runtime renderer in your React or React Native app:\n </p>\n <CodeBlock\n language=\"tsx\"\n filename=\"app/dashboard/transactions/page.tsx\"\n code={`'use client';\n\nimport { DataViewRenderer } from '@contractspec/lib.design-system';\nimport { TransactionHistory } from '@/lib/specs/billing/transaction-history.data-view';\nimport { useQuery } from '@tanstack/react-query';\n\nexport function TransactionsPage() {\n const { data, isLoading } = useQuery({\n queryKey: ['transactions'],\n queryFn: () => fetch('/api/ops/billing.listTransactions').then(r => r.json()),\n });\n\n return (\n <div className=\"container py-8\">\n <h1 className=\"text-3xl font-bold mb-6\">Payment History</h1>\n <DataViewRenderer\n spec={TransactionHistory}\n data={data?.items ?? []}\n loading={isLoading}\n onFilterChange={(filters) => {\n // refetch with new filters\n }}\n />\n </div>\n );\n}`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h3 className=\"font-bold\">Why DataViews?</h3>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Same spec renders on web (React) and mobile (React Native)</li>\n <li>Filters, sorting, and pagination handled automatically</li>\n <li>Format rules (currency, dates, badges) applied consistently</li>\n <li>Export to CSV/PDF using the same spec</li>\n <li>A/B test different layouts without touching the backend</li>\n </ul>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/libraries/data-views\" className=\"btn-primary\">\n DataView API Reference <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/specs/workflows\" className=\"btn-ghost\">\n Next: Workflows\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,uBAAuB;AACrC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAgC,EACnE,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAAmC;KACtE,oBAAC;MAAE,WAAU;gBAAwB;OAEjC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;;;;;;;;;;OAcN;;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAAgC;KACnE,oBAAC;MAAE,WAAU;gBAAwB;OAEjC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEN;;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAG,WAAU;gBAAqB;OAA8B;KACjE,oBAAC;MAAE,WAAU;gBAAwB;OAEjC;KACJ,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BN;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAY;MAAmB,EAC7C,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,+DAA+D;MACnE,oBAAC,kBAAG,2DAA2D;MAC/D,oBAAC,kBAAG,gEAAgE;MACpE,oBAAC,kBAAG,0CAA0C;MAC9C,oBAAC,kBAAG,4DAA4D;;MAC7D;KACD;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAA6B,WAAU;gBAAc,2BACvC,oBAAC,gBAAa,MAAM,KAAM;MAC5C,EACP,oBAAC;KAAK,MAAK;KAAwB,WAAU;eAAY;MAElD;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeveloperToolsPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/DeveloperToolsPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight, Code2, Cpu, Layers, Terminal } from 'lucide-react';\nimport { CodeBlock, InstallCommand } from '@contractspec/lib.design-system';\n\nexport function DeveloperToolsPage() {\n const tools = [\n {\n name: 'CLI',\n href: '/docs/getting-started/tools/cli',\n description:\n 'Command-line interface for spec creation, building, validation, and CI/CD integration.',\n icon: Terminal,\n status: 'available',\n highlights: [\n 'AI-powered code generation',\n 'Multiple agent modes',\n 'SARIF/JSON output',\n ],\n },\n {\n name: 'VS Code Extension',\n href: '/docs/getting-started/tools/vscode',\n description:\n 'Real-time validation, scaffolding, and navigation directly in your editor.',\n icon: Code2,\n status: 'available',\n highlights: [\n 'Specs Explorer sidebar',\n 'Watch mode',\n 'Interactive walkthroughs',\n ],\n },\n {\n name: 'ContractSpec Studio',\n href: 'https://www.contractspec.studio',\n description:\n 'Visual builder, lifecycle management, and deployment orchestration.',\n icon: Layers,\n status: 'coming-soon',\n highlights: [\n 'Visual spec editor',\n 'Deployment pipelines',\n 'Analytics dashboard',\n ],\n },\n {\n name: 'JetBrains Plugin',\n href: '#',\n description:\n 'Full ContractSpec support for IntelliJ, WebStorm, and other JetBrains IDEs.',\n icon: Cpu,\n status: 'coming-soon',\n highlights: [\n 'Code navigation',\n 'Inline validation',\n 'Refactoring support',\n ],\n },\n ];\n\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Developer Tools</h1>\n <p className=\"text-muted-foreground text-lg\">\n ContractSpec provides a suite of tools to help you build, validate,\n and manage your specifications across different environments.\n </p>\n </div>\n\n <div className=\"grid gap-6 md:grid-cols-2\">\n {tools.map((tool) => {\n const IconComponent = tool.icon;\n const isComingSoon = tool.status === 'coming-soon';\n\n return (\n <div\n key={tool.name}\n className={`card-subtle relative space-y-4 p-6 ${isComingSoon ? 'opacity-75' : ''}`}\n >\n {isComingSoon && (\n <span className=\"absolute -top-2 right-4 rounded-full bg-violet-500/20 px-2 py-0.5 text-xs font-medium text-violet-400\">\n Coming Soon\n </span>\n )}\n <div className=\"flex items-center gap-3\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-violet-500/10\">\n <IconComponent className=\"h-5 w-5 text-violet-400\" />\n </div>\n <h3 className=\"text-lg font-bold\">{tool.name}</h3>\n </div>\n <p className=\"text-muted-foreground text-sm\">\n {tool.description}\n </p>\n <ul className=\"space-y-1\">\n {tool.highlights.map((highlight) => (\n <li\n key={highlight}\n className=\"text-muted-foreground flex items-center gap-2 text-sm\"\n >\n <span className=\"text-violet-400\">-</span>\n {highlight}\n </li>\n ))}\n </ul>\n {!isComingSoon && (\n <Link\n href={tool.href}\n className=\"btn-ghost inline-flex items-center gap-1 text-sm\"\n >\n Learn more <ChevronRight size={14} />\n </Link>\n )}\n </div>\n );\n })}\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h3 className=\"font-bold\">Quick Install</h3>\n <div className=\"space-y-3\">\n <div>\n <p className=\"text-muted-foreground mb-2 text-xs font-medium\">\n CLI\n </p>\n <InstallCommand package=\"contractspec\" dev />\n </div>\n <div>\n <p className=\"text-muted-foreground mb-2 text-xs font-medium\">\n VS Code Extension\n </p>\n <CodeBlock\n language=\"bash\"\n code=\"code --install-extension lssm.vscode-contractspec\"\n />\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/getting-started/tools/cli\" className=\"btn-primary\">\n Get Started with CLI <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/getting-started/tools/vscode\" className=\"btn-ghost\">\n VS Code Extension\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,qBAAqB;AAwDnC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAoB,EACvD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,oBAAC;IAAI,WAAU;cAjEL;KACZ;MACE,MAAM;MACN,MAAM;MACN,aACE;MACF,MAAM;MACN,QAAQ;MACR,YAAY;OACV;OACA;OACA;OACD;MACF;KACD;MACE,MAAM;MACN,MAAM;MACN,aACE;MACF,MAAM;MACN,QAAQ;MACR,YAAY;OACV;OACA;OACA;OACD;MACF;KACD;MACE,MAAM;MACN,MAAM;MACN,aACE;MACF,MAAM;MACN,QAAQ;MACR,YAAY;OACV;OACA;OACA;OACD;MACF;KACD;MACE,MAAM;MACN,MAAM;MACN,aACE;MACF,MAAM;MACN,QAAQ;MACR,YAAY;OACV;OACA;OACA;OACD;MACF;KACF,CAaY,KAAK,SAAS;KACnB,MAAM,gBAAgB,KAAK;KAC3B,MAAM,eAAe,KAAK,WAAW;AAErC,YACE,qBAAC;MAEC,WAAW,sCAAsC,eAAe,eAAe;;OAE9E,gBACC,oBAAC;QAAK,WAAU;kBAAwG;SAEjH;OAET,qBAAC;QAAI,WAAU;mBACb,oBAAC;SAAI,WAAU;mBACb,oBAAC,iBAAc,WAAU,4BAA4B;UACjD,EACN,oBAAC;SAAG,WAAU;mBAAqB,KAAK;UAAU;SAC9C;OACN,oBAAC;QAAE,WAAU;kBACV,KAAK;SACJ;OACJ,oBAAC;QAAG,WAAU;kBACX,KAAK,WAAW,KAAK,cACpB,qBAAC;SAEC,WAAU;oBAEV,oBAAC;UAAK,WAAU;oBAAkB;WAAQ,EACzC;WAJI,UAKF,CACL;SACC;OACJ,CAAC,gBACA,qBAAC;QACC,MAAM,KAAK;QACX,WAAU;mBACX,eACY,oBAAC,gBAAa,MAAM,KAAM;SAChC;;QAlCJ,KAAK,KAoCN;MAER;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAY;MAAkB,EAC5C,qBAAC;KAAI,WAAU;gBACb,qBAAC,oBACC,oBAAC;MAAE,WAAU;gBAAiD;OAE1D,EACJ,oBAAC;MAAe,SAAQ;MAAe;OAAM,IACzC,EACN,qBAAC,oBACC,oBAAC;MAAE,WAAU;gBAAiD;OAE1D,EACJ,oBAAC;MACC,UAAS;MACT,MAAK;OACL,IACE;MACF;KACF;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAAkC,WAAU;gBAAc,yBAC9C,oBAAC,gBAAa,MAAM,KAAM;MAC1C,EACP,oBAAC;KAAK,MAAK;KAAqC,WAAU;eAAY;MAE/D;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HelloWorldPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/HelloWorldPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock } from '@contractspec/lib.design-system';\n\nexport function HelloWorldPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Your First Operation</h1>\n <p className=\"text-muted-foreground text-lg\">\n Build a payment capture operation with policy enforcement in under 10\n minutes.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <p className=\"text-muted-foreground\">\n A real-world payment processing operation that validates input,\n enforces business rules, integrates with Stripe, and audits every\n transaction. This is production-ready code, not a toy example.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1. Define the operation spec</h2>\n <p className=\"text-muted-foreground\">\n Create <code>lib/specs/billing/capture-payment.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lib/specs/billing/capture-payment.ts\"\n code={`import { defineCommand } from '@contractspec/lib.contracts';\nimport { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\n\nconst CapturePaymentInput = new SchemaModel({\n name: 'CapturePaymentInput',\n fields: {\n invoiceId: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n amount: { type: ScalarTypeEnum.PositiveNumber(), isOptional: false },\n currency: { type: ScalarTypeEnum.String(), isOptional: false },\n paymentMethodId: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n },\n});\n\nconst PaymentResult = new SchemaModel({\n name: 'PaymentResult',\n fields: {\n transactionId: { type: ScalarTypeEnum.String(), isOptional: false },\n status: { type: ScalarTypeEnum.String(), isOptional: false },\n receiptUrl: { type: ScalarTypeEnum.String(), isOptional: true },\n },\n});\n\nexport const CapturePayment = defineCommand({\n meta: {\n key: 'billing.capturePayment',\n version: '1.0.0',\n description: 'Process a payment for an invoice',\n goal: 'Capture funds from customer payment method',\n context: 'Called when customer confirms purchase',\n owners: ['team-billing'],\n tags: ['payments', 'stripe', 'critical'],\n stability: 'stable',\n },\n io: {\n input: CapturePaymentInput,\n output: PaymentResult,\n },\n policy: {\n auth: 'user',\n rules: [\n { resource: 'invoice', action: 'pay', condition: 'owner' },\n ],\n },\n});`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2. Implement the handler</h2>\n <p className=\"text-muted-foreground\">\n Create <code>lib/handlers/billing/capture-payment.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lib/handlers/billing/capture-payment.ts\"\n code={`import { CapturePayment } from '@/lib/specs/billing/capture-payment';\nimport { stripe } from '@/lib/integrations/stripe';\nimport { db } from '@/lib/db';\n\nexport async function handleCapturePayment(input, ctx) {\n // 1. Verify invoice exists and belongs to user\n const invoice = await db.invoice.findUnique({\n where: { id: input.invoiceId, userId: ctx.userId },\n });\n\n if (!invoice) throw new Error('Invoice not found');\n if (invoice.status === 'paid') throw new Error('Already paid');\n\n // 2. Create Stripe payment intent\n const paymentIntent = await stripe.paymentIntents.create({\n amount: Math.round(input.amount * 100),\n currency: input.currency,\n payment_method: input.paymentMethodId,\n confirm: true,\n metadata: { invoiceId: input.invoiceId },\n });\n\n // 3. Update invoice status\n await db.invoice.update({\n where: { id: input.invoiceId },\n data: {\n status: 'paid',\n paidAt: new Date(),\n transactionId: paymentIntent.id,\n },\n });\n\n return {\n transactionId: paymentIntent.id,\n status: paymentIntent.status,\n receiptUrl: paymentIntent.charges.data[0]?.receipt_url,\n };\n}`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3. Register and serve</h2>\n <p className=\"text-muted-foreground\">\n Wire it up in <code>lib/registry.ts</code> and{' '}\n <code>app/api/ops/[...route]/route.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"lib/registry.ts\"\n code={`import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts';\nimport { CapturePayment } from './specs/billing/capture-payment';\nimport { handleCapturePayment } from './handlers/billing/capture-payment';\n\nexport const registry = new OperationSpecRegistry();\ninstallOp(registry, CapturePayment, handleCapturePayment);`}\n />\n <CodeBlock\n language=\"typescript\"\n filename=\"app/api/ops/[...route]/route.ts\"\n code={`import { makeNextAppHandler } from '@contractspec/lib.contracts/server/rest-next-app';\nimport { registry } from '@/lib/registry';\nimport { auth } from '@/lib/auth';\n\nconst handler = makeNextAppHandler(registry, async (req) => {\n const session = await auth(req);\n return { actor: 'user', userId: session.userId, tenantId: session.tenantId };\n});\n\nexport { handler as GET, handler as POST };`}\n />\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h3 className=\"font-bold\">What you just built:</h3>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>\n Type-safe API endpoint at{' '}\n <code>/api/ops/billing.capturePayment</code>\n </li>\n <li>\n Automatic input validation (amount must be positive, IDs required)\n </li>\n <li>Policy enforcement—only invoice owner can pay</li>\n <li>Stripe integration with error handling</li>\n <li>Database transaction with audit trail</li>\n <li>Same spec works with GraphQL, MCP, or webhooks</li>\n </ul>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/getting-started/dataviews\" className=\"btn-primary\">\n Next: Display Data with DataViews <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,iBAAiB;AAC/B,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAqB;KAAyB,EAC5D,oBAAC;IAAE,WAAU;cAAgC;KAGzC;IACA,EAEN,qBAAC;GAAI,WAAU;;IACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAG,WAAU;gBAAqB;OAAsB,EACzD,oBAAC;MAAE,WAAU;gBAAwB;OAIjC;MACA;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAAiC;MACpE,qBAAC;OAAE,WAAU;;QAAwB;QAC5B,oBAAC,oBAAK,yCAA2C;;;QACtD;MACJ,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4CN;;MACE;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAA6B;MAChE,qBAAC;OAAE,WAAU;;QAAwB;QAC5B,oBAAC,oBAAK,4CAA8C;;;QACzD;MACJ,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAsCN;;MACE;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAA0B;MAC7D,qBAAC;OAAE,WAAU;;QAAwB;QACrB,oBAAC,oBAAK,oBAAsB;;QAAK;QAC/C,oBAAC,oBAAK,oCAAsC;;;QAC1C;MACJ,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;;;;QAMN;MACF,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;;;;;;;;QAUN;;MACE;IAEN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAG,WAAU;gBAAY;OAAyB,EACnD,qBAAC;MAAG,WAAU;;OACZ,qBAAC;QAAG;QACwB;QAC1B,oBAAC,oBAAK,oCAAsC;WACzC;OACL,oBAAC,kBAAG,uEAEC;OACL,oBAAC,kBAAG,kDAAkD;OACtD,oBAAC,kBAAG,2CAA2C;OAC/C,oBAAC,kBAAG,0CAA0C;OAC9C,oBAAC,kBAAG,mDAAmD;;OACpD;MACD;IAEN,oBAAC;KAAI,WAAU;eACb,qBAAC;MAAK,MAAK;MAAkC,WAAU;iBAAc,sCACjC,oBAAC,gBAAa,MAAM,KAAM;OACvD;MACH;;IACF;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InstallationPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/InstallationPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock, InstallCommand } from '@contractspec/lib.design-system';\n\nexport function InstallationPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Installation</h1>\n <p className=\"text-muted-foreground text-lg\">\n Add ContractSpec to your existing Next.js or Bun project, or start\n fresh.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Prerequisites</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>Node.js 20+ (or Bun 1.0+)</li>\n <li>Existing Next.js app or Bun HTTP server</li>\n <li>PostgreSQL database (for persistence)</li>\n </ul>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Install Core Libraries</h2>\n <p className=\"text-muted-foreground\">\n Add the contracts runtime and your choice of adapter:\n </p>\n <InstallCommand\n package={[\n '@contractspec/lib.contracts',\n '@contractspec/lib.schema',\n ]}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">For Next.js projects</h2>\n <InstallCommand package=\"@contractspec/lib.contracts\" />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">For database models</h2>\n <InstallCommand\n package={[\n '@contractspec/app.cli-database',\n 'prisma',\n '@prisma/client',\n ]}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Set up your project</h2>\n <p className=\"text-muted-foreground\">\n Initialize a new ContractSpec project structure:\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"installation-init\"\n code={`bunx contractspec init\n# Follow the interactive prompts to configure your project`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Initialize the database</h2>\n <p className=\"text-muted-foreground\">\n If using Prisma, set up your schema and generate the client:\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"installation-prisma\"\n code={`bunx prisma init\n# Edit prisma/schema.prisma with your models\nbunx prisma generate\nbunx prisma migrate dev --name init`}\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/getting-started/hello-world\"\n className=\"btn-primary\"\n >\n Next: First Operation <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,mBAAmB;AACjC,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAG,WAAU;cAAqB;KAAiB,EACpD,oBAAC;IAAE,WAAU;cAAgC;KAGzC;IACA,EAEN,qBAAC;GAAI,WAAU;;IACb,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAG,WAAU;gBAAqB;OAAkB,EACrD,qBAAC;MAAG,WAAU;;OACZ,oBAAC,kBAAG,8BAA8B;OAClC,oBAAC,kBAAG,4CAA4C;OAChD,oBAAC,kBAAG,0CAA0C;;OAC3C;MACD;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAA2B;MAC9D,oBAAC;OAAE,WAAU;iBAAwB;QAEjC;MACJ,oBAAC,kBACC,SAAS,CACP,+BACA,2BACD,GACD;;MACE;IAEN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAG,WAAU;gBAAqB;OAAyB,EAC5D,oBAAC,kBAAe,SAAQ,gCAAgC;MACpD;IAEN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAG,WAAU;gBAAqB;OAAwB,EAC3D,oBAAC,kBACC,SAAS;MACP;MACA;MACA;MACD,GACD;MACE;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAAwB;MAC3D,oBAAC;OAAE,WAAU;iBAAwB;QAEjC;MACJ,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;QAEN;;MACE;IAEN,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAG,WAAU;iBAAqB;QAA4B;MAC/D,oBAAC;OAAE,WAAU;iBAAwB;QAEjC;MACJ,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;;QAIN;;MACE;IAEN,oBAAC;KAAI,WAAU;eACb,qBAAC;MACC,MAAK;MACL,WAAU;iBACX,0BACuB,oBAAC,gBAAa,MAAM,KAAM;OAC3C;MACH;;IACF;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StartHerePage.js","names":[],"sources":["../../../../src/components/docs/getting-started/StartHerePage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock, InstallCommand } from '@contractspec/lib.design-system';\n\nexport function StartHerePage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Start here</h1>\n <p className=\"text-muted-foreground text-lg\">\n A fast onboarding path from install to your first generated contract.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Install the CLI</h2>\n <InstallCommand package=\"contractspec\" dev />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Add core libraries</h2>\n <InstallCommand\n package={[\n '@contractspec/lib.contracts',\n '@contractspec/lib.schema',\n ]}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Initialize your project</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"start-here-init\"\n code={`bunx contractspec init`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Create your first contract</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"start-here-create\"\n code={`contractspec create --type operation`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Generate implementation</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"start-here-build\"\n code={`contractspec build src/contracts/mySpec.ts\ncontractspec validate src/contracts/mySpec.ts`}\n />\n </div>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3 pt-2\">\n <Link href=\"/docs/getting-started/hello-world\" className=\"btn-primary\">\n Next: Hello World <ChevronRight size={16} />\n </Link>\n <Link\n href=\"/docs/getting-started/troubleshooting\"\n className=\"btn-ghost\"\n >\n Troubleshooting\n </Link>\n <Link href=\"/docs/getting-started/compatibility\" className=\"btn-ghost\">\n Compatibility\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,gBAAgB;AAC9B,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAe,EAClD,oBAAC;KAAE,WAAU;eAAgC;MAEzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAoB,EACvD,oBAAC;OAAe,SAAQ;OAAe;QAAM;OACzC;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAuB,EAC1D,oBAAC,kBACC,SAAS,CACP,+BACA,2BACD,GACD;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAA4B,EAC/D,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;QACN;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAA+B,EAClE,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;QACN;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAA4B,EAC/D,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;QAEN;OACE;;KACF;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAK,MAAK;MAAoC,WAAU;iBAAc,sBACnD,oBAAC,gBAAa,MAAM,KAAM;OACvC;KACP,oBAAC;MACC,MAAK;MACL,WAAU;gBACX;OAEM;KACP,oBAAC;MAAK,MAAK;MAAsC,WAAU;gBAAY;OAEhE;;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TroubleshootingPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/TroubleshootingPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { CodeBlock } from '@contractspec/lib.design-system';\n\nexport function TroubleshootingPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">Troubleshooting</h1>\n <p className=\"text-muted-foreground text-lg\">\n Common issues and fixes when installing or generating with\n ContractSpec.\n </p>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Command not found</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>Reinstall the CLI and ensure it is in your PATH.</li>\n <li>Confirm Node.js 20+ or Bun 1.0+ is installed.</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Specs not discovered</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>\n Run <code>contractspec list</code> to see discovered specs.\n </li>\n <li>Verify your spec path conventions in .contractsrc.json.</li>\n </ul>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Build or validate fails</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>\n Run <code>contractspec validate</code> to surface schema errors.\n </li>\n <li>Check that generated files were not manually edited.</li>\n </ul>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Diagnostics</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"troubleshooting-diagnostics\"\n code={`contractspec --version\ncontractspec list\ncontractspec validate src/contracts/mySpec.ts`}\n />\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h2 className=\"text-2xl font-bold\">Still blocked?</h2>\n <ul className=\"text-muted-foreground space-y-2\">\n <li>\n Confirm compatibility requirements for runtime and framework.\n </li>\n <li>Re-run builds on a clean branch to isolate changes.</li>\n <li>Use a new spec and minimal adapter to validate setup.</li>\n </ul>\n </div>\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3 pt-2\">\n <Link href=\"/docs/getting-started/start-here\" className=\"btn-ghost\">\n Start here\n </Link>\n <Link href=\"/docs/getting-started/compatibility\" className=\"btn-ghost\">\n Compatibility\n </Link>\n <Link href=\"/docs/getting-started/installation\" className=\"btn-primary\">\n Next: Installation <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,sBAAsB;AACpC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAoB,EACvD,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAsB,EACzD,qBAAC;OAAG,WAAU;kBACZ,oBAAC,kBAAG,qDAAqD,EACzD,oBAAC,kBAAG,kDAAkD;QACnD;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAyB,EAC5D,qBAAC;OAAG,WAAU;kBACZ,qBAAC;QAAG;QACE,oBAAC,oBAAK,sBAAwB;;WAC/B,EACL,oBAAC,kBAAG,4DAA4D;QAC7D;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAA4B,EAC/D,qBAAC;OAAG,WAAU;kBACZ,qBAAC;QAAG;QACE,oBAAC,oBAAK,0BAA4B;;WACnC,EACL,oBAAC,kBAAG,yDAAyD;QAC1D;OACD;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAgB,EACnD,oBAAC;OACC,UAAS;OACT,UAAS;OACT,MAAM;;;QAGN;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAqB;QAAmB,EACtD,qBAAC;OAAG,WAAU;;QACZ,oBAAC,kBAAG,kEAEC;QACL,oBAAC,kBAAG,wDAAwD;QAC5D,oBAAC,kBAAG,0DAA0D;;QAC3D;OACD;;KACF;GAEN,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAK,MAAK;MAAmC,WAAU;gBAAY;OAE7D;KACP,oBAAC;MAAK,MAAK;MAAsC,WAAU;gBAAY;OAEhE;KACP,qBAAC;MAAK,MAAK;MAAqC,WAAU;iBAAc,uBACnD,oBAAC,gBAAa,MAAM,KAAM;OACxC;;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VSCodeExtensionPage.js","names":[],"sources":["../../../../src/components/docs/getting-started/VSCodeExtensionPage.tsx"],"sourcesContent":["import Link from '@contractspec/lib.ui-link';\nimport { ChevronRight, ExternalLink } from 'lucide-react';\nimport { CodeBlock } from '@contractspec/lib.design-system';\n\nexport function VSCodeExtensionPage() {\n const features = [\n {\n category: 'Core Functionality',\n items: [\n 'Real-time validation with instant feedback on spec errors',\n 'Build/Scaffold handlers and components from specs',\n 'Interactive spec creation wizard',\n 'Watch mode for auto-rebuild on changes',\n 'Sync all specs in workspace with one command',\n ],\n },\n {\n category: 'Visual Navigation',\n items: [\n 'Specs Explorer sidebar with organized tree view',\n 'Dependencies view to visualize spec relationships',\n 'Build Results tracking with history',\n 'Circular dependency detection',\n ],\n },\n {\n category: 'Comparison & Export',\n items: [\n 'Semantic and text diff between specs',\n 'Git comparison with baseline branches',\n 'OpenAPI 3.1 specification export',\n ],\n },\n ];\n\n const commands = [\n {\n name: 'Create New Spec',\n description: 'Interactive wizard to create specs',\n },\n {\n name: 'Validate Current Spec',\n description: 'Validate the currently open spec',\n },\n {\n name: 'Build/Scaffold from Current Spec',\n description: 'Generate handler/component',\n },\n { name: 'Toggle Watch Mode', description: 'Auto-rebuild on changes' },\n { name: 'Sync All Specs', description: 'Build all specs in workspace' },\n {\n name: 'Analyze Spec Dependencies',\n description: 'Visualize spec dependencies',\n },\n {\n name: 'Compare Specs',\n description: 'Semantic or text diff between specs',\n },\n {\n name: 'Export to OpenAPI',\n description: 'Generate OpenAPI specification',\n },\n ];\n\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-2\">\n <h1 className=\"text-4xl font-bold\">VS Code Extension</h1>\n <p className=\"text-muted-foreground text-lg\">\n Spec-first development directly in VS Code. Validate, scaffold, and\n explore your contract specifications with real-time feedback.\n </p>\n </div>\n\n <div className=\"flex flex-wrap gap-3\">\n <a\n href=\"https://marketplace.visualstudio.com/items?itemName=lssm.vscode-contractspec\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"btn-primary inline-flex items-center gap-2\"\n >\n Install Extension <ExternalLink size={16} />\n </a>\n <a\n href=\"vscode:extension/lssm.vscode-contractspec\"\n className=\"btn-ghost inline-flex items-center gap-2\"\n >\n Open in VS Code\n </a>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Installation</h2>\n <div className=\"space-y-2\">\n <p className=\"text-muted-foreground text-sm\">\n <strong>Option 1:</strong> Install from VS Code Marketplace\n </p>\n <CodeBlock\n language=\"bash\"\n code=\"code --install-extension lssm.vscode-contractspec\"\n />\n <p className=\"text-muted-foreground mt-4 text-sm\">\n <strong>Option 2:</strong> Search for "ContractSpec" in\n VS Code Extensions (Ctrl/Cmd+Shift+X)\n </p>\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Features</h2>\n <div className=\"grid gap-4 md:grid-cols-3\">\n {features.map((section) => (\n <div key={section.category} className=\"card-subtle space-y-3 p-4\">\n <h3 className=\"font-bold text-violet-400\">\n {section.category}\n </h3>\n <ul className=\"space-y-2\">\n {section.items.map((item) => (\n <li\n key={item}\n className=\"text-muted-foreground flex items-start gap-2 text-sm\"\n >\n <span className=\"mt-1 text-violet-400\">-</span>\n <span>{item}</span>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"space-y-4\">\n <h2 className=\"text-2xl font-bold\">Commands</h2>\n <p className=\"text-muted-foreground\">\n Access commands via Command Palette (Ctrl/Cmd+Shift+P) with prefix{' '}\n <code>ContractSpec:</code>\n </p>\n <div className=\"grid gap-3 md:grid-cols-2\">\n {commands.map((cmd) => (\n <div\n key={cmd.name}\n className=\"card-subtle flex items-center gap-3 p-3\"\n >\n <div className=\"flex-1\">\n <p className=\"font-mono text-sm font-medium\">{cmd.name}</p>\n <p className=\"text-muted-foreground text-xs\">\n {cmd.description}\n </p>\n </div>\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Sidebar Views</h2>\n <p className=\"text-muted-foreground\">\n The extension adds a ContractSpec activity bar (icon in sidebar)\n with three views:\n </p>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <div className=\"card-subtle space-y-2 p-4\">\n <h4 className=\"font-bold\">Specs Explorer</h4>\n <p className=\"text-muted-foreground text-sm\">\n Browse all specs organized by type. Shows name, version, and\n stability. Click to open, right-click for actions.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h4 className=\"font-bold\">Dependencies</h4>\n <p className=\"text-muted-foreground text-sm\">\n Visualize spec relationships. Detect circular dependencies.\n Navigate to referenced specs.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h4 className=\"font-bold\">Build Results</h4>\n <p className=\"text-muted-foreground text-sm\">\n Track build history (last 20). Success/failure indicators. Click\n to open generated files.\n </p>\n </div>\n </div>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Getting Started</h2>\n <ol className=\"text-muted-foreground list-inside list-decimal space-y-2\">\n <li>Install the extension from VS Code Marketplace</li>\n <li>Open a workspace with ContractSpec files (or create one)</li>\n <li>Start the walkthrough: Help - Welcome - ContractSpec</li>\n <li>\n Create your first spec: Click <strong>+</strong> in Specs Explorer\n or run <code>ContractSpec: Create New Spec</code>\n </li>\n <li>Build from it: Click the build icon in the editor title bar</li>\n </ol>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h3 className=\"font-bold\">Configuration</h3>\n <p className=\"text-muted-foreground text-sm\">\n Configure the extension in VS Code Settings:\n </p>\n <div className=\"overflow-x-auto\">\n <table className=\"text-muted-foreground w-full text-sm\">\n <thead>\n <tr className=\"border-border border-b\">\n <th className=\"p-2 text-left font-medium\">Setting</th>\n <th className=\"p-2 text-left font-medium\">Description</th>\n <th className=\"p-2 text-left font-medium\">Default</th>\n </tr>\n </thead>\n <tbody>\n <tr className=\"border-border border-b\">\n <td className=\"p-2 font-mono text-xs\">validation.onSave</td>\n <td className=\"p-2\">Run validation on save</td>\n <td className=\"p-2\">true</td>\n </tr>\n <tr className=\"border-border border-b\">\n <td className=\"p-2 font-mono text-xs\">validation.onOpen</td>\n <td className=\"p-2\">Run validation on open</td>\n <td className=\"p-2\">true</td>\n </tr>\n <tr className=\"border-border border-b\">\n <td className=\"p-2 font-mono text-xs\">api.baseUrl</td>\n <td className=\"p-2\">Base URL for ContractSpec API</td>\n <td className=\"p-2\">(empty)</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/getting-started/tools/cli\" className=\"btn-ghost\">\n Back: CLI\n </Link>\n <Link href=\"/docs/specs\" className=\"btn-primary\">\n Next: Core Concepts <ChevronRight size={16} />\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getting-started.docblocks.js","names":[],"sources":["../../../../src/components/docs/getting-started/getting-started.docblocks.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nexport const gettingStartedDocBlocks: DocBlock[] = [\n {\n id: 'docs.getting-started.start-here',\n title: 'Start here',\n summary: 'Fast onboarding path from install to first generated contract.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/getting-started/start-here',\n tags: ['getting-started', 'onboarding'],\n body: `# Start Here\n\nGet ContractSpec running quickly and generate your first contract-backed code.\n\n## 1. Install the CLI\n\n\\`\\`\\`bash\nbun add -D contractspec\nbun add @contractspec/lib.contracts @contractspec/lib.schema\n\\`\\`\\`\n\n## 2. Initialize your project\n\n\\`\\`\\`bash\nbunx contractspec init\n\\`\\`\\`\n\n## 3. Create your first contract\n\n\\`\\`\\`bash\ncontractspec create --type operation\n\\`\\`\\`\n\n## 4. Generate implementation\n\n\\`\\`\\`bash\ncontractspec build src/contracts/mySpec.ts\ncontractspec validate src/contracts/mySpec.ts\n\\`\\`\\`\n\n## Next steps\n\n- Follow the Hello World tutorial for a full walkthrough.\n- Install the VS Code extension for inline validation.\n- Review compatibility notes before deploying to production.\n`,\n },\n {\n id: 'docs.getting-started.troubleshooting',\n title: 'Troubleshooting',\n summary: 'Resolve common install, spec discovery, and build issues.',\n kind: 'faq',\n visibility: 'public',\n route: '/docs/getting-started/troubleshooting',\n tags: ['getting-started', 'troubleshooting'],\n body: `# Troubleshooting\n\nCommon issues and quick fixes when getting started with ContractSpec.\n\n## Command not found\n\n- Reinstall the CLI and ensure it is in your PATH.\n- Confirm Node.js 20+ or Bun 1.0+ is installed.\n\n## Specs not discovered\n\n- Run \\`contractspec list\\` to see discovered specs.\n- Verify your spec path conventions in \\`.contractsrc.json\\`.\n\n## Build or validate fails\n\n- Run \\`contractspec validate\\` to surface schema errors.\n- Check that generated files were not manually edited.\n\n## Diagnostics\n\n\\`\\`\\`bash\ncontractspec --version\ncontractspec list\ncontractspec validate src/contracts/mySpec.ts\n\\`\\`\\`\n\n## Still blocked?\n\n- Confirm compatibility requirements (runtime, framework, package manager).\n- Re-run \\`contractspec build\\` with a clean working tree.\n`,\n },\n {\n id: 'docs.getting-started.compatibility',\n title: 'Compatibility',\n summary: 'Supported runtimes, frameworks, package managers, and AI modes.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/getting-started/compatibility',\n tags: ['getting-started', 'compatibility'],\n body: `# Compatibility\n\nContractSpec supports modern TypeScript stacks with spec-first workflows.\n\n## Runtimes\n\n- Node.js 20+\n- Bun 1.0+\n\n## Frameworks\n\n- Next.js 14+ (App Router preferred)\n- Bun + Elysia or other HTTP servers\n\n## Package managers\n\n- bun (recommended)\n- npm\n- yarn\n- pnpm\n\n## AI agent modes\n\n- claude-code\n- openai-codex\n- cursor\n- opencode\n- simple (direct LLM)\n\n## Datastores\n\n- PostgreSQL via Prisma\n- Bring your own adapter for other databases\n`,\n },\n];\n\nregisterDocBlocks(gettingStartedDocBlocks);\n"],"mappings":";;;AAGA,MAAa,0BAAsC;CACjD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,mBAAmB,aAAa;EACvC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,mBAAmB,kBAAkB;EAC5C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,mBAAmB,gBAAgB;EAC1C,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCP;CACF;AAED,kBAAkB,wBAAwB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideCIDiffGatingPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideCIDiffGatingPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function GuideCIDiffGatingPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">\n CI gating with deterministic diffs\n </h1>\n <p className=\"text-muted-foreground text-lg\">\n Add ContractSpec CI checks that validate specs, detect drift, and gate\n breaking changes before merge.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>CI workflow running ContractSpec validation and drift checks.</li>\n <li>Machine-readable output for PR annotations.</li>\n <li>Deterministic contract diffs in review.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Add the CI workflow</h2>\n <p className=\"text-muted-foreground text-sm\">\n Copy the template from the CLI package.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"ci-copy\"\n code={`cp node_modules/@contractspec/app.cli-contractspec/templates/github-action.yml .github/workflows/contractspec.yml`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: new workflow file in <code>.github/workflows</code>\n .\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Run CI locally</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"ci-local\"\n code={`contractspec ci --format json --check-drift`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: JSON summary including pass/fail counts and drift\n status (if configured).\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Add a diff check</h2>\n <p className=\"text-muted-foreground text-sm\">\n Use the diff command to inspect breaking changes in PRs.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"ci-diff\"\n code={`contractspec diff src/contracts/spec-v1.ts src/contracts/spec-v2.ts --breaking`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: deterministic diff with breaking change hints.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">Example package</h3>\n <p className=\"text-muted-foreground text-sm\">\n The CRM pipeline example is already wired in the quickstart smoke\n test. Use it as a CI-ready template.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"crm-ci\"\n code={`cd packages/examples/crm-pipeline\nbun run build\nbun run validate`}\n />\n </div>\n\n <StudioPrompt\n title=\"Need managed CI policy gates?\"\n body=\"Studio adds policy approvals, drift dashboards, and audit trails after CI checks pass.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/guides\" className=\"btn-primary\">\n Back to guides <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs\" className=\"btn-ghost\">\n Docs home\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,wBAAwB;AACtC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAE9B,EACL,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,kEAAkE;MACtE,oBAAC,kBAAG,gDAAgD;MACpD,oBAAC,kBAAG,4CAA4C;;MAC7C;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA2B;OAC9D,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SACL,oBAAC,oBAAK,sBAAwB;;;SAElE;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAsB;OACzD,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAwB;OAC3D,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAwB;SAAoB;OAC1D,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;SAGN;;OACE;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAAe,WAAU;gBAAc,mBACjC,oBAAC,gBAAa,MAAM,KAAM;MACpC,EACP,oBAAC;KAAK,MAAK;KAAQ,WAAU;eAAY;MAElC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideContractTypesPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideContractTypesPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight, Layers, Zap, Shield, Globe } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nconst contractTypes = [\n {\n name: 'Operations',\n factory: 'defineCommand / defineQuery',\n description:\n 'API endpoints with input/output schemas, validation, and policy.',\n icon: Zap,\n color: 'text-blue-400',\n },\n {\n name: 'Events',\n factory: 'defineEvent',\n description: 'Domain events with typed payloads and PII handling.',\n icon: Layers,\n color: 'text-green-400',\n },\n {\n name: 'Capabilities',\n factory: 'defineCapability',\n description: 'Feature groupings that link operations, events, and UIs.',\n icon: Shield,\n color: 'text-purple-400',\n },\n {\n name: 'Presentations',\n factory: 'definePresentation',\n description:\n 'UI specifications for rendering data and handling interactions.',\n icon: Globe,\n color: 'text-orange-400',\n },\n];\n\nexport function GuideContractTypesPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Contract Types Overview</h1>\n <p className=\"text-muted-foreground text-lg\">\n Learn about the different contract types in ContractSpec and when to\n use each one for spec-first development.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">Core Contract Types</h2>\n <div className=\"grid gap-3 md:grid-cols-2\">\n {contractTypes.map((type) => (\n <div\n key={type.name}\n className=\"flex items-start gap-3 rounded-lg border border-white/10 p-4\"\n >\n <type.icon className={type.color} size={20} />\n <div className=\"space-y-1\">\n <h3 className=\"font-semibold\">{type.name}</h3>\n <p className=\"text-muted-foreground text-xs\">\n {type.description}\n </p>\n <code className=\"text-xs text-violet-400\">{type.factory}</code>\n </div>\n </div>\n ))}\n </div>\n </div>\n\n {/* Operations Section */}\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">\n 1) Operations (Commands & Queries)\n </h2>\n <p className=\"text-muted-foreground text-sm\">\n Operations are the backbone of your API. Commands mutate state,\n queries read state. Both have typed input/output schemas.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/user.operation.ts\"\n code={`import { defineCommand, defineQuery } from \"@contractspec/lib.contracts\";\nimport { SchemaModel, ScalarTypeEnum } from \"@contractspec/lib.schema\";\n\n// Command: Mutates state (creates a user)\nexport const CreateUserCommand = defineCommand({\n meta: {\n key: \"user.create\",\n version: \"1.0.0\",\n description: \"Create a new user account\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\", \"auth\"],\n },\n io: {\n input: new SchemaModel({\n name: \"CreateUserInput\",\n fields: {\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n name: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n },\n }),\n output: new SchemaModel({\n name: \"CreateUserOutput\",\n fields: {\n id: { type: ScalarTypeEnum.UUID(), isOptional: false },\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n },\n }),\n errors: {\n EMAIL_EXISTS: {\n description: \"Email already registered\",\n http: 409,\n when: \"User with this email already exists\",\n },\n },\n },\n policy: { auth: \"admin\" },\n});\n\n// Query: Reads state (gets user by ID)\nexport const GetUserQuery = defineQuery({\n meta: {\n key: \"user.get\",\n version: \"1.0.0\",\n description: \"Get user by ID\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\"],\n },\n io: {\n input: new SchemaModel({\n name: \"GetUserInput\",\n fields: {\n id: { type: ScalarTypeEnum.UUID(), isOptional: false },\n },\n }),\n output: new SchemaModel({\n name: \"GetUserOutput\",\n fields: {\n id: { type: ScalarTypeEnum.UUID(), isOptional: false },\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n name: { type: ScalarTypeEnum.String(), isOptional: false },\n },\n }),\n },\n policy: { auth: \"user\" },\n});`}\n />\n </div>\n\n {/* Events Section */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Events</h2>\n <p className=\"text-muted-foreground text-sm\">\n Events represent domain occurrences. They have typed payloads with\n PII field marking for compliance.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/user.event.ts\"\n code={`import { defineEvent } from \"@contractspec/lib.contracts\";\nimport { SchemaModel, ScalarTypeEnum } from \"@contractspec/lib.schema\";\n\nexport const UserCreatedEvent = defineEvent({\n meta: {\n key: \"user.created\",\n version: \"1.0.0\",\n description: \"Emitted when a new user is created\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\", \"auth\"],\n },\n // Mark PII fields for redaction in logs/exports\n pii: [\"email\"],\n payload: new SchemaModel({\n name: \"UserCreatedPayload\",\n fields: {\n userId: { type: ScalarTypeEnum.UUID(), isOptional: false },\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n }),\n});\n\nexport const UserDeletedEvent = defineEvent({\n meta: {\n key: \"user.deleted\",\n version: \"1.0.0\",\n description: \"Emitted when a user is deleted\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\"],\n },\n payload: new SchemaModel({\n name: \"UserDeletedPayload\",\n fields: {\n userId: { type: ScalarTypeEnum.UUID(), isOptional: false },\n deletedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n reason: { type: ScalarTypeEnum.String(), isOptional: true },\n },\n }),\n});`}\n />\n </div>\n\n {/* Capabilities Section */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Capabilities</h2>\n <p className=\"text-muted-foreground text-sm\">\n Capabilities group related operations, events, and presentations.\n They define feature boundaries and dependencies.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/user-management.capability.ts\"\n code={`import { defineCapability } from \"@contractspec/lib.contracts\";\n\nexport const UserManagementCapability = defineCapability({\n meta: {\n key: \"user.management\",\n version: \"1.0.0\",\n description: \"User account management features\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\", \"core\"],\n kind: \"api\",\n },\n // Operations/events this capability provides\n provides: [\n { surface: \"operation\", key: \"user.create\", version: \"1.0.0\" },\n { surface: \"operation\", key: \"user.get\", version: \"1.0.0\" },\n { surface: \"operation\", key: \"user.delete\", version: \"1.0.0\" },\n { surface: \"event\", key: \"user.created\", version: \"1.0.0\" },\n { surface: \"event\", key: \"user.deleted\", version: \"1.0.0\" },\n ],\n // Dependencies on other capabilities\n requires: [\n { key: \"auth.core\", reason: \"Needs authentication for user operations\" },\n ],\n});\n\n// Capabilities can extend other capabilities\nexport const AdminUserCapability = defineCapability({\n meta: {\n key: \"user.admin\",\n version: \"1.0.0\",\n description: \"Admin-only user management features\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\", \"admin\"],\n kind: \"api\",\n },\n // Inherit from base capability\n extends: { key: \"user.management\", version: \"1.0.0\" },\n provides: [\n { surface: \"operation\", key: \"user.ban\", version: \"1.0.0\" },\n { surface: \"operation\", key: \"user.impersonate\", version: \"1.0.0\" },\n ],\n});`}\n />\n </div>\n\n {/* Presentations Section */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">4) Presentations</h2>\n <p className=\"text-muted-foreground text-sm\">\n Presentations define UI specifications. They link to capabilities\n and specify how data should be displayed.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/user-list.presentation.ts\"\n code={`import { definePresentation } from \"@contractspec/lib.contracts\";\n\nexport const UserListPresentation = definePresentation({\n meta: {\n key: \"users.list\",\n version: \"1.0.0\",\n description: \"Display a list of users with search and pagination\",\n stability: \"stable\",\n owners: [\"platform.core\"],\n tags: [\"users\", \"ui\"],\n },\n // Link to capability that provides data\n capability: { key: \"user.management\", version: \"1.0.0\" },\n // UI specifications\n config: {\n title: \"Users\",\n layout: \"table\",\n columns: [\"name\", \"email\", \"createdAt\", \"status\"],\n actions: [\"view\", \"edit\", \"delete\"],\n pagination: { defaultPageSize: 25 },\n search: { fields: [\"name\", \"email\"] },\n },\n});`}\n />\n </div>\n\n {/* Additional Types Section */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">5) Additional Contract Types</h2>\n <p className=\"text-muted-foreground text-sm\">\n ContractSpec provides specialized contracts for different concerns:\n </p>\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Policy</h3>\n <code className=\"text-xs text-violet-400\">definePolicy</code>\n <p className=\"text-muted-foreground text-xs\">\n RBAC/ABAC rules, rate limits, and access control.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Workflow</h3>\n <code className=\"text-xs text-violet-400\">defineWorkflow</code>\n <p className=\"text-muted-foreground text-xs\">\n Multi-step processes with states, transitions, and SLAs.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Translation</h3>\n <code className=\"text-xs text-violet-400\">defineTranslation</code>\n <p className=\"text-muted-foreground text-xs\">\n i18n messages with ICU format and locale fallbacks.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Integration</h3>\n <code className=\"text-xs text-violet-400\">defineIntegration</code>\n <p className=\"text-muted-foreground text-xs\">\n External service connections and API adapters.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Form</h3>\n <code className=\"text-xs text-violet-400\">defineFormSpec</code>\n <p className=\"text-muted-foreground text-xs\">\n Form definitions with fields, validation, and layouts.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Data View</h3>\n <code className=\"text-xs text-violet-400\">defineDataView</code>\n <p className=\"text-muted-foreground text-xs\">\n Read-only data projections and aggregations.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Feature</h3>\n <code className=\"text-xs text-violet-400\">defineFeature</code>\n <p className=\"text-muted-foreground text-xs\">\n Feature flags and progressive rollout configurations.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Test</h3>\n <code className=\"text-xs text-violet-400\">defineTestSpec</code>\n <p className=\"text-muted-foreground text-xs\">\n Contract-driven test scenarios and fixtures.\n </p>\n </div>\n </div>\n </div>\n\n {/* Registry Section */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">6) Registering Contracts</h2>\n <p className=\"text-muted-foreground text-sm\">\n Each contract type has a registry for lookup and validation.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/registry.ts\"\n code={`import {\n OperationSpecRegistry,\n installOp,\n} from \"@contractspec/lib.contracts/operations\";\nimport { EventRegistry } from \"@contractspec/lib.contracts\";\nimport { CapabilityRegistry } from \"@contractspec/lib.contracts/capabilities\";\n\n// Import your contracts\nimport { CreateUserCommand, GetUserQuery } from \"./user.operation\";\nimport { UserCreatedEvent } from \"./user.event\";\nimport { UserManagementCapability } from \"./user-management.capability\";\n\n// Create registries\nexport const operationRegistry = new OperationSpecRegistry();\nexport const eventRegistry = new EventRegistry();\nexport const capabilityRegistry = new CapabilityRegistry();\n\n// Register operations with handlers\ninstallOp(operationRegistry, CreateUserCommand, async (input) => {\n // Your implementation here\n return { id: \"uuid\", email: input.email };\n});\n\ninstallOp(operationRegistry, GetUserQuery, async (input) => {\n // Your implementation here\n return { id: input.id, email: \"user@example.com\", name: \"User\" };\n});\n\n// Register events and capabilities\neventRegistry.register(UserCreatedEvent);\ncapabilityRegistry.register(UserManagementCapability);`}\n />\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">\n Contract Type Decision Guide\n </h3>\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-white/10\">\n <th className=\"py-2 text-left\">When you need...</th>\n <th className=\"py-2 text-left\">Use this contract</th>\n </tr>\n </thead>\n <tbody className=\"text-muted-foreground\">\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">An API endpoint that changes data</td>\n <td className=\"py-2\">\n <code>defineCommand</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">An API endpoint that reads data</td>\n <td className=\"py-2\">\n <code>defineQuery</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">\n Async notification of something that happened\n </td>\n <td className=\"py-2\">\n <code>defineEvent</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">Group related specs under a feature</td>\n <td className=\"py-2\">\n <code>defineCapability</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">Define UI rendering specifications</td>\n <td className=\"py-2\">\n <code>definePresentation</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2\">Access control and rate limiting</td>\n <td className=\"py-2\">\n <code>definePolicy</code>\n </td>\n </tr>\n <tr>\n <td className=\"py-2\">Multi-step business processes</td>\n <td className=\"py-2\">\n <code>defineWorkflow</code>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n\n <StudioPrompt\n title=\"Want visual contract design?\"\n body=\"Studio provides a visual editor for creating and managing contracts with team collaboration and version control.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link href=\"/docs/guides/nextjs-one-endpoint\" className=\"btn-primary\">\n Next: Add your first endpoint <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,MAAM,gBAAgB;CACpB;EACE,MAAM;EACN,SAAS;EACT,aACE;EACF,MAAM;EACN,OAAO;EACR;CACD;EACE,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,OAAO;EACR;CACD;EACE,MAAM;EACN,SAAS;EACT,aAAa;EACb,MAAM;EACN,OAAO;EACR;CACD;EACE,MAAM;EACN,SAAS;EACT,aACE;EACF,MAAM;EACN,OAAO;EACR;CACF;AAED,SAAgB,yBAAyB;AACvC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAA4B,EAC/D,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAwB,EAC3D,oBAAC;KAAI,WAAU;eACZ,cAAc,KAAK,SAClB,qBAAC;MAEC,WAAU;iBAEV,oBAAC,KAAK;OAAK,WAAW,KAAK;OAAO,MAAM;QAAM,EAC9C,qBAAC;OAAI,WAAU;;QACb,oBAAC;SAAG,WAAU;mBAAiB,KAAK;UAAU;QAC9C,oBAAC;SAAE,WAAU;mBACV,KAAK;UACJ;QACJ,oBAAC;SAAK,WAAU;mBAA2B,KAAK;UAAe;;QAC3D;QAVD,KAAK,KAWN,CACN;MACE;KACF;GAGN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAE9B;OACL,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmEN;;OACE;KAGN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAc;OACjD,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA0CN;;OACE;KAGN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAoB;OACvD,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA4CN;;OACE;KAGN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAqB;OACxD,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;SAuBN;;OACE;KAGN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAiC;OACpE,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,qBAAC;QAAI,WAAU;;SACb,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAW;WACzC,oBAAC;YAAK,WAAU;sBAA0B;aAAmB;WAC7D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAa;WAC3C,oBAAC;YAAK,WAAU;sBAA0B;aAAqB;WAC/D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAgB;WAC9C,oBAAC;YAAK,WAAU;sBAA0B;aAAwB;WAClE,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAgB;WAC9C,oBAAC;YAAK,WAAU;sBAA0B;aAAwB;WAClE,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAS;WACvC,oBAAC;YAAK,WAAU;sBAA0B;aAAqB;WAC/D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAc;WAC5C,oBAAC;YAAK,WAAU;sBAA0B;aAAqB;WAC/D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAY;WAC1C,oBAAC;YAAK,WAAU;sBAA0B;aAAoB;WAC9D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;SACN,qBAAC;UAAI,WAAU;;WACb,oBAAC;YAAG,WAAU;sBAAgB;aAAS;WACvC,oBAAC;YAAK,WAAU;sBAA0B;aAAqB;WAC/D,oBAAC;YAAE,WAAU;sBAAgC;aAEzC;;WACA;;SACF;;OACF;KAGN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA6B;OAChE,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA+BN;;OACE;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAwB;QAEjC,EACL,qBAAC;OAAM,WAAU;kBACf,oBAAC,qBACC,qBAAC;QAAG,WAAU;mBACZ,oBAAC;SAAG,WAAU;mBAAiB;UAAqB,EACpD,oBAAC;SAAG,WAAU;mBAAiB;UAAsB;SAClD,GACC,EACR,qBAAC;QAAM,WAAU;;SACf,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAAsC,EAC3D,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,kBAAoB;YACvB;WACF;SACL,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAAoC,EACzD,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,gBAAkB;YACrB;WACF;SACL,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAEhB,EACL,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,gBAAkB;YACrB;WACF;SACL,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAAwC,EAC7D,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,qBAAuB;YAC1B;WACF;SACL,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAAuC,EAC5D,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,uBAAyB;YAC5B;WACF;SACL,qBAAC;UAAG,WAAU;qBACZ,oBAAC;WAAG,WAAU;qBAAO;YAAqC,EAC1D,oBAAC;WAAG,WAAU;qBACZ,oBAAC,oBAAK,iBAAmB;YACtB;WACF;SACL,qBAAC,mBACC,oBAAC;UAAG,WAAU;oBAAO;WAAkC,EACvD,oBAAC;UAAG,WAAU;oBACZ,oBAAC,oBAAK,mBAAqB;WACxB,IACF;;SACC;QACF;OACJ;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,MAAK;KAAmC,WAAU;gBAAc,kCACtC,oBAAC,gBAAa,MAAM,KAAM;MACnD,EACP,oBAAC;KAAK,MAAK;KAAe,WAAU;eAAY;MAEzC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideDocsPipelinePage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideDocsPipelinePage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function GuideDocsPipelinePage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Build the docs pipeline</h1>\n <p className=\"text-muted-foreground text-lg\">\n Generate reference docs, chunk the index, and wire the docs pages the\n same way this repo does.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Generated Markdown and a chunked index manifest.</li>\n <li>Reference routes powered by the docs loader.</li>\n <li>Versioned outputs you can publish per release.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Generate contract docs</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"generate-contract-docs\"\n code={`contractspec generate`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: Markdown in <code>generated/docs</code>.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Build the docs index</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"docs-generate\"\n code={`bun docs:generate\n# versioned output\nbun docs:generate -- --version v1.0.0`}\n />\n <p className=\"text-muted-foreground text-sm\">\n This writes <code>docs-index.manifest.json</code> and chunked\n <code>docs-index.*.json</code> files in the generated docs bundle.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Wire reference routes</h2>\n <CodeBlock\n language=\"tsx\"\n filename=\"docs-reference-route\"\n code={`import { notFound } from \"next/navigation\";\nimport {\n DocsReferenceIndexPage,\n DocsReferencePage,\n getGeneratedDocById,\n listGeneratedDocs,\n} from \"@contractspec/bundle.library\";\n\nexport async function generateStaticParams() {\n const docs = await listGeneratedDocs();\n return docs.map((doc) => ({ slug: doc.id.split(\"/\") }));\n}\n\nexport default async function Page({ params }: { params: { slug?: string[] } }) {\n const slug = params.slug?.join(\"/\") ?? \"\";\n const doc = await getGeneratedDocById(slug);\n if (!doc) notFound();\n return <DocsReferencePage entry={doc.entry} content={doc.content} />;\n}`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Use the index page on <code>/docs/reference</code> to render the\n searchable list.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">Repo reference</h3>\n <p className=\"text-muted-foreground text-sm\">\n This repo wires docs under{' '}\n <code>packages/apps/web-landing/src/app/docs/reference</code>.\n </p>\n </div>\n\n <StudioPrompt\n title=\"Need hosted docs releases?\"\n body=\"Studio can publish versioned docs bundles with approvals and audit trails.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/guides/ci-contract-diff-gating\"\n className=\"btn-primary\"\n >\n Next: CI gating <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,wBAAwB;AACtC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAA4B,EAC/D,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,qDAAqD;MACzD,oBAAC,kBAAG,iDAAiD;MACrD,oBAAC,kBAAG,mDAAmD;;MACpD;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA8B;OACjE,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SACd,oBAAC,oBAAK,mBAAqB;;;SACtD;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA4B;OAC/D,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;SAGN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC/B,oBAAC,oBAAK,6BAA+B;;SACjD,oBAAC,oBAAK,sBAAwB;;;SAC5B;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA6B;OAChE,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;SAmBN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SACrB,oBAAC,oBAAK,oBAAsB;;;SAEhD;;OACA;KAEN,qBAAC;MAAI,WAAU;iBACb,oBAAC;OAAG,WAAU;iBAAwB;QAAmB,EACzD,qBAAC;OAAE,WAAU;;QAAgC;QAChB;QAC3B,oBAAC,oBAAK,qDAAuD;;;QAC3D;OACA;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KACC,MAAK;KACL,WAAU;gBACX,oBACiB,oBAAC,gBAAa,MAAM,KAAM;MACrC,EACP,oBAAC;KAAK,MAAK;KAAe,WAAU;eAAY;MAEzC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideGenerateDocsClientsSchemasPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function GuideGenerateDocsClientsSchemasPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Generate docs + client schemas</h1>\n <p className=\"text-muted-foreground text-lg\">\n Generate docs and OpenAPI output from ContractSpec operations to power\n SDKs, docs sites, and tooling.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Export docs from your specs.</li>\n <li>Emit OpenAPI 3.1 for client SDK generation.</li>\n <li>Keep outputs deterministic with CI validation.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Generate docs</h2>\n <p className=\"text-muted-foreground text-sm\">\n Use the generator to emit docs from your contracts.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"generate-docs\"\n code={`contractspec generate`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: <code>Generate X doc files in generated/docs</code>\n .\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Export OpenAPI</h2>\n <p className=\"text-muted-foreground text-sm\">\n Export an OpenAPI document from your registry module.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"openapi-export\"\n code={`contractspec openapi export --registry ./src/contracts/registry.ts --out ./generated/openapi.json`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output:{' '}\n <code>OpenAPI written to .../generated/openapi.json</code>.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Validate specs</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"validate-specs\"\n code={`contractspec validate`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: <code>Validation passed</code>.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">Example package</h3>\n <p className=\"text-muted-foreground text-sm\">\n The Integration Hub example provides a full registry of operations\n and is a good source for OpenAPI exports.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"integration-hub-example\"\n code={`contractspec examples show integration-hub\n\n# openapi export against your registry module\ncontractspec openapi export --registry ./src/contracts/registry.ts --out ./generated/openapi.json`}\n />\n </div>\n\n <StudioPrompt\n title=\"Want managed schema releases?\"\n body=\"Studio can publish OpenAPI, SDKs, and release notes automatically with approvals.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/guides/docs-generation-pipeline\"\n className=\"btn-primary\"\n >\n Next: Docs pipeline <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,sCAAsC;AACpD,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAmC,EACtE,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,iCAAiC;MACrC,oBAAC,kBAAG,gDAAgD;MACpD,oBAAC,kBAAG,mDAAmD;;MACpD;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAqB;OACxD,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B,oBAAC,oBAAK,2CAA6C;;;SAElE;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAsB;OACzD,oBAAC;QAAE,WAAU;kBAAgC;SAEzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B;SACjB,oBAAC,oBAAK,kDAAoD;;;SACxD;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAsB;OACzD,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B,oBAAC,oBAAK,sBAAwB;;;SAC7C;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAwB;SAAoB;OAC1D,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;SAIN;;OACE;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KACC,MAAK;KACL,WAAU;gBACX,wBACqB,oBAAC,gBAAa,MAAM,KAAM;MACzC,EACP,oBAAC;KAAK,MAAK;KAAe,WAAU;eAAY;MAEzC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideImportExistingCodebasesPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideImportExistingCodebasesPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport {\n ChevronRight,\n FileCode,\n Scan,\n Settings,\n AlertCircle,\n} from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nconst supportedFrameworks = [\n {\n name: 'NestJS',\n flag: 'nestjs',\n description: 'Controllers, decorators, DTOs',\n },\n {\n name: 'Express',\n flag: 'express',\n description: 'Router methods, middleware',\n },\n {\n name: 'Fastify',\n flag: 'fastify',\n description: 'Route definitions, schemas',\n },\n {\n name: 'Hono',\n flag: 'hono',\n description: 'Route handlers, validators',\n },\n {\n name: 'Elysia',\n flag: 'elysia',\n description: 'Type-safe routes, schemas',\n },\n {\n name: 'tRPC',\n flag: 'trpc',\n description: 'Procedure definitions',\n },\n {\n name: 'Next.js',\n flag: 'next-api',\n description: 'API routes (app/api, pages/api)',\n },\n];\n\nexport function GuideImportExistingCodebasesPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Import Existing Codebases</h1>\n <p className=\"text-muted-foreground text-lg\">\n Convert your existing API endpoints into ContractSpec contracts.\n Auto-detect frameworks, extract schemas, and generate spec-first\n definitions from your code.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll learn</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>\n How to import existing API endpoints as ContractSpec contracts.\n </li>\n <li>Framework-specific patterns and auto-detection.</li>\n <li>Customizing imports with scopes, dry-run, and output options.</li>\n <li>Registering imported contracts and adding handlers.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n {/* Section 1: Why Import */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Why import existing code?</h2>\n <p className=\"text-muted-foreground text-sm\">\n Instead of writing contracts from scratch, the import command\n extracts endpoint patterns from your existing codebase. This gives\n you:\n </p>\n <ul className=\"text-muted-foreground list-disc space-y-1 pl-5 text-sm\">\n <li>Instant spec coverage for existing APIs</li>\n <li>Type-safe schemas derived from your existing types</li>\n <li>A foundation to iterate and refine contracts</li>\n <li>Gradual adoption without rewriting code</li>\n </ul>\n </div>\n\n {/* Section 2: Supported Frameworks */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">Supported frameworks</h2>\n <div className=\"grid gap-3 md:grid-cols-2 lg:grid-cols-3\">\n {supportedFrameworks.map((fw) => (\n <div\n key={fw.flag}\n className=\"flex items-start gap-3 rounded-lg border border-white/10 p-4\"\n >\n <FileCode className=\"text-violet-400\" size={18} />\n <div className=\"space-y-1\">\n <h3 className=\"font-semibold\">{fw.name}</h3>\n <p className=\"text-muted-foreground text-xs\">\n {fw.description}\n </p>\n <code className=\"text-xs text-violet-400\">\n --framework {fw.flag}\n </code>\n </div>\n </div>\n ))}\n </div>\n </div>\n\n {/* Section 3: Quick Start */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Quick start</h2>\n <p className=\"text-muted-foreground text-sm\">\n Run the import command to auto-detect your framework and extract\n endpoints:\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"import-quickstart\"\n code={`# Auto-detect framework and import all endpoints\ncontractspec import ./src\n\n# Preview what would be imported (dry-run)\ncontractspec import ./src --dry-run\n\n# Force a specific framework\ncontractspec import ./src --framework nestjs`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: A summary of endpoints found, schemas extracted,\n and files generated.\n </p>\n </div>\n\n {/* Section 4: Framework Examples */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Framework-specific patterns</h2>\n <p className=\"text-muted-foreground text-sm\">\n The import command recognizes these patterns in each framework:\n </p>\n </div>\n\n {/* NestJS Example */}\n <div className=\"space-y-3\">\n <h3 className=\"flex items-center gap-2 text-xl font-semibold\">\n <Scan size={18} className=\"text-blue-400\" />\n NestJS\n </h3>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/users/users.controller.ts (before)\"\n code={`@Controller('users')\nexport class UsersController {\n @Get(':id')\n async getUser(@Param('id') id: string): Promise<UserDto> {\n return this.usersService.findOne(id);\n }\n\n @Post()\n @UseGuards(AuthGuard)\n async createUser(@Body() dto: CreateUserDto): Promise<UserDto> {\n return this.usersService.create(dto);\n }\n}`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Detected: <code>@Controller</code>, <code>@Get</code>,{' '}\n <code>@Post</code>, <code>@Body</code>, <code>@Param</code>,{' '}\n <code>@UseGuards</code> decorators.\n </p>\n </div>\n\n {/* Express Example */}\n <div className=\"space-y-3\">\n <h3 className=\"flex items-center gap-2 text-xl font-semibold\">\n <Scan size={18} className=\"text-green-400\" />\n Express\n </h3>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/routes/users.ts (before)\"\n code={`const router = express.Router();\n\nrouter.get('/users/:id', async (req, res) => {\n const user = await getUserById(req.params.id);\n res.json(user);\n});\n\nrouter.post('/users', validateBody(CreateUserSchema), async (req, res) => {\n const user = await createUser(req.body);\n res.status(201).json(user);\n});`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Detected: <code>router.get</code>, <code>router.post</code>,\n validation middleware, Zod schemas.\n </p>\n </div>\n\n {/* Next.js Example */}\n <div className=\"space-y-3\">\n <h3 className=\"flex items-center gap-2 text-xl font-semibold\">\n <Scan size={18} className=\"text-purple-400\" />\n Next.js API Routes\n </h3>\n <CodeBlock\n language=\"typescript\"\n filename=\"app/api/users/[id]/route.ts (before)\"\n code={`export async function GET(\n request: Request,\n { params }: { params: { id: string } }\n) {\n const user = await getUserById(params.id);\n return Response.json(user);\n}\n\nexport async function POST(request: Request) {\n const body = await request.json();\n const user = await createUser(body);\n return Response.json(user, { status: 201 });\n}`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Detected: <code>GET</code>, <code>POST</code> exports in{' '}\n <code>app/api/**/route.ts</code> and <code>pages/api/**/*.ts</code>.\n </p>\n </div>\n\n {/* Section 5: Generated Output */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">\n 3) Understanding generated contracts\n </h2>\n <p className=\"text-muted-foreground text-sm\">\n The import command generates ContractSpec operations with TODO\n placeholders for fields it cannot infer:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\".contractspec/generated/users.operation.ts\"\n code={`import { defineQuery, defineCommand } from \"@contractspec/lib.contracts\";\nimport { SchemaModel, ScalarTypeEnum } from \"@contractspec/lib.schema\";\n\nexport const GetUserQuery = defineQuery({\n meta: {\n key: \"users.get\",\n version: \"1.0.0\",\n description: \"TODO: Add description\",\n stability: \"draft\",\n owners: [\"TODO\"],\n tags: [\"users\"],\n },\n io: {\n input: new SchemaModel({\n name: \"GetUserInput\",\n fields: {\n id: { type: ScalarTypeEnum.String(), isOptional: false },\n },\n }),\n output: new SchemaModel({\n name: \"GetUserOutput\",\n fields: {\n // TODO: Add output fields based on your UserDto\n id: { type: ScalarTypeEnum.String(), isOptional: false },\n },\n }),\n },\n policy: { auth: \"user\" }, // Inferred from @UseGuards\n transport: {\n rest: { method: \"GET\", path: \"/users/:id\" },\n },\n});\n\nexport const CreateUserCommand = defineCommand({\n meta: {\n key: \"users.create\",\n version: \"1.0.0\",\n description: \"TODO: Add description\",\n stability: \"draft\",\n owners: [\"TODO\"],\n tags: [\"users\"],\n },\n io: {\n input: new SchemaModel({\n name: \"CreateUserInput\",\n fields: {\n // TODO: Add fields from CreateUserDto\n },\n }),\n output: new SchemaModel({\n name: \"CreateUserOutput\",\n fields: {\n id: { type: ScalarTypeEnum.String(), isOptional: false },\n },\n }),\n },\n policy: { auth: \"admin\" },\n transport: {\n rest: { method: \"POST\", path: \"/users\" },\n },\n});`}\n />\n </div>\n\n {/* Section 6: Command Options */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">4) Customizing imports</h2>\n <div className=\"flex items-center gap-2\">\n <Settings size={18} className=\"text-violet-400\" />\n <h3 className=\"text-lg font-semibold\">Available options</h3>\n </div>\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-white/10\">\n <th className=\"py-2 pr-4 text-left\">Option</th>\n <th className=\"py-2 pr-4 text-left\">Description</th>\n <th className=\"py-2 text-left\">Example</th>\n </tr>\n </thead>\n <tbody className=\"text-muted-foreground\">\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2 pr-4\">\n <code>--scope</code>\n </td>\n <td className=\"py-2 pr-4\">Limit to specific directories</td>\n <td className=\"py-2\">\n <code>--scope src/users src/auth</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2 pr-4\">\n <code>--framework</code>\n </td>\n <td className=\"py-2 pr-4\">Force a specific framework</td>\n <td className=\"py-2\">\n <code>--framework express</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2 pr-4\">\n <code>--output</code>\n </td>\n <td className=\"py-2 pr-4\">Output directory</td>\n <td className=\"py-2\">\n <code>--output ./contracts</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2 pr-4\">\n <code>--dry-run</code>\n </td>\n <td className=\"py-2 pr-4\">Preview without writing files</td>\n <td className=\"py-2\">\n <code>--dry-run</code>\n </td>\n </tr>\n <tr className=\"border-b border-white/5\">\n <td className=\"py-2 pr-4\">\n <code>--analyze</code>\n </td>\n <td className=\"py-2 pr-4\">\n Analysis only, no code generation\n </td>\n <td className=\"py-2\">\n <code>--analyze</code>\n </td>\n </tr>\n <tr>\n <td className=\"py-2 pr-4\">\n <code>--json</code>\n </td>\n <td className=\"py-2 pr-4\">Output as JSON for scripting</td>\n <td className=\"py-2\">\n <code>--json</code>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <CodeBlock\n language=\"bash\"\n filename=\"import-options\"\n code={`# Import only specific modules\ncontractspec import ./src --scope src/users src/orders\n\n# Preview with analysis\ncontractspec import ./src --dry-run --analyze\n\n# Output to custom directory\ncontractspec import ./src --output ./src/contracts/generated\n\n# Get JSON for CI/scripting\ncontractspec import ./src --json > import-result.json`}\n />\n </div>\n\n {/* Section 7: Registration */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">\n 5) Registering imported contracts\n </h2>\n <p className=\"text-muted-foreground text-sm\">\n After import, register contracts and add handlers:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/registry.ts\"\n code={`import {\n OperationSpecRegistry,\n installOp,\n} from \"@contractspec/lib.contracts/operations\";\nimport {\n GetUserQuery,\n CreateUserCommand,\n} from \"./.contractspec/generated/users.operation\";\n\nexport const registry = new OperationSpecRegistry();\n\n// Add handlers to imported operations\ninstallOp(registry, GetUserQuery, async (input) => {\n const user = await db.user.findUnique({ where: { id: input.id } });\n return user;\n});\n\ninstallOp(registry, CreateUserCommand, async (input) => {\n const user = await db.user.create({ data: input });\n return { id: user.id };\n});`}\n />\n </div>\n\n {/* Section 8: Next Steps */}\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">6) After importing</h2>\n <ol className=\"text-muted-foreground list-decimal space-y-2 pl-5 text-sm\">\n <li>\n <strong>Review generated contracts</strong> — Check the TODO\n placeholders and fill in descriptions, owners, and tags.\n </li>\n <li>\n <strong>Refine schemas</strong> — Add proper types, validation\n rules, and error definitions.\n </li>\n <li>\n <strong>Run validation</strong> —{' '}\n <code>contractspec validate</code> to ensure contracts are valid.\n </li>\n <li>\n <strong>Register and wire handlers</strong> — Connect contracts to\n your existing business logic.\n </li>\n <li>\n <strong>Iterate</strong> — The imported contracts are a starting\n point. Refine them as your spec matures.\n </li>\n </ol>\n </div>\n\n {/* Troubleshooting */}\n <div className=\"space-y-3\">\n <h2 className=\"flex items-center gap-2 text-2xl font-bold\">\n <AlertCircle size={20} className=\"text-yellow-400\" />\n Troubleshooting\n </h2>\n <div className=\"space-y-4\">\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Framework not detected</h3>\n <p className=\"text-muted-foreground text-sm\">\n Use <code>--framework <name></code> to force a specific\n framework. Check that your entry files follow standard patterns.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Missing schemas</h3>\n <p className=\"text-muted-foreground text-sm\">\n Schema inference works best with explicit types. If using{' '}\n <code>any</code> or dynamic types, you'll see TODO placeholders.\n Fill them in manually.\n </p>\n </div>\n <div className=\"card-subtle space-y-2 p-4\">\n <h3 className=\"font-semibold\">Partial imports</h3>\n <p className=\"text-muted-foreground text-sm\">\n Some endpoints may not be detected if they use unconventional\n patterns. Use <code>--analyze</code> to see what was found, then\n add missing contracts manually.\n </p>\n </div>\n </div>\n </div>\n\n <StudioPrompt\n title=\"Want automated contract evolution?\"\n body=\"Studio monitors your codebase and suggests contract updates when your API changes, keeping specs and code in sync.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/guides/spec-validation-and-typing\"\n className=\"btn-primary\"\n >\n Next: Spec validation + typing <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideNextjsOneEndpointPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideNextjsOneEndpointPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function GuideNextjsOneEndpointPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Next.js: add one endpoint</h1>\n <p className=\"text-muted-foreground text-lg\">\n Add ContractSpec to an existing Next.js App Router project by wiring a\n single operation end-to-end with validation and types.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>One OperationSpec with SchemaModel validation.</li>\n <li>A registry wiring the operation to its handler.</li>\n <li>A Next.js route handler that exposes the operation.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Install core packages</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"nextjs-install\"\n code={`bun add -D contractspec\nbun add @contractspec/lib.contracts @contractspec/lib.schema`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: <code>added 3 packages</code> and a lockfile\n update.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Define the operation spec</h2>\n <p className=\"text-muted-foreground text-sm\">\n Create <code>src/contracts/healthcheck.operation.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/healthcheck.operation.ts\"\n code={`import { defineQuery } from \"@contractspec/lib.contracts/operations\";\nimport { SchemaModel, ScalarTypeEnum } from \"@contractspec/lib.schema\";\n\nconst HealthcheckOutput = new SchemaModel({\n name: \"HealthcheckOutput\",\n fields: {\n status: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n checkedAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const HealthcheckQuery = defineQuery({\n meta: {\n key: \"healthcheck.get\",\n version: \"1.0.0\",\n description: \"Return service health status\",\n owners: [\"@platform.core\"],\n tags: [\"health\", \"observability\"],\n },\n io: {\n input: null,\n output: HealthcheckOutput,\n },\n policy: {\n auth: \"public\",\n },\n transport: {\n rest: { method: \"GET\" },\n gql: { field: \"healthcheck_get\" },\n mcp: { toolName: \"healthcheck.get.v1\" },\n },\n});`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Register the operation</h2>\n <p className=\"text-muted-foreground text-sm\">\n Create <code>src/contracts/registry.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/registry.ts\"\n code={`import {\n OperationSpecRegistry,\n installOp,\n} from \"@contractspec/lib.contracts/operations\";\nimport { HealthcheckQuery } from \"./healthcheck.operation\";\n\nexport const registry = new OperationSpecRegistry();\n\ninstallOp(registry, HealthcheckQuery, async () => ({\n status: \"ok\",\n checkedAt: new Date().toISOString(),\n}));`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">4) Add the Next.js handler</h2>\n <p className=\"text-muted-foreground text-sm\">\n Create <code>app/api/ops/[...route]/route.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"app/api/ops/[...route]/route.ts\"\n code={`import { makeNextAppHandler } from \"@contractspec/lib.contracts/server/rest-next-app\";\nimport { registry } from \"@/contracts/registry\";\n\nconst handler = makeNextAppHandler(registry, async () => ({\n actor: \"public\",\n tenantId: \"public\",\n}));\n\nexport { handler as GET, handler as POST };`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: the route responds at\n <code> /api/ops/healthcheck.get</code>.\n </p>\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">5) Validate the spec</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"nextjs-validate\"\n code={`contractspec validate src/contracts/healthcheck.operation.ts`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: <code>Validation passed</code>.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">Example package</h3>\n <p className=\"text-muted-foreground text-sm\">\n Use <code>@contractspec/example.lifecycle-dashboard</code> as a\n lightweight Next.js snippet reference.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"nextjs-example\"\n code={`# Inspect the example docs\ncontractspec examples show lifecycle-dashboard\n\n# Validate all example manifests in this repo\ncontractspec examples validate --repo-root .`}\n />\n </div>\n\n <StudioPrompt\n title=\"Need team approvals for new endpoints?\"\n body=\"Studio adds review gates, shared registries, and audit trails after you ship your first endpoint.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/guides/spec-validation-and-typing\"\n className=\"btn-primary\"\n >\n Next: Spec validation + typing <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,6BAA6B;AAC3C,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAA8B,EACjE,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,mDAAmD;MACvD,oBAAC,kBAAG,oDAAoD;MACxD,oBAAC,kBAAG,wDAAwD;;MACzD;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA6B;OAChE,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;SAEN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B,oBAAC,oBAAK,qBAAuB;;;SAE5C;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAiC;OACpE,qBAAC;QAAE,WAAU;;SAAgC;SACpC,oBAAC,oBAAK,2CAA6C;;;SACxD;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAgCN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA8B;OACjE,qBAAC;QAAE,WAAU;;SAAgC;SACpC,oBAAC,oBAAK,8BAAgC;;;SAC3C;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;SAYN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAA+B;OAClE,qBAAC;QAAE,WAAU;;SAAgC;SACpC,oBAAC,oBAAK,oCAAsC;;;SACjD;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;SASN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAE3C,oBAAC,oBAAK,8BAAgC;;;SACpC;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAyB;OAC5D,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B,oBAAC,oBAAK,sBAAwB;;;SAC7C;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAwB;SAAoB;OAC1D,qBAAC;QAAE,WAAU;;SAAgC;SACvC,oBAAC,oBAAK,8CAAgD;;;SAExD;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;SAKN;;OACE;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KACC,MAAK;KACL,WAAU;gBACX,mCACgC,oBAAC,gBAAa,MAAM,KAAM;MACpD,EACP,oBAAC;KAAK,MAAK;KAAe,WAAU;eAAY;MAEzC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuideSpecValidationTypingPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuideSpecValidationTypingPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ChevronRight } from 'lucide-react';\nimport { StudioPrompt } from '../shared/StudioPrompt';\n\nexport function GuideSpecValidationTypingPage() {\n return (\n <div className=\"space-y-8\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Spec-driven validation + typing</h1>\n <p className=\"text-muted-foreground text-lg\">\n Define a single operation with SchemaModel, generate validation, and\n keep your existing handler logic.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <h2 className=\"text-2xl font-bold\">What you'll build</h2>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>One command spec with explicit input/output models.</li>\n <li>Validation + typing without rewriting your service layer.</li>\n <li>Clear acceptance scenarios for regression safety.</li>\n </ul>\n </div>\n\n <div className=\"space-y-6\">\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">1) Define the spec</h2>\n <p className=\"text-muted-foreground text-sm\">\n Create <code>src/contracts/contact-create.operation.ts</code>:\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/contracts/contact-create.operation.ts\"\n code={`import { defineCommand } from \"@contractspec/lib.contracts/operations\";\nimport { SchemaModel, ScalarTypeEnum } from \"@contractspec/lib.schema\";\n\nconst ContactInput = new SchemaModel({\n name: \"ContactInput\",\n fields: {\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n firstName: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n lastName: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n },\n});\n\nconst ContactOutput = new SchemaModel({\n name: \"ContactOutput\",\n fields: {\n id: { type: ScalarTypeEnum.String(), isOptional: false },\n email: { type: ScalarTypeEnum.Email(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\nexport const ContactCreateCommand = defineCommand({\n meta: {\n key: \"contact.create\",\n version: \"1.0.0\",\n description: \"Create a CRM contact\",\n owners: [\"@sales\"],\n tags: [\"crm\", \"contacts\"],\n },\n io: {\n input: ContactInput,\n output: ContactOutput,\n },\n policy: {\n auth: \"user\",\n },\n acceptance: {\n scenarios: [\n {\n key: \"create-contact\",\n given: [\"User is authenticated\"],\n when: [\"ContactCreateCommand executes\"],\n then: [\"Contact is persisted\", \"Email is validated\"],\n },\n ],\n },\n});`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">2) Wire the handler</h2>\n <p className=\"text-muted-foreground text-sm\">\n Keep your existing code. Just ensure the handler returns the output\n shape defined above.\n </p>\n <CodeBlock\n language=\"typescript\"\n filename=\"src/handlers/contact-create.ts\"\n code={`import { ContactCreateCommand } from \"@/contracts/contact-create.operation\";\n \n export async function handleContactCreate(\n input: (typeof ContactCreateCommand)[\"io\"][\"input\"],\n ctx: { userId: string }\n ) {\n // Your existing persistence logic\n return {\n id: \"contact_123\",\n email: input.email,\n createdAt: new Date().toISOString(),\n };\n }`}\n />\n </div>\n\n <div className=\"space-y-3\">\n <h2 className=\"text-2xl font-bold\">3) Validate</h2>\n <CodeBlock\n language=\"bash\"\n filename=\"spec-validation\"\n code={`contractspec validate src/contracts/contact-create.operation.ts`}\n />\n <p className=\"text-muted-foreground text-sm\">\n Expected output: <code>Validation passed</code>.\n </p>\n </div>\n\n <div className=\"card-subtle space-y-3 p-6\">\n <h3 className=\"text-lg font-semibold\">Example package</h3>\n <p className=\"text-muted-foreground text-sm\">\n The CRM Pipeline example includes real specs, handlers, and\n presentations for contact + deal flows.\n </p>\n <CodeBlock\n language=\"bash\"\n filename=\"crm-example\"\n code={`# Build + validate the CRM pipeline example\ncd packages/examples/crm-pipeline\nbun install\nbun run build\nbun run validate`}\n />\n </div>\n\n <StudioPrompt\n title=\"Need shared validation policies?\"\n body=\"Studio lets teams enforce validation policies and review changes before they ship.\"\n />\n </div>\n\n <div className=\"flex items-center gap-4 pt-4\">\n <Link\n href=\"/docs/guides/generate-docs-clients-schemas\"\n className=\"btn-primary\"\n >\n Next: Generate docs + clients <ChevronRight size={16} />\n </Link>\n <Link href=\"/docs/guides\" className=\"btn-ghost\">\n Back to guides\n </Link>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAKA,SAAgB,gCAAgC;AAC9C,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAoC,EACvE,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAsB,EACzD,qBAAC;KAAG,WAAU;;MACZ,oBAAC,kBAAG,wDAAwD;MAC5D,oBAAC,kBAAG,8DAA8D;MAClE,oBAAC,kBAAG,sDAAsD;;MACvD;KACD;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAuB;OAC1D,qBAAC;QAAE,WAAU;;SAAgC;SACpC,oBAAC,oBAAK,8CAAgD;;;SAC3D;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA+CN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAwB;OAC3D,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;;;;;;;;;SAaN;;OACE;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAqB;SAAgB;OACnD,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;SACN;OACF,qBAAC;QAAE,WAAU;;SAAgC;SAC1B,oBAAC,oBAAK,sBAAwB;;;SAC7C;;OACA;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC;QAAG,WAAU;kBAAwB;SAAoB;OAC1D,oBAAC;QAAE,WAAU;kBAAgC;SAGzC;OACJ,oBAAC;QACC,UAAS;QACT,UAAS;QACT,MAAM;;;;;SAKN;;OACE;KAEN,oBAAC;MACC,OAAM;MACN,MAAK;OACL;;KACE;GAEN,qBAAC;IAAI,WAAU;eACb,qBAAC;KACC,MAAK;KACL,WAAU;gBACX,kCAC+B,oBAAC,gBAAa,MAAM,KAAM;MACnD,EACP,oBAAC;KAAK,MAAK;KAAe,WAAU;eAAY;MAEzC;KACH;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GuidesIndexPage.js","names":[],"sources":["../../../../src/components/docs/guides/GuidesIndexPage.tsx"],"sourcesContent":["import { CodeBlock } from '@contractspec/lib.design-system';\nimport Link from '@contractspec/lib.ui-link';\nimport { ArrowRight, BookOpen, CheckCircle2 } from 'lucide-react';\n\nconst guides = [\n {\n title: 'Contract types overview',\n description:\n 'Learn about the different contract types and when to use each one.',\n href: '/docs/guides/contract-types',\n time: '15 min',\n },\n {\n title: 'Next.js: one endpoint',\n description:\n 'Add ContractSpec to an existing Next.js app by wiring one operation end-to-end.',\n href: '/docs/guides/nextjs-one-endpoint',\n time: '25 min',\n },\n {\n title: 'Import existing codebases',\n description:\n 'Convert your existing API endpoints into ContractSpec contracts for fast onboarding.',\n href: '/docs/guides/import-existing-codebases',\n time: '20 min',\n },\n {\n title: 'Spec-driven validation + typing',\n description:\n 'Define operations with SchemaModel, generate types, and enforce validation without rewrites.',\n href: '/docs/guides/spec-validation-and-typing',\n time: '20 min',\n },\n {\n title: 'Generate docs + client schemas',\n description:\n 'Export docs and OpenAPI for client SDKs and tooling from your specs.',\n href: '/docs/guides/generate-docs-clients-schemas',\n time: '20 min',\n },\n {\n title: 'Docs pipeline',\n description:\n 'Wire generated docs into a reference site with a chunked index.',\n href: '/docs/guides/docs-generation-pipeline',\n time: '20 min',\n },\n {\n title: 'CI gating with deterministic diffs',\n description:\n 'Add ContractSpec CI checks to gate breaking changes and drift.',\n href: '/docs/guides/ci-contract-diff-gating',\n time: '15 min',\n },\n];\n\nexport function GuidesIndexPage() {\n return (\n <div className=\"space-y-10\">\n <div className=\"space-y-3\">\n <h1 className=\"text-4xl font-bold\">Guides</h1>\n <p className=\"text-muted-foreground text-lg\">\n Hands-on guides with commands, expected output, and CI-verified\n example packages.\n </p>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n {guides.map((guide) => (\n <Link\n key={guide.href}\n href={guide.href}\n className=\"card-subtle group space-y-3 p-6 transition-colors hover:border-violet-500/50\"\n >\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-xl font-semibold transition-colors group-hover:text-violet-400\">\n {guide.title}\n </h2>\n <ArrowRight className=\"text-violet-400\" size={18} />\n </div>\n <p className=\"text-muted-foreground text-sm\">{guide.description}</p>\n <div className=\"text-muted-foreground flex items-center gap-2 text-xs\">\n <CheckCircle2 size={14} />\n <span>Target time: {guide.time}</span>\n </div>\n </Link>\n ))}\n </div>\n\n <div className=\"card-subtle space-y-4 p-6\">\n <div className=\"flex items-center gap-2 text-sm font-semibold tracking-[0.2em] text-violet-400 uppercase\">\n <BookOpen size={16} />\n How to use the guides\n </div>\n <ul className=\"text-muted-foreground space-y-2 text-sm\">\n <li>Run each guide in a fresh branch or sandbox workspace.</li>\n <li>Use the linked example package to validate end-to-end.</li>\n <li>Keep the commands as written to match CI expectations.</li>\n </ul>\n <CodeBlock\n language=\"bash\"\n filename=\"guides-quickstart\"\n code={`# list all examples\ncontractspec examples list\n\n# validate example packages in this repo\ncontractspec examples validate --repo-root .`}\n />\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAIA,MAAM,SAAS;CACb;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACD;EACE,OAAO;EACP,aACE;EACF,MAAM;EACN,MAAM;EACP;CACF;AAED,SAAgB,kBAAkB;AAChC,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAG,WAAU;eAAqB;MAAW,EAC9C,oBAAC;KAAE,WAAU;eAAgC;MAGzC;KACA;GAEN,oBAAC;IAAI,WAAU;cACZ,OAAO,KAAK,UACX,qBAAC;KAEC,MAAM,MAAM;KACZ,WAAU;;MAEV,qBAAC;OAAI,WAAU;kBACb,oBAAC;QAAG,WAAU;kBACX,MAAM;SACJ,EACL,oBAAC;QAAW,WAAU;QAAkB,MAAM;SAAM;QAChD;MACN,oBAAC;OAAE,WAAU;iBAAiC,MAAM;QAAgB;MACpE,qBAAC;OAAI,WAAU;kBACb,oBAAC,gBAAa,MAAM,KAAM,EAC1B,qBAAC,qBAAK,iBAAc,MAAM,QAAY;QAClC;;OAdD,MAAM,KAeN,CACP;KACE;GAEN,qBAAC;IAAI,WAAU;;KACb,qBAAC;MAAI,WAAU;iBACb,oBAAC,YAAS,MAAM,KAAM;OAElB;KACN,qBAAC;MAAG,WAAU;;OACZ,oBAAC,kBAAG,2DAA2D;OAC/D,oBAAC,kBAAG,2DAA2D;OAC/D,oBAAC,kBAAG,2DAA2D;;OAC5D;KACL,oBAAC;MACC,UAAS;MACT,UAAS;MACT,MAAM;;;;;OAKN;;KACE;;GACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"guides.docblocks.js","names":[],"sources":["../../../../src/components/docs/guides/guides.docblocks.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst guideDocBlocks: DocBlock[] = [\n {\n id: 'docs.guides.index',\n title: 'Guides',\n summary: 'Hands-on guides for adopting ContractSpec in real workflows.',\n kind: 'goal',\n visibility: 'public',\n route: '/docs/guides',\n tags: ['guides', 'adoption'],\n body: `# Guides\n\nHands-on, runnable guides that map to real adoption scenarios. Each guide includes commands, expected output, and a CI-verified example package.`,\n },\n {\n id: 'docs.guides.nextjs-one-endpoint',\n title: 'Next.js one endpoint',\n summary: 'Add ContractSpec to an existing Next.js app with one endpoint.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/guides/nextjs-one-endpoint',\n tags: ['guides', 'nextjs', 'operations'],\n body: `# Add ContractSpec to a Next.js app (one endpoint)\n\nCreate a single OperationSpec, register it, and expose it through a Next.js App Router handler.`,\n },\n {\n id: 'docs.guides.spec-validation-typing',\n title: 'Spec validation and typing',\n summary: 'Define an operation spec with validation and types, no rewrites.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/guides/spec-validation-and-typing',\n tags: ['guides', 'validation', 'typing'],\n body: `# Spec-driven validation and typing\n\nDefine command/query specs that enforce validation and generate types without rewriting your app.`,\n },\n {\n id: 'docs.guides.docs-clients-schemas',\n title: 'Generate docs, clients, schemas',\n summary: 'Generate docs and OpenAPI for client SDKs from specs.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/guides/generate-docs-clients-schemas',\n tags: ['guides', 'docs', 'openapi'],\n body: `# Generate docs and client schemas\n\nUse ContractSpec to generate documentation and OpenAPI exports for client SDKs.\n\n## Generate reference docs\n\n1. Regenerate contract artifacts:\n\n\\`\\`\\`bash\nbun contractspec generate\n\\`\\`\\`\n\n2. Build docs output (index + markdown):\n\n\\`\\`\\`bash\nbun docs:generate\n# or versioned output\nbun docs:generate -- --version v1.0.0\n\\`\\`\\``,\n },\n {\n id: 'docs.guides.docs-generation-pipeline',\n title: 'Docs generation pipeline',\n summary: 'Wire generated docs into a reference site with chunked indexes.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/guides/docs-generation-pipeline',\n tags: ['guides', 'docs', 'pipeline'],\n body: `# Build the docs pipeline\n\nUse ContractSpec to generate reference markdown, build a chunked index, and wire it into your docs routes.\n\n## Generate contract docs\n\n\\`\\`\\`bash\ncontractspec generate\n\\`\\`\\`\n\n## Build the docs index\n\n\\`\\`\\`bash\nbun docs:generate\n# versioned output\nbun docs:generate -- --version v1.0.0\n\\`\\`\\`\n\n## Reference wiring\n\nUse the generated manifest and chunks under \\`docs-index.manifest.json\\` and \\`docs-index.*.json\\` to load the index at runtime.`,\n },\n {\n id: 'docs.guides.ci-contract-diff-gating',\n title: 'CI gating for contract diffs',\n summary: 'Gate changes with deterministic diffs and CI checks.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/guides/ci-contract-diff-gating',\n tags: ['guides', 'ci', 'diff'],\n body: `# CI gating with deterministic diffs\n\nRun ContractSpec CI checks to detect drift and breaking changes before merge.`,\n },\n];\n\nregisterDocBlocks(guideDocBlocks);\n"],"mappings":";;;AAgHA,kBA7GmC;CACjC;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,UAAU,WAAW;EAC5B,MAAM;;;EAGP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAU;GAAU;GAAa;EACxC,MAAM;;;EAGP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAU;GAAc;GAAS;EACxC,MAAM;;;EAGP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAU;GAAQ;GAAU;EACnC,MAAM;;;;;;;;;;;;;;;;;;;EAmBP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAU;GAAQ;GAAW;EACpC,MAAM;;;;;;;;;;;;;;;;;;;;;EAqBP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAU;GAAM;GAAO;EAC9B,MAAM;;;EAGP;CACF,CAEgC"}
|