@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,141 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
import { Ai, type AIOptions } from '../ai/index.js';
|
|
3
|
+
import { Auth, type AuthOptions } from '../auth/index.js';
|
|
4
|
+
import { Cache } from '../cache/index.js';
|
|
5
|
+
import { Config, type ConfigValues } from '../config/index.js';
|
|
6
|
+
import { Database, type DatabaseOptions } from '../db/index.js';
|
|
7
|
+
import { Events } from '../events/index.js';
|
|
8
|
+
import { UrlGenerator, type UrlGeneratorOptions } from '../url/index.js';
|
|
9
|
+
import { Queue, type QueueOptions } from '../queue/index.js';
|
|
10
|
+
import { Log, type LoggingOptions } from '../logging/index.js';
|
|
11
|
+
import { Storage, type StorageOptions } from '../storage/index.js';
|
|
12
|
+
import { Scheduler } from '../scheduler/index.js';
|
|
13
|
+
import { Security } from '../security/index.js';
|
|
14
|
+
import { Serializer, type SerializerOptions } from '../serialization/index.js';
|
|
15
|
+
import { MediaManager } from '../media/index.js';
|
|
16
|
+
import { RequestContext } from './RequestContext.js';
|
|
17
|
+
/** Application root, service configuration and optional dependencies supplied at bootstrap. */
|
|
18
|
+
export interface AppOptions {
|
|
19
|
+
/** App root as a path or file URL; defaults to the working directory at construction. */
|
|
20
|
+
directory?: string | URL;
|
|
21
|
+
/** Provider adapters and extensible ActiveRecord models for app().ai. */
|
|
22
|
+
ai?: AIOptions;
|
|
23
|
+
db?: Knex;
|
|
24
|
+
dbOptions?: DatabaseOptions;
|
|
25
|
+
auth?: Omit<AuthOptions<any>, 'db' | 'requestContext'>;
|
|
26
|
+
config?: ConfigValues | Config;
|
|
27
|
+
/** Application logging configuration or injectable logger driver. */
|
|
28
|
+
log?: LoggingOptions;
|
|
29
|
+
/** Canonical application URL configuration used across all runtimes. */
|
|
30
|
+
url?: UrlGeneratorOptions;
|
|
31
|
+
queue?: QueueOptions;
|
|
32
|
+
/** Serializable classes and ActiveRecord models registered with app().serializer. */
|
|
33
|
+
serializer?: SerializerOptions;
|
|
34
|
+
storage?: StorageOptions;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Application service hub.
|
|
38
|
+
*
|
|
39
|
+
* Keep this as the place where top-level framework capabilities are discovered
|
|
40
|
+
* and wired, not where domain logic itself accumulates.
|
|
41
|
+
*/
|
|
42
|
+
export declare class App {
|
|
43
|
+
protected readonly options: AppOptions;
|
|
44
|
+
private readonly services;
|
|
45
|
+
/** Absolute app root used for conventional server paths, independent of later working-directory changes. */
|
|
46
|
+
readonly directory: string;
|
|
47
|
+
/**
|
|
48
|
+
* Creates an application service hub and validates configured startup security.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Framework services and application configuration.
|
|
51
|
+
*/
|
|
52
|
+
constructor(options?: AppOptions);
|
|
53
|
+
/** Returns the lazy database service with this app's connection, model registry and root directory. */
|
|
54
|
+
get db(): Database;
|
|
55
|
+
get auth(): Auth<any>;
|
|
56
|
+
get requestContext(): RequestContext;
|
|
57
|
+
/** Returns the application AI service with durable request and conversation history. */
|
|
58
|
+
get ai(): Ai;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the configured application cache.
|
|
61
|
+
*
|
|
62
|
+
* Cache driver selection lives under `config.cache`, keeping backend
|
|
63
|
+
* connection details out of application code.
|
|
64
|
+
*
|
|
65
|
+
* @returns Cache service using the configured named store.
|
|
66
|
+
*/
|
|
67
|
+
get cache(): Cache;
|
|
68
|
+
/**
|
|
69
|
+
* Returns the typed in-process application event dispatcher.
|
|
70
|
+
*
|
|
71
|
+
* @returns Event service shared by framework and application code.
|
|
72
|
+
*/
|
|
73
|
+
get events(): Events;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the application logger shared by framework and app services.
|
|
76
|
+
*
|
|
77
|
+
* @returns Pino-backed logging service with app lifecycle ownership.
|
|
78
|
+
*/
|
|
79
|
+
get log(): Log;
|
|
80
|
+
/**
|
|
81
|
+
* Returns the canonical application URL generator.
|
|
82
|
+
*
|
|
83
|
+
* This is independent of any concrete Fastify, Express, or other server
|
|
84
|
+
* instance so background processes resolve the same public application URL.
|
|
85
|
+
*
|
|
86
|
+
* @returns Shared canonical URL generator.
|
|
87
|
+
*/
|
|
88
|
+
get url(): UrlGenerator;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the configured app config repository.
|
|
91
|
+
*/
|
|
92
|
+
get config(): Config;
|
|
93
|
+
get queue(): Queue;
|
|
94
|
+
/**
|
|
95
|
+
* Returns the application scheduler and attaches queue lifecycle recording.
|
|
96
|
+
*
|
|
97
|
+
* @returns Scheduler backed by the active database and queue services.
|
|
98
|
+
*/
|
|
99
|
+
get scheduler(): Scheduler;
|
|
100
|
+
/**
|
|
101
|
+
* Returns the central application security service.
|
|
102
|
+
*
|
|
103
|
+
* @returns Shared authenticated encryption service.
|
|
104
|
+
*/
|
|
105
|
+
get security(): Security;
|
|
106
|
+
/**
|
|
107
|
+
* Returns the application serializer and its scoped class/model registry.
|
|
108
|
+
*
|
|
109
|
+
* @returns Strict serializer configured for this application process.
|
|
110
|
+
*/
|
|
111
|
+
get serializer(): Serializer;
|
|
112
|
+
/**
|
|
113
|
+
* Returns the configured file storage service.
|
|
114
|
+
*/
|
|
115
|
+
get storage(): Storage;
|
|
116
|
+
/**
|
|
117
|
+
* Returns the configured media manager.
|
|
118
|
+
*
|
|
119
|
+
* Media options are resolved from `config.media`, allowing applications to
|
|
120
|
+
* place derived image variants on a disposable storage disk.
|
|
121
|
+
*
|
|
122
|
+
* @returns Media manager backed by configured durable and temporary storage.
|
|
123
|
+
*/
|
|
124
|
+
get media(): MediaManager;
|
|
125
|
+
/**
|
|
126
|
+
* Registers a concrete service instance.
|
|
127
|
+
*
|
|
128
|
+
* Useful for tests and for services that are built by a provider.
|
|
129
|
+
*/
|
|
130
|
+
set<TService>(name: string, service: TService): this;
|
|
131
|
+
/**
|
|
132
|
+
* Returns a configured service, creating and caching it on first access.
|
|
133
|
+
*/
|
|
134
|
+
service<TService>(name: string, factory: () => TService): TService;
|
|
135
|
+
/**
|
|
136
|
+
* Closes shared resources owned by the default app.
|
|
137
|
+
*/
|
|
138
|
+
close(): Promise<void>;
|
|
139
|
+
private resolveDbConnection;
|
|
140
|
+
private resolveDatabaseOptions;
|
|
141
|
+
}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { Ai } from '../ai/index.js';
|
|
4
|
+
import { Auth, } from '../auth/index.js';
|
|
5
|
+
import { Cache, } from '../cache/index.js';
|
|
6
|
+
import { Config, } from '../config/index.js';
|
|
7
|
+
import { db as defaultDb, destroyDatabase, } from '../db/connection.js';
|
|
8
|
+
import { Database, } from '../db/index.js';
|
|
9
|
+
import { Events } from '../events/index.js';
|
|
10
|
+
import { UrlGenerator } from '../url/index.js';
|
|
11
|
+
import { Queue, } from '../queue/index.js';
|
|
12
|
+
import { Log, } from '../logging/index.js';
|
|
13
|
+
import { Storage, } from '../storage/index.js';
|
|
14
|
+
import { Scheduler } from '../scheduler/index.js';
|
|
15
|
+
import { Security } from '../security/index.js';
|
|
16
|
+
import { Serializer } from '../serialization/index.js';
|
|
17
|
+
import { MediaManager } from '../media/index.js';
|
|
18
|
+
import { RequestContext } from './RequestContext.js';
|
|
19
|
+
import { clearActiveApp, setActiveApp, } from './appContext.js';
|
|
20
|
+
/**
|
|
21
|
+
* Application service hub.
|
|
22
|
+
*
|
|
23
|
+
* Keep this as the place where top-level framework capabilities are discovered
|
|
24
|
+
* and wired, not where domain logic itself accumulates.
|
|
25
|
+
*/
|
|
26
|
+
export class App {
|
|
27
|
+
options;
|
|
28
|
+
services = new Map();
|
|
29
|
+
/** Absolute app root used for conventional server paths, independent of later working-directory changes. */
|
|
30
|
+
directory;
|
|
31
|
+
/**
|
|
32
|
+
* Creates an application service hub and validates configured startup security.
|
|
33
|
+
*
|
|
34
|
+
* @param options - Framework services and application configuration.
|
|
35
|
+
*/
|
|
36
|
+
constructor(options = {}) {
|
|
37
|
+
this.options = options;
|
|
38
|
+
this.directory = resolve(options.directory instanceof URL ? fileURLToPath(options.directory) : options.directory ?? process.cwd());
|
|
39
|
+
setActiveApp(this);
|
|
40
|
+
if (this.config.has('security'))
|
|
41
|
+
void this.security;
|
|
42
|
+
}
|
|
43
|
+
/** Returns the lazy database service with this app's connection, model registry and root directory. */
|
|
44
|
+
get db() {
|
|
45
|
+
return this.service('db', () => {
|
|
46
|
+
return new Database(this.resolveDbConnection(), this.resolveDatabaseOptions(), this.directory);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
get auth() {
|
|
50
|
+
return this.service('auth', () => new Auth({
|
|
51
|
+
...this.options.auth,
|
|
52
|
+
db: this.db,
|
|
53
|
+
config: this.config,
|
|
54
|
+
requestContext: this.requestContext,
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
get requestContext() {
|
|
58
|
+
return this.service('requestContext', () => new RequestContext());
|
|
59
|
+
}
|
|
60
|
+
/** Returns the application AI service with durable request and conversation history. */
|
|
61
|
+
get ai() {
|
|
62
|
+
return this.service('ai', () => new Ai(this.options.ai ?? this.config.get('ai', {})));
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns the configured application cache.
|
|
66
|
+
*
|
|
67
|
+
* Cache driver selection lives under `config.cache`, keeping backend
|
|
68
|
+
* connection details out of application code.
|
|
69
|
+
*
|
|
70
|
+
* @returns Cache service using the configured named store.
|
|
71
|
+
*/
|
|
72
|
+
get cache() {
|
|
73
|
+
return this.service('cache', () => new Cache(this.config.get('cache', {})));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Returns the typed in-process application event dispatcher.
|
|
77
|
+
*
|
|
78
|
+
* @returns Event service shared by framework and application code.
|
|
79
|
+
*/
|
|
80
|
+
get events() {
|
|
81
|
+
return this.service('events', () => new Events());
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns the application logger shared by framework and app services.
|
|
85
|
+
*
|
|
86
|
+
* @returns Pino-backed logging service with app lifecycle ownership.
|
|
87
|
+
*/
|
|
88
|
+
get log() {
|
|
89
|
+
return this.service('log', () => new Log(this.options.log));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns the canonical application URL generator.
|
|
93
|
+
*
|
|
94
|
+
* This is independent of any concrete Fastify, Express, or other server
|
|
95
|
+
* instance so background processes resolve the same public application URL.
|
|
96
|
+
*
|
|
97
|
+
* @returns Shared canonical URL generator.
|
|
98
|
+
*/
|
|
99
|
+
get url() {
|
|
100
|
+
return this.service('url', () => new UrlGenerator(this.options.url));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns the configured app config repository.
|
|
104
|
+
*/
|
|
105
|
+
get config() {
|
|
106
|
+
return this.service('config', () => {
|
|
107
|
+
if (this.options.config instanceof Config) {
|
|
108
|
+
return this.options.config;
|
|
109
|
+
}
|
|
110
|
+
return new Config(this.options.config);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
get queue() {
|
|
114
|
+
return this.service('queue', () => new Queue(this.db, this.options.queue));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Returns the application scheduler and attaches queue lifecycle recording.
|
|
118
|
+
*
|
|
119
|
+
* @returns Scheduler backed by the active database and queue services.
|
|
120
|
+
*/
|
|
121
|
+
get scheduler() {
|
|
122
|
+
return this.service('scheduler', () => new Scheduler(this.db, this.queue));
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Returns the central application security service.
|
|
126
|
+
*
|
|
127
|
+
* @returns Shared authenticated encryption service.
|
|
128
|
+
*/
|
|
129
|
+
get security() {
|
|
130
|
+
return this.service('security', () => new Security());
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Returns the application serializer and its scoped class/model registry.
|
|
134
|
+
*
|
|
135
|
+
* @returns Strict serializer configured for this application process.
|
|
136
|
+
*/
|
|
137
|
+
get serializer() {
|
|
138
|
+
return this.service('serializer', () => new Serializer(this.options.serializer));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Returns the configured file storage service.
|
|
142
|
+
*/
|
|
143
|
+
get storage() {
|
|
144
|
+
return this.service('storage', () => new Storage(this.options.storage));
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Returns the configured media manager.
|
|
148
|
+
*
|
|
149
|
+
* Media options are resolved from `config.media`, allowing applications to
|
|
150
|
+
* place derived image variants on a disposable storage disk.
|
|
151
|
+
*
|
|
152
|
+
* @returns Media manager backed by configured durable and temporary storage.
|
|
153
|
+
*/
|
|
154
|
+
get media() {
|
|
155
|
+
return this.service('media', () => new MediaManager(this.storage, this.config.get('media', {})));
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Registers a concrete service instance.
|
|
159
|
+
*
|
|
160
|
+
* Useful for tests and for services that are built by a provider.
|
|
161
|
+
*/
|
|
162
|
+
set(name, service) {
|
|
163
|
+
this.services.set(name, service);
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Returns a configured service, creating and caching it on first access.
|
|
168
|
+
*/
|
|
169
|
+
service(name, factory) {
|
|
170
|
+
const existing = this.services.get(name);
|
|
171
|
+
if (existing) {
|
|
172
|
+
return existing;
|
|
173
|
+
}
|
|
174
|
+
const created = factory();
|
|
175
|
+
this.services.set(name, created);
|
|
176
|
+
return created;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Closes shared resources owned by the default app.
|
|
180
|
+
*/
|
|
181
|
+
async close() {
|
|
182
|
+
clearActiveApp(this);
|
|
183
|
+
this.services.get('scheduler')?.close();
|
|
184
|
+
this.services.get('events')?.clear();
|
|
185
|
+
await this.services.get('cache')?.close();
|
|
186
|
+
await this.services.get('log')?.close();
|
|
187
|
+
if (!this.options.db) {
|
|
188
|
+
await destroyDatabase();
|
|
189
|
+
}
|
|
190
|
+
this.services.clear();
|
|
191
|
+
}
|
|
192
|
+
resolveDbConnection() {
|
|
193
|
+
if (!this.options.db) {
|
|
194
|
+
return defaultDb();
|
|
195
|
+
}
|
|
196
|
+
return this.options.db;
|
|
197
|
+
}
|
|
198
|
+
resolveDatabaseOptions() {
|
|
199
|
+
return {
|
|
200
|
+
...this.options.dbOptions,
|
|
201
|
+
syncColumns: this.options.dbOptions?.syncColumns
|
|
202
|
+
?? parseOptionalBoolean(process.env.DB_SYNC_COLUMNS)
|
|
203
|
+
?? true,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function parseOptionalBoolean(input) {
|
|
208
|
+
if (input === undefined || input === '') {
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
switch (input.toLowerCase().trim()) {
|
|
212
|
+
case '1':
|
|
213
|
+
case 'true':
|
|
214
|
+
case 'yes':
|
|
215
|
+
case 'on':
|
|
216
|
+
return true;
|
|
217
|
+
case '0':
|
|
218
|
+
case 'false':
|
|
219
|
+
case 'no':
|
|
220
|
+
case 'off':
|
|
221
|
+
return false;
|
|
222
|
+
default:
|
|
223
|
+
throw new Error(`Invalid DB_SYNC_COLUMNS value "${input}". Use true or false.`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export type RequestContextValues = Map<string, unknown> | Record<string, unknown> | Iterable<readonly [string, unknown]>;
|
|
2
|
+
/**
|
|
3
|
+
* Request-scoped key/value context.
|
|
4
|
+
*
|
|
5
|
+
* Values are isolated with AsyncLocalStorage so the app singleton can expose
|
|
6
|
+
* request data without sharing it across concurrent requests.
|
|
7
|
+
*/
|
|
8
|
+
export declare class RequestContext {
|
|
9
|
+
private readonly storage;
|
|
10
|
+
/**
|
|
11
|
+
* Returns true when code is running inside a request context.
|
|
12
|
+
*/
|
|
13
|
+
get active(): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Runs a callback inside an isolated request context.
|
|
16
|
+
*/
|
|
17
|
+
run<TResult>(callback: () => TResult, initialValues?: RequestContextValues): TResult;
|
|
18
|
+
/**
|
|
19
|
+
* Reads a value from the active request context.
|
|
20
|
+
*/
|
|
21
|
+
get<TValue = unknown>(key: string): TValue | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Returns true when the active request context contains a value for the key.
|
|
24
|
+
*/
|
|
25
|
+
has(key: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Stores a value on the active request context.
|
|
28
|
+
*/
|
|
29
|
+
set<TValue>(key: string, value: TValue): TValue;
|
|
30
|
+
/**
|
|
31
|
+
* Returns an existing request value or stores the factory result for reuse.
|
|
32
|
+
*/
|
|
33
|
+
remember<TValue>(key: string, factory: () => TValue): TValue;
|
|
34
|
+
/**
|
|
35
|
+
* Deletes a value from the active request context.
|
|
36
|
+
*/
|
|
37
|
+
delete(key: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Normalises initial request values into the internal map store.
|
|
40
|
+
*/
|
|
41
|
+
private initialStore;
|
|
42
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
/**
|
|
3
|
+
* Request-scoped key/value context.
|
|
4
|
+
*
|
|
5
|
+
* Values are isolated with AsyncLocalStorage so the app singleton can expose
|
|
6
|
+
* request data without sharing it across concurrent requests.
|
|
7
|
+
*/
|
|
8
|
+
export class RequestContext {
|
|
9
|
+
storage = new AsyncLocalStorage();
|
|
10
|
+
/**
|
|
11
|
+
* Returns true when code is running inside a request context.
|
|
12
|
+
*/
|
|
13
|
+
get active() {
|
|
14
|
+
return Boolean(this.storage.getStore());
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Runs a callback inside an isolated request context.
|
|
18
|
+
*/
|
|
19
|
+
run(callback, initialValues) {
|
|
20
|
+
return this.storage.run(this.initialStore(initialValues), callback);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reads a value from the active request context.
|
|
24
|
+
*/
|
|
25
|
+
get(key) {
|
|
26
|
+
return this.storage.getStore()?.get(key);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns true when the active request context contains a value for the key.
|
|
30
|
+
*/
|
|
31
|
+
has(key) {
|
|
32
|
+
return this.storage.getStore()?.has(key) ?? false;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Stores a value on the active request context.
|
|
36
|
+
*/
|
|
37
|
+
set(key, value) {
|
|
38
|
+
const store = this.storage.getStore();
|
|
39
|
+
if (!store) {
|
|
40
|
+
throw new Error('No active request context.');
|
|
41
|
+
}
|
|
42
|
+
store.set(key, value);
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns an existing request value or stores the factory result for reuse.
|
|
47
|
+
*/
|
|
48
|
+
remember(key, factory) {
|
|
49
|
+
const store = this.storage.getStore();
|
|
50
|
+
if (!store) {
|
|
51
|
+
return factory();
|
|
52
|
+
}
|
|
53
|
+
if (store.has(key)) {
|
|
54
|
+
return store.get(key);
|
|
55
|
+
}
|
|
56
|
+
const value = factory();
|
|
57
|
+
store.set(key, value);
|
|
58
|
+
if (isPromiseLike(value)) {
|
|
59
|
+
Promise.resolve(value).catch(() => {
|
|
60
|
+
if (store.get(key) === value) {
|
|
61
|
+
store.delete(key);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Deletes a value from the active request context.
|
|
69
|
+
*/
|
|
70
|
+
delete(key) {
|
|
71
|
+
return this.storage.getStore()?.delete(key) ?? false;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Normalises initial request values into the internal map store.
|
|
75
|
+
*/
|
|
76
|
+
initialStore(initialValues) {
|
|
77
|
+
if (!initialValues)
|
|
78
|
+
return new Map();
|
|
79
|
+
if (initialValues instanceof Map)
|
|
80
|
+
return new Map(initialValues);
|
|
81
|
+
if (Symbol.iterator in Object(initialValues)) {
|
|
82
|
+
return new Map(initialValues);
|
|
83
|
+
}
|
|
84
|
+
return new Map(Object.entries(initialValues));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detects promise-like values without forcing callers to return real promises.
|
|
89
|
+
*/
|
|
90
|
+
function isPromiseLike(value) {
|
|
91
|
+
return Boolean(value
|
|
92
|
+
&& typeof value === 'object'
|
|
93
|
+
&& 'then' in value
|
|
94
|
+
&& typeof value.then === 'function');
|
|
95
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Knex } from 'knex';
|
|
2
|
+
import type { App } from './App.js';
|
|
3
|
+
import type { RequestContext } from './RequestContext.js';
|
|
4
|
+
export interface AppDatabaseProvider {
|
|
5
|
+
db: {
|
|
6
|
+
knex: Knex;
|
|
7
|
+
};
|
|
8
|
+
requestContext?: RequestContext;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Registers the active app for framework services that need app-scoped access.
|
|
12
|
+
*/
|
|
13
|
+
export declare function setActiveApp(app: AppDatabaseProvider): AppDatabaseProvider;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the active application service hub.
|
|
16
|
+
*
|
|
17
|
+
* Framework and application jobs use this accessor to resolve services when
|
|
18
|
+
* their handle methods run inside a bootstrapped worker process.
|
|
19
|
+
*
|
|
20
|
+
* @returns Active application instance.
|
|
21
|
+
*/
|
|
22
|
+
export declare function app<TApp extends AppDatabaseProvider = App>(): TApp;
|
|
23
|
+
/**
|
|
24
|
+
* Clears the active app when the caller owns the current active instance.
|
|
25
|
+
*/
|
|
26
|
+
export declare function clearActiveApp(app?: AppDatabaseProvider): void;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the active app database connection when an app is registered.
|
|
29
|
+
*/
|
|
30
|
+
export declare function activeAppDatabase(): Knex | null;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the active app request context when an app is registered.
|
|
33
|
+
*/
|
|
34
|
+
export declare function activeAppRequestContext(): RequestContext | null;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
let activeApp = null;
|
|
2
|
+
/**
|
|
3
|
+
* Registers the active app for framework services that need app-scoped access.
|
|
4
|
+
*/
|
|
5
|
+
export function setActiveApp(app) {
|
|
6
|
+
activeApp = app;
|
|
7
|
+
return app;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Returns the active application service hub.
|
|
11
|
+
*
|
|
12
|
+
* Framework and application jobs use this accessor to resolve services when
|
|
13
|
+
* their handle methods run inside a bootstrapped worker process.
|
|
14
|
+
*
|
|
15
|
+
* @returns Active application instance.
|
|
16
|
+
*/
|
|
17
|
+
export function app() {
|
|
18
|
+
if (!activeApp) {
|
|
19
|
+
throw new Error('No active application has been created.');
|
|
20
|
+
}
|
|
21
|
+
return activeApp;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Clears the active app when the caller owns the current active instance.
|
|
25
|
+
*/
|
|
26
|
+
export function clearActiveApp(app) {
|
|
27
|
+
if (app && activeApp !== app)
|
|
28
|
+
return;
|
|
29
|
+
activeApp = null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Returns the active app database connection when an app is registered.
|
|
33
|
+
*/
|
|
34
|
+
export function activeAppDatabase() {
|
|
35
|
+
return activeApp?.db.knex ?? null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Returns the active app request context when an app is registered.
|
|
39
|
+
*/
|
|
40
|
+
export function activeAppRequestContext() {
|
|
41
|
+
return activeApp?.requestContext ?? null;
|
|
42
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Marker replaced with document head tags during SSR document assembly. */
|
|
2
|
+
export declare const SSR_HEAD_MARKER = "<!--platform-ssr-head-->";
|
|
3
|
+
/** Marker replaced with application markup during SSR document assembly. */
|
|
4
|
+
export declare const SSR_APP_MARKER = "<!--platform-ssr-app-->";
|
|
5
|
+
/** Marker replaced with safely serialised hydration state. */
|
|
6
|
+
export declare const SSR_STATE_MARKER = "<!--platform-ssr-state-->";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Marker replaced with document head tags during SSR document assembly. */
|
|
2
|
+
export const SSR_HEAD_MARKER = '<!--platform-ssr-head-->';
|
|
3
|
+
/** Marker replaced with application markup during SSR document assembly. */
|
|
4
|
+
export const SSR_APP_MARKER = '<!--platform-ssr-app-->';
|
|
5
|
+
/** Marker replaced with safely serialised hydration state. */
|
|
6
|
+
export const SSR_STATE_MARKER = '<!--platform-ssr-state-->';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Attribute value supported by server-rendered document head tags. */
|
|
2
|
+
export type DocumentHeadAttributeValue = string | number | boolean | null | undefined;
|
|
3
|
+
/** Attributes written onto a server-rendered document head tag. */
|
|
4
|
+
export type DocumentHeadAttributes = Record<string, DocumentHeadAttributeValue>;
|
|
5
|
+
/**
|
|
6
|
+
* Script emitted through the single server-rendered document head pipeline.
|
|
7
|
+
*
|
|
8
|
+
* Content must come from trusted application code. The renderer prevents a
|
|
9
|
+
* closing script sequence from escaping the tag but does not sanitise scripts.
|
|
10
|
+
*/
|
|
11
|
+
export interface DocumentHeadScript {
|
|
12
|
+
/** HTML attributes written onto the script element. */
|
|
13
|
+
attributes?: DocumentHeadAttributes;
|
|
14
|
+
/** Trusted inline script or JSON-LD content. */
|
|
15
|
+
content?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Head metadata collected while rendering one HTTP request.
|
|
19
|
+
*
|
|
20
|
+
* Applications can mutate this request-owned object from their SSR router or
|
|
21
|
+
* page components. It is rendered once into the document template.
|
|
22
|
+
*/
|
|
23
|
+
export interface DocumentHead {
|
|
24
|
+
/** Browser and search-result title for the rendered document. */
|
|
25
|
+
title?: string;
|
|
26
|
+
/** Meta elements, including descriptions, robots and social metadata. */
|
|
27
|
+
meta: DocumentHeadAttributes[];
|
|
28
|
+
/** Link elements, including canonical URLs and alternate resources. */
|
|
29
|
+
link: DocumentHeadAttributes[];
|
|
30
|
+
/** Trusted scripts, including JSON-LD structured data. */
|
|
31
|
+
script: DocumentHeadScript[];
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DocumentHead } from './DocumentHead.js';
|
|
2
|
+
import type { SsrRequest } from './SsrRequest.js';
|
|
3
|
+
/** JSON-compatible request state made available to the hydrating client. */
|
|
4
|
+
export type SsrState = Record<string, unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Mutable state isolated to one server-side render request.
|
|
7
|
+
*
|
|
8
|
+
* Vue and other renderers may use `modules` to record the modules touched by a
|
|
9
|
+
* render. A later build adapter can map those identifiers to route-specific
|
|
10
|
+
* JavaScript and CSS without changing the application renderer contract.
|
|
11
|
+
*/
|
|
12
|
+
export interface SsrRenderContext<TState extends object = SsrState> {
|
|
13
|
+
/** Transport-neutral request information. */
|
|
14
|
+
request: SsrRequest;
|
|
15
|
+
/** Response status used when the render result does not override it. */
|
|
16
|
+
status: number;
|
|
17
|
+
/** Document metadata collected during rendering. */
|
|
18
|
+
head: DocumentHead;
|
|
19
|
+
/** State serialised into the document for client hydration. */
|
|
20
|
+
state: TState;
|
|
21
|
+
/** Module identifiers observed by the concrete server renderer. */
|
|
22
|
+
modules: Set<string>;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|