@db3.ai/app 0.1.0-beta.1
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/LICENSE +31 -0
- package/README.md +241 -0
- package/agent-instructions.md +69 -0
- package/bin/db3-agents.mjs +140 -0
- package/bin/db3.mjs +11 -0
- package/dist/ai/AIErrors.d.ts +33 -0
- package/dist/ai/AIErrors.js +43 -0
- package/dist/ai/AIFailover.d.ts +25 -0
- package/dist/ai/AIFailover.js +96 -0
- package/dist/ai/AIProviders.d.ts +35 -0
- package/dist/ai/AIProviders.js +197 -0
- package/dist/ai/AIQuotaDeferredError.d.ts +19 -0
- package/dist/ai/AIQuotaDeferredError.js +25 -0
- package/dist/ai/AIRateLimiter.d.ts +103 -0
- package/dist/ai/AIRateLimiter.js +690 -0
- package/dist/ai/Agent.d.ts +633 -0
- package/dist/ai/Agent.js +2976 -0
- package/dist/ai/AgentHistory.d.ts +11 -0
- package/dist/ai/AgentHistory.js +495 -0
- package/dist/ai/AgentRunJob.d.ts +21 -0
- package/dist/ai/AgentRunJob.js +53 -0
- package/dist/ai/Ai.d.ts +375 -0
- package/dist/ai/Ai.js +1771 -0
- package/dist/ai/AiConversation.d.ts +17 -0
- package/dist/ai/AiConversation.js +38 -0
- package/dist/ai/AiExecutionContext.d.ts +7 -0
- package/dist/ai/AiExecutionContext.js +16 -0
- package/dist/ai/AiMessage.d.ts +43 -0
- package/dist/ai/AiMessage.js +105 -0
- package/dist/ai/AiRateLimitBucket.d.ts +69 -0
- package/dist/ai/AiRateLimitBucket.js +138 -0
- package/dist/ai/AiRateLimitReservation.d.ts +56 -0
- package/dist/ai/AiRateLimitReservation.js +101 -0
- package/dist/ai/AiRequest.d.ts +78 -0
- package/dist/ai/AiRequest.js +384 -0
- package/dist/ai/Estimates.d.ts +26 -0
- package/dist/ai/Estimates.js +34 -0
- package/dist/ai/Models.d.ts +88 -0
- package/dist/ai/Models.js +328 -0
- package/dist/ai/OpenAIProviderError.d.ts +30 -0
- package/dist/ai/OpenAIProviderError.js +77 -0
- package/dist/ai/OpenAIQuotaRetry.d.ts +27 -0
- package/dist/ai/OpenAIQuotaRetry.js +144 -0
- package/dist/ai/ProviderCosts.d.ts +55 -0
- package/dist/ai/ProviderCosts.js +108 -0
- package/dist/ai/ResponsesProviderCall.d.ts +13 -0
- package/dist/ai/ResponsesProviderCall.js +29 -0
- package/dist/ai/agentCitations.d.ts +27 -0
- package/dist/ai/agentCitations.js +153 -0
- package/dist/ai/contracts/AI.d.ts +347 -0
- package/dist/ai/contracts/AI.js +13 -0
- package/dist/ai/contracts/Agent.d.ts +476 -0
- package/dist/ai/contracts/Agent.js +1 -0
- package/dist/ai/contracts/AiRequestRunCostSummary.d.ts +31 -0
- package/dist/ai/contracts/AiRequestRunCostSummary.js +1 -0
- package/dist/ai/contracts/Pricing.d.ts +88 -0
- package/dist/ai/contracts/Pricing.js +1 -0
- package/dist/ai/contracts/Providers.d.ts +68 -0
- package/dist/ai/contracts/Providers.js +1 -0
- package/dist/ai/contracts/QuotaRetry.d.ts +38 -0
- package/dist/ai/contracts/QuotaRetry.js +1 -0
- package/dist/ai/contracts/RateLimits.d.ts +45 -0
- package/dist/ai/contracts/RateLimits.js +1 -0
- package/dist/ai/contracts/ResponsesProviderCall.d.ts +28 -0
- package/dist/ai/contracts/ResponsesProviderCall.js +1 -0
- package/dist/ai/contracts/index.d.ts +8 -0
- package/dist/ai/contracts/index.js +8 -0
- package/dist/ai/index.d.ts +27 -0
- package/dist/ai/index.js +27 -0
- package/dist/ai/registry.d.ts +28 -0
- package/dist/ai/registry.js +49 -0
- package/dist/ai/sdkNodeCompatibility.d.ts +76 -0
- package/dist/ai/toolCallRecovery.d.ts +16 -0
- package/dist/ai/toolCallRecovery.js +71 -0
- package/dist/ai/toolHelpers.d.ts +65 -0
- package/dist/ai/toolHelpers.js +106 -0
- package/dist/auth/Auth.d.ts +641 -0
- package/dist/auth/Auth.js +927 -0
- package/dist/auth/AuthProvider.d.ts +104 -0
- package/dist/auth/AuthProvider.js +185 -0
- package/dist/auth/AuthToken.d.ts +123 -0
- package/dist/auth/AuthToken.js +156 -0
- package/dist/auth/PasswordResetToken.d.ts +33 -0
- package/dist/auth/PasswordResetToken.js +64 -0
- package/dist/auth/UserIdentity.d.ts +46 -0
- package/dist/auth/UserIdentity.js +72 -0
- package/dist/auth/contracts/AuthProviderDriver.d.ts +94 -0
- package/dist/auth/contracts/AuthProviderDriver.js +1 -0
- package/dist/auth/contracts/index.d.ts +1 -0
- package/dist/auth/contracts/index.js +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/passwordHash.d.ts +26 -0
- package/dist/auth/passwordHash.js +96 -0
- package/dist/auth/providers/GoogleAuthProvider.d.ts +135 -0
- package/dist/auth/providers/GoogleAuthProvider.js +305 -0
- package/dist/auth/providers/PasswordAuthProvider.d.ts +115 -0
- package/dist/auth/providers/PasswordAuthProvider.js +195 -0
- package/dist/auth/providers/index.d.ts +3 -0
- package/dist/auth/providers/index.js +3 -0
- package/dist/auth/providers/resolveAuthProviders.d.ts +29 -0
- package/dist/auth/providers/resolveAuthProviders.js +111 -0
- package/dist/cache/Cache.d.ts +67 -0
- package/dist/cache/Cache.js +115 -0
- package/dist/cache/contracts/CacheDriver.d.ts +10 -0
- package/dist/cache/contracts/CacheDriver.js +1 -0
- package/dist/cache/contracts/CacheOperations.d.ts +26 -0
- package/dist/cache/contracts/CacheOperations.js +1 -0
- package/dist/cache/contracts/CacheOptions.d.ts +51 -0
- package/dist/cache/contracts/CacheOptions.js +1 -0
- package/dist/cache/contracts/CacheRepository.d.ts +45 -0
- package/dist/cache/contracts/CacheRepository.js +1 -0
- package/dist/cache/contracts/index.d.ts +4 -0
- package/dist/cache/contracts/index.js +4 -0
- package/dist/cache/drivers/CacheManagerDriver.d.ts +55 -0
- package/dist/cache/drivers/CacheManagerDriver.js +68 -0
- package/dist/cache/drivers/createCacheDriver.d.ts +8 -0
- package/dist/cache/drivers/createCacheDriver.js +147 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.js +2 -0
- package/dist/cli/Cli.d.ts +17 -0
- package/dist/cli/Cli.js +120 -0
- package/dist/cli/commands/repl.d.ts +9 -0
- package/dist/cli/commands/repl.js +27 -0
- package/dist/cli/contracts/CliCommand.d.ts +30 -0
- package/dist/cli/contracts/CliCommand.js +1 -0
- package/dist/cli/contracts/CliConfig.d.ts +9 -0
- package/dist/cli/contracts/CliConfig.js +1 -0
- package/dist/cli/contracts/CliOptions.d.ts +13 -0
- package/dist/cli/contracts/CliOptions.js +1 -0
- package/dist/cli/contracts/CommandDefinition.d.ts +18 -0
- package/dist/cli/contracts/CommandDefinition.js +1 -0
- package/dist/cli/contracts/ReplOptions.d.ts +11 -0
- package/dist/cli/contracts/ReplOptions.js +1 -0
- package/dist/cli/contracts/index.d.ts +5 -0
- package/dist/cli/contracts/index.js +1 -0
- package/dist/cli/defineCommand.d.ts +10 -0
- package/dist/cli/defineCommand.js +25 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/runDb3.d.ts +11 -0
- package/dist/cli/runDb3.js +70 -0
- package/dist/cli/runRepl.d.ts +12 -0
- package/dist/cli/runRepl.js +54 -0
- package/dist/config/Config.d.ts +48 -0
- package/dist/config/Config.js +80 -0
- package/dist/config/env.d.ts +26 -0
- package/dist/config/env.js +117 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +2 -0
- package/dist/db/ActiveProjection.d.ts +90 -0
- package/dist/db/ActiveProjection.js +134 -0
- package/dist/db/ActiveQueryBuilder.d.ts +268 -0
- package/dist/db/ActiveQueryBuilder.js +621 -0
- package/dist/db/ActiveRecord.d.ts +483 -0
- package/dist/db/ActiveRecord.js +765 -0
- package/dist/db/Database.d.ts +277 -0
- package/dist/db/Database.js +827 -0
- package/dist/db/FieldType.d.ts +540 -0
- package/dist/db/FieldType.js +706 -0
- package/dist/db/SoftDeletes.d.ts +30 -0
- package/dist/db/SoftDeletes.js +93 -0
- package/dist/db/commands/check.d.ts +6 -0
- package/dist/db/commands/check.js +8 -0
- package/dist/db/commands/index.d.ts +6 -0
- package/dist/db/commands/index.js +17 -0
- package/dist/db/commands/makeMigration.d.ts +7 -0
- package/dist/db/commands/makeMigration.js +9 -0
- package/dist/db/commands/migrate.d.ts +6 -0
- package/dist/db/commands/migrate.js +8 -0
- package/dist/db/connection.d.ts +10 -0
- package/dist/db/connection.js +55 -0
- package/dist/db/contracts/ActiveRecordDefinition.d.ts +64 -0
- package/dist/db/contracts/ActiveRecordDefinition.js +1 -0
- package/dist/db/contracts/DatabaseBackup.d.ts +7 -0
- package/dist/db/contracts/DatabaseBackup.js +1 -0
- package/dist/db/contracts/DatabaseMigrationsConfig.d.ts +9 -0
- package/dist/db/contracts/DatabaseMigrationsConfig.js +1 -0
- package/dist/db/contracts/index.d.ts +3 -0
- package/dist/db/contracts/index.js +3 -0
- package/dist/db/dialects/columnTypes.d.ts +20 -0
- package/dist/db/dialects/columnTypes.js +67 -0
- package/dist/db/dialects/index.d.ts +6 -0
- package/dist/db/dialects/index.js +6 -0
- package/dist/db/dialects/mariadb.d.ts +7 -0
- package/dist/db/dialects/mariadb.js +35 -0
- package/dist/db/dialects/mysql.d.ts +14 -0
- package/dist/db/dialects/mysql.js +203 -0
- package/dist/db/dialects/postgres.d.ts +5 -0
- package/dist/db/dialects/postgres.js +106 -0
- package/dist/db/dialects/resolveDialect.d.ts +14 -0
- package/dist/db/dialects/resolveDialect.js +57 -0
- package/dist/db/dialects/types.d.ts +44 -0
- package/dist/db/dialects/types.js +1 -0
- package/dist/db/errors.d.ts +15 -0
- package/dist/db/errors.js +20 -0
- package/dist/db/fields/BooleanField.d.ts +29 -0
- package/dist/db/fields/BooleanField.js +89 -0
- package/dist/db/fields/CharUuidField.d.ts +29 -0
- package/dist/db/fields/CharUuidField.js +63 -0
- package/dist/db/fields/ChoiceStringField.d.ts +25 -0
- package/dist/db/fields/ChoiceStringField.js +58 -0
- package/dist/db/fields/DecimalField.d.ts +20 -0
- package/dist/db/fields/DecimalField.js +105 -0
- package/dist/db/fields/EmailField.d.ts +31 -0
- package/dist/db/fields/EmailField.js +52 -0
- package/dist/db/fields/EncryptedJsonField.d.ts +82 -0
- package/dist/db/fields/EncryptedJsonField.js +169 -0
- package/dist/db/fields/IntegerField.d.ts +35 -0
- package/dist/db/fields/IntegerField.js +139 -0
- package/dist/db/fields/JsonField.d.ts +40 -0
- package/dist/db/fields/JsonField.js +79 -0
- package/dist/db/fields/JsonStringField.d.ts +21 -0
- package/dist/db/fields/JsonStringField.js +41 -0
- package/dist/db/fields/LinkField.d.ts +180 -0
- package/dist/db/fields/LinkField.js +359 -0
- package/dist/db/fields/PasswordField.d.ts +93 -0
- package/dist/db/fields/PasswordField.js +180 -0
- package/dist/db/fields/StringField.d.ts +43 -0
- package/dist/db/fields/StringField.js +102 -0
- package/dist/db/fields/StringListField.d.ts +54 -0
- package/dist/db/fields/StringListField.js +124 -0
- package/dist/db/fields/TextField.d.ts +25 -0
- package/dist/db/fields/TextField.js +44 -0
- package/dist/db/fields/TimestampField.d.ts +47 -0
- package/dist/db/fields/TimestampField.js +97 -0
- package/dist/db/fields/UlidField.d.ts +69 -0
- package/dist/db/fields/UlidField.js +114 -0
- package/dist/db/fields/UrlField.d.ts +30 -0
- package/dist/db/fields/UrlField.js +61 -0
- package/dist/db/fields/VectorField.d.ts +64 -0
- package/dist/db/fields/VectorField.js +180 -0
- package/dist/db/fields/createField.d.ts +2 -0
- package/dist/db/fields/createField.js +13 -0
- package/dist/db/fields/field.d.ts +36 -0
- package/dist/db/fields/field.js +101 -0
- package/dist/db/fields/index.d.ts +18 -0
- package/dist/db/fields/index.js +18 -0
- package/dist/db/fields/resolveFields.d.ts +17 -0
- package/dist/db/fields/resolveFields.js +38 -0
- package/dist/db/index.d.ts +13 -0
- package/dist/db/index.js +13 -0
- package/dist/db/migrations/DatabaseMigrationManager.d.ts +57 -0
- package/dist/db/migrations/DatabaseMigrationManager.js +589 -0
- package/dist/db/migrations/DatabaseSchemaInspector.d.ts +19 -0
- package/dist/db/migrations/DatabaseSchemaInspector.js +384 -0
- package/dist/db/migrations/KnexMigrationRenderer.d.ts +11 -0
- package/dist/db/migrations/KnexMigrationRenderer.js +390 -0
- package/dist/db/migrations/ModelSchemaCollector.d.ts +29 -0
- package/dist/db/migrations/ModelSchemaCollector.js +183 -0
- package/dist/db/migrations/SchemaDiffer.d.ts +13 -0
- package/dist/db/migrations/SchemaDiffer.js +427 -0
- package/dist/db/migrations/SchemaNames.d.ts +27 -0
- package/dist/db/migrations/SchemaNames.js +46 -0
- package/dist/db/migrations/SchemaSnapshotSerializer.d.ts +30 -0
- package/dist/db/migrations/SchemaSnapshotSerializer.js +49 -0
- package/dist/db/migrations/contracts/DatabaseMigration.d.ts +118 -0
- package/dist/db/migrations/contracts/DatabaseMigration.js +1 -0
- package/dist/db/migrations/contracts/SchemaChange.d.ts +83 -0
- package/dist/db/migrations/contracts/SchemaChange.js +1 -0
- package/dist/db/migrations/contracts/SchemaSnapshot.d.ts +94 -0
- package/dist/db/migrations/contracts/SchemaSnapshot.js +1 -0
- package/dist/db/migrations/contracts/index.d.ts +3 -0
- package/dist/db/migrations/contracts/index.js +3 -0
- package/dist/db/migrations/errors.d.ts +35 -0
- package/dist/db/migrations/errors.js +45 -0
- package/dist/db/migrations/index.d.ts +10 -0
- package/dist/db/migrations/index.js +10 -0
- package/dist/db/migrations/promoteDestructiveSchemaChanges.d.ts +19 -0
- package/dist/db/migrations/promoteDestructiveSchemaChanges.js +102 -0
- package/dist/db/queryMonitor.d.ts +142 -0
- package/dist/db/queryMonitor.js +357 -0
- package/dist/db/sqlErrors.d.ts +11 -0
- package/dist/db/sqlErrors.js +17 -0
- package/dist/db/test/db.d.ts +11 -0
- package/dist/db/test/db.js +109 -0
- package/dist/devtools/HttpEventDispatcher.d.ts +19 -0
- package/dist/devtools/HttpEventDispatcher.js +180 -0
- package/dist/devtools/contracts/DevtoolsEventDispatcher.d.ts +53 -0
- package/dist/devtools/contracts/DevtoolsEventDispatcher.js +1 -0
- package/dist/devtools/contracts/index.d.ts +1 -0
- package/dist/devtools/contracts/index.js +1 -0
- package/dist/devtools/environment.d.ts +10 -0
- package/dist/devtools/environment.js +14 -0
- package/dist/devtools/index.d.ts +3 -0
- package/dist/devtools/index.js +3 -0
- package/dist/events/Events.d.ts +70 -0
- package/dist/events/Events.js +126 -0
- package/dist/events/contracts/EventConstructor.d.ts +12 -0
- package/dist/events/contracts/EventConstructor.js +1 -0
- package/dist/events/contracts/EventListener.d.ts +6 -0
- package/dist/events/contracts/EventListener.js +1 -0
- package/dist/events/contracts/EventUnsubscribe.d.ts +4 -0
- package/dist/events/contracts/EventUnsubscribe.js +1 -0
- package/dist/events/contracts/index.d.ts +3 -0
- package/dist/events/contracts/index.js +3 -0
- package/dist/events/index.d.ts +2 -0
- package/dist/events/index.js +2 -0
- package/dist/flows/FlowBlockRegistry.d.ts +39 -0
- package/dist/flows/FlowBlockRegistry.js +66 -0
- package/dist/flows/FlowCompiler.d.ts +26 -0
- package/dist/flows/FlowCompiler.js +488 -0
- package/dist/flows/FlowDefinitionError.d.ts +21 -0
- package/dist/flows/FlowDefinitionError.js +16 -0
- package/dist/flows/FlowStepJob.d.ts +28 -0
- package/dist/flows/FlowStepJob.js +31 -0
- package/dist/flows/FlowValueValidator.d.ts +32 -0
- package/dist/flows/FlowValueValidator.js +105 -0
- package/dist/flows/Flows.d.ts +102 -0
- package/dist/flows/Flows.js +871 -0
- package/dist/flows/blocks/FlowInput.d.ts +10 -0
- package/dist/flows/blocks/FlowInput.js +29 -0
- package/dist/flows/blocks/FlowOutput.d.ts +10 -0
- package/dist/flows/blocks/FlowOutput.js +29 -0
- package/dist/flows/blocks/Subflow.d.ts +10 -0
- package/dist/flows/blocks/Subflow.js +21 -0
- package/dist/flows/blocks/index.d.ts +6 -0
- package/dist/flows/blocks/index.js +8 -0
- package/dist/flows/constants.d.ts +55 -0
- package/dist/flows/constants.js +47 -0
- package/dist/flows/contracts/FlowBlock.d.ts +64 -0
- package/dist/flows/contracts/FlowBlock.js +1 -0
- package/dist/flows/contracts/FlowCompiler.d.ts +30 -0
- package/dist/flows/contracts/FlowCompiler.js +1 -0
- package/dist/flows/contracts/FlowDefinition.d.ts +118 -0
- package/dist/flows/contracts/FlowDefinition.js +1 -0
- package/dist/flows/contracts/FlowDefinitionStore.d.ts +47 -0
- package/dist/flows/contracts/FlowDefinitionStore.js +1 -0
- package/dist/flows/contracts/FlowRun.d.ts +40 -0
- package/dist/flows/contracts/FlowRun.js +1 -0
- package/dist/flows/contracts/FlowValue.d.ts +49 -0
- package/dist/flows/contracts/FlowValue.js +1 -0
- package/dist/flows/contracts/FlowsService.d.ts +37 -0
- package/dist/flows/contracts/FlowsService.js +1 -0
- package/dist/flows/contracts/index.d.ts +7 -0
- package/dist/flows/contracts/index.js +7 -0
- package/dist/flows/defineBlock.d.ts +18 -0
- package/dist/flows/defineBlock.js +19 -0
- package/dist/flows/drivers/FileFlowDefinitionStore.d.ts +53 -0
- package/dist/flows/drivers/FileFlowDefinitionStore.js +313 -0
- package/dist/flows/drivers/index.d.ts +1 -0
- package/dist/flows/drivers/index.js +1 -0
- package/dist/flows/errors.d.ts +8 -0
- package/dist/flows/errors.js +19 -0
- package/dist/flows/index.d.ts +13 -0
- package/dist/flows/index.js +13 -0
- package/dist/flows/models/FlowRun.d.ts +55 -0
- package/dist/flows/models/FlowRun.js +126 -0
- package/dist/flows/models/FlowRunEvent.d.ts +41 -0
- package/dist/flows/models/FlowRunEvent.js +85 -0
- package/dist/flows/models/FlowStepRun.d.ts +56 -0
- package/dist/flows/models/FlowStepRun.js +137 -0
- package/dist/flows/models/index.d.ts +10 -0
- package/dist/flows/models/index.js +14 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +16 -0
- package/dist/logging/Log.d.ts +66 -0
- package/dist/logging/Log.js +79 -0
- package/dist/logging/contracts/HttpExchange.d.ts +50 -0
- package/dist/logging/contracts/HttpExchange.js +1 -0
- package/dist/logging/contracts/Logger.d.ts +41 -0
- package/dist/logging/contracts/Logger.js +1 -0
- package/dist/logging/contracts/LoggerDriver.d.ts +16 -0
- package/dist/logging/contracts/LoggerDriver.js +1 -0
- package/dist/logging/contracts/LoggingOptions.d.ts +49 -0
- package/dist/logging/contracts/LoggingOptions.js +1 -0
- package/dist/logging/contracts/index.d.ts +4 -0
- package/dist/logging/contracts/index.js +4 -0
- package/dist/logging/drivers/PinoLoggerDriver.d.ts +24 -0
- package/dist/logging/drivers/PinoLoggerDriver.js +291 -0
- package/dist/logging/drivers/index.d.ts +1 -0
- package/dist/logging/drivers/index.js +1 -0
- package/dist/logging/index.d.ts +3 -0
- package/dist/logging/index.js +3 -0
- package/dist/logging/transports/DevtoolsLogTransport.d.ts +35 -0
- package/dist/logging/transports/DevtoolsLogTransport.js +96 -0
- package/dist/mail/Mail.d.ts +62 -0
- package/dist/mail/Mail.js +98 -0
- package/dist/mail/index.d.ts +4 -0
- package/dist/mail/index.js +4 -0
- package/dist/mail/transports/FileMailTransport.d.ts +12 -0
- package/dist/mail/transports/FileMailTransport.js +41 -0
- package/dist/mail/transports/MailgunTransport.d.ts +22 -0
- package/dist/mail/transports/MailgunTransport.js +57 -0
- package/dist/mail/transports/ResendTransport.d.ts +14 -0
- package/dist/mail/transports/ResendTransport.js +55 -0
- package/dist/media/MediaFile.d.ts +48 -0
- package/dist/media/MediaFile.js +104 -0
- package/dist/media/MediaItem.d.ts +47 -0
- package/dist/media/MediaItem.js +106 -0
- package/dist/media/MediaLibrary.d.ts +42 -0
- package/dist/media/MediaLibrary.js +94 -0
- package/dist/media/MediaManager.d.ts +159 -0
- package/dist/media/MediaManager.js +754 -0
- package/dist/media/constants.d.ts +27 -0
- package/dist/media/constants.js +19 -0
- package/dist/media/contracts/MediaOptions.d.ts +8 -0
- package/dist/media/contracts/MediaOptions.js +1 -0
- package/dist/media/contracts/index.d.ts +1 -0
- package/dist/media/contracts/index.js +1 -0
- package/dist/media/image/ImageReconstructionError.d.ts +15 -0
- package/dist/media/image/ImageReconstructionError.js +18 -0
- package/dist/media/image/ImageVariantRenderer.d.ts +44 -0
- package/dist/media/image/ImageVariantRenderer.js +337 -0
- package/dist/media/image/ImageVariantRequest.d.ts +28 -0
- package/dist/media/image/ImageVariantRequest.js +55 -0
- package/dist/media/image/contracts/ImageProcessor.d.ts +46 -0
- package/dist/media/image/contracts/ImageProcessor.js +1 -0
- package/dist/media/image/contracts/ImageVariant.d.ts +31 -0
- package/dist/media/image/contracts/ImageVariant.js +7 -0
- package/dist/media/image/contracts/ImageVariantCacheOptions.d.ts +20 -0
- package/dist/media/image/contracts/ImageVariantCacheOptions.js +1 -0
- package/dist/media/image/contracts/index.d.ts +3 -0
- package/dist/media/image/contracts/index.js +3 -0
- package/dist/media/image/index.d.ts +5 -0
- package/dist/media/image/index.js +5 -0
- package/dist/media/image/processors/SharpImageProcessor.d.ts +25 -0
- package/dist/media/image/processors/SharpImageProcessor.js +112 -0
- package/dist/media/image/processors/index.d.ts +1 -0
- package/dist/media/image/processors/index.js +1 -0
- package/dist/media/index.d.ts +8 -0
- package/dist/media/index.js +8 -0
- package/dist/media/types.d.ts +129 -0
- package/dist/media/types.js +1 -0
- package/dist/queue/FailedJob.d.ts +31 -0
- package/dist/queue/FailedJob.js +41 -0
- package/dist/queue/Queue.d.ts +208 -0
- package/dist/queue/Queue.js +685 -0
- package/dist/queue/QueueEvents.d.ts +31 -0
- package/dist/queue/QueueEvents.js +49 -0
- package/dist/queue/QueueRetryLaterError.d.ts +23 -0
- package/dist/queue/QueueRetryLaterError.js +34 -0
- package/dist/queue/QueueWorker.d.ts +72 -0
- package/dist/queue/QueueWorker.js +236 -0
- package/dist/queue/QueueableJob.d.ts +109 -0
- package/dist/queue/QueueableJob.js +137 -0
- package/dist/queue/QueuedJob.d.ts +31 -0
- package/dist/queue/QueuedJob.js +52 -0
- package/dist/queue/RetryPolicy.d.ts +51 -0
- package/dist/queue/RetryPolicy.js +84 -0
- package/dist/queue/commands/index.d.ts +4 -0
- package/dist/queue/commands/index.js +11 -0
- package/dist/queue/commands/makeJob.d.ts +7 -0
- package/dist/queue/commands/makeJob.js +9 -0
- package/dist/queue/console.d.ts +60 -0
- package/dist/queue/console.js +348 -0
- package/dist/queue/contracts/CreateJob.d.ts +12 -0
- package/dist/queue/contracts/CreateJob.js +1 -0
- package/dist/queue/contracts/QueueDriver.d.ts +122 -0
- package/dist/queue/contracts/QueueDriver.js +1 -0
- package/dist/queue/contracts/QueueEvents.d.ts +61 -0
- package/dist/queue/contracts/QueueEvents.js +1 -0
- package/dist/queue/contracts/QueuePayload.d.ts +136 -0
- package/dist/queue/contracts/QueuePayload.js +1 -0
- package/dist/queue/contracts/QueueRetry.d.ts +43 -0
- package/dist/queue/contracts/QueueRetry.js +1 -0
- package/dist/queue/contracts/QueueService.d.ts +199 -0
- package/dist/queue/contracts/QueueService.js +1 -0
- package/dist/queue/contracts/QueueWorkerLifecycle.d.ts +65 -0
- package/dist/queue/contracts/QueueWorkerLifecycle.js +1 -0
- package/dist/queue/contracts/QueueableJob.d.ts +50 -0
- package/dist/queue/contracts/QueueableJob.js +1 -0
- package/dist/queue/contracts/RedisQueueDriver.d.ts +37 -0
- package/dist/queue/contracts/RedisQueueDriver.js +1 -0
- package/dist/queue/contracts/index.d.ts +9 -0
- package/dist/queue/contracts/index.js +9 -0
- package/dist/queue/createJob.d.ts +18 -0
- package/dist/queue/createJob.js +52 -0
- package/dist/queue/drivers/DatabaseQueueDriver.d.ts +83 -0
- package/dist/queue/drivers/DatabaseQueueDriver.js +393 -0
- package/dist/queue/drivers/RedisQueueDriver.d.ts +102 -0
- package/dist/queue/drivers/RedisQueueDriver.js +641 -0
- package/dist/queue/index.d.ts +13 -0
- package/dist/queue/index.js +13 -0
- package/dist/queue/queueMonitor.d.ts +133 -0
- package/dist/queue/queueMonitor.js +238 -0
- package/dist/scheduler/ScheduledCall.d.ts +25 -0
- package/dist/scheduler/ScheduledCall.js +31 -0
- package/dist/scheduler/ScheduledEvent.d.ts +74 -0
- package/dist/scheduler/ScheduledEvent.js +115 -0
- package/dist/scheduler/ScheduledJob.d.ts +34 -0
- package/dist/scheduler/ScheduledJob.js +50 -0
- package/dist/scheduler/ScheduledOccurrence.d.ts +74 -0
- package/dist/scheduler/ScheduledOccurrence.js +194 -0
- package/dist/scheduler/ScheduledOccurrenceRecorder.d.ts +34 -0
- package/dist/scheduler/ScheduledOccurrenceRecorder.js +106 -0
- package/dist/scheduler/Scheduler.d.ts +76 -0
- package/dist/scheduler/Scheduler.js +186 -0
- package/dist/scheduler/SchedulerWorker.d.ts +37 -0
- package/dist/scheduler/SchedulerWorker.js +119 -0
- package/dist/scheduler/console.d.ts +18 -0
- package/dist/scheduler/console.js +288 -0
- package/dist/scheduler/constants.d.ts +13 -0
- package/dist/scheduler/constants.js +23 -0
- package/dist/scheduler/contracts/Scheduler.d.ts +104 -0
- package/dist/scheduler/contracts/Scheduler.js +1 -0
- package/dist/scheduler/contracts/SchedulerConsole.d.ts +37 -0
- package/dist/scheduler/contracts/SchedulerConsole.js +1 -0
- package/dist/scheduler/contracts/SchedulerWorker.d.ts +18 -0
- package/dist/scheduler/contracts/SchedulerWorker.js +1 -0
- package/dist/scheduler/contracts/index.d.ts +3 -0
- package/dist/scheduler/contracts/index.js +3 -0
- package/dist/scheduler/index.d.ts +9 -0
- package/dist/scheduler/index.js +9 -0
- package/dist/scheduler/scheduleTime.d.ts +30 -0
- package/dist/scheduler/scheduleTime.js +64 -0
- package/dist/security/Security.d.ts +60 -0
- package/dist/security/Security.js +252 -0
- package/dist/security/SecurityError.d.ts +13 -0
- package/dist/security/SecurityError.js +16 -0
- package/dist/security/contracts/SecurityOptions.d.ts +17 -0
- package/dist/security/contracts/SecurityOptions.js +1 -0
- package/dist/security/contracts/SecurityPayload.d.ts +13 -0
- package/dist/security/contracts/SecurityPayload.js +1 -0
- package/dist/security/contracts/index.d.ts +2 -0
- package/dist/security/contracts/index.js +2 -0
- package/dist/security/ensureAppKey.d.ts +16 -0
- package/dist/security/ensureAppKey.js +69 -0
- package/dist/security/index.d.ts +4 -0
- package/dist/security/index.js +4 -0
- package/dist/serialization/Serializable.d.ts +17 -0
- package/dist/serialization/Serializable.js +1 -0
- package/dist/serialization/SerializationError.d.ts +40 -0
- package/dist/serialization/SerializationError.js +42 -0
- package/dist/serialization/SerializationRegistry.d.ts +76 -0
- package/dist/serialization/SerializationRegistry.js +153 -0
- package/dist/serialization/SerializationRegistryError.d.ts +18 -0
- package/dist/serialization/SerializationRegistryError.js +18 -0
- package/dist/serialization/Serializer.d.ts +37 -0
- package/dist/serialization/Serializer.js +477 -0
- package/dist/serialization/contracts/SerializableClass.d.ts +20 -0
- package/dist/serialization/contracts/SerializableClass.js +1 -0
- package/dist/serialization/contracts/SerializedValue.d.ts +59 -0
- package/dist/serialization/contracts/SerializedValue.js +19 -0
- package/dist/serialization/contracts/SerializerOptions.d.ts +17 -0
- package/dist/serialization/contracts/SerializerOptions.js +1 -0
- package/dist/serialization/contracts/SerializerService.d.ts +26 -0
- package/dist/serialization/contracts/SerializerService.js +1 -0
- package/dist/serialization/contracts/index.d.ts +4 -0
- package/dist/serialization/contracts/index.js +4 -0
- package/dist/serialization/index.d.ts +6 -0
- package/dist/serialization/index.js +6 -0
- package/dist/server/App.d.ts +141 -0
- package/dist/server/App.js +225 -0
- package/dist/server/RequestContext.d.ts +42 -0
- package/dist/server/RequestContext.js +95 -0
- package/dist/server/appContext.d.ts +34 -0
- package/dist/server/appContext.js +42 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +3 -0
- package/dist/ssr/constants.d.ts +6 -0
- package/dist/ssr/constants.js +6 -0
- package/dist/ssr/contracts/DocumentHead.d.ts +32 -0
- package/dist/ssr/contracts/DocumentHead.js +1 -0
- package/dist/ssr/contracts/SsrRenderContext.d.ts +23 -0
- package/dist/ssr/contracts/SsrRenderContext.js +1 -0
- package/dist/ssr/contracts/SsrRenderResult.d.ts +21 -0
- package/dist/ssr/contracts/SsrRenderResult.js +1 -0
- package/dist/ssr/contracts/SsrRenderer.d.ts +9 -0
- package/dist/ssr/contracts/SsrRenderer.js +1 -0
- package/dist/ssr/contracts/SsrRequest.d.ts +16 -0
- package/dist/ssr/contracts/SsrRequest.js +1 -0
- package/dist/ssr/contracts/index.d.ts +5 -0
- package/dist/ssr/contracts/index.js +1 -0
- package/dist/ssr/createSsrRenderContext.d.ts +9 -0
- package/dist/ssr/createSsrRenderContext.js +20 -0
- package/dist/ssr/fastify/contracts/FastifySsrOptions.d.ts +21 -0
- package/dist/ssr/fastify/contracts/FastifySsrOptions.js +1 -0
- package/dist/ssr/fastify/contracts/index.d.ts +1 -0
- package/dist/ssr/fastify/contracts/index.js +1 -0
- package/dist/ssr/fastify/fastifySsr.d.ts +25 -0
- package/dist/ssr/fastify/fastifySsr.js +89 -0
- package/dist/ssr/fastify/index.d.ts +2 -0
- package/dist/ssr/fastify/index.js +1 -0
- package/dist/ssr/index.d.ts +6 -0
- package/dist/ssr/index.js +5 -0
- package/dist/ssr/renderDocumentHead.d.ts +8 -0
- package/dist/ssr/renderDocumentHead.js +62 -0
- package/dist/ssr/renderSsrDocument.d.ts +14 -0
- package/dist/ssr/renderSsrDocument.js +28 -0
- package/dist/ssr/serializeSsrState.d.ts +10 -0
- package/dist/ssr/serializeSsrState.js +18 -0
- package/dist/ssr/vite/contracts/ViteSsrOptions.d.ts +45 -0
- package/dist/ssr/vite/contracts/ViteSsrOptions.js +1 -0
- package/dist/ssr/vite/contracts/index.d.ts +1 -0
- package/dist/ssr/vite/contracts/index.js +1 -0
- package/dist/ssr/vite/fastifyViteSsr.d.ts +24 -0
- package/dist/ssr/vite/fastifyViteSsr.js +213 -0
- package/dist/ssr/vite/index.d.ts +4 -0
- package/dist/ssr/vite/index.js +2 -0
- package/dist/ssr/vite/viteSsrManifest.d.ts +16 -0
- package/dist/ssr/vite/viteSsrManifest.js +63 -0
- package/dist/storage/Storage.d.ts +244 -0
- package/dist/storage/Storage.js +348 -0
- package/dist/storage/contents.d.ts +8 -0
- package/dist/storage/contents.js +18 -0
- package/dist/storage/contracts/StorageListing.d.ts +50 -0
- package/dist/storage/contracts/StorageListing.js +1 -0
- package/dist/storage/contracts/index.d.ts +1 -0
- package/dist/storage/contracts/index.js +1 -0
- package/dist/storage/drivers/FlystorageDisk.d.ts +185 -0
- package/dist/storage/drivers/FlystorageDisk.js +250 -0
- package/dist/storage/drivers/FlystorageListing.d.ts +27 -0
- package/dist/storage/drivers/FlystorageListing.js +69 -0
- package/dist/storage/drivers/LocalStorageDisk.d.ts +25 -0
- package/dist/storage/drivers/LocalStorageDisk.js +38 -0
- package/dist/storage/drivers/S3StorageDisk.d.ts +17 -0
- package/dist/storage/drivers/S3StorageDisk.js +102 -0
- package/dist/storage/drivers/index.d.ts +3 -0
- package/dist/storage/drivers/index.js +3 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/mime.d.ts +7 -0
- package/dist/storage/mime.js +28 -0
- package/dist/storage/path.d.ts +22 -0
- package/dist/storage/path.js +61 -0
- package/dist/storage/types.d.ts +218 -0
- package/dist/storage/types.js +1 -0
- package/dist/url/UrlGenerator.d.ts +32 -0
- package/dist/url/UrlGenerator.js +61 -0
- package/dist/url/contracts/UrlGeneratorOptions.d.ts +13 -0
- package/dist/url/contracts/UrlGeneratorOptions.js +1 -0
- package/dist/url/contracts/index.d.ts +1 -0
- package/dist/url/contracts/index.js +1 -0
- package/dist/url/index.d.ts +2 -0
- package/dist/url/index.js +2 -0
- package/dist/validation/index.d.ts +28 -0
- package/dist/validation/index.js +260 -0
- package/package.json +290 -0
- package/src/ai/AIErrors.ts +46 -0
- package/src/ai/AIFailover.ts +101 -0
- package/src/ai/AIProviders.ts +228 -0
- package/src/ai/AIQuotaDeferredError.ts +26 -0
- package/src/ai/AIRateLimiter.ts +880 -0
- package/src/ai/Agent.ts +3630 -0
- package/src/ai/AgentHistory.ts +576 -0
- package/src/ai/AgentRunJob.ts +65 -0
- package/src/ai/Ai.ts +2176 -0
- package/src/ai/AiConversation.ts +49 -0
- package/src/ai/AiExecutionContext.ts +19 -0
- package/src/ai/AiMessage.ts +131 -0
- package/src/ai/AiRateLimitBucket.ts +163 -0
- package/src/ai/AiRateLimitReservation.ts +117 -0
- package/src/ai/AiRequest.ts +466 -0
- package/src/ai/Estimates.ts +36 -0
- package/src/ai/Models.ts +373 -0
- package/src/ai/OpenAIProviderError.ts +98 -0
- package/src/ai/OpenAIQuotaRetry.ts +183 -0
- package/src/ai/ProviderCosts.ts +156 -0
- package/src/ai/README.md +187 -0
- package/src/ai/ResponsesProviderCall.ts +34 -0
- package/src/ai/agentCitations.ts +186 -0
- package/src/ai/contracts/AI.ts +380 -0
- package/src/ai/contracts/Agent.ts +539 -0
- package/src/ai/contracts/AiRequestRunCostSummary.ts +31 -0
- package/src/ai/contracts/Pricing.ts +95 -0
- package/src/ai/contracts/Providers.ts +73 -0
- package/src/ai/contracts/QuotaRetry.ts +39 -0
- package/src/ai/contracts/RateLimits.ts +49 -0
- package/src/ai/contracts/ResponsesProviderCall.ts +30 -0
- package/src/ai/contracts/index.ts +8 -0
- package/src/ai/examples/Conversation.ts +12 -0
- package/src/ai/examples/HelpAgent.ts +27 -0
- package/src/ai/examples/createHelpImage.ts +13 -0
- package/src/ai/index.ts +27 -0
- package/src/ai/registry.ts +70 -0
- package/src/ai/sdkNodeCompatibility.d.ts +76 -0
- package/src/ai/toolCallRecovery.ts +82 -0
- package/src/ai/toolHelpers.ts +145 -0
- package/src/auth/Auth.ts +1422 -0
- package/src/auth/AuthProvider.ts +251 -0
- package/src/auth/AuthToken.ts +239 -0
- package/src/auth/PasswordResetToken.ts +93 -0
- package/src/auth/README.md +396 -0
- package/src/auth/UserIdentity.ts +112 -0
- package/src/auth/contracts/AuthProviderDriver.ts +114 -0
- package/src/auth/contracts/index.ts +1 -0
- package/src/auth/examples/runPasswordAuth.ts +45 -0
- package/src/auth/index.ts +8 -0
- package/src/auth/passwordHash.ts +160 -0
- package/src/auth/providers/GoogleAuthProvider.ts +470 -0
- package/src/auth/providers/PasswordAuthProvider.ts +256 -0
- package/src/auth/providers/index.ts +3 -0
- package/src/auth/providers/resolveAuthProviders.ts +166 -0
- package/src/cache/Cache.ts +151 -0
- package/src/cache/README.md +137 -0
- package/src/cache/contracts/CacheDriver.ts +11 -0
- package/src/cache/contracts/CacheOperations.ts +28 -0
- package/src/cache/contracts/CacheOptions.ts +56 -0
- package/src/cache/contracts/CacheRepository.ts +62 -0
- package/src/cache/contracts/index.ts +4 -0
- package/src/cache/drivers/CacheManagerDriver.ts +84 -0
- package/src/cache/drivers/createCacheDriver.ts +191 -0
- package/src/cache/examples/runNoteCache.ts +37 -0
- package/src/cache/index.ts +2 -0
- package/src/cli/Cli.ts +110 -0
- package/src/cli/README.md +164 -0
- package/src/cli/commands/repl.ts +29 -0
- package/src/cli/contracts/CliCommand.ts +33 -0
- package/src/cli/contracts/CliConfig.ts +10 -0
- package/src/cli/contracts/CliOptions.ts +13 -0
- package/src/cli/contracts/CommandDefinition.ts +19 -0
- package/src/cli/contracts/ReplOptions.ts +11 -0
- package/src/cli/contracts/index.ts +5 -0
- package/src/cli/defineCommand.ts +25 -0
- package/src/cli/index.ts +5 -0
- package/src/cli/runDb3.ts +63 -0
- package/src/cli/runRepl.ts +55 -0
- package/src/config/Config.ts +110 -0
- package/src/config/README.md +142 -0
- package/src/config/env.ts +164 -0
- package/src/config/examples/loadNotesConfig.ts +29 -0
- package/src/config/examples/runConfig.ts +40 -0
- package/src/config/index.ts +2 -0
- package/src/db/ActiveProjection.ts +311 -0
- package/src/db/ActiveQueryBuilder.ts +831 -0
- package/src/db/ActiveRecord.ts +1317 -0
- package/src/db/Database.ts +1283 -0
- package/src/db/FieldType.ts +1243 -0
- package/src/db/README.md +508 -0
- package/src/db/SoftDeletes.ts +158 -0
- package/src/db/commands/check.ts +10 -0
- package/src/db/commands/index.ts +19 -0
- package/src/db/commands/makeMigration.ts +11 -0
- package/src/db/commands/migrate.ts +10 -0
- package/src/db/connection.ts +68 -0
- package/src/db/contracts/ActiveRecordDefinition.ts +69 -0
- package/src/db/contracts/DatabaseBackup.ts +7 -0
- package/src/db/contracts/DatabaseMigrationsConfig.ts +10 -0
- package/src/db/contracts/index.ts +3 -0
- package/src/db/dialects/columnTypes.ts +103 -0
- package/src/db/dialects/index.ts +6 -0
- package/src/db/dialects/mariadb.ts +51 -0
- package/src/db/dialects/mysql.ts +277 -0
- package/src/db/dialects/postgres.ts +143 -0
- package/src/db/dialects/resolveDialect.ts +88 -0
- package/src/db/dialects/types.ts +59 -0
- package/src/db/errors.ts +22 -0
- package/src/db/examples/DefinedUser.ts +20 -0
- package/src/db/examples/FieldNote.ts +27 -0
- package/src/db/examples/KnowledgeNote.ts +29 -0
- package/src/db/examples/NoteCodeField.ts +9 -0
- package/src/db/examples/createNotesTogether.ts +24 -0
- package/src/db/examples/outputs/workspace-notes.json +9 -0
- package/src/db/examples/runFieldNotes.ts +51 -0
- package/src/db/examples/runNoteMigrations.ts +64 -0
- package/src/db/examples/runWorkspaceNotes.ts +86 -0
- package/src/db/examples/workspaceNotes.ts +57 -0
- package/src/db/fields/BooleanField.ts +128 -0
- package/src/db/fields/CharUuidField.ts +91 -0
- package/src/db/fields/ChoiceStringField.ts +97 -0
- package/src/db/fields/DecimalField.ts +157 -0
- package/src/db/fields/EmailField.ts +79 -0
- package/src/db/fields/EncryptedJsonField.ts +211 -0
- package/src/db/fields/IntegerField.ts +200 -0
- package/src/db/fields/JsonField.ts +108 -0
- package/src/db/fields/JsonStringField.ts +63 -0
- package/src/db/fields/LinkField.ts +502 -0
- package/src/db/fields/PasswordField.ts +294 -0
- package/src/db/fields/StringField.ts +154 -0
- package/src/db/fields/StringListField.ts +179 -0
- package/src/db/fields/TextField.ts +71 -0
- package/src/db/fields/TimestampField.ts +164 -0
- package/src/db/fields/UlidField.ts +189 -0
- package/src/db/fields/UrlField.ts +97 -0
- package/src/db/fields/VectorField.ts +266 -0
- package/src/db/fields/createField.ts +22 -0
- package/src/db/fields/field.ts +209 -0
- package/src/db/fields/index.ts +76 -0
- package/src/db/fields/resolveFields.ts +69 -0
- package/src/db/index.ts +13 -0
- package/src/db/migrations/DatabaseMigrationManager.ts +756 -0
- package/src/db/migrations/DatabaseSchemaInspector.ts +541 -0
- package/src/db/migrations/KnexMigrationRenderer.ts +490 -0
- package/src/db/migrations/ModelSchemaCollector.ts +240 -0
- package/src/db/migrations/SchemaDiffer.ts +541 -0
- package/src/db/migrations/SchemaNames.ts +62 -0
- package/src/db/migrations/SchemaSnapshotSerializer.ts +59 -0
- package/src/db/migrations/contracts/DatabaseMigration.ts +143 -0
- package/src/db/migrations/contracts/SchemaChange.ts +113 -0
- package/src/db/migrations/contracts/SchemaSnapshot.ts +122 -0
- package/src/db/migrations/contracts/index.ts +3 -0
- package/src/db/migrations/errors.ts +45 -0
- package/src/db/migrations/index.ts +10 -0
- package/src/db/migrations/promoteDestructiveSchemaChanges.ts +120 -0
- package/src/db/queryMonitor.ts +549 -0
- package/src/db/sqlErrors.ts +36 -0
- package/src/db/test/db.ts +159 -0
- package/src/devtools/HttpEventDispatcher.ts +214 -0
- package/src/devtools/contracts/DevtoolsEventDispatcher.ts +57 -0
- package/src/devtools/contracts/index.ts +1 -0
- package/src/devtools/environment.ts +18 -0
- package/src/devtools/index.ts +3 -0
- package/src/events/Events.ts +165 -0
- package/src/events/README.md +106 -0
- package/src/events/contracts/EventConstructor.ts +12 -0
- package/src/events/contracts/EventListener.ts +8 -0
- package/src/events/contracts/EventUnsubscribe.ts +4 -0
- package/src/events/contracts/index.ts +3 -0
- package/src/events/examples/NoteSaved.ts +9 -0
- package/src/events/examples/runNoteEvents.ts +31 -0
- package/src/events/index.ts +2 -0
- package/src/flows/FlowBlockRegistry.ts +79 -0
- package/src/flows/FlowCompiler.ts +624 -0
- package/src/flows/FlowDefinitionError.ts +24 -0
- package/src/flows/FlowStepJob.ts +54 -0
- package/src/flows/FlowValueValidator.ts +120 -0
- package/src/flows/Flows.ts +1118 -0
- package/src/flows/README.md +144 -0
- package/src/flows/blocks/FlowInput.ts +32 -0
- package/src/flows/blocks/FlowOutput.ts +32 -0
- package/src/flows/blocks/Subflow.ts +24 -0
- package/src/flows/blocks/index.ts +11 -0
- package/src/flows/constants.ts +62 -0
- package/src/flows/contracts/FlowBlock.ts +73 -0
- package/src/flows/contracts/FlowCompiler.ts +32 -0
- package/src/flows/contracts/FlowDefinition.ts +126 -0
- package/src/flows/contracts/FlowDefinitionStore.ts +52 -0
- package/src/flows/contracts/FlowRun.ts +44 -0
- package/src/flows/contracts/FlowValue.ts +54 -0
- package/src/flows/contracts/FlowsService.ts +39 -0
- package/src/flows/contracts/index.ts +7 -0
- package/src/flows/defineBlock.ts +25 -0
- package/src/flows/drivers/FileFlowDefinitionStore.ts +372 -0
- package/src/flows/drivers/index.ts +1 -0
- package/src/flows/errors.ts +22 -0
- package/src/flows/examples/FlowExampleApp.ts +15 -0
- package/src/flows/examples/createTextFlow.ts +14 -0
- package/src/flows/examples/normalizeTextBlock.ts +15 -0
- package/src/flows/examples/runTextFlow.ts +46 -0
- package/src/flows/examples/uppercaseTextBlock.ts +11 -0
- package/src/flows/index.ts +13 -0
- package/src/flows/models/FlowRun.ts +164 -0
- package/src/flows/models/FlowRunEvent.ts +108 -0
- package/src/flows/models/FlowStepRun.ts +176 -0
- package/src/flows/models/index.ts +16 -0
- package/src/index.ts +40 -0
- package/src/logging/Log.ts +100 -0
- package/src/logging/README.md +139 -0
- package/src/logging/contracts/HttpExchange.ts +53 -0
- package/src/logging/contracts/Logger.ts +45 -0
- package/src/logging/contracts/LoggerDriver.ts +19 -0
- package/src/logging/contracts/LoggingOptions.ts +51 -0
- package/src/logging/contracts/index.ts +4 -0
- package/src/logging/drivers/PinoLoggerDriver.ts +376 -0
- package/src/logging/drivers/index.ts +1 -0
- package/src/logging/examples/runNoteLogs.ts +38 -0
- package/src/logging/index.ts +3 -0
- package/src/logging/transports/DevtoolsLogTransport.ts +142 -0
- package/src/mail/Mail.ts +188 -0
- package/src/mail/README.md +206 -0
- package/src/mail/examples/runMailPreview.ts +44 -0
- package/src/mail/examples/welcomeMessage.ts +26 -0
- package/src/mail/index.ts +4 -0
- package/src/mail/transports/FileMailTransport.ts +58 -0
- package/src/mail/transports/MailgunTransport.ts +85 -0
- package/src/mail/transports/ResendTransport.ts +80 -0
- package/src/media/MediaFile.ts +132 -0
- package/src/media/MediaItem.ts +132 -0
- package/src/media/MediaLibrary.ts +117 -0
- package/src/media/MediaManager.ts +874 -0
- package/src/media/README.md +358 -0
- package/src/media/constants.ts +31 -0
- package/src/media/contracts/MediaOptions.ts +9 -0
- package/src/media/contracts/index.ts +1 -0
- package/src/media/examples/createPrivateFileServer.ts +55 -0
- package/src/media/examples/runPrivateFiles.ts +45 -0
- package/src/media/examples/runProjectMedia.ts +46 -0
- package/src/media/image/ImageReconstructionError.ts +18 -0
- package/src/media/image/ImageVariantRenderer.ts +386 -0
- package/src/media/image/ImageVariantRequest.ts +65 -0
- package/src/media/image/contracts/ImageProcessor.ts +53 -0
- package/src/media/image/contracts/ImageVariant.ts +37 -0
- package/src/media/image/contracts/ImageVariantCacheOptions.ts +21 -0
- package/src/media/image/contracts/index.ts +3 -0
- package/src/media/image/index.ts +5 -0
- package/src/media/image/processors/SharpImageProcessor.ts +121 -0
- package/src/media/image/processors/index.ts +1 -0
- package/src/media/index.ts +8 -0
- package/src/media/types.ts +168 -0
- package/src/queue/FailedJob.ts +58 -0
- package/src/queue/Queue.ts +938 -0
- package/src/queue/QueueEvents.ts +57 -0
- package/src/queue/QueueRetryLaterError.ts +40 -0
- package/src/queue/QueueWorker.ts +296 -0
- package/src/queue/QueueableJob.ts +167 -0
- package/src/queue/QueuedJob.ts +69 -0
- package/src/queue/README.md +368 -0
- package/src/queue/RetryPolicy.ts +129 -0
- package/src/queue/commands/index.ts +13 -0
- package/src/queue/commands/makeJob.ts +11 -0
- package/src/queue/console.ts +518 -0
- package/src/queue/contracts/CreateJob.ts +13 -0
- package/src/queue/contracts/QueueDriver.ts +135 -0
- package/src/queue/contracts/QueueEvents.ts +77 -0
- package/src/queue/contracts/QueuePayload.ts +150 -0
- package/src/queue/contracts/QueueRetry.ts +47 -0
- package/src/queue/contracts/QueueService.ts +219 -0
- package/src/queue/contracts/QueueWorkerLifecycle.ts +71 -0
- package/src/queue/contracts/QueueableJob.ts +56 -0
- package/src/queue/contracts/RedisQueueDriver.ts +37 -0
- package/src/queue/contracts/index.ts +9 -0
- package/src/queue/createJob.ts +54 -0
- package/src/queue/drivers/DatabaseQueueDriver.ts +449 -0
- package/src/queue/drivers/RedisQueueDriver.ts +733 -0
- package/src/queue/examples/DeferredReportJob.ts +25 -0
- package/src/queue/examples/GenerateReportJob.ts +37 -0
- package/src/queue/examples/WriteReportJob.ts +37 -0
- package/src/queue/examples/createAndProcessReportJob.ts +29 -0
- package/src/queue/examples/dispatchReportWorkflows.ts +40 -0
- package/src/queue/examples/manageReportRetries.ts +47 -0
- package/src/queue/examples/outputs/create-and-process-report-job.json +6 -0
- package/src/queue/examples/outputs/dispatch-report-workflows.json +14 -0
- package/src/queue/examples/outputs/manage-report-retries.json +24 -0
- package/src/queue/examples/outputs/queue-reports.json +11 -0
- package/src/queue/examples/reportConsole.ts +47 -0
- package/src/queue/examples/runBackpressure.ts +27 -0
- package/src/queue/examples/runQueueReports.ts +80 -0
- package/src/queue/examples/runQueueWorkflows.ts +43 -0
- package/src/queue/index.ts +13 -0
- package/src/queue/queueMonitor.ts +368 -0
- package/src/scheduler/README.md +139 -0
- package/src/scheduler/ScheduledCall.ts +36 -0
- package/src/scheduler/ScheduledEvent.ts +149 -0
- package/src/scheduler/ScheduledJob.ts +58 -0
- package/src/scheduler/ScheduledOccurrence.ts +250 -0
- package/src/scheduler/ScheduledOccurrenceRecorder.ts +125 -0
- package/src/scheduler/Scheduler.ts +225 -0
- package/src/scheduler/SchedulerWorker.ts +151 -0
- package/src/scheduler/console.ts +368 -0
- package/src/scheduler/constants.ts +27 -0
- package/src/scheduler/contracts/Scheduler.ts +123 -0
- package/src/scheduler/contracts/SchedulerConsole.ts +40 -0
- package/src/scheduler/contracts/SchedulerWorker.ts +23 -0
- package/src/scheduler/contracts/index.ts +3 -0
- package/src/scheduler/examples/RecoverableSummaryJob.ts +18 -0
- package/src/scheduler/examples/WriteDailySummaryJob.ts +17 -0
- package/src/scheduler/examples/registerDailySummary.ts +13 -0
- package/src/scheduler/examples/runDailySummary.ts +46 -0
- package/src/scheduler/examples/runScheduledReplay.ts +60 -0
- package/src/scheduler/index.ts +9 -0
- package/src/scheduler/scheduleTime.ts +78 -0
- package/src/security/README.md +130 -0
- package/src/security/Security.ts +346 -0
- package/src/security/SecurityError.ts +16 -0
- package/src/security/contracts/SecurityOptions.ts +20 -0
- package/src/security/contracts/SecurityPayload.ts +14 -0
- package/src/security/contracts/index.ts +2 -0
- package/src/security/ensureAppKey.ts +82 -0
- package/src/security/examples/runSecretRoundTrip.ts +42 -0
- package/src/security/index.ts +4 -0
- package/src/serialization/README.md +169 -0
- package/src/serialization/Serializable.ts +17 -0
- package/src/serialization/SerializationError.ts +91 -0
- package/src/serialization/SerializationRegistry.ts +208 -0
- package/src/serialization/SerializationRegistryError.ts +24 -0
- package/src/serialization/Serializer.ts +793 -0
- package/src/serialization/contracts/SerializableClass.ts +26 -0
- package/src/serialization/contracts/SerializedValue.ts +71 -0
- package/src/serialization/contracts/SerializerOptions.ts +19 -0
- package/src/serialization/contracts/SerializerService.ts +29 -0
- package/src/serialization/contracts/index.ts +4 -0
- package/src/serialization/examples/ExportRequest.ts +25 -0
- package/src/serialization/examples/runExportSerialization.ts +24 -0
- package/src/serialization/index.ts +6 -0
- package/src/server/App.ts +326 -0
- package/src/server/README.md +219 -0
- package/src/server/RequestContext.ts +122 -0
- package/src/server/appContext.ts +59 -0
- package/src/server/examples/createFirstServer.ts +25 -0
- package/src/server/examples/startFirstServer.ts +19 -0
- package/src/server/index.ts +16 -0
- package/src/ssr/README.md +158 -0
- package/src/ssr/constants.ts +8 -0
- package/src/ssr/contracts/DocumentHead.ts +35 -0
- package/src/ssr/contracts/SsrRenderContext.ts +25 -0
- package/src/ssr/contracts/SsrRenderResult.ts +23 -0
- package/src/ssr/contracts/SsrRenderer.ts +12 -0
- package/src/ssr/contracts/SsrRequest.ts +17 -0
- package/src/ssr/contracts/index.ts +19 -0
- package/src/ssr/createSsrRenderContext.ts +25 -0
- package/src/ssr/examples/createPublicPageServer.ts +32 -0
- package/src/ssr/examples/runPublicPages.ts +25 -0
- package/src/ssr/fastify/contracts/FastifySsrOptions.ts +24 -0
- package/src/ssr/fastify/contracts/index.ts +5 -0
- package/src/ssr/fastify/fastifySsr.ts +110 -0
- package/src/ssr/fastify/index.ts +2 -0
- package/src/ssr/index.ts +10 -0
- package/src/ssr/renderDocumentHead.ts +72 -0
- package/src/ssr/renderSsrDocument.ts +35 -0
- package/src/ssr/serializeSsrState.ts +19 -0
- package/src/ssr/vite/contracts/ViteSsrOptions.ts +52 -0
- package/src/ssr/vite/contracts/index.ts +6 -0
- package/src/ssr/vite/fastifyViteSsr.ts +279 -0
- package/src/ssr/vite/index.ts +4 -0
- package/src/ssr/vite/viteSsrManifest.ts +92 -0
- package/src/storage/README.md +310 -0
- package/src/storage/Storage.ts +392 -0
- package/src/storage/contents.ts +23 -0
- package/src/storage/contracts/StorageListing.ts +55 -0
- package/src/storage/contracts/index.ts +1 -0
- package/src/storage/drivers/FlystorageDisk.ts +295 -0
- package/src/storage/drivers/FlystorageListing.ts +78 -0
- package/src/storage/drivers/LocalStorageDisk.ts +45 -0
- package/src/storage/drivers/S3StorageDisk.ts +114 -0
- package/src/storage/drivers/index.ts +3 -0
- package/src/storage/examples/runStorage.ts +37 -0
- package/src/storage/examples/runStreamExport.ts +41 -0
- package/src/storage/examples/writeCsvExport.ts +45 -0
- package/src/storage/index.ts +7 -0
- package/src/storage/mime.ts +30 -0
- package/src/storage/path.ts +76 -0
- package/src/storage/types.ts +251 -0
- package/src/url/README.md +41 -0
- package/src/url/UrlGenerator.ts +72 -0
- package/src/url/contracts/UrlGeneratorOptions.ts +14 -0
- package/src/url/contracts/index.ts +1 -0
- package/src/url/examples/runApplicationLinks.ts +33 -0
- package/src/url/index.ts +2 -0
- package/src/validation/README.md +433 -0
- package/src/validation/examples/runNoteValidation.ts +18 -0
- package/src/validation/examples/validateNoteInput.ts +31 -0
- package/src/validation/index.ts +398 -0
- package/templates/AGENTS.md +15 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BasicFieldState, FieldContext, FieldError } from '../FieldType.js';
|
|
2
|
+
import type { ValidationRule } from '../../validation/index.js';
|
|
3
|
+
import { TextField, type TextFieldConfig } from './TextField.js';
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for URL fields.
|
|
6
|
+
*/
|
|
7
|
+
export interface UrlFieldConfig extends TextFieldConfig {
|
|
8
|
+
/** Allowed URL protocols. Defaults to HTTP and HTTPS. */
|
|
9
|
+
allowedProtocols?: string[];
|
|
10
|
+
/** Whether the hostname must contain a dot. Defaults to true. */
|
|
11
|
+
requirePublicHostname?: boolean;
|
|
12
|
+
/** Protocol to prepend when users omit one. Defaults to `https://`. */
|
|
13
|
+
defaultProtocol?: 'http://' | 'https://';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* URL field with request-friendly normalization.
|
|
17
|
+
*
|
|
18
|
+
* It accepts values with or without a protocol, trims whitespace, normalises via
|
|
19
|
+
* the platform URL parser, and returns `null` for values that cannot be saved as
|
|
20
|
+
* public URLs.
|
|
21
|
+
*/
|
|
22
|
+
export declare class UrlField extends TextField {
|
|
23
|
+
readonly config: UrlFieldConfig;
|
|
24
|
+
constructor(config?: UrlFieldConfig);
|
|
25
|
+
protected parse(input: unknown): string | null;
|
|
26
|
+
protected defaultFormComponent(): string;
|
|
27
|
+
getValidationRules(ctx?: FieldContext): ValidationRule[];
|
|
28
|
+
protected collectErrors(state: BasicFieldState<string | null>): Promise<FieldError[]>;
|
|
29
|
+
private normalizeUrl;
|
|
30
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { TextField, } from './TextField.js';
|
|
2
|
+
/**
|
|
3
|
+
* URL field with request-friendly normalization.
|
|
4
|
+
*
|
|
5
|
+
* It accepts values with or without a protocol, trims whitespace, normalises via
|
|
6
|
+
* the platform URL parser, and returns `null` for values that cannot be saved as
|
|
7
|
+
* public URLs.
|
|
8
|
+
*/
|
|
9
|
+
export class UrlField extends TextField {
|
|
10
|
+
constructor(config = {}) {
|
|
11
|
+
super({
|
|
12
|
+
maxLength: 2000,
|
|
13
|
+
...config,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
parse(input) {
|
|
17
|
+
const value = super.parse(input);
|
|
18
|
+
if (!value)
|
|
19
|
+
return null;
|
|
20
|
+
return this.normalizeUrl(value);
|
|
21
|
+
}
|
|
22
|
+
defaultFormComponent() {
|
|
23
|
+
return 'DomUrlInput';
|
|
24
|
+
}
|
|
25
|
+
getValidationRules(ctx) {
|
|
26
|
+
return [
|
|
27
|
+
...super.getValidationRules(ctx),
|
|
28
|
+
'url',
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
async collectErrors(state) {
|
|
32
|
+
const errors = await super.collectErrors(state);
|
|
33
|
+
const value = state.value;
|
|
34
|
+
if (value && !this.normalizeUrl(value)) {
|
|
35
|
+
errors.push({
|
|
36
|
+
field: this.fieldName,
|
|
37
|
+
message: `${this.fieldName} must be a valid URL`,
|
|
38
|
+
code: 'url',
|
|
39
|
+
value,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return errors;
|
|
43
|
+
}
|
|
44
|
+
normalizeUrl(value) {
|
|
45
|
+
const candidate = /^[a-z][a-z\d+.-]*:\/\//i.test(value)
|
|
46
|
+
? value
|
|
47
|
+
: `${this.config.defaultProtocol ?? 'https://'}${value}`;
|
|
48
|
+
try {
|
|
49
|
+
const url = new URL(candidate);
|
|
50
|
+
const allowedProtocols = this.config.allowedProtocols ?? ['http:', 'https:'];
|
|
51
|
+
if (!allowedProtocols.includes(url.protocol))
|
|
52
|
+
return null;
|
|
53
|
+
if ((this.config.requirePublicHostname ?? true) && !url.hostname.includes('.'))
|
|
54
|
+
return null;
|
|
55
|
+
return url.toString();
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ValidationRule } from '../../validation/index.js';
|
|
2
|
+
import { type BasicFieldState, type DbSchemaPart, type FieldConfig, type FieldContext, type FieldError, type FieldRenderOptions, FieldType } from '../FieldType.js';
|
|
3
|
+
import type { DatabaseValueOptions } from '../dialects/index.js';
|
|
4
|
+
type VectorDbValue = Uint8Array | string | number[] | null;
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for native database vectors such as embeddings.
|
|
7
|
+
*/
|
|
8
|
+
export interface VectorFieldConfig extends FieldConfig {
|
|
9
|
+
/** Expected number of vector dimensions. Leave unset to use the database default. */
|
|
10
|
+
dimensions?: number;
|
|
11
|
+
/** Whether to create a database-native vector index. Defaults to true for required vectors. */
|
|
12
|
+
index?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Stores an embedding/vector as a native database VECTOR column.
|
|
16
|
+
*/
|
|
17
|
+
export declare class VectorField extends FieldType<number[] | null, unknown, number[] | null, unknown, BasicFieldState<number[] | null>> {
|
|
18
|
+
readonly config: VectorFieldConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a native vector field and validates schema-level options.
|
|
21
|
+
*/
|
|
22
|
+
constructor(config?: VectorFieldConfig);
|
|
23
|
+
/**
|
|
24
|
+
* Parses JSON text, decoded arrays, or binary vector input into app memory.
|
|
25
|
+
*/
|
|
26
|
+
protected parse(input: unknown): number[] | null;
|
|
27
|
+
/**
|
|
28
|
+
* Hydrates binary vectors, vector text, or already-decoded arrays.
|
|
29
|
+
*/
|
|
30
|
+
protected fromDbValue(input: VectorDbValue): number[] | null;
|
|
31
|
+
/**
|
|
32
|
+
* Converts app-memory vectors into the active dialect's native vector value.
|
|
33
|
+
*/
|
|
34
|
+
protected toDbValue(input: number[] | null, options?: DatabaseValueOptions): unknown;
|
|
35
|
+
/**
|
|
36
|
+
* Uses a JSON editor for manual vector editing in generated forms.
|
|
37
|
+
*/
|
|
38
|
+
protected defaultFormComponent(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Disables default scalar search filtering for vector fields.
|
|
41
|
+
*/
|
|
42
|
+
protected defaultSearchFilterComponent(): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Adds dimension metadata to generated vector form props.
|
|
45
|
+
*/
|
|
46
|
+
protected defaultFormComponentProps(options: FieldRenderOptions): Record<string, unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Publishes request validation rules for array-shaped vector input.
|
|
49
|
+
*/
|
|
50
|
+
getValidationRules(ctx?: FieldContext): ValidationRule[];
|
|
51
|
+
/**
|
|
52
|
+
* Describes the native VECTOR column used by this field.
|
|
53
|
+
*/
|
|
54
|
+
getDbSchema(ctx?: FieldContext): DbSchemaPart;
|
|
55
|
+
/**
|
|
56
|
+
* Reports non-array, non-number, and dimension mismatch errors.
|
|
57
|
+
*/
|
|
58
|
+
protected collectErrors(state: BasicFieldState<number[] | null>): Promise<FieldError[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Treats an empty vector as empty for required validation.
|
|
61
|
+
*/
|
|
62
|
+
protected isEmpty(value: unknown): boolean;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { FieldType, } from '../FieldType.js';
|
|
2
|
+
import { resolveDatabaseDialect } from '../dialects/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Stores an embedding/vector as a native database VECTOR column.
|
|
5
|
+
*/
|
|
6
|
+
export class VectorField extends FieldType {
|
|
7
|
+
/**
|
|
8
|
+
* Creates a native vector field and validates schema-level options.
|
|
9
|
+
*/
|
|
10
|
+
constructor(config = {}) {
|
|
11
|
+
const resolvedConfig = {
|
|
12
|
+
selectedByDefault: false,
|
|
13
|
+
index: config.index ?? Boolean(config.required),
|
|
14
|
+
...config,
|
|
15
|
+
};
|
|
16
|
+
super(resolvedConfig);
|
|
17
|
+
validateVectorConfig(resolvedConfig, resolveDatabaseDialect().vectorMaxDimensions);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parses JSON text, decoded arrays, or binary vector input into app memory.
|
|
21
|
+
*/
|
|
22
|
+
parse(input) {
|
|
23
|
+
if (input === null || input === undefined || input === '') {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return resolveDatabaseDialect().vectorFromDbValue(input);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Hydrates binary vectors, vector text, or already-decoded arrays.
|
|
30
|
+
*/
|
|
31
|
+
fromDbValue(input) {
|
|
32
|
+
return this.parse(input);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Converts app-memory vectors into the active dialect's native vector value.
|
|
36
|
+
*/
|
|
37
|
+
toDbValue(input, options) {
|
|
38
|
+
if (input === null || input === undefined) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const dialect = options?.dialect ?? resolveDatabaseDialect();
|
|
42
|
+
return dialect.vectorToDbValue(input, options?.db);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Uses a JSON editor for manual vector editing in generated forms.
|
|
46
|
+
*/
|
|
47
|
+
defaultFormComponent() {
|
|
48
|
+
return 'DomJsonInput';
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Disables default scalar search filtering for vector fields.
|
|
52
|
+
*/
|
|
53
|
+
defaultSearchFilterComponent() {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Adds dimension metadata to generated vector form props.
|
|
58
|
+
*/
|
|
59
|
+
defaultFormComponentProps(options) {
|
|
60
|
+
const props = super.defaultFormComponentProps(options);
|
|
61
|
+
if (this.config.dimensions !== undefined) {
|
|
62
|
+
props.dimensions = this.config.dimensions;
|
|
63
|
+
}
|
|
64
|
+
return props;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Publishes request validation rules for array-shaped vector input.
|
|
68
|
+
*/
|
|
69
|
+
getValidationRules(ctx) {
|
|
70
|
+
const rules = super.getValidationRules(ctx);
|
|
71
|
+
rules.push('array');
|
|
72
|
+
return rules;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Describes the native VECTOR column used by this field.
|
|
76
|
+
*/
|
|
77
|
+
getDbSchema(ctx) {
|
|
78
|
+
return this.withContext(ctx, () => {
|
|
79
|
+
const dialect = this.schemaDialect();
|
|
80
|
+
validateVectorConfig(this.config, dialect.vectorMaxDimensions);
|
|
81
|
+
return this.completeDbSchema({
|
|
82
|
+
columns: [
|
|
83
|
+
{
|
|
84
|
+
name: this.column,
|
|
85
|
+
type: dialect.vectorColumnType(this.config.dimensions),
|
|
86
|
+
nullable: !this.config.required,
|
|
87
|
+
},
|
|
88
|
+
],
|
|
89
|
+
indexes: vectorSchemaIndexes(this.column, this.config, dialect),
|
|
90
|
+
}, ctx);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Reports non-array, non-number, and dimension mismatch errors.
|
|
95
|
+
*/
|
|
96
|
+
async collectErrors(state) {
|
|
97
|
+
const errors = await super.collectErrors(state);
|
|
98
|
+
const value = state.value;
|
|
99
|
+
if (this.isEmpty(value)) {
|
|
100
|
+
return errors;
|
|
101
|
+
}
|
|
102
|
+
if (!Array.isArray(value)) {
|
|
103
|
+
errors.push({
|
|
104
|
+
field: this.fieldName,
|
|
105
|
+
message: `${this.fieldName} must be an array of numbers`,
|
|
106
|
+
code: 'array',
|
|
107
|
+
value,
|
|
108
|
+
});
|
|
109
|
+
return errors;
|
|
110
|
+
}
|
|
111
|
+
const invalidIndex = value.findIndex(item => (typeof item !== 'number' || !Number.isFinite(item)));
|
|
112
|
+
if (invalidIndex !== -1) {
|
|
113
|
+
errors.push({
|
|
114
|
+
field: this.fieldName,
|
|
115
|
+
message: `${this.fieldName} must contain only finite numbers`,
|
|
116
|
+
code: 'numberArray',
|
|
117
|
+
value,
|
|
118
|
+
details: {
|
|
119
|
+
invalidIndex,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (this.config.dimensions !== undefined
|
|
124
|
+
&& value.length !== this.config.dimensions) {
|
|
125
|
+
errors.push({
|
|
126
|
+
field: this.fieldName,
|
|
127
|
+
message: `${this.fieldName} must contain ${this.config.dimensions} numbers`,
|
|
128
|
+
code: 'dimensions',
|
|
129
|
+
value,
|
|
130
|
+
details: {
|
|
131
|
+
dimensions: this.config.dimensions,
|
|
132
|
+
actual: value.length,
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return errors;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Treats an empty vector as empty for required validation.
|
|
140
|
+
*/
|
|
141
|
+
isEmpty(value) {
|
|
142
|
+
return super.isEmpty(value) || (Array.isArray(value) && value.length === 0);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Validates configuration that native VECTOR columns cannot support.
|
|
147
|
+
*/
|
|
148
|
+
function validateVectorConfig(config, maxDimensions) {
|
|
149
|
+
if (config.dimensions !== undefined
|
|
150
|
+
&& (!Number.isInteger(config.dimensions)
|
|
151
|
+
|| config.dimensions <= 0
|
|
152
|
+
|| config.dimensions > maxDimensions)) {
|
|
153
|
+
throw new Error(`VectorField dimensions must be an integer between 1 and ${maxDimensions}.`);
|
|
154
|
+
}
|
|
155
|
+
if (config.primary || config.unique || (config.indexes?.length ?? 0) > 0) {
|
|
156
|
+
throw new Error('VECTOR columns cannot be primary, unique, or custom normal indexed keys.');
|
|
157
|
+
}
|
|
158
|
+
if (config.index && !config.required) {
|
|
159
|
+
throw new Error('VECTOR indexes require required: true because MariaDB vector indexes cannot include nullable columns.');
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Builds the native vector index metadata for dialects that support it.
|
|
164
|
+
*
|
|
165
|
+
* @param column - Database column that stores the vector.
|
|
166
|
+
* @param config - Vector field configuration.
|
|
167
|
+
* @param dialect - Active database dialect.
|
|
168
|
+
* @returns Vector index schema metadata, or undefined when disabled/unsupported.
|
|
169
|
+
*/
|
|
170
|
+
function vectorSchemaIndexes(column, config, dialect) {
|
|
171
|
+
if (!config.index || !dialect.supportsVectorIndexes)
|
|
172
|
+
return undefined;
|
|
173
|
+
return [
|
|
174
|
+
{
|
|
175
|
+
type: 'vector',
|
|
176
|
+
columns: [column],
|
|
177
|
+
name: config.indexName,
|
|
178
|
+
},
|
|
179
|
+
];
|
|
180
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FieldType, } from '../FieldType.js';
|
|
2
|
+
export function createField(input) {
|
|
3
|
+
if (typeof input === 'function') {
|
|
4
|
+
return new input();
|
|
5
|
+
}
|
|
6
|
+
if (input instanceof FieldType) {
|
|
7
|
+
return input.clone();
|
|
8
|
+
}
|
|
9
|
+
if (input && typeof input === 'object' && 'type' in input) {
|
|
10
|
+
return new input.type(input.config);
|
|
11
|
+
}
|
|
12
|
+
throw new Error('Invalid field definition.');
|
|
13
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { ActiveRecord, ActiveRecordClass } from '../ActiveRecord.js';
|
|
2
|
+
import { EncryptedJsonField, type EncryptedJsonFieldConfig } from './EncryptedJsonField.js';
|
|
3
|
+
import { BooleanField, type BooleanFieldConfig, BigIncrementsField, CharUuidField, type CharUuidFieldConfig, ChoiceStringField, type ChoiceStringFieldConfig, DecimalField, type DecimalFieldConfig, EmailField, type EmailFieldConfig, JsonField, type JsonFieldConfig, JsonStringField, type JsonStringFieldConfig, IntegerField, type IntegerFieldConfig, LinkField, type LinkFieldConfig, PasswordField, type PasswordFieldConfig, StringListField, type StringListFieldConfig, StringField, type StringFieldConfig, TextField, type TextFieldConfig, TimestampField, type TimestampFieldConfig, UlidField, type UlidFieldConfig, UrlField, type UrlFieldConfig, VectorField, type VectorFieldConfig } from './index.js';
|
|
4
|
+
export { createField } from './createField.js';
|
|
5
|
+
export interface FieldBuilder {
|
|
6
|
+
bigIncrements(config?: IntegerFieldConfig): BigIncrementsField;
|
|
7
|
+
boolean(config?: BooleanFieldConfig): BooleanField;
|
|
8
|
+
charUuid(config?: CharUuidFieldConfig): CharUuidField;
|
|
9
|
+
choice(config: ChoiceStringFieldConfig): ChoiceStringField;
|
|
10
|
+
decimal(config?: DecimalFieldConfig): DecimalField;
|
|
11
|
+
email(config?: EmailFieldConfig): EmailField;
|
|
12
|
+
/** Creates authenticated encrypted JSON stored in a non-queryable long text column. */
|
|
13
|
+
encryptedJson<TValue>(config?: EncryptedJsonFieldConfig): EncryptedJsonField<TValue>;
|
|
14
|
+
/** Creates a permissive JSON field for arbitrary JSON-compatible values. */
|
|
15
|
+
json<TValue>(config?: JsonFieldConfig): JsonField<TValue | null>;
|
|
16
|
+
/** Creates a backwards-compatible JSON field that serializes values for storage. */
|
|
17
|
+
jsonString<TValue>(config?: JsonStringFieldConfig): JsonStringField<TValue>;
|
|
18
|
+
/** Creates a JSON field serializes into a `text` column. */
|
|
19
|
+
jsonText<TValue>(config?: JsonStringFieldConfig): JsonStringField<TValue>;
|
|
20
|
+
/** Creates a JSON field serializes into a `longtext` column. */
|
|
21
|
+
jsonLongText<TValue>(config?: JsonStringFieldConfig): JsonStringField<TValue>;
|
|
22
|
+
integer(config?: IntegerFieldConfig): IntegerField;
|
|
23
|
+
link<TRecord extends ActiveRecord>(target: () => ActiveRecordClass<TRecord>, config?: Omit<LinkFieldConfig<TRecord>, 'target'>): LinkField<TRecord>;
|
|
24
|
+
/** Creates a JSON-backed list of normalized strings. */
|
|
25
|
+
stringList(config?: StringListFieldConfig): StringListField;
|
|
26
|
+
password(config: PasswordFieldConfig): PasswordField;
|
|
27
|
+
string(config?: StringFieldConfig): StringField;
|
|
28
|
+
text(config?: TextFieldConfig): TextField;
|
|
29
|
+
longText(config?: TextFieldConfig): TextField;
|
|
30
|
+
timestamp(config?: TimestampFieldConfig): TimestampField;
|
|
31
|
+
ulid(config?: UlidFieldConfig): UlidField;
|
|
32
|
+
url(config?: UrlFieldConfig): UrlField;
|
|
33
|
+
/** Creates a native numeric vector field for embeddings. */
|
|
34
|
+
vector(config?: VectorFieldConfig): VectorField;
|
|
35
|
+
}
|
|
36
|
+
export declare const field: FieldBuilder;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { EncryptedJsonField } from './EncryptedJsonField.js';
|
|
2
|
+
import { BooleanField, BigIncrementsField, CharUuidField, ChoiceStringField, DecimalField, EmailField, JsonField, JsonStringField, IntegerField, LinkField, PasswordField, StringListField, StringField, TextField, TimestampField, UlidField, UrlField, VectorField, } from './index.js';
|
|
3
|
+
export { createField } from './createField.js';
|
|
4
|
+
export const field = {
|
|
5
|
+
bigIncrements(config = {}) {
|
|
6
|
+
return new BigIncrementsField(config);
|
|
7
|
+
},
|
|
8
|
+
boolean(config = {}) {
|
|
9
|
+
return new BooleanField(config);
|
|
10
|
+
},
|
|
11
|
+
charUuid(config = {}) {
|
|
12
|
+
return new CharUuidField(config);
|
|
13
|
+
},
|
|
14
|
+
choice(config) {
|
|
15
|
+
return new ChoiceStringField(config);
|
|
16
|
+
},
|
|
17
|
+
decimal(config = {}) {
|
|
18
|
+
return new DecimalField(config);
|
|
19
|
+
},
|
|
20
|
+
email(config = {}) {
|
|
21
|
+
return new EmailField(config);
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* Creates authenticated encrypted JSON stored in a non-queryable long text column.
|
|
25
|
+
*/
|
|
26
|
+
encryptedJson(config = {}) {
|
|
27
|
+
return new EncryptedJsonField(config);
|
|
28
|
+
},
|
|
29
|
+
/**
|
|
30
|
+
* Creates a permissive JSON field for arbitrary JSON-compatible values.
|
|
31
|
+
*/
|
|
32
|
+
json(config = {}) {
|
|
33
|
+
return new JsonField(config);
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* Creates a backwards-compatible JSON field that serializes values for storage.
|
|
37
|
+
*/
|
|
38
|
+
jsonString(config = {}) {
|
|
39
|
+
return new JsonStringField(config);
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Creates a JSON field serialized into a `text` column.
|
|
43
|
+
*/
|
|
44
|
+
jsonText(config = {}) {
|
|
45
|
+
return new JsonStringField({
|
|
46
|
+
...config,
|
|
47
|
+
dbType: 'text',
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
/**
|
|
51
|
+
* Creates a JSON field serialized into a `longtext` column.
|
|
52
|
+
*/
|
|
53
|
+
jsonLongText(config = {}) {
|
|
54
|
+
return new JsonStringField({
|
|
55
|
+
...config,
|
|
56
|
+
dbType: 'longtext',
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
integer(config = {}) {
|
|
60
|
+
return new IntegerField(config);
|
|
61
|
+
},
|
|
62
|
+
link(target, config = {}) {
|
|
63
|
+
return new LinkField({
|
|
64
|
+
...config,
|
|
65
|
+
target,
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
/**
|
|
69
|
+
* Creates a JSON-backed list of normalized strings.
|
|
70
|
+
*/
|
|
71
|
+
stringList(config = {}) {
|
|
72
|
+
return new StringListField(config);
|
|
73
|
+
},
|
|
74
|
+
password(config) {
|
|
75
|
+
return new PasswordField(config);
|
|
76
|
+
},
|
|
77
|
+
string(config = {}) {
|
|
78
|
+
return new StringField(config);
|
|
79
|
+
},
|
|
80
|
+
text(config = {}) {
|
|
81
|
+
return new TextField(config);
|
|
82
|
+
},
|
|
83
|
+
longText(config = {}) {
|
|
84
|
+
return field.text(config);
|
|
85
|
+
},
|
|
86
|
+
timestamp(config = {}) {
|
|
87
|
+
return new TimestampField(config);
|
|
88
|
+
},
|
|
89
|
+
ulid(config = {}) {
|
|
90
|
+
return new UlidField(config);
|
|
91
|
+
},
|
|
92
|
+
url(config = {}) {
|
|
93
|
+
return new UrlField(config);
|
|
94
|
+
},
|
|
95
|
+
/**
|
|
96
|
+
* Creates a native numeric vector field for embeddings.
|
|
97
|
+
*/
|
|
98
|
+
vector(config = {}) {
|
|
99
|
+
return new VectorField(config);
|
|
100
|
+
},
|
|
101
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { BooleanField, type BooleanFieldConfig, } from './BooleanField.js';
|
|
2
|
+
export { CharUuidField, type CharUuidFieldConfig, } from './CharUuidField.js';
|
|
3
|
+
export { ChoiceStringField, type ChoiceStringFieldConfig, } from './ChoiceStringField.js';
|
|
4
|
+
export { DecimalField, type DecimalFieldConfig, } from './DecimalField.js';
|
|
5
|
+
export { EmailField, type EmailFieldConfig, } from './EmailField.js';
|
|
6
|
+
export { EncryptedJsonField, EncryptedJsonFieldError, type EncryptedJsonFieldConfig, } from './EncryptedJsonField.js';
|
|
7
|
+
export { JsonField, type JsonFieldConfig, } from './JsonField.js';
|
|
8
|
+
export { JsonStringField, type JsonStringFieldConfig, type JsonStringFieldDbType, } from './JsonStringField.js';
|
|
9
|
+
export { BigIncrementsField, IntegerField, type IntegerFieldConfig, } from './IntegerField.js';
|
|
10
|
+
export { EntityRef, LinkField, type LinkFieldConfig, } from './LinkField.js';
|
|
11
|
+
export { StringListField, type StringListFieldConfig, } from './StringListField.js';
|
|
12
|
+
export { PasswordField, type PasswordFieldConfig, } from './PasswordField.js';
|
|
13
|
+
export { StringField, type StringFieldConfig, } from './StringField.js';
|
|
14
|
+
export { TextField, type TextFieldConfig, } from './TextField.js';
|
|
15
|
+
export { TimestampField, type TimestampFieldConfig, } from './TimestampField.js';
|
|
16
|
+
export { VectorField, type VectorFieldConfig, } from './VectorField.js';
|
|
17
|
+
export { UlidField, type UlidFieldConfig, } from './UlidField.js';
|
|
18
|
+
export { UrlField, type UrlFieldConfig, } from './UrlField.js';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { BooleanField, } from './BooleanField.js';
|
|
2
|
+
export { CharUuidField, } from './CharUuidField.js';
|
|
3
|
+
export { ChoiceStringField, } from './ChoiceStringField.js';
|
|
4
|
+
export { DecimalField, } from './DecimalField.js';
|
|
5
|
+
export { EmailField, } from './EmailField.js';
|
|
6
|
+
export { EncryptedJsonField, EncryptedJsonFieldError, } from './EncryptedJsonField.js';
|
|
7
|
+
export { JsonField, } from './JsonField.js';
|
|
8
|
+
export { JsonStringField, } from './JsonStringField.js';
|
|
9
|
+
export { BigIncrementsField, IntegerField, } from './IntegerField.js';
|
|
10
|
+
export { EntityRef, LinkField, } from './LinkField.js';
|
|
11
|
+
export { StringListField, } from './StringListField.js';
|
|
12
|
+
export { PasswordField, } from './PasswordField.js';
|
|
13
|
+
export { StringField, } from './StringField.js';
|
|
14
|
+
export { TextField, } from './TextField.js';
|
|
15
|
+
export { TimestampField, } from './TimestampField.js';
|
|
16
|
+
export { VectorField, } from './VectorField.js';
|
|
17
|
+
export { UlidField, } from './UlidField.js';
|
|
18
|
+
export { UrlField, } from './UrlField.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FieldInputMap, FieldMap, ModelMetadata } from '../FieldType.js';
|
|
2
|
+
import { type FieldBuilder } from './field.js';
|
|
3
|
+
export interface FieldFactoryModel {
|
|
4
|
+
fields(field: FieldBuilder): FieldInputMap;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resolves and returns a model's static field definitions as a FieldMap.
|
|
8
|
+
*
|
|
9
|
+
* - Invokes the model's `fields` static method with the framework field helper.
|
|
10
|
+
* - Accepts a model class or object implementing `FieldFactoryModel` & `ModelMetadata`.
|
|
11
|
+
* - Each field definition is normalized to a FieldType instance and bound to the model and its logical field name.
|
|
12
|
+
* - Results are cached per-model for efficiency, using a WeakMap to avoid memory leaks.
|
|
13
|
+
*
|
|
14
|
+
* @param Model A model class/object implementing field factory and metadata interfaces.
|
|
15
|
+
* @returns Resolved fields as a map: { [fieldName]: FieldType }
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveModelFields(Model: FieldFactoryModel & ModelMetadata): FieldMap;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FieldType } from '../FieldType.js';
|
|
2
|
+
import { field, } from './field.js';
|
|
3
|
+
const resolvedFieldsByModel = new WeakMap();
|
|
4
|
+
/**
|
|
5
|
+
* Resolves and returns a model's static field definitions as a FieldMap.
|
|
6
|
+
*
|
|
7
|
+
* - Invokes the model's `fields` static method with the framework field helper.
|
|
8
|
+
* - Accepts a model class or object implementing `FieldFactoryModel` & `ModelMetadata`.
|
|
9
|
+
* - Each field definition is normalized to a FieldType instance and bound to the model and its logical field name.
|
|
10
|
+
* - Results are cached per-model for efficiency, using a WeakMap to avoid memory leaks.
|
|
11
|
+
*
|
|
12
|
+
* @param Model A model class/object implementing field factory and metadata interfaces.
|
|
13
|
+
* @returns Resolved fields as a map: { [fieldName]: FieldType }
|
|
14
|
+
*/
|
|
15
|
+
export function resolveModelFields(Model) {
|
|
16
|
+
const cached = resolvedFieldsByModel.get(Model);
|
|
17
|
+
if (cached) {
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
const fields = {};
|
|
21
|
+
for (const [fieldName, fieldInput] of Object.entries(Model.fields(field))) {
|
|
22
|
+
fields[fieldName] = resolveFieldInput(fieldInput).bindToModel(Model, fieldName);
|
|
23
|
+
}
|
|
24
|
+
resolvedFieldsByModel.set(Model, fields);
|
|
25
|
+
return fields;
|
|
26
|
+
}
|
|
27
|
+
function resolveFieldInput(input) {
|
|
28
|
+
if (typeof input === 'function') {
|
|
29
|
+
return new input();
|
|
30
|
+
}
|
|
31
|
+
if (input instanceof FieldType) {
|
|
32
|
+
return input.clone();
|
|
33
|
+
}
|
|
34
|
+
if (input && typeof input === 'object' && 'type' in input) {
|
|
35
|
+
return new input.type(input.config);
|
|
36
|
+
}
|
|
37
|
+
throw new Error('Invalid field definition.');
|
|
38
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './ActiveRecord.js';
|
|
2
|
+
export * from './ActiveProjection.js';
|
|
3
|
+
export * from './ActiveQueryBuilder.js';
|
|
4
|
+
export * from './Database.js';
|
|
5
|
+
export * from './contracts/index.js';
|
|
6
|
+
export * from './FieldType.js';
|
|
7
|
+
export * from './dialects/index.js';
|
|
8
|
+
export * from './errors.js';
|
|
9
|
+
export * from './fields/index.js';
|
|
10
|
+
export * from './migrations/index.js';
|
|
11
|
+
export * from './SoftDeletes.js';
|
|
12
|
+
export * from './sqlErrors.js';
|
|
13
|
+
export * from './queryMonitor.js';
|
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './ActiveRecord.js';
|
|
2
|
+
export * from './ActiveProjection.js';
|
|
3
|
+
export * from './ActiveQueryBuilder.js';
|
|
4
|
+
export * from './Database.js';
|
|
5
|
+
export * from './contracts/index.js';
|
|
6
|
+
export * from './FieldType.js';
|
|
7
|
+
export * from './dialects/index.js';
|
|
8
|
+
export * from './errors.js';
|
|
9
|
+
export * from './fields/index.js';
|
|
10
|
+
export * from './migrations/index.js';
|
|
11
|
+
export * from './SoftDeletes.js';
|
|
12
|
+
export * from './sqlErrors.js';
|
|
13
|
+
export * from './queryMonitor.js';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { DatabaseCheckResult, DatabaseMigrationManagerOptions, DatabaseMigrationStatus, DatabaseSyncResult, MakeMigrationOptions, MakeMigrationResult, MigrateOptions, MigrateResult } from './contracts/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Reusable application-configured model migration service.
|
|
4
|
+
*
|
|
5
|
+
* CLI commands, development HTTP actions, and deployment scripts should call
|
|
6
|
+
* this service rather than duplicating model collection or Knex execution.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DatabaseMigrationManager {
|
|
9
|
+
#private;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a migration manager with app-owned models, paths, and ledger name.
|
|
12
|
+
*
|
|
13
|
+
* @param options - Database connection, model registry, and absolute source paths.
|
|
14
|
+
*/
|
|
15
|
+
constructor(options: DatabaseMigrationManagerOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Returns model, snapshot, live database, and Knex migration status without
|
|
18
|
+
* creating the Knex migration ledger.
|
|
19
|
+
*
|
|
20
|
+
* @returns Structured status suitable for CLI or development UI rendering.
|
|
21
|
+
*/
|
|
22
|
+
status(): Promise<DatabaseMigrationStatus>;
|
|
23
|
+
/**
|
|
24
|
+
* Checks the live model-owned database subset against current models.
|
|
25
|
+
*
|
|
26
|
+
* Extra columns and tables are ignored to preserve additive blue/green
|
|
27
|
+
* compatibility, while missing or incompatible requirements are reported.
|
|
28
|
+
*
|
|
29
|
+
* @returns Structured database compatibility result.
|
|
30
|
+
*/
|
|
31
|
+
check(): Promise<DatabaseCheckResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Generates a frozen migration and advances the committed snapshot when
|
|
34
|
+
* current models contain only supported changes.
|
|
35
|
+
*
|
|
36
|
+
* @param options - Optional human-readable migration name.
|
|
37
|
+
* @returns Generation result including blocked changes or written file path.
|
|
38
|
+
*/
|
|
39
|
+
makeMigration(options?: MakeMigrationOptions): Promise<MakeMigrationResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Applies pending committed migrations through Knex's ledger and lock.
|
|
42
|
+
*
|
|
43
|
+
* @param options - Optional matching-database baseline policy.
|
|
44
|
+
* @returns Applied migration names, batch, and optional baselined filenames.
|
|
45
|
+
*/
|
|
46
|
+
migrate(options?: MigrateOptions): Promise<MigrateResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Runs the development convenience flow under one generation lock.
|
|
49
|
+
*
|
|
50
|
+
* A blocked model diff returns immediately without applying migrations. A
|
|
51
|
+
* successful flow always finishes with a live database compatibility check.
|
|
52
|
+
*
|
|
53
|
+
* @param options - Optional human-readable generated migration name.
|
|
54
|
+
* @returns Structured make, migrate, and check results.
|
|
55
|
+
*/
|
|
56
|
+
sync(options?: MakeMigrationOptions): Promise<DatabaseSyncResult>;
|
|
57
|
+
}
|