@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,77 @@
|
|
|
1
|
+
import type { QueueJobId, QueueJobOrigin } from './QueuePayload';
|
|
2
|
+
import type { QueueFailedJobRetryReference } from './QueueRetry';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Lifecycle actions emitted as a durable queue job moves through the queue.
|
|
6
|
+
*/
|
|
7
|
+
export type QueueLifecycleAction =
|
|
8
|
+
| 'dispatched'
|
|
9
|
+
| 'claimed'
|
|
10
|
+
| 'released'
|
|
11
|
+
| 'deferred'
|
|
12
|
+
| 'succeeded'
|
|
13
|
+
| 'lease_lost'
|
|
14
|
+
| 'failed';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Immutable lifecycle event emitted after the corresponding queue transition.
|
|
18
|
+
*/
|
|
19
|
+
export interface QueueLifecycleEvent {
|
|
20
|
+
/** Lifecycle transition represented by this event. */
|
|
21
|
+
action: QueueLifecycleAction;
|
|
22
|
+
/** UTC timestamp captured when the queue published the event. */
|
|
23
|
+
timestamp: string;
|
|
24
|
+
/** Named queue or channel containing the job. */
|
|
25
|
+
queue: string;
|
|
26
|
+
/** Durable job name used to resolve its handler. */
|
|
27
|
+
jobName: string;
|
|
28
|
+
/** Driver-owned queue record identifier. */
|
|
29
|
+
jobId: QueueJobId;
|
|
30
|
+
/** Stable UUID retained across every attempt for this queued job. */
|
|
31
|
+
jobUuid: string;
|
|
32
|
+
/** Number of processing attempts consumed at this transition. */
|
|
33
|
+
attempts: number;
|
|
34
|
+
/** Maximum processing attempts before terminal failure. */
|
|
35
|
+
maxTries: number;
|
|
36
|
+
/** Seconds before the next attempt is available, when applicable. */
|
|
37
|
+
delaySeconds?: number;
|
|
38
|
+
/** Handler duration for processing transitions, when measured. */
|
|
39
|
+
durationMs?: number;
|
|
40
|
+
/** Error that caused a release, deferral, or terminal failure. */
|
|
41
|
+
error?: unknown;
|
|
42
|
+
/** Framework-owned correlation metadata persisted with the queue envelope. */
|
|
43
|
+
origin?: QueueJobOrigin;
|
|
44
|
+
/** Terminal failure that was replayed to create this job, when applicable. */
|
|
45
|
+
retryOf?: QueueFailedJobRetryReference;
|
|
46
|
+
/** Application-owned job payload for opt-in diagnostic consumers. */
|
|
47
|
+
payloadData: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Synchronous or asynchronous consumer of queue lifecycle events.
|
|
52
|
+
* Thrown errors and rejected promises are reported without rejecting queue work.
|
|
53
|
+
*/
|
|
54
|
+
export type QueueLifecycleListener = (
|
|
55
|
+
event: QueueLifecycleEvent,
|
|
56
|
+
) => void | Promise<void>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Failure raised by a lifecycle listener or optional job hook.
|
|
60
|
+
*/
|
|
61
|
+
export interface QueueLifecycleFailure {
|
|
62
|
+
/** Component that failed while observing an already-decided queue transition. */
|
|
63
|
+
source: 'listener' | 'hook';
|
|
64
|
+
/** Lifecycle event being observed when the failure occurred. */
|
|
65
|
+
event: QueueLifecycleEvent;
|
|
66
|
+
/** Optional QueueableJob hook that raised the failure. */
|
|
67
|
+
hook?: 'onRetry' | 'onFinalFailure';
|
|
68
|
+
/** Error raised by the listener or hook. */
|
|
69
|
+
error: unknown;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Reports non-fatal lifecycle listener and job-hook errors.
|
|
74
|
+
*/
|
|
75
|
+
export type QueueLifecycleErrorHandler = (
|
|
76
|
+
failure: QueueLifecycleFailure,
|
|
77
|
+
) => void;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import type { QueueFailedJobRetryReference, QueueRetryBackoff, QueueRetryBackoffOptions } from './QueueRetry';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Serialized form of a queueable job before it is wrapped in a durable queue envelope.
|
|
5
|
+
*
|
|
6
|
+
* Queueable jobs use this shape for object serialization and chained follow-up work.
|
|
7
|
+
*/
|
|
8
|
+
export interface SerializedQueuedJob<TData extends Record<string, unknown> = Record<string, unknown>> {
|
|
9
|
+
/** Durable job name used to resolve the handler when a worker processes the payload. */
|
|
10
|
+
job: string;
|
|
11
|
+
/** Human-readable label shown in logs and queue monitors. */
|
|
12
|
+
displayName?: string;
|
|
13
|
+
/** JSON-safe payload data owned by the queued job. */
|
|
14
|
+
data: TData;
|
|
15
|
+
/** Remaining jobs that should run after this job succeeds. */
|
|
16
|
+
chained?: SerializedQueuedJob[];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Framework-owned correlation metadata attached to one root queue job.
|
|
21
|
+
*
|
|
22
|
+
* Origins let orchestration layers observe a queue job without adding their
|
|
23
|
+
* identifiers to application-owned job payloads.
|
|
24
|
+
*/
|
|
25
|
+
export interface QueueJobOrigin {
|
|
26
|
+
/** Framework subsystem that owns the correlated record. */
|
|
27
|
+
type: string;
|
|
28
|
+
/** Stable identifier understood by the originating subsystem. */
|
|
29
|
+
id: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Durable payload stored by queue drivers.
|
|
34
|
+
*
|
|
35
|
+
* Drivers persist this envelope as the canonical queue record payload. Application jobs
|
|
36
|
+
* should treat `data` as their own payload and the other fields as framework metadata.
|
|
37
|
+
*/
|
|
38
|
+
export interface JobEnvelope<TData = Record<string, unknown>> {
|
|
39
|
+
/** Stable UUID for this queued job attempt chain. */
|
|
40
|
+
uuid: string;
|
|
41
|
+
/** Human-readable label shown in logs and queue monitors. */
|
|
42
|
+
displayName: string;
|
|
43
|
+
/** Durable job name used to resolve the handler. */
|
|
44
|
+
job: string;
|
|
45
|
+
/** Maximum number of attempts before the job is moved to failed storage. */
|
|
46
|
+
maxTries: number;
|
|
47
|
+
/** Durable delay policy used when an ordinary failed attempt is released. */
|
|
48
|
+
backoff?: QueueRetryBackoff;
|
|
49
|
+
/** Absolute Unix timestamp after which another ordinary retry must not be scheduled. */
|
|
50
|
+
retryUntil?: number;
|
|
51
|
+
/** Application-owned JSON-safe payload data. */
|
|
52
|
+
data: TData;
|
|
53
|
+
/** Optional framework-owned record that originated this root queue job. */
|
|
54
|
+
origin?: QueueJobOrigin;
|
|
55
|
+
/** Terminal failed-job record that was replayed to create this job. */
|
|
56
|
+
retryOf?: QueueFailedJobRetryReference;
|
|
57
|
+
/** Remaining jobs that should be dispatched after this job succeeds. */
|
|
58
|
+
chained?: SerializedQueuedJob[];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Identifier returned by a queue driver when a job is persisted.
|
|
63
|
+
*/
|
|
64
|
+
export type QueueJobId = number | string;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Built-in queue driver names understood by the framework.
|
|
68
|
+
*/
|
|
69
|
+
export type QueueDriverName = 'database' | 'redis';
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Claimed queue job passed to handlers and lifecycle hooks.
|
|
73
|
+
*/
|
|
74
|
+
export interface QueueJob<TData = Record<string, unknown>> {
|
|
75
|
+
/** Driver-owned queue record id. */
|
|
76
|
+
id: QueueJobId;
|
|
77
|
+
/** Named queue/channel this job was claimed from. */
|
|
78
|
+
queue: string;
|
|
79
|
+
/** Number of processing attempts already consumed by this job. */
|
|
80
|
+
attempts: number;
|
|
81
|
+
/** Durable queue payload envelope. */
|
|
82
|
+
payload: JobEnvelope<TData>;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Per-dispatch overrides for queueing one job.
|
|
87
|
+
*/
|
|
88
|
+
export interface DispatchOptions {
|
|
89
|
+
/**
|
|
90
|
+
* Named queue/channel the job should be pushed onto.
|
|
91
|
+
*
|
|
92
|
+
* Workers process one named queue at a time, so this lets callers route
|
|
93
|
+
* different classes of work to different worker pools. When omitted, the
|
|
94
|
+
* queue service uses its configured default queue name.
|
|
95
|
+
*/
|
|
96
|
+
queue?: string;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Number of seconds to wait before the job becomes available to workers.
|
|
100
|
+
*/
|
|
101
|
+
delaySeconds?: number;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Maximum number of processing attempts before the job is failed.
|
|
105
|
+
*/
|
|
106
|
+
maxTries?: number;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Durable delay policy for ordinary failed attempts.
|
|
110
|
+
*/
|
|
111
|
+
backoff?: QueueRetryBackoffOptions;
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Maximum number of seconds ordinary retries may remain active after dispatch.
|
|
115
|
+
*
|
|
116
|
+
* Explicit QueueRetryLaterError deferrals own their own retry horizon and do
|
|
117
|
+
* not consume this ordinary-attempt window.
|
|
118
|
+
*/
|
|
119
|
+
retryUntilSeconds?: number;
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Framework-owned correlation metadata for this root queued job.
|
|
123
|
+
*
|
|
124
|
+
* Chained jobs do not inherit this value automatically because their
|
|
125
|
+
* lifecycle is distinct from the root dispatch.
|
|
126
|
+
*/
|
|
127
|
+
origin?: QueueJobOrigin;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Result status for one queue processing attempt.
|
|
132
|
+
*
|
|
133
|
+
* `lease_lost` means the handler settled but the worker could not prove that its
|
|
134
|
+
* exact attempt still owned the durable job, so no outcome transition was made.
|
|
135
|
+
*/
|
|
136
|
+
export type QueueProcessStatus = 'succeeded' | 'released' | 'deferred' | 'failed' | 'lease_lost';
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Detailed outcome returned after processing one claimed queue job.
|
|
140
|
+
*/
|
|
141
|
+
export interface QueueProcessResult {
|
|
142
|
+
/** Claimed queue job that was processed. */
|
|
143
|
+
job: QueueJob;
|
|
144
|
+
/** Final status for this processing attempt. */
|
|
145
|
+
status: QueueProcessStatus;
|
|
146
|
+
/** Delay before a released or deferred job becomes available again. */
|
|
147
|
+
delaySeconds?: number;
|
|
148
|
+
/** Handler or lease error explaining why the attempt did not succeed. */
|
|
149
|
+
error?: unknown;
|
|
150
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { QueueJobId } from './QueuePayload';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Supported delay-growth strategies for ordinary queue retries.
|
|
5
|
+
*/
|
|
6
|
+
export type QueueRetryBackoffStrategy = 'linear' | 'exponential';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Durable retry backoff stored with a queued job.
|
|
10
|
+
*
|
|
11
|
+
* Persisting this policy ensures every worker calculates the same retry schedule,
|
|
12
|
+
* even when queue configuration changes after the job was dispatched.
|
|
13
|
+
*/
|
|
14
|
+
export interface QueueRetryBackoff {
|
|
15
|
+
/** Delay-growth strategy applied after each consumed attempt. */
|
|
16
|
+
strategy: QueueRetryBackoffStrategy;
|
|
17
|
+
/** Base delay in seconds before the first retry. */
|
|
18
|
+
initialSeconds: number;
|
|
19
|
+
/** Maximum delay in seconds after applying the selected growth strategy. */
|
|
20
|
+
maxSeconds: number;
|
|
21
|
+
/** Whether equal jitter should be applied to reduce coordinated retry spikes. */
|
|
22
|
+
jitter: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Per-dispatch overrides used to build a durable retry backoff policy.
|
|
27
|
+
*/
|
|
28
|
+
export interface QueueRetryBackoffOptions {
|
|
29
|
+
/** Delay-growth strategy applied after each consumed attempt. */
|
|
30
|
+
strategy?: QueueRetryBackoffStrategy;
|
|
31
|
+
/** Base delay in seconds before the first retry. */
|
|
32
|
+
initialSeconds?: number;
|
|
33
|
+
/** Maximum delay in seconds after applying the selected growth strategy. */
|
|
34
|
+
maxSeconds?: number;
|
|
35
|
+
/** Whether equal jitter should be applied to reduce coordinated retry spikes. */
|
|
36
|
+
jitter?: boolean;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Links a replayed queue job to the terminal failure that produced it.
|
|
41
|
+
*/
|
|
42
|
+
export interface QueueFailedJobRetryReference {
|
|
43
|
+
/** Driver-owned failed-job record that was replayed. */
|
|
44
|
+
failedJobId: QueueJobId;
|
|
45
|
+
/** Stable UUID of the original terminally failed job. */
|
|
46
|
+
jobUuid: string;
|
|
47
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import type { QueueMonitor, QueueMonitorOptions } from '../queueMonitor';
|
|
2
|
+
import type { QueueEvents } from '../QueueEvents';
|
|
3
|
+
import type { QueueableJob } from '../QueueableJob';
|
|
4
|
+
import type { QueueLifecycleErrorHandler } from './QueueEvents';
|
|
5
|
+
import type { DispatchOptions, QueueDriverName, QueueJob, QueueJobId, QueueProcessResult } from './QueuePayload';
|
|
6
|
+
import type { QueueRetryBackoffStrategy } from './QueueRetry';
|
|
7
|
+
import type { QueueDriver, QueueFailedJob } from './QueueDriver';
|
|
8
|
+
import type { QueueableJobClass } from './QueueableJob';
|
|
9
|
+
import type { QueueWorkerLifecycle, QueueWorkerOptions } from './QueueWorkerLifecycle';
|
|
10
|
+
import type { RedisQueueDriverOptions } from './RedisQueueDriver';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Function-style handler registered for a durable queued job name.
|
|
14
|
+
*/
|
|
15
|
+
export type JobHandler<TData = Record<string, unknown>> = (job: QueueJob<TData>) => Promise<void>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Input passed to a lazy job resolver when a worker sees an unknown job name.
|
|
19
|
+
*/
|
|
20
|
+
export interface QueueJobResolverContext {
|
|
21
|
+
/** Durable queued job name from the persisted payload. */
|
|
22
|
+
jobName: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Resolves a queueable job class just in time for worker processing.
|
|
27
|
+
*/
|
|
28
|
+
export type QueueJobResolver = (
|
|
29
|
+
context: QueueJobResolverContext,
|
|
30
|
+
) => QueueableJobClass | null | Promise<QueueableJobClass | null>;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Queue service configuration shared by dispatching, processing, and worker startup.
|
|
34
|
+
*/
|
|
35
|
+
export interface QueueOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Default queue name used when dispatching or processing jobs without an explicit queue.
|
|
38
|
+
*/
|
|
39
|
+
queue?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Concrete queue driver instance, or the registered driver name to resolve lazily.
|
|
42
|
+
*/
|
|
43
|
+
driver?: QueueDriver | QueueDriverName;
|
|
44
|
+
/**
|
|
45
|
+
* Named queue driver to resolve when no concrete driver instance is provided.
|
|
46
|
+
*/
|
|
47
|
+
driverName?: QueueDriverName;
|
|
48
|
+
/**
|
|
49
|
+
* Redis driver options used when driver or driverName resolves to `redis`.
|
|
50
|
+
*/
|
|
51
|
+
redis?: RedisQueueDriverOptions;
|
|
52
|
+
/**
|
|
53
|
+
* Number of seconds before an in-progress job is considered expired and claimable again.
|
|
54
|
+
*/
|
|
55
|
+
retryAfterSeconds?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Base delay, in seconds, used when releasing failed jobs for another attempt.
|
|
58
|
+
*/
|
|
59
|
+
retryDelaySeconds?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Default delay-growth strategy persisted on newly dispatched jobs.
|
|
62
|
+
*/
|
|
63
|
+
retryBackoffStrategy?: QueueRetryBackoffStrategy;
|
|
64
|
+
/**
|
|
65
|
+
* Maximum delay, in seconds, persisted on newly dispatched jobs.
|
|
66
|
+
*/
|
|
67
|
+
retryMaxDelaySeconds?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Whether newly dispatched jobs apply equal jitter to ordinary retry delays.
|
|
70
|
+
*/
|
|
71
|
+
retryJitter?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Default polling interval, in milliseconds, for long-running workers.
|
|
74
|
+
*/
|
|
75
|
+
workerIntervalMs?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Maximum number of jobs a worker should process during one polling tick.
|
|
78
|
+
*/
|
|
79
|
+
maxJobsPerTick?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Enables or disables worker startup unless startWorker() is called with force.
|
|
82
|
+
*/
|
|
83
|
+
workerEnabled?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Configures queue lifecycle telemetry for development panels and tests.
|
|
86
|
+
*/
|
|
87
|
+
queueMonitor?: false | QueueMonitorOptions;
|
|
88
|
+
/**
|
|
89
|
+
* Reports isolated lifecycle listener and QueueableJob hook failures.
|
|
90
|
+
*/
|
|
91
|
+
onLifecycleError?: QueueLifecycleErrorHandler;
|
|
92
|
+
/**
|
|
93
|
+
* Lazily resolves a QueueableJob class when a worker sees an unknown job name.
|
|
94
|
+
*/
|
|
95
|
+
jobResolver?: QueueJobResolver;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Hooks for observing a single job processing attempt.
|
|
100
|
+
*/
|
|
101
|
+
export interface QueueWorkOptions {
|
|
102
|
+
/**
|
|
103
|
+
* Called after a driver claims a job and before the registered handler runs.
|
|
104
|
+
*/
|
|
105
|
+
onClaimed?(job: QueueJob): void;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Public queue service API used by application code and queueable jobs.
|
|
110
|
+
*/
|
|
111
|
+
export interface QueueService {
|
|
112
|
+
/**
|
|
113
|
+
* Always-on asynchronous queue lifecycle event dispatcher.
|
|
114
|
+
*/
|
|
115
|
+
readonly events: QueueEvents;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Queue lifecycle monitor attached to this service, when enabled.
|
|
119
|
+
*/
|
|
120
|
+
readonly queueMonitor: QueueMonitor | null;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Returns recent terminal failures from driver-owned persistence.
|
|
124
|
+
*
|
|
125
|
+
* @param limit - Maximum number of recent failed jobs to return.
|
|
126
|
+
* @returns Recent failed jobs ordered from newest to oldest.
|
|
127
|
+
*/
|
|
128
|
+
failedJobs(limit?: number): Promise<QueueFailedJob[]>;
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Replays one persisted terminal failure as a new active queue job.
|
|
132
|
+
*
|
|
133
|
+
* The original failure remains available for audit and the replacement job
|
|
134
|
+
* receives a new UUID linked back to that failed record.
|
|
135
|
+
*
|
|
136
|
+
* @param id - Driver-owned failed-job record id.
|
|
137
|
+
* @param options - Optional queue, attempts, backoff, and delay overrides.
|
|
138
|
+
* @returns Queue driver id for the replacement job.
|
|
139
|
+
*/
|
|
140
|
+
retryFailed(id: QueueJobId, options?: DispatchOptions): Promise<QueueJobId>;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Registers an async handler for a named job payload.
|
|
144
|
+
*
|
|
145
|
+
* @param name - Durable queued job name.
|
|
146
|
+
* @param handler - Handler invoked when a worker processes that job name.
|
|
147
|
+
*/
|
|
148
|
+
registerHandler<TData = Record<string, unknown>>(name: string, handler: JobHandler<TData>): void;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Registers a queueable job class for worker rehydration.
|
|
152
|
+
*
|
|
153
|
+
* @param Job - Job class with JSON rehydration inherited from QueueableJob.
|
|
154
|
+
*/
|
|
155
|
+
registerJob<TJob extends QueueableJobClass>(Job: TJob): void;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Dispatches a named job payload.
|
|
159
|
+
*
|
|
160
|
+
* @param job - Durable job name.
|
|
161
|
+
* @param data - JSON-safe payload data.
|
|
162
|
+
* @param options - Per-dispatch queue options.
|
|
163
|
+
* @returns Queue driver id for the queued job.
|
|
164
|
+
*/
|
|
165
|
+
dispatch<TData extends Record<string, unknown>>(job: string, data: TData, options?: DispatchOptions): Promise<QueueJobId>;
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Dispatches a queueable job instance.
|
|
169
|
+
*
|
|
170
|
+
* @param job - Queueable job instance to serialize and dispatch.
|
|
171
|
+
* @param options - Per-dispatch queue options.
|
|
172
|
+
* @returns Queue driver id for the queued job.
|
|
173
|
+
*/
|
|
174
|
+
dispatch<TJob extends QueueableJob>(job: TJob, options?: DispatchOptions): Promise<QueueJobId>;
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Dispatches queueable jobs in order, one after each successful predecessor.
|
|
178
|
+
*
|
|
179
|
+
* @param jobs - Serializable jobs to chain.
|
|
180
|
+
* @param options - Per-dispatch options for the first queued job.
|
|
181
|
+
* @returns Queue driver id for the first queued job.
|
|
182
|
+
*/
|
|
183
|
+
chain(jobs: QueueableJob[], options?: DispatchOptions): Promise<QueueJobId>;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Dispatches queueable jobs independently.
|
|
187
|
+
*
|
|
188
|
+
* @param jobs - Serializable jobs to dispatch.
|
|
189
|
+
* @param options - Per-dispatch options applied to each job.
|
|
190
|
+
* @returns Queue driver ids for the queued jobs.
|
|
191
|
+
*/
|
|
192
|
+
batch(jobs: QueueableJob[], options?: DispatchOptions): Promise<QueueJobId[]>;
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Processes at most one available job from a named queue.
|
|
196
|
+
*
|
|
197
|
+
* @param queue - Named queue/channel to process.
|
|
198
|
+
* @returns True when a job was claimed and processed.
|
|
199
|
+
*/
|
|
200
|
+
processNextJob(queue?: string): Promise<boolean>;
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Processes at most one job and returns the detailed outcome.
|
|
204
|
+
*
|
|
205
|
+
* @param queue - Named queue/channel to process.
|
|
206
|
+
* @param options - Per-work hooks for the processing attempt.
|
|
207
|
+
* @returns Detailed result, or null when the queue was idle.
|
|
208
|
+
*/
|
|
209
|
+
workNextJob(queue?: string, options?: QueueWorkOptions): Promise<QueueProcessResult | null>;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Starts a polling worker for a named queue.
|
|
213
|
+
*
|
|
214
|
+
* @param queue - Named queue/channel the worker should poll.
|
|
215
|
+
* @param options - Worker lifecycle and polling options.
|
|
216
|
+
* @returns Worker lifecycle controls, or null when worker startup is disabled.
|
|
217
|
+
*/
|
|
218
|
+
startWorker(queue?: string, options?: QueueWorkerOptions): QueueWorkerLifecycle | null;
|
|
219
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal logger contract used by queue workers.
|
|
3
|
+
*/
|
|
4
|
+
export interface QueueLogger {
|
|
5
|
+
/**
|
|
6
|
+
* Writes an informational queue worker message.
|
|
7
|
+
*
|
|
8
|
+
* @param message - Message ready for terminal or log output.
|
|
9
|
+
*/
|
|
10
|
+
info(message: string): void;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Writes a warning queue worker message.
|
|
14
|
+
*
|
|
15
|
+
* @param message - Message ready for terminal or log output.
|
|
16
|
+
*/
|
|
17
|
+
warn?(message: string): void;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Writes an error queue worker message.
|
|
21
|
+
*
|
|
22
|
+
* @param message - Message ready for terminal or log output.
|
|
23
|
+
*/
|
|
24
|
+
error?(message: string): void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Runtime controls for a polling queue worker.
|
|
29
|
+
*/
|
|
30
|
+
export interface QueueWorkerOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Number of milliseconds between worker ticks.
|
|
33
|
+
*/
|
|
34
|
+
intervalMs?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Maximum number of jobs to process during each tick.
|
|
37
|
+
*/
|
|
38
|
+
maxJobsPerTick?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Logger used for lifecycle and job processing messages.
|
|
41
|
+
*/
|
|
42
|
+
logger?: QueueLogger;
|
|
43
|
+
/**
|
|
44
|
+
* Enables detailed lifecycle logging for idle ticks and queued follow-up work.
|
|
45
|
+
*/
|
|
46
|
+
verbose?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Starts the worker even when QUEUE_WORKER=false or workerEnabled is false.
|
|
49
|
+
*/
|
|
50
|
+
force?: boolean;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Public lifecycle controls for a long-running queue worker.
|
|
55
|
+
*/
|
|
56
|
+
export interface QueueWorkerLifecycle {
|
|
57
|
+
/**
|
|
58
|
+
* Starts polling the configured queue.
|
|
59
|
+
*/
|
|
60
|
+
start(): void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Stops future polling ticks without aborting an active tick.
|
|
64
|
+
*/
|
|
65
|
+
stop(): void;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Stops future polling and resolves after the active tick has completed.
|
|
69
|
+
*/
|
|
70
|
+
stopAndDrain(): Promise<void>;
|
|
71
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Queue } from '../Queue';
|
|
2
|
+
import type { QueueableJob } from '../QueueableJob';
|
|
3
|
+
import type { QueueJob, SerializedQueuedJob } from './QueuePayload';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Serialized queueable job payload stored before a driver wraps it in an envelope.
|
|
7
|
+
*/
|
|
8
|
+
export type SerializedQueueableJob<TData extends Record<string, unknown> = Record<string, unknown>> = SerializedQueuedJob<TData>;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Queue runtime metadata passed to a rehydrated job.
|
|
12
|
+
*/
|
|
13
|
+
export interface QueueableJobContext {
|
|
14
|
+
/** Claimed queue job being handled. */
|
|
15
|
+
job: QueueJob;
|
|
16
|
+
/** Queue service that is processing this job. */
|
|
17
|
+
queue: Queue;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Context passed after a failed attempt has safely been released for retry.
|
|
22
|
+
*/
|
|
23
|
+
export interface QueueableJobRetryContext extends QueueableJobContext {
|
|
24
|
+
/** Error raised by the failed handler attempt. */
|
|
25
|
+
error: unknown;
|
|
26
|
+
/** Seconds before the released job becomes available again. */
|
|
27
|
+
delaySeconds: number;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Context passed after a job exhausts its attempts and is durably failed.
|
|
32
|
+
*/
|
|
33
|
+
export interface QueueableJobFailureContext extends QueueableJobContext {
|
|
34
|
+
/** Terminal error persisted by the queue driver. */
|
|
35
|
+
error: unknown;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Constructor contract for serializable queueable job classes.
|
|
40
|
+
*/
|
|
41
|
+
export interface QueueableJobClass<TJob extends QueueableJob = QueueableJob> {
|
|
42
|
+
/** Runtime class name used as the default durable job name. */
|
|
43
|
+
readonly name: string;
|
|
44
|
+
/** Optional durable job name override. */
|
|
45
|
+
readonly jobName?: string;
|
|
46
|
+
/** Creates a job from its application-facing runtime data. */
|
|
47
|
+
new(data: any): TJob;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Rehydrates a queueable job instance from persisted payload data.
|
|
51
|
+
*
|
|
52
|
+
* @param data - JSON-safe data stored in the queue payload.
|
|
53
|
+
* @returns Queueable job instance ready to handle.
|
|
54
|
+
*/
|
|
55
|
+
fromJSON(data: Record<string, unknown>): TJob;
|
|
56
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection and key options for the Redis queue driver.
|
|
3
|
+
*/
|
|
4
|
+
export interface RedisQueueDriverOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Redis connection URL. When omitted, the driver reads QUEUE_REDIS_URL or REDIS_URL.
|
|
7
|
+
*/
|
|
8
|
+
url?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Redis host used when no URL is supplied.
|
|
11
|
+
*/
|
|
12
|
+
host?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Redis port used when no URL is supplied.
|
|
15
|
+
*/
|
|
16
|
+
port?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Redis username for ACL authentication.
|
|
19
|
+
*/
|
|
20
|
+
username?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Redis password for authentication.
|
|
23
|
+
*/
|
|
24
|
+
password?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Redis database index selected after connecting.
|
|
27
|
+
*/
|
|
28
|
+
database?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Prefix applied to every key owned by this queue driver.
|
|
31
|
+
*/
|
|
32
|
+
keyPrefix?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Milliseconds to wait before failing the Redis connection attempt.
|
|
35
|
+
*/
|
|
36
|
+
connectionTimeoutMs?: number;
|
|
37
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './QueueDriver';
|
|
2
|
+
export * from './QueueEvents';
|
|
3
|
+
export * from './QueuePayload';
|
|
4
|
+
export * from './QueueRetry';
|
|
5
|
+
export * from './QueueableJob';
|
|
6
|
+
export * from './QueueService';
|
|
7
|
+
export * from './QueueWorkerLifecycle';
|
|
8
|
+
export * from './RedisQueueDriver';
|
|
9
|
+
export * from './CreateJob';
|