@contractspec/bundle.library 3.8.10 → 3.8.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +606 -594
- package/CHANGELOG.md +59 -0
- package/dist/application/context-storage/index.js +1 -28
- package/dist/application/index.js +13 -2133
- package/dist/application/mcp/cliMcp.js +4 -452
- package/dist/application/mcp/common.js +1 -193
- package/dist/application/mcp/contractsMcp.js +2 -549
- package/dist/application/mcp/contractsMcpResources.js +2 -123
- package/dist/application/mcp/contractsMcpTools.js +1 -199
- package/dist/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/application/mcp/docsMcp.data.js +1 -147
- package/dist/application/mcp/docsMcp.js +6 -1039
- package/dist/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/application/mcp/docsMcp.reference.js +3 -235
- package/dist/application/mcp/docsMcp.resources.js +3 -519
- package/dist/application/mcp/docsMcp.tools.js +3 -518
- package/dist/application/mcp/index.js +13 -2106
- package/dist/application/mcp/internalMcp.js +2 -410
- package/dist/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/application/mcp/providerRankingMcp.js +1 -530
- package/dist/bundles/LibraryBundle.js +1 -138
- package/dist/bundles/index.js +1 -138
- package/dist/components/docs/DocsIndexPage.js +2 -912
- package/dist/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/components/docs/advanced/index.js +10 -1055
- package/dist/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/components/docs/architecture/index.js +20 -1340
- package/dist/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/components/docs/comparison/index.js +1 -1510
- package/dist/components/docs/docsManifest.js +1 -611
- package/dist/components/docs/docsManifest.test.d.ts +1 -0
- package/dist/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/components/docs/ecosystem/index.js +23 -569
- package/dist/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/components/docs/examples/index.js +4 -330
- package/dist/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/components/docs/generated/index.js +1 -74
- package/dist/components/docs/generated/loader.js +1 -74
- package/dist/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/components/docs/getting-started/index.js +18 -1869
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/components/docs/guides/GuideConnectInRepoPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideConnectInRepoPage.js +44 -0
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.d.ts +1 -0
- package/dist/components/docs/guides/GuideFirstModuleBundlePage.js +76 -0
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.d.ts +1 -0
- package/dist/components/docs/guides/GuideHostBuilderWorkbenchPage.js +70 -0
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/components/docs/guides/index.d.ts +3 -0
- package/dist/components/docs/guides/index.js +213 -2428
- package/dist/components/docs/index.js +542 -24310
- package/dist/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/components/docs/integrations/index.js +52 -3100
- package/dist/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/components/docs/intent/index.js +15 -1135
- package/dist/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/components/docs/knowledge/index.js +21 -1730
- package/dist/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/components/docs/libraries/index.js +54 -4147
- package/dist/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/components/docs/ops/index.js +3 -202
- package/dist/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/components/docs/ops/ops.docs.js +10 -302
- package/dist/components/docs/product/product.docblocks.js +5 -72
- package/dist/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/components/docs/reference/index.js +4 -470
- package/dist/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/components/docs/safety/index.js +7 -1480
- package/dist/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsBuilderControlPlanePage.js +34 -0
- package/dist/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/components/docs/specs/SpecsConnectPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsConnectPage.js +8 -0
- package/dist/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/components/docs/specs/SpecsModuleBundlesPage.d.ts +1 -0
- package/dist/components/docs/specs/SpecsModuleBundlesPage.js +67 -0
- package/dist/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/components/docs/specs/index.d.ts +3 -0
- package/dist/components/docs/specs/index.js +109 -1715
- package/dist/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/components/docs/studio/index.js +1 -282
- package/dist/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/components/integrations/index.js +2 -600
- package/dist/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/components/legal/TermsTemplate.js +1 -941
- package/dist/components/legal/index.js +1 -1963
- package/dist/components/shared/FeatureGateNotice.js +1 -38
- package/dist/components/shared/index.js +1 -38
- package/dist/components/shell/WorkspaceHeader.js +1 -100
- package/dist/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/components/shell/index.js +1 -287
- package/dist/components/templates/engine/index.js +1 -39
- package/dist/components/templates/index.js +11 -965
- package/dist/components/templates/messaging/ConversationList.js +2 -83
- package/dist/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/components/templates/messaging/MessageThread.js +3 -83
- package/dist/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/components/templates/messaging/index.js +5 -269
- package/dist/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/components/templates/recipes/RecipeList.js +3 -245
- package/dist/components/templates/recipes/index.js +3 -248
- package/dist/components/templates/todos/FilterBar.js +1 -107
- package/dist/components/templates/todos/TaskForm.js +2 -158
- package/dist/components/templates/todos/TaskItem.js +1 -77
- package/dist/components/templates/todos/TaskList.js +5 -449
- package/dist/components/templates/todos/index.js +5 -452
- package/dist/config/contractspec-blueprint.js +1 -123
- package/dist/config/contractspec-branding.js +1 -44
- package/dist/config/contractspec-routes.js +1 -24
- package/dist/config/index.js +1 -126
- package/dist/features/contracts-registry.js +1 -178
- package/dist/features/docs/docs.contracts.js +1 -17
- package/dist/features/docs/index.js +1 -17
- package/dist/features/docs.feature.js +1 -33
- package/dist/features/index.js +1 -315
- package/dist/features/mcp.feature.js +1 -30
- package/dist/features/presentations.feature.js +1 -33
- package/dist/features/registry.js +1 -116
- package/dist/index.js +556 -28593
- package/dist/infrastructure/elysia/index.js +1 -35
- package/dist/infrastructure/elysia/logger.js +1 -35
- package/dist/infrastructure/index.js +1 -35
- package/dist/libs/email/client.js +1 -114
- package/dist/libs/email/contact.js +12 -165
- package/dist/libs/email/newsletter.js +6 -167
- package/dist/libs/email/types.js +0 -2
- package/dist/libs/email/utils.js +2 -8
- package/dist/libs/email/waitlist-application.js +28 -209
- package/dist/libs/email/waitlist.js +6 -167
- package/dist/libs/email.js +46 -363
- package/dist/libs/posthog/client.js +1 -63
- package/dist/libs/posthog/native.js +1 -23
- package/dist/libs/posthog/server.js +1 -13
- package/dist/libs/pricing-examples.js +1 -18
- package/dist/node/application/context-storage/index.js +1 -28
- package/dist/node/application/index.js +13 -2133
- package/dist/node/application/mcp/cliMcp.js +4 -452
- package/dist/node/application/mcp/common.js +1 -193
- package/dist/node/application/mcp/contractsMcp.js +2 -549
- package/dist/node/application/mcp/contractsMcpResources.js +2 -123
- package/dist/node/application/mcp/contractsMcpTools.js +1 -199
- package/dist/node/application/mcp/docsMcp.catalog.js +3 -381
- package/dist/node/application/mcp/docsMcp.data.js +1 -147
- package/dist/node/application/mcp/docsMcp.js +6 -1039
- package/dist/node/application/mcp/docsMcp.prompts.js +6 -521
- package/dist/node/application/mcp/docsMcp.reference.js +3 -235
- package/dist/node/application/mcp/docsMcp.resources.js +3 -519
- package/dist/node/application/mcp/docsMcp.tools.js +3 -518
- package/dist/node/application/mcp/index.js +13 -2106
- package/dist/node/application/mcp/internalMcp.js +2 -410
- package/dist/node/application/mcp/normalizeMcpRequest.js +1 -21
- package/dist/node/application/mcp/providerRankingMcp.js +1 -530
- package/dist/node/bundles/LibraryBundle.js +1 -138
- package/dist/node/bundles/index.js +1 -138
- package/dist/node/components/docs/DocsIndexPage.js +2 -912
- package/dist/node/components/docs/advanced/AdvancedMCPPage.js +4 -271
- package/dist/node/components/docs/advanced/AdvancedOverlayEditorPage.js +1 -107
- package/dist/node/components/docs/advanced/AdvancedRenderersPage.js +2 -118
- package/dist/node/components/docs/advanced/AdvancedSpecExperimentsPage.js +4 -92
- package/dist/node/components/docs/advanced/AdvancedTelemetryPage.js +2 -373
- package/dist/node/components/docs/advanced/AdvancedWorkflowMonitoringPage.js +2 -99
- package/dist/node/components/docs/advanced/index.js +10 -1055
- package/dist/node/components/docs/architecture/ArchitectureAppConfigPage.js +6 -243
- package/dist/node/components/docs/architecture/ArchitectureControlPlanePage.js +3 -160
- package/dist/node/components/docs/architecture/ArchitectureIntegrationBindingPage.js +7 -259
- package/dist/node/components/docs/architecture/ArchitectureKnowledgeBindingPage.js +6 -374
- package/dist/node/components/docs/architecture/ArchitectureMultiTenancyPage.js +2 -166
- package/dist/node/components/docs/architecture/ArchitectureOverviewPage.js +1 -143
- package/dist/node/components/docs/architecture/index.js +20 -1340
- package/dist/node/components/docs/comparison/ComparisonAutomationPlatformsPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonEnterprisePlatformsPage.js +1 -230
- package/dist/node/components/docs/comparison/ComparisonInternalToolBuildersPage.js +1 -245
- package/dist/node/components/docs/comparison/ComparisonOverviewPage.js +1 -202
- package/dist/node/components/docs/comparison/ComparisonWindmillPage.js +1 -254
- package/dist/node/components/docs/comparison/ComparisonWorkflowEnginesPage.js +1 -339
- package/dist/node/components/docs/comparison/index.js +1 -1510
- package/dist/node/components/docs/docsManifest.js +1 -611
- package/dist/node/components/docs/ecosystem/IntegrationsPage.js +2 -103
- package/dist/node/components/docs/ecosystem/PluginsPage.js +13 -179
- package/dist/node/components/docs/ecosystem/RegistryPage.js +7 -100
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +3 -141
- package/dist/node/components/docs/ecosystem/ecosystem.docblocks.js +2 -48
- package/dist/node/components/docs/ecosystem/index.js +23 -569
- package/dist/node/components/docs/examples/DocsExamplesPage.js +4 -124
- package/dist/node/components/docs/examples/ExampleShowcasePage.js +4 -244
- package/dist/node/components/docs/examples/exampleShowcaseData.js +4 -39
- package/dist/node/components/docs/examples/index.js +4 -330
- package/dist/node/components/docs/generated/docs-index.generated.js +1 -5
- package/dist/node/components/docs/generated/index.js +1 -74
- package/dist/node/components/docs/generated/loader.js +1 -74
- package/dist/node/components/docs/getting-started/CLIPage.js +4 -271
- package/dist/node/components/docs/getting-started/CompatibilityPage.js +1 -173
- package/dist/node/components/docs/getting-started/DataViewTutorialPage.js +4 -134
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +1 -194
- package/dist/node/components/docs/getting-started/HelloWorldPage.js +5 -183
- package/dist/node/components/docs/getting-started/InstallationPage.js +3 -154
- package/dist/node/components/docs/getting-started/StartHerePage.js +2 -129
- package/dist/node/components/docs/getting-started/TroubleshootingPage.js +2 -168
- package/dist/node/components/docs/getting-started/VSCodeExtensionPage.js +1 -432
- package/dist/node/components/docs/getting-started/getting-started.docblocks.js +4 -41
- package/dist/node/components/docs/getting-started/index.js +18 -1869
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +2 -196
- package/dist/node/components/docs/guides/GuideConnectInRepoPage.js +43 -0
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -541
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +3 -207
- package/dist/node/components/docs/guides/GuideFirstModuleBundlePage.js +75 -0
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +2 -209
- package/dist/node/components/docs/guides/GuideHostBuilderWorkbenchPage.js +69 -0
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +8 -754
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -268
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +4 -196
- package/dist/node/components/docs/guides/GuidesIndexPage.js +2 -169
- package/dist/node/components/docs/guides/guides.docblocks.js +11 -75
- package/dist/node/components/docs/guides/index.js +213 -2428
- package/dist/node/components/docs/index.js +542 -24310
- package/dist/node/components/docs/integrations/IntegrationsCircuitBreakersPage.js +2 -42
- package/dist/node/components/docs/integrations/IntegrationsElevenLabsPage.js +3 -105
- package/dist/node/components/docs/integrations/IntegrationsGithubPage.js +3 -142
- package/dist/node/components/docs/integrations/IntegrationsGmailPage.js +3 -109
- package/dist/node/components/docs/integrations/IntegrationsGoogleCalendarPage.js +3 -79
- package/dist/node/components/docs/integrations/IntegrationsHealthRoutingPage.js +3 -146
- package/dist/node/components/docs/integrations/IntegrationsMistralPage.js +5 -150
- package/dist/node/components/docs/integrations/IntegrationsOpenAIPage.js +5 -140
- package/dist/node/components/docs/integrations/IntegrationsOverviewPage.js +1 -160
- package/dist/node/components/docs/integrations/IntegrationsPostmarkPage.js +4 -218
- package/dist/node/components/docs/integrations/IntegrationsPowensPage.js +4 -300
- package/dist/node/components/docs/integrations/IntegrationsQdrantPage.js +5 -111
- package/dist/node/components/docs/integrations/IntegrationsResendPage.js +3 -102
- package/dist/node/components/docs/integrations/IntegrationsS3Page.js +4 -124
- package/dist/node/components/docs/integrations/IntegrationsSlackPage.js +3 -144
- package/dist/node/components/docs/integrations/IntegrationsSpecModelPage.js +7 -290
- package/dist/node/components/docs/integrations/IntegrationsStripePage.js +6 -327
- package/dist/node/components/docs/integrations/IntegrationsTwilioPage.js +3 -128
- package/dist/node/components/docs/integrations/IntegrationsWhatsappMetaPage.js +2 -146
- package/dist/node/components/docs/integrations/IntegrationsWhatsappTwilioPage.js +2 -156
- package/dist/node/components/docs/integrations/index.js +52 -3100
- package/dist/node/components/docs/intent/ContractFirstApiPage.js +2 -126
- package/dist/node/components/docs/intent/DeterministicCodegenPage.js +2 -148
- package/dist/node/components/docs/intent/GenerateClientFromSchemaPage.js +7 -207
- package/dist/node/components/docs/intent/OpenapiAlternativePage.js +3 -201
- package/dist/node/components/docs/intent/SchemaValidationTypescriptPage.js +4 -144
- package/dist/node/components/docs/intent/SpecDrivenDevelopmentPage.js +2 -126
- package/dist/node/components/docs/intent/index.js +15 -1135
- package/dist/node/components/docs/intent/intent-pages.docblocks.js +1 -201
- package/dist/node/components/docs/knowledge/KnowledgeCategoriesPage.js +6 -750
- package/dist/node/components/docs/knowledge/KnowledgeExamplesPage.js +4 -175
- package/dist/node/components/docs/knowledge/KnowledgeOverviewPage.js +1 -116
- package/dist/node/components/docs/knowledge/KnowledgeSourcesPage.js +8 -391
- package/dist/node/components/docs/knowledge/KnowledgeSpacesPage.js +6 -302
- package/dist/node/components/docs/knowledge/index.js +21 -1730
- package/dist/node/components/docs/libraries/LibrariesAccessibilityPage.js +3 -198
- package/dist/node/components/docs/libraries/LibrariesAiAgentPage.js +3 -141
- package/dist/node/components/docs/libraries/LibrariesAnalyticsPage.js +4 -80
- package/dist/node/components/docs/libraries/LibrariesContentGenPage.js +2 -100
- package/dist/node/components/docs/libraries/LibrariesContractsPage.js +2 -284
- package/dist/node/components/docs/libraries/LibrariesCostTrackingPage.js +3 -112
- package/dist/node/components/docs/libraries/LibrariesDataBackendPage.js +2 -166
- package/dist/node/components/docs/libraries/LibrariesDataViewsPage.js +3 -186
- package/dist/node/components/docs/libraries/LibrariesDesignSystemPage.js +4 -279
- package/dist/node/components/docs/libraries/LibrariesEvolutionPage.js +4 -127
- package/dist/node/components/docs/libraries/LibrariesGraphQLPage.js +2 -173
- package/dist/node/components/docs/libraries/LibrariesGrowthPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesMultiTenancyPage.js +3 -108
- package/dist/node/components/docs/libraries/LibrariesObservabilityPage.js +5 -130
- package/dist/node/components/docs/libraries/LibrariesOverlayEnginePage.js +4 -110
- package/dist/node/components/docs/libraries/LibrariesOverviewPage.js +1 -170
- package/dist/node/components/docs/libraries/LibrariesPersonalizationPage.js +4 -114
- package/dist/node/components/docs/libraries/LibrariesProgressiveDeliveryPage.js +3 -132
- package/dist/node/components/docs/libraries/LibrariesResiliencePage.js +4 -120
- package/dist/node/components/docs/libraries/LibrariesRuntimePage.js +2 -200
- package/dist/node/components/docs/libraries/LibrariesSLOPage.js +3 -116
- package/dist/node/components/docs/libraries/LibrariesSchemaPage.js +3 -273
- package/dist/node/components/docs/libraries/LibrariesSupportBotPage.js +3 -134
- package/dist/node/components/docs/libraries/LibrariesTestingPage.js +3 -133
- package/dist/node/components/docs/libraries/LibrariesUIKitPage.js +2 -230
- package/dist/node/components/docs/libraries/LibrariesWorkflowComposerPage.js +3 -88
- package/dist/node/components/docs/libraries/LibrariesWorkflowsPage.js +2 -181
- package/dist/node/components/docs/libraries/index.js +54 -4147
- package/dist/node/components/docs/manifesto/ManifestoPage.js +1 -86
- package/dist/node/components/docs/ops/AutoEvolutionOpsPage.js +2 -132
- package/dist/node/components/docs/ops/DistributedTracingOpsPage.js +2 -71
- package/dist/node/components/docs/ops/index.js +3 -202
- package/dist/node/components/docs/ops/ops-lifecycle.docblocks.js +3 -38
- package/dist/node/components/docs/ops/ops-runbooks-a.docblocks.js +3 -94
- package/dist/node/components/docs/ops/ops-runbooks-b.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-slo-tenant.docblocks.js +3 -76
- package/dist/node/components/docs/ops/ops-top.docs.js +2 -17
- package/dist/node/components/docs/ops/ops.docs.js +10 -302
- package/dist/node/components/docs/product/product.docblocks.js +5 -72
- package/dist/node/components/docs/reference/DocsMarkdownContent.js +2 -196
- package/dist/node/components/docs/reference/DocsReferenceContent.js +3 -256
- package/dist/node/components/docs/reference/DocsReferenceIndexClient.js +2 -127
- package/dist/node/components/docs/reference/DocsReferenceIndexPage.js +2 -206
- package/dist/node/components/docs/reference/DocsReferencePage.js +3 -265
- package/dist/node/components/docs/reference/docsMarkdownParser.js +2 -92
- package/dist/node/components/docs/reference/index.js +4 -470
- package/dist/node/components/docs/safety/SafetyAuditingPage.js +2 -350
- package/dist/node/components/docs/safety/SafetyMigrationsPage.js +2 -359
- package/dist/node/components/docs/safety/SafetyOverviewPage.js +1 -101
- package/dist/node/components/docs/safety/SafetyPDPPage.js +2 -301
- package/dist/node/components/docs/safety/SafetySecurityTrustPage.js +1 -206
- package/dist/node/components/docs/safety/SafetySigningPage.js +3 -90
- package/dist/node/components/docs/safety/SafetyTenantIsolationPage.js +2 -79
- package/dist/node/components/docs/safety/index.js +7 -1480
- package/dist/node/components/docs/shared/StudioPrompt.js +1 -31
- package/dist/node/components/docs/specs/SpecsBuilderControlPlanePage.js +33 -0
- package/dist/node/components/docs/specs/SpecsCapabilitiesPage.js +2 -158
- package/dist/node/components/docs/specs/SpecsConnectPage.js +7 -0
- package/dist/node/components/docs/specs/SpecsDataViewsPage.js +2 -260
- package/dist/node/components/docs/specs/SpecsModuleBundlesPage.js +66 -0
- package/dist/node/components/docs/specs/SpecsOverlaysPage.js +2 -372
- package/dist/node/components/docs/specs/SpecsOverviewPage.js +1 -186
- package/dist/node/components/docs/specs/SpecsPolicyPage.js +3 -420
- package/dist/node/components/docs/specs/SpecsWorkflowsPage.js +2 -325
- package/dist/node/components/docs/specs/index.js +109 -1715
- package/dist/node/components/docs/studio/StudioBYOKPage.js +1 -26
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +1 -26
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +1 -26
- package/dist/node/components/docs/studio/StudioOverviewPage.js +1 -157
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +1 -26
- package/dist/node/components/docs/studio/index.js +1 -282
- package/dist/node/components/docs/tech/contracts/tech-docs.docblocks.js +2 -19
- package/dist/node/components/integrations/index.js +2 -600
- package/dist/node/components/integrations/molecules/IntegrationCard.js +1 -100
- package/dist/node/components/integrations/organisms/IntegrationMarketplace.js +1 -214
- package/dist/node/components/integrations/organisms/IntegrationSettings.js +2 -284
- package/dist/node/components/integrations/organisms/KnowledgeSourceList.js +1 -103
- package/dist/node/components/legal/PrivacyTemplate.js +1 -1025
- package/dist/node/components/legal/TermsTemplate.js +1 -941
- package/dist/node/components/legal/index.js +1 -1963
- package/dist/node/components/shared/FeatureGateNotice.js +1 -38
- package/dist/node/components/shared/index.js +1 -38
- package/dist/node/components/shell/WorkspaceHeader.js +1 -100
- package/dist/node/components/shell/WorkspaceProjectShellLayout.js +1 -222
- package/dist/node/components/shell/WorkspaceShellRenderer.js +1 -228
- package/dist/node/components/shell/WorkspaceSidebar.js +1 -68
- package/dist/node/components/shell/index.js +1 -287
- package/dist/node/components/templates/engine/index.js +1 -39
- package/dist/node/components/templates/index.js +11 -965
- package/dist/node/components/templates/messaging/ConversationList.js +2 -83
- package/dist/node/components/templates/messaging/MessageComposer.js +4 -150
- package/dist/node/components/templates/messaging/MessageThread.js +3 -83
- package/dist/node/components/templates/messaging/MessagingWorkspace.js +5 -265
- package/dist/node/components/templates/messaging/index.js +5 -269
- package/dist/node/components/templates/recipes/LanguageSwitcher.js +1 -16
- package/dist/node/components/templates/recipes/RecipeCard.js +1 -80
- package/dist/node/components/templates/recipes/RecipeDetail.js +1 -74
- package/dist/node/components/templates/recipes/RecipeList.js +3 -245
- package/dist/node/components/templates/recipes/index.js +3 -248
- package/dist/node/components/templates/todos/FilterBar.js +1 -107
- package/dist/node/components/templates/todos/TaskForm.js +2 -158
- package/dist/node/components/templates/todos/TaskItem.js +1 -77
- package/dist/node/components/templates/todos/TaskList.js +5 -449
- package/dist/node/components/templates/todos/index.js +5 -452
- package/dist/node/config/contractspec-blueprint.js +1 -123
- package/dist/node/config/contractspec-branding.js +1 -44
- package/dist/node/config/contractspec-routes.js +1 -24
- package/dist/node/config/index.js +1 -126
- package/dist/node/features/contracts-registry.js +1 -178
- package/dist/node/features/docs/docs.contracts.js +1 -17
- package/dist/node/features/docs/index.js +1 -17
- package/dist/node/features/docs.feature.js +1 -33
- package/dist/node/features/index.js +1 -315
- package/dist/node/features/mcp.feature.js +1 -30
- package/dist/node/features/presentations.feature.js +1 -33
- package/dist/node/features/registry.js +1 -116
- package/dist/node/index.js +556 -28593
- package/dist/node/infrastructure/elysia/index.js +1 -35
- package/dist/node/infrastructure/elysia/logger.js +1 -35
- package/dist/node/infrastructure/index.js +1 -35
- package/dist/node/libs/email/client.js +1 -114
- package/dist/node/libs/email/contact.js +12 -165
- package/dist/node/libs/email/newsletter.js +6 -167
- package/dist/node/libs/email/types.js +0 -2
- package/dist/node/libs/email/utils.js +2 -8
- package/dist/node/libs/email/waitlist-application.js +28 -209
- package/dist/node/libs/email/waitlist.js +6 -167
- package/dist/node/libs/email.js +46 -363
- package/dist/node/libs/posthog/client.js +1 -63
- package/dist/node/libs/posthog/native.js +1 -23
- package/dist/node/libs/posthog/server.js +1 -13
- package/dist/node/libs/pricing-examples.js +1 -18
- package/dist/node/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/node/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/node/presentation/features/atoms/index.js +1 -97
- package/dist/node/presentation/features/hooks/index.js +1 -397
- package/dist/node/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/node/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/node/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/node/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/node/presentation/features/index.js +1 -3063
- package/dist/node/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/node/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/node/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/node/presentation/features/molecules/index.js +1 -505
- package/dist/node/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/node/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/node/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/node/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/node/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/node/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/node/presentation/features/organisms/index.js +1 -1359
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/node/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/node/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/node/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/dist/presentation/features/atoms/FeatureIcon/FeatureIcon.js +1 -97
- package/dist/presentation/features/atoms/FeatureIcon/index.js +1 -97
- package/dist/presentation/features/atoms/index.js +1 -97
- package/dist/presentation/features/hooks/index.js +1 -397
- package/dist/presentation/features/hooks/useContractsRegistry.js +1 -289
- package/dist/presentation/features/hooks/useFeatureFilters.js +1 -75
- package/dist/presentation/features/hooks/useFeatureRegistry.js +1 -147
- package/dist/presentation/features/hooks/useRelatedDocs.js +1 -28
- package/dist/presentation/features/index.js +1 -3063
- package/dist/presentation/features/molecules/FeatureCard/FeatureCard.js +1 -366
- package/dist/presentation/features/molecules/FeatureCard/index.js +1 -366
- package/dist/presentation/features/molecules/FeatureCategoryHeader/FeatureCategoryHeader.js +1 -50
- package/dist/presentation/features/molecules/FeatureCategoryHeader/index.js +1 -50
- package/dist/presentation/features/molecules/FeatureFilters/FeatureFilters.js +1 -92
- package/dist/presentation/features/molecules/FeatureFilters/index.js +1 -92
- package/dist/presentation/features/molecules/FeatureHoverPreview/FeatureHoverPreview.js +1 -176
- package/dist/presentation/features/molecules/FeatureHoverPreview/index.js +1 -176
- package/dist/presentation/features/molecules/index.js +1 -505
- package/dist/presentation/features/organisms/FeatureDataViewsList.js +1 -304
- package/dist/presentation/features/organisms/FeatureDetail/FeatureDetail.js +1 -154
- package/dist/presentation/features/organisms/FeatureDetail/index.js +1 -154
- package/dist/presentation/features/organisms/FeatureDiscovery/FeatureDiscovery.js +1 -909
- package/dist/presentation/features/organisms/FeatureDiscovery/index.js +1 -909
- package/dist/presentation/features/organisms/FeatureEventsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureFormsList.js +1 -302
- package/dist/presentation/features/organisms/FeatureOperationsList.js +1 -180
- package/dist/presentation/features/organisms/FeaturePresentationsList.js +1 -304
- package/dist/presentation/features/organisms/index.js +1 -1359
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/FeatureDataViewDetailTemplate.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewDetailTemplate/index.js +1 -332
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/FeatureDataViewsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeatureDataViewsTemplate/index.js +1 -342
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/FeatureEventDetailTemplate.js +1 -303
- package/dist/presentation/features/templates/FeatureEventDetailTemplate/index.js +1 -303
- package/dist/presentation/features/templates/FeatureEventsTemplate/FeatureEventsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureEventsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/FeatureFormDetailTemplate.js +1 -329
- package/dist/presentation/features/templates/FeatureFormDetailTemplate/index.js +1 -329
- package/dist/presentation/features/templates/FeatureFormsTemplate/FeatureFormsTemplate.js +1 -340
- package/dist/presentation/features/templates/FeatureFormsTemplate/index.js +1 -340
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/FeatureOperationDetailTemplate.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationDetailTemplate/index.js +1 -302
- package/dist/presentation/features/templates/FeatureOperationsTemplate/FeatureOperationsTemplate.js +1 -218
- package/dist/presentation/features/templates/FeatureOperationsTemplate/index.js +1 -218
- package/dist/presentation/features/templates/FeatureOverviewTemplate/FeatureOverviewTemplate.js +1 -187
- package/dist/presentation/features/templates/FeatureOverviewTemplate/index.js +1 -187
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/FeaturePresentationDetailTemplate.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationDetailTemplate/index.js +1 -306
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/FeaturePresentationsTemplate.js +1 -342
- package/dist/presentation/features/templates/FeaturePresentationsTemplate/index.js +1 -342
- package/package.json +103 -31
- package/src/components/docs/DocsIndexPage.tsx +55 -0
- package/src/components/docs/architecture/ArchitectureControlPlanePage.tsx +19 -0
- package/src/components/docs/architecture/ArchitectureOverviewPage.tsx +34 -0
- package/src/components/docs/docsManifest.test.ts +70 -0
- package/src/components/docs/docsManifest.ts +71 -1
- package/src/components/docs/ecosystem/PluginsPage.tsx +24 -10
- package/src/components/docs/ecosystem/RegistryPage.tsx +11 -6
- package/src/components/docs/generated/docs-index._common.json +206 -273
- package/src/components/docs/generated/docs-index.control-plane.json +18 -0
- package/src/components/docs/generated/docs-index.defineExample.json +10 -0
- package/src/components/docs/generated/docs-index.manifest.json +22 -12
- package/src/components/docs/generated/docs-index.platform-acp.json +64 -0
- package/src/components/docs/generated/docs-index.platform-agent.json +89 -1
- package/src/components/docs/generated/docs-index.platform-context.json +48 -0
- package/src/components/docs/generated/docs-index.platform-control-plane.json +72 -0
- package/src/components/docs/generated/docs-index.platform-database.json +40 -0
- package/src/components/docs/generated/docs-index.platform-docs.json +64 -0
- package/src/components/docs/generated/docs-index.platform-provider-ranking.json +89 -1
- package/src/components/docs/generated/docs-index.pocket-family-office.json +8 -0
- package/src/components/docs/generated/docs-index.unknown.json +8 -0
- package/src/components/docs/guides/GuideConnectInRepoPage.tsx +184 -0
- package/src/components/docs/guides/GuideFirstModuleBundlePage.tsx +182 -0
- package/src/components/docs/guides/GuideHostBuilderWorkbenchPage.tsx +230 -0
- package/src/components/docs/guides/GuidesIndexPage.tsx +21 -0
- package/src/components/docs/guides/index.ts +3 -0
- package/src/components/docs/specs/SpecsBuilderControlPlanePage.tsx +210 -0
- package/src/components/docs/specs/SpecsConnectPage.tsx +162 -0
- package/src/components/docs/specs/SpecsModuleBundlesPage.tsx +223 -0
- package/src/components/docs/specs/SpecsOverlaysPage.tsx +20 -0
- package/src/components/docs/specs/SpecsOverviewPage.tsx +44 -0
- package/src/components/docs/specs/index.ts +3 -0
- package/src/components/docs/studio/StudioOverviewPage.tsx +26 -0
- package/src/infrastructure/elysia/logger.ts +11 -3
|
@@ -1,153 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import Link from "@contractspec/lib.ui-link";
|
|
3
|
-
import { ChevronRight } from "lucide-react";
|
|
4
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
-
function SafetyMigrationsPage() {
|
|
6
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
-
className: "space-y-8",
|
|
8
|
-
children: [
|
|
9
|
-
/* @__PURE__ */ jsxs("div", {
|
|
10
|
-
className: "space-y-4",
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsx("h1", {
|
|
13
|
-
className: "font-bold text-4xl",
|
|
14
|
-
children: "Migrations"
|
|
15
|
-
}),
|
|
16
|
-
/* @__PURE__ */ jsxs("p", {
|
|
17
|
-
className: "text-muted-foreground",
|
|
18
|
-
children: [
|
|
19
|
-
"A ",
|
|
20
|
-
/* @__PURE__ */ jsx("strong", {
|
|
21
|
-
children: "schema migration"
|
|
22
|
-
}),
|
|
23
|
-
" (also called a database migration) is a set of incremental, reversible changes to a database schema. According to",
|
|
24
|
-
" ",
|
|
25
|
-
/* @__PURE__ */ jsx("a", {
|
|
26
|
-
href: "https://en.wikipedia.org/wiki/Schema_migration",
|
|
27
|
-
target: "_blank",
|
|
28
|
-
rel: "noopener noreferrer",
|
|
29
|
-
className: "text-violet-400 hover:text-violet-300",
|
|
30
|
-
children: "Wikipedia"
|
|
31
|
-
}),
|
|
32
|
-
`, schema migrations "allow the database schema to evolve as the application's requirements change, while preserving existing data."`
|
|
33
|
-
]
|
|
34
|
-
})
|
|
35
|
-
]
|
|
36
|
-
}),
|
|
37
|
-
/* @__PURE__ */ jsxs("div", {
|
|
38
|
-
className: "space-y-4",
|
|
39
|
-
children: [
|
|
40
|
-
/* @__PURE__ */ jsx("h2", {
|
|
41
|
-
className: "font-bold text-2xl",
|
|
42
|
-
children: "Why migrations matter"
|
|
43
|
-
}),
|
|
44
|
-
/* @__PURE__ */ jsx("p", {
|
|
45
|
-
className: "text-muted-foreground",
|
|
46
|
-
children: "As your application evolves, you'll need to change your data model—adding new fields, renaming tables, changing data types, or restructuring relationships. Without a disciplined approach, these changes can lead to:"
|
|
47
|
-
}),
|
|
48
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
49
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
50
|
-
children: [
|
|
51
|
-
/* @__PURE__ */ jsx("li", {
|
|
52
|
-
children: "Data loss or corruption"
|
|
53
|
-
}),
|
|
54
|
-
/* @__PURE__ */ jsx("li", {
|
|
55
|
-
children: "Downtime during deployments"
|
|
56
|
-
}),
|
|
57
|
-
/* @__PURE__ */ jsx("li", {
|
|
58
|
-
children: "Inconsistencies between environments (dev, staging, production)"
|
|
59
|
-
}),
|
|
60
|
-
/* @__PURE__ */ jsx("li", {
|
|
61
|
-
children: "Difficulty rolling back failed changes"
|
|
62
|
-
})
|
|
63
|
-
]
|
|
64
|
-
}),
|
|
65
|
-
/* @__PURE__ */ jsx("p", {
|
|
66
|
-
className: "text-muted-foreground",
|
|
67
|
-
children: "Migrations solve these problems by treating schema changes as versioned, tested, and reversible operations."
|
|
68
|
-
})
|
|
69
|
-
]
|
|
70
|
-
}),
|
|
71
|
-
/* @__PURE__ */ jsxs("div", {
|
|
72
|
-
className: "space-y-4",
|
|
73
|
-
children: [
|
|
74
|
-
/* @__PURE__ */ jsx("h2", {
|
|
75
|
-
className: "font-bold text-2xl",
|
|
76
|
-
children: "How MigrationSpec works"
|
|
77
|
-
}),
|
|
78
|
-
/* @__PURE__ */ jsxs("p", {
|
|
79
|
-
className: "text-muted-foreground",
|
|
80
|
-
children: [
|
|
81
|
-
"In ContractSpec, migrations are defined using",
|
|
82
|
-
" ",
|
|
83
|
-
/* @__PURE__ */ jsx("strong", {
|
|
84
|
-
children: "MigrationSpec"
|
|
85
|
-
}),
|
|
86
|
-
". Each migration has:"
|
|
87
|
-
]
|
|
88
|
-
}),
|
|
89
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
90
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
91
|
-
children: [
|
|
92
|
-
/* @__PURE__ */ jsxs("li", {
|
|
93
|
-
children: [
|
|
94
|
-
/* @__PURE__ */ jsx("strong", {
|
|
95
|
-
children: "Version"
|
|
96
|
-
}),
|
|
97
|
-
' – A unique identifier (e.g., "2025-11-13-001") that determines the order of execution.'
|
|
98
|
-
]
|
|
99
|
-
}),
|
|
100
|
-
/* @__PURE__ */ jsxs("li", {
|
|
101
|
-
children: [
|
|
102
|
-
/* @__PURE__ */ jsx("strong", {
|
|
103
|
-
children: "Up function"
|
|
104
|
-
}),
|
|
105
|
-
` – The forward migration that applies the change (e.g., "add column 'email_verified'").`
|
|
106
|
-
]
|
|
107
|
-
}),
|
|
108
|
-
/* @__PURE__ */ jsxs("li", {
|
|
109
|
-
children: [
|
|
110
|
-
/* @__PURE__ */ jsx("strong", {
|
|
111
|
-
children: "Down function"
|
|
112
|
-
}),
|
|
113
|
-
` – The reverse migration that undoes the change (e.g., "drop column 'email_verified'").`
|
|
114
|
-
]
|
|
115
|
-
}),
|
|
116
|
-
/* @__PURE__ */ jsxs("li", {
|
|
117
|
-
children: [
|
|
118
|
-
/* @__PURE__ */ jsx("strong", {
|
|
119
|
-
children: "Dependencies"
|
|
120
|
-
}),
|
|
121
|
-
" – Other migrations that must run before this one."
|
|
122
|
-
]
|
|
123
|
-
}),
|
|
124
|
-
/* @__PURE__ */ jsxs("li", {
|
|
125
|
-
children: [
|
|
126
|
-
/* @__PURE__ */ jsx("strong", {
|
|
127
|
-
children: "Validation"
|
|
128
|
-
}),
|
|
129
|
-
' – Optional checks to ensure the migration succeeded (e.g., "verify all users have an email address").'
|
|
130
|
-
]
|
|
131
|
-
})
|
|
132
|
-
]
|
|
133
|
-
})
|
|
134
|
-
]
|
|
135
|
-
}),
|
|
136
|
-
/* @__PURE__ */ jsxs("div", {
|
|
137
|
-
className: "space-y-4",
|
|
138
|
-
children: [
|
|
139
|
-
/* @__PURE__ */ jsx("h2", {
|
|
140
|
-
className: "font-bold text-2xl",
|
|
141
|
-
children: "Example MigrationSpec"
|
|
142
|
-
}),
|
|
143
|
-
/* @__PURE__ */ jsx("p", {
|
|
144
|
-
className: "text-muted-foreground",
|
|
145
|
-
children: "Here's a migration that adds an email verification field to the users table:"
|
|
146
|
-
}),
|
|
147
|
-
/* @__PURE__ */ jsx("div", {
|
|
148
|
-
className: "overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",
|
|
149
|
-
children: /* @__PURE__ */ jsx("pre", {
|
|
150
|
-
children: `migrationId: add-email-verified
|
|
1
|
+
import A from"@contractspec/lib.ui-link";import{ChevronRight as B}from"lucide-react";import{jsx as q,jsxs as z}from"react/jsx-runtime";function F(){return z("div",{className:"space-y-8",children:[z("div",{className:"space-y-4",children:[q("h1",{className:"font-bold text-4xl",children:"Migrations"}),z("p",{className:"text-muted-foreground",children:["A ",q("strong",{children:"schema migration"})," (also called a database migration) is a set of incremental, reversible changes to a database schema. According to"," ",q("a",{href:"https://en.wikipedia.org/wiki/Schema_migration",target:"_blank",rel:"noopener noreferrer",className:"text-violet-400 hover:text-violet-300",children:"Wikipedia"}),`, schema migrations "allow the database schema to evolve as the application's requirements change, while preserving existing data."`]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Why migrations matter"}),q("p",{className:"text-muted-foreground",children:"As your application evolves, you'll need to change your data model—adding new fields, renaming tables, changing data types, or restructuring relationships. Without a disciplined approach, these changes can lead to:"}),z("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[q("li",{children:"Data loss or corruption"}),q("li",{children:"Downtime during deployments"}),q("li",{children:"Inconsistencies between environments (dev, staging, production)"}),q("li",{children:"Difficulty rolling back failed changes"})]}),q("p",{className:"text-muted-foreground",children:"Migrations solve these problems by treating schema changes as versioned, tested, and reversible operations."})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"How MigrationSpec works"}),z("p",{className:"text-muted-foreground",children:["In ContractSpec, migrations are defined using"," ",q("strong",{children:"MigrationSpec"}),". Each migration has:"]}),z("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[z("li",{children:[q("strong",{children:"Version"}),' – A unique identifier (e.g., "2025-11-13-001") that determines the order of execution.']}),z("li",{children:[q("strong",{children:"Up function"}),` – The forward migration that applies the change (e.g., "add column 'email_verified'").`]}),z("li",{children:[q("strong",{children:"Down function"}),` – The reverse migration that undoes the change (e.g., "drop column 'email_verified'").`]}),z("li",{children:[q("strong",{children:"Dependencies"})," – Other migrations that must run before this one."]}),z("li",{children:[q("strong",{children:"Validation"}),' – Optional checks to ensure the migration succeeded (e.g., "verify all users have an email address").']})]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Example MigrationSpec"}),q("p",{className:"text-muted-foreground",children:"Here's a migration that adds an email verification field to the users table:"}),q("div",{className:"overflow-x-auto rounded-lg border border-border bg-background/50 p-4 font-mono text-muted-foreground text-sm",children:q("pre",{children:`migrationId: add-email-verified
|
|
151
2
|
version: 2025-11-13-001
|
|
152
3
|
dependencies: []
|
|
153
4
|
|
|
@@ -170,212 +21,4 @@ validation:
|
|
|
170
21
|
- sql: |
|
|
171
22
|
SELECT COUNT(*) FROM users
|
|
172
23
|
WHERE email_verified IS NULL;
|
|
173
|
-
expectZeroRows: true`
|
|
174
|
-
})
|
|
175
|
-
})
|
|
176
|
-
]
|
|
177
|
-
}),
|
|
178
|
-
/* @__PURE__ */ jsxs("div", {
|
|
179
|
-
className: "space-y-4",
|
|
180
|
-
children: [
|
|
181
|
-
/* @__PURE__ */ jsx("h2", {
|
|
182
|
-
className: "font-bold text-2xl",
|
|
183
|
-
children: "Running migrations"
|
|
184
|
-
}),
|
|
185
|
-
/* @__PURE__ */ jsx("p", {
|
|
186
|
-
className: "text-muted-foreground",
|
|
187
|
-
children: "Migrations are applied automatically during deployment. The ContractSpec runtime:"
|
|
188
|
-
}),
|
|
189
|
-
/* @__PURE__ */ jsxs("ol", {
|
|
190
|
-
className: "list-inside list-decimal space-y-2 text-muted-foreground",
|
|
191
|
-
children: [
|
|
192
|
-
/* @__PURE__ */ jsx("li", {
|
|
193
|
-
children: "Checks which migrations have already been applied (stored in a migrations table)."
|
|
194
|
-
}),
|
|
195
|
-
/* @__PURE__ */ jsx("li", {
|
|
196
|
-
children: "Identifies new migrations that need to run."
|
|
197
|
-
}),
|
|
198
|
-
/* @__PURE__ */ jsx("li", {
|
|
199
|
-
children: "Executes them in order, respecting dependencies."
|
|
200
|
-
}),
|
|
201
|
-
/* @__PURE__ */ jsx("li", {
|
|
202
|
-
children: "Runs validation checks to ensure success."
|
|
203
|
-
}),
|
|
204
|
-
/* @__PURE__ */ jsx("li", {
|
|
205
|
-
children: "Records the migration as applied."
|
|
206
|
-
})
|
|
207
|
-
]
|
|
208
|
-
}),
|
|
209
|
-
/* @__PURE__ */ jsx("p", {
|
|
210
|
-
className: "text-muted-foreground",
|
|
211
|
-
children: "If a migration fails, the deployment is aborted, and the system remains in its previous state. You can then fix the migration and redeploy."
|
|
212
|
-
})
|
|
213
|
-
]
|
|
214
|
-
}),
|
|
215
|
-
/* @__PURE__ */ jsxs("div", {
|
|
216
|
-
className: "space-y-4",
|
|
217
|
-
children: [
|
|
218
|
-
/* @__PURE__ */ jsx("h2", {
|
|
219
|
-
className: "font-bold text-2xl",
|
|
220
|
-
children: "Rolling back migrations"
|
|
221
|
-
}),
|
|
222
|
-
/* @__PURE__ */ jsxs("p", {
|
|
223
|
-
className: "text-muted-foreground",
|
|
224
|
-
children: [
|
|
225
|
-
"If you need to roll back a deployment, ContractSpec automatically runs the ",
|
|
226
|
-
/* @__PURE__ */ jsx("strong", {
|
|
227
|
-
children: "down"
|
|
228
|
-
}),
|
|
229
|
-
" functions of any migrations that were applied. This restores the database to its previous state."
|
|
230
|
-
]
|
|
231
|
-
}),
|
|
232
|
-
/* @__PURE__ */ jsx("p", {
|
|
233
|
-
className: "text-muted-foreground",
|
|
234
|
-
children: "Note that rollbacks are not always possible—for example, if you've deleted a column, you cannot recover the data unless you have a backup. For destructive changes, it's best to use a multi-step migration:"
|
|
235
|
-
}),
|
|
236
|
-
/* @__PURE__ */ jsxs("ol", {
|
|
237
|
-
className: "list-inside list-decimal space-y-2 text-muted-foreground",
|
|
238
|
-
children: [
|
|
239
|
-
/* @__PURE__ */ jsx("li", {
|
|
240
|
-
children: "Add the new column (reversible)."
|
|
241
|
-
}),
|
|
242
|
-
/* @__PURE__ */ jsx("li", {
|
|
243
|
-
children: "Backfill data from the old column to the new column (reversible)."
|
|
244
|
-
}),
|
|
245
|
-
/* @__PURE__ */ jsx("li", {
|
|
246
|
-
children: "Update application code to use the new column (reversible)."
|
|
247
|
-
}),
|
|
248
|
-
/* @__PURE__ */ jsx("li", {
|
|
249
|
-
children: "Drop the old column (irreversible—only do this after confirming the new column works)."
|
|
250
|
-
})
|
|
251
|
-
]
|
|
252
|
-
})
|
|
253
|
-
]
|
|
254
|
-
}),
|
|
255
|
-
/* @__PURE__ */ jsxs("div", {
|
|
256
|
-
className: "space-y-4",
|
|
257
|
-
children: [
|
|
258
|
-
/* @__PURE__ */ jsx("h2", {
|
|
259
|
-
className: "font-bold text-2xl",
|
|
260
|
-
children: "Best practices"
|
|
261
|
-
}),
|
|
262
|
-
/* @__PURE__ */ jsxs("ul", {
|
|
263
|
-
className: "list-inside list-disc space-y-2 text-muted-foreground",
|
|
264
|
-
children: [
|
|
265
|
-
/* @__PURE__ */ jsxs("li", {
|
|
266
|
-
children: [
|
|
267
|
-
/* @__PURE__ */ jsx("strong", {
|
|
268
|
-
children: "Test migrations locally"
|
|
269
|
-
}),
|
|
270
|
-
" – Run them against a copy of production data to catch issues before deploying."
|
|
271
|
-
]
|
|
272
|
-
}),
|
|
273
|
-
/* @__PURE__ */ jsxs("li", {
|
|
274
|
-
children: [
|
|
275
|
-
/* @__PURE__ */ jsx("strong", {
|
|
276
|
-
children: "Keep migrations small"
|
|
277
|
-
}),
|
|
278
|
-
" – Each migration should do one thing. This makes them easier to understand and roll back."
|
|
279
|
-
]
|
|
280
|
-
}),
|
|
281
|
-
/* @__PURE__ */ jsxs("li", {
|
|
282
|
-
children: [
|
|
283
|
-
/* @__PURE__ */ jsx("strong", {
|
|
284
|
-
children: "Write reversible migrations"
|
|
285
|
-
}),
|
|
286
|
-
" – Always provide a down function, even if you don't plan to roll back."
|
|
287
|
-
]
|
|
288
|
-
}),
|
|
289
|
-
/* @__PURE__ */ jsxs("li", {
|
|
290
|
-
children: [
|
|
291
|
-
/* @__PURE__ */ jsx("strong", {
|
|
292
|
-
children: "Use transactions"
|
|
293
|
-
}),
|
|
294
|
-
" – Wrap migrations in database transactions so they either fully succeed or fully fail."
|
|
295
|
-
]
|
|
296
|
-
}),
|
|
297
|
-
/* @__PURE__ */ jsxs("li", {
|
|
298
|
-
children: [
|
|
299
|
-
/* @__PURE__ */ jsx("strong", {
|
|
300
|
-
children: "Avoid destructive changes"
|
|
301
|
-
}),
|
|
302
|
-
" – Prefer additive changes (adding columns) over destructive ones (dropping columns). If you must delete data, archive it first."
|
|
303
|
-
]
|
|
304
|
-
}),
|
|
305
|
-
/* @__PURE__ */ jsxs("li", {
|
|
306
|
-
children: [
|
|
307
|
-
/* @__PURE__ */ jsx("strong", {
|
|
308
|
-
children: "Version your migrations"
|
|
309
|
-
}),
|
|
310
|
-
" – Use timestamps or sequential numbers to ensure migrations run in the correct order."
|
|
311
|
-
]
|
|
312
|
-
}),
|
|
313
|
-
/* @__PURE__ */ jsxs("li", {
|
|
314
|
-
children: [
|
|
315
|
-
/* @__PURE__ */ jsx("strong", {
|
|
316
|
-
children: "Document breaking changes"
|
|
317
|
-
}),
|
|
318
|
-
" – If a migration requires application code changes, note this in the migration description."
|
|
319
|
-
]
|
|
320
|
-
})
|
|
321
|
-
]
|
|
322
|
-
})
|
|
323
|
-
]
|
|
324
|
-
}),
|
|
325
|
-
/* @__PURE__ */ jsxs("div", {
|
|
326
|
-
className: "space-y-4",
|
|
327
|
-
children: [
|
|
328
|
-
/* @__PURE__ */ jsx("h2", {
|
|
329
|
-
className: "font-bold text-2xl",
|
|
330
|
-
children: "Zero-downtime migrations"
|
|
331
|
-
}),
|
|
332
|
-
/* @__PURE__ */ jsx("p", {
|
|
333
|
-
className: "text-muted-foreground",
|
|
334
|
-
children: "Some migrations can cause downtime if not handled carefully. For example, adding a NOT NULL column to a large table can lock the table for minutes. To avoid this, use a multi-step approach:"
|
|
335
|
-
}),
|
|
336
|
-
/* @__PURE__ */ jsxs("ol", {
|
|
337
|
-
className: "list-inside list-decimal space-y-2 text-muted-foreground",
|
|
338
|
-
children: [
|
|
339
|
-
/* @__PURE__ */ jsx("li", {
|
|
340
|
-
children: "Add the column as nullable."
|
|
341
|
-
}),
|
|
342
|
-
/* @__PURE__ */ jsx("li", {
|
|
343
|
-
children: "Backfill the column in batches (without locking the table)."
|
|
344
|
-
}),
|
|
345
|
-
/* @__PURE__ */ jsx("li", {
|
|
346
|
-
children: "Add the NOT NULL constraint once all rows are populated."
|
|
347
|
-
})
|
|
348
|
-
]
|
|
349
|
-
}),
|
|
350
|
-
/* @__PURE__ */ jsx("p", {
|
|
351
|
-
className: "text-muted-foreground",
|
|
352
|
-
children: "ContractSpec's migration system supports this pattern by allowing you to split a logical change into multiple versioned migrations."
|
|
353
|
-
})
|
|
354
|
-
]
|
|
355
|
-
}),
|
|
356
|
-
/* @__PURE__ */ jsxs("div", {
|
|
357
|
-
className: "flex items-center gap-4 pt-4",
|
|
358
|
-
children: [
|
|
359
|
-
/* @__PURE__ */ jsx(Link, {
|
|
360
|
-
href: "/docs/safety/auditing",
|
|
361
|
-
className: "btn-ghost",
|
|
362
|
-
children: "Previous: Audit Logs"
|
|
363
|
-
}),
|
|
364
|
-
/* @__PURE__ */ jsxs(Link, {
|
|
365
|
-
href: "/docs/advanced/renderers",
|
|
366
|
-
className: "btn-primary",
|
|
367
|
-
children: [
|
|
368
|
-
"Next: Advanced Topics ",
|
|
369
|
-
/* @__PURE__ */ jsx(ChevronRight, {
|
|
370
|
-
size: 16
|
|
371
|
-
})
|
|
372
|
-
]
|
|
373
|
-
})
|
|
374
|
-
]
|
|
375
|
-
})
|
|
376
|
-
]
|
|
377
|
-
});
|
|
378
|
-
}
|
|
379
|
-
export {
|
|
380
|
-
SafetyMigrationsPage
|
|
381
|
-
};
|
|
24
|
+
expectZeroRows: true`})})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Running migrations"}),q("p",{className:"text-muted-foreground",children:"Migrations are applied automatically during deployment. The ContractSpec runtime:"}),z("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[q("li",{children:"Checks which migrations have already been applied (stored in a migrations table)."}),q("li",{children:"Identifies new migrations that need to run."}),q("li",{children:"Executes them in order, respecting dependencies."}),q("li",{children:"Runs validation checks to ensure success."}),q("li",{children:"Records the migration as applied."})]}),q("p",{className:"text-muted-foreground",children:"If a migration fails, the deployment is aborted, and the system remains in its previous state. You can then fix the migration and redeploy."})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Rolling back migrations"}),z("p",{className:"text-muted-foreground",children:["If you need to roll back a deployment, ContractSpec automatically runs the ",q("strong",{children:"down"})," functions of any migrations that were applied. This restores the database to its previous state."]}),q("p",{className:"text-muted-foreground",children:"Note that rollbacks are not always possible—for example, if you've deleted a column, you cannot recover the data unless you have a backup. For destructive changes, it's best to use a multi-step migration:"}),z("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[q("li",{children:"Add the new column (reversible)."}),q("li",{children:"Backfill data from the old column to the new column (reversible)."}),q("li",{children:"Update application code to use the new column (reversible)."}),q("li",{children:"Drop the old column (irreversible—only do this after confirming the new column works)."})]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Best practices"}),z("ul",{className:"list-inside list-disc space-y-2 text-muted-foreground",children:[z("li",{children:[q("strong",{children:"Test migrations locally"})," – Run them against a copy of production data to catch issues before deploying."]}),z("li",{children:[q("strong",{children:"Keep migrations small"})," – Each migration should do one thing. This makes them easier to understand and roll back."]}),z("li",{children:[q("strong",{children:"Write reversible migrations"})," – Always provide a down function, even if you don't plan to roll back."]}),z("li",{children:[q("strong",{children:"Use transactions"})," – Wrap migrations in database transactions so they either fully succeed or fully fail."]}),z("li",{children:[q("strong",{children:"Avoid destructive changes"})," – Prefer additive changes (adding columns) over destructive ones (dropping columns). If you must delete data, archive it first."]}),z("li",{children:[q("strong",{children:"Version your migrations"})," – Use timestamps or sequential numbers to ensure migrations run in the correct order."]}),z("li",{children:[q("strong",{children:"Document breaking changes"})," – If a migration requires application code changes, note this in the migration description."]})]})]}),z("div",{className:"space-y-4",children:[q("h2",{className:"font-bold text-2xl",children:"Zero-downtime migrations"}),q("p",{className:"text-muted-foreground",children:"Some migrations can cause downtime if not handled carefully. For example, adding a NOT NULL column to a large table can lock the table for minutes. To avoid this, use a multi-step approach:"}),z("ol",{className:"list-inside list-decimal space-y-2 text-muted-foreground",children:[q("li",{children:"Add the column as nullable."}),q("li",{children:"Backfill the column in batches (without locking the table)."}),q("li",{children:"Add the NOT NULL constraint once all rows are populated."})]}),q("p",{className:"text-muted-foreground",children:"ContractSpec's migration system supports this pattern by allowing you to split a logical change into multiple versioned migrations."})]}),z("div",{className:"flex items-center gap-4 pt-4",children:[q(A,{href:"/docs/safety/auditing",className:"btn-ghost",children:"Previous: Audit Logs"}),z(A,{href:"/docs/advanced/renderers",className:"btn-primary",children:["Next: Advanced Topics ",q(B,{size:16})]})]})]})}export{F as SafetyMigrationsPage};
|
|
@@ -1,101 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import Link from "@contractspec/lib.ui-link";
|
|
3
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
var safetyPages = [
|
|
5
|
-
{
|
|
6
|
-
title: "Spec signing",
|
|
7
|
-
body: "Protect the integrity of what gets deployed and make changes verifiable.",
|
|
8
|
-
href: "/docs/safety/signing"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
title: "Policy decision points",
|
|
12
|
-
body: "Apply governance consistently across operations, data access, and generated surfaces.",
|
|
13
|
-
href: "/docs/safety/pdp"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
title: "Audit trails",
|
|
17
|
-
body: "Record operational and policy decisions with enough context to inspect and explain them later.",
|
|
18
|
-
href: "/docs/safety/auditing"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
title: "Migrations",
|
|
22
|
-
body: "Evolve data and schema boundaries without losing control of the system.",
|
|
23
|
-
href: "/docs/safety/migrations"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
title: "Tenant isolation",
|
|
27
|
-
body: "Keep configuration, access rules, and sensitive data bounded by tenant.",
|
|
28
|
-
href: "/docs/safety/tenant-isolation"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
title: "Security and trust",
|
|
32
|
-
body: "Understand the trust model, release process, and security expectations around the OSS system.",
|
|
33
|
-
href: "/docs/safety/security-trust"
|
|
34
|
-
}
|
|
35
|
-
];
|
|
36
|
-
function SafetyOverviewPage() {
|
|
37
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
38
|
-
className: "space-y-10",
|
|
39
|
-
children: [
|
|
40
|
-
/* @__PURE__ */ jsxs("div", {
|
|
41
|
-
className: "space-y-3",
|
|
42
|
-
children: [
|
|
43
|
-
/* @__PURE__ */ jsx("p", {
|
|
44
|
-
className: "editorial-kicker",
|
|
45
|
-
children: "Operate"
|
|
46
|
-
}),
|
|
47
|
-
/* @__PURE__ */ jsx("h1", {
|
|
48
|
-
className: "font-serif text-4xl tracking-[-0.04em] md:text-5xl",
|
|
49
|
-
children: "Safety is part of the system model, not an afterthought."
|
|
50
|
-
}),
|
|
51
|
-
/* @__PURE__ */ jsx("p", {
|
|
52
|
-
className: "max-w-3xl text-lg text-muted-foreground leading-8",
|
|
53
|
-
children: "ContractSpec is meant to survive real change: new generated surfaces, policy updates, migrations, integration churn, and operator handoffs. The safety layer makes those changes inspectable, reversible, and governed."
|
|
54
|
-
})
|
|
55
|
-
]
|
|
56
|
-
}),
|
|
57
|
-
/* @__PURE__ */ jsxs("div", {
|
|
58
|
-
className: "editorial-proof-strip",
|
|
59
|
-
children: [
|
|
60
|
-
/* @__PURE__ */ jsxs("div", {
|
|
61
|
-
className: "editorial-stat",
|
|
62
|
-
children: [
|
|
63
|
-
/* @__PURE__ */ jsx("span", {
|
|
64
|
-
className: "editorial-label",
|
|
65
|
-
children: "Operating rule"
|
|
66
|
-
}),
|
|
67
|
-
/* @__PURE__ */ jsx("span", {
|
|
68
|
-
className: "editorial-stat-value",
|
|
69
|
-
children: "explicit change beats hidden mutation"
|
|
70
|
-
})
|
|
71
|
-
]
|
|
72
|
-
}),
|
|
73
|
-
/* @__PURE__ */ jsx("p", {
|
|
74
|
-
className: "max-w-2xl text-muted-foreground text-sm leading-7",
|
|
75
|
-
children: "Use policies, signing, audit trails, and migrations to keep the system legible even as AI-assisted workflows accelerate change volume."
|
|
76
|
-
})
|
|
77
|
-
]
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ jsx("div", {
|
|
80
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
81
|
-
children: safetyPages.map((page) => /* @__PURE__ */ jsxs(Link, {
|
|
82
|
-
href: page.href,
|
|
83
|
-
className: "editorial-panel",
|
|
84
|
-
children: [
|
|
85
|
-
/* @__PURE__ */ jsx("h2", {
|
|
86
|
-
className: "font-semibold text-xl",
|
|
87
|
-
children: page.title
|
|
88
|
-
}),
|
|
89
|
-
/* @__PURE__ */ jsx("p", {
|
|
90
|
-
className: "mt-2 text-muted-foreground text-sm leading-7",
|
|
91
|
-
children: page.body
|
|
92
|
-
})
|
|
93
|
-
]
|
|
94
|
-
}, page.href))
|
|
95
|
-
})
|
|
96
|
-
]
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
export {
|
|
100
|
-
SafetyOverviewPage
|
|
101
|
-
};
|
|
1
|
+
import i from"@contractspec/lib.ui-link";import{jsx as e,jsxs as t}from"react/jsx-runtime";var s=[{title:"Spec signing",body:"Protect the integrity of what gets deployed and make changes verifiable.",href:"/docs/safety/signing"},{title:"Policy decision points",body:"Apply governance consistently across operations, data access, and generated surfaces.",href:"/docs/safety/pdp"},{title:"Audit trails",body:"Record operational and policy decisions with enough context to inspect and explain them later.",href:"/docs/safety/auditing"},{title:"Migrations",body:"Evolve data and schema boundaries without losing control of the system.",href:"/docs/safety/migrations"},{title:"Tenant isolation",body:"Keep configuration, access rules, and sensitive data bounded by tenant.",href:"/docs/safety/tenant-isolation"},{title:"Security and trust",body:"Understand the trust model, release process, and security expectations around the OSS system.",href:"/docs/safety/security-trust"}];function o(){return t("div",{className:"space-y-10",children:[t("div",{className:"space-y-3",children:[e("p",{className:"editorial-kicker",children:"Operate"}),e("h1",{className:"font-serif text-4xl tracking-[-0.04em] md:text-5xl",children:"Safety is part of the system model, not an afterthought."}),e("p",{className:"max-w-3xl text-lg text-muted-foreground leading-8",children:"ContractSpec is meant to survive real change: new generated surfaces, policy updates, migrations, integration churn, and operator handoffs. The safety layer makes those changes inspectable, reversible, and governed."})]}),t("div",{className:"editorial-proof-strip",children:[t("div",{className:"editorial-stat",children:[e("span",{className:"editorial-label",children:"Operating rule"}),e("span",{className:"editorial-stat-value",children:"explicit change beats hidden mutation"})]}),e("p",{className:"max-w-2xl text-muted-foreground text-sm leading-7",children:"Use policies, signing, audit trails, and migrations to keep the system legible even as AI-assisted workflows accelerate change volume."})]}),e("div",{className:"grid gap-4 md:grid-cols-2",children:s.map((a)=>t(i,{href:a.href,className:"editorial-panel",children:[e("h2",{className:"font-semibold text-xl",children:a.title}),e("p",{className:"mt-2 text-muted-foreground text-sm leading-7",children:a.body})]},a.href))})]})}export{o as SafetyOverviewPage};
|