@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,250 @@
|
|
|
1
|
+
import { storageContentsToBuffer } from '../contents.js';
|
|
2
|
+
import { mimeTypeFromPath } from '../mime.js';
|
|
3
|
+
import { normalizeStorageDirectoryPath, normalizeStoragePath } from '../path.js';
|
|
4
|
+
import { FlystorageListing } from './FlystorageListing.js';
|
|
5
|
+
/**
|
|
6
|
+
* Base storage disk for drivers backed by Flystorage.
|
|
7
|
+
*/
|
|
8
|
+
export class FlystorageDisk {
|
|
9
|
+
name;
|
|
10
|
+
storage;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a Flystorage-backed disk wrapper.
|
|
13
|
+
*
|
|
14
|
+
* @param name - Configured disk name.
|
|
15
|
+
* @param storage - Flystorage instance used for disk operations.
|
|
16
|
+
*/
|
|
17
|
+
constructor(name, storage) {
|
|
18
|
+
this.name = name;
|
|
19
|
+
this.storage = storage;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Writes file contents to this disk.
|
|
23
|
+
*
|
|
24
|
+
* Alias for put(), useful when testing storage from a shell or REPL.
|
|
25
|
+
*
|
|
26
|
+
* @param path - Relative storage path to write.
|
|
27
|
+
* @param contents - Bytes or text content to persist.
|
|
28
|
+
* @param options - Optional write metadata reserved for compatible drivers.
|
|
29
|
+
* @returns Promise that resolves once the file is written.
|
|
30
|
+
*/
|
|
31
|
+
write(path, contents, options = {}) {
|
|
32
|
+
return this.put(path, contents, options);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Writes file contents to this disk.
|
|
36
|
+
*
|
|
37
|
+
* @param path - Relative storage path to write.
|
|
38
|
+
* @param contents - Bytes or text content to persist.
|
|
39
|
+
* @param options - Optional write metadata reserved for compatible drivers.
|
|
40
|
+
* @returns Promise that resolves once the file is written.
|
|
41
|
+
*/
|
|
42
|
+
async put(path, contents, options = {}) {
|
|
43
|
+
await this.storage.write(normalizeStoragePath(path), storageContentsToBuffer(contents), {
|
|
44
|
+
mimeType: options.mimeType,
|
|
45
|
+
visibility: options.visibility,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Writes streamed file contents to this disk.
|
|
50
|
+
*
|
|
51
|
+
* @param path - Relative storage path to write.
|
|
52
|
+
* @param stream - Readable stream containing file bytes.
|
|
53
|
+
* @param options - Optional write metadata reserved for compatible drivers.
|
|
54
|
+
* @returns Promise that resolves once the stream is written.
|
|
55
|
+
*/
|
|
56
|
+
async writeStream(path, stream, options = {}) {
|
|
57
|
+
await this.storage.write(normalizeStoragePath(path), stream, {
|
|
58
|
+
mimeType: options.mimeType,
|
|
59
|
+
visibility: options.visibility,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Lists files and directories beneath a path on this disk.
|
|
64
|
+
*
|
|
65
|
+
* @param path - Relative directory path, or an empty string for the disk root.
|
|
66
|
+
* @param options - Directory traversal options.
|
|
67
|
+
* @returns Lazy provider-neutral directory listing.
|
|
68
|
+
*/
|
|
69
|
+
list(path = '', options = {}) {
|
|
70
|
+
return new FlystorageListing(this.storage.list(normalizeStorageDirectoryPath(path), {
|
|
71
|
+
deep: options.deep ?? false,
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Reads a file from this disk as bytes.
|
|
76
|
+
*
|
|
77
|
+
* @param path - Relative storage path to read.
|
|
78
|
+
* @returns Stored file bytes.
|
|
79
|
+
*/
|
|
80
|
+
async get(path) {
|
|
81
|
+
return this.readToBuffer(path);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Reads a file from this disk as text.
|
|
85
|
+
*
|
|
86
|
+
* Matches Flystorage's readToString() API.
|
|
87
|
+
*
|
|
88
|
+
* @param path - Relative storage path to read.
|
|
89
|
+
* @returns Stored text content.
|
|
90
|
+
*/
|
|
91
|
+
async readToString(path) {
|
|
92
|
+
return this.storage.readToString(normalizeStoragePath(path));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reads a file from this disk as a Buffer.
|
|
96
|
+
*
|
|
97
|
+
* Matches Flystorage's readToBuffer() API.
|
|
98
|
+
*
|
|
99
|
+
* @param path - Relative storage path to read.
|
|
100
|
+
* @returns Stored file bytes.
|
|
101
|
+
*/
|
|
102
|
+
async readToBuffer(path) {
|
|
103
|
+
return this.storage.readToBuffer(normalizeStoragePath(path));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Reads a file from this disk as a Uint8Array.
|
|
107
|
+
*
|
|
108
|
+
* Matches Flystorage's readToUint8Array() API.
|
|
109
|
+
*
|
|
110
|
+
* @param path - Relative storage path to read.
|
|
111
|
+
* @returns Stored file bytes.
|
|
112
|
+
*/
|
|
113
|
+
async readToUint8Array(path) {
|
|
114
|
+
return this.storage.readToUint8Array(normalizeStoragePath(path));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Reads a file from this disk as a stream.
|
|
118
|
+
*
|
|
119
|
+
* Matches Flystorage's read() API.
|
|
120
|
+
*
|
|
121
|
+
* @param path - Relative storage path to read.
|
|
122
|
+
* @returns Readable stream for the stored file.
|
|
123
|
+
*/
|
|
124
|
+
async read(path) {
|
|
125
|
+
return this.storage.read(normalizeStoragePath(path));
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Reads a file from this disk as a stream.
|
|
129
|
+
*
|
|
130
|
+
* @param path - Relative storage path to read.
|
|
131
|
+
* @returns Readable stream for the stored file.
|
|
132
|
+
*/
|
|
133
|
+
async readStream(path) {
|
|
134
|
+
return this.read(path);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Reads a file from this disk as text.
|
|
138
|
+
*
|
|
139
|
+
* @param path - Relative storage path to read.
|
|
140
|
+
* @param encoding - Text encoding used to decode the bytes.
|
|
141
|
+
* @returns Stored text content.
|
|
142
|
+
*/
|
|
143
|
+
async getText(path, encoding = 'utf8') {
|
|
144
|
+
return (await this.readToBuffer(path)).toString(encoding);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Checks whether a file exists on this disk.
|
|
148
|
+
*
|
|
149
|
+
* @param path - Relative storage path to inspect.
|
|
150
|
+
* @returns True when the file exists.
|
|
151
|
+
*/
|
|
152
|
+
async exists(path) {
|
|
153
|
+
return this.storage.fileExists(normalizeStoragePath(path));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Checks whether a file is missing from this disk.
|
|
157
|
+
*
|
|
158
|
+
* @param path - Relative storage path to inspect.
|
|
159
|
+
* @returns True when the file does not exist.
|
|
160
|
+
*/
|
|
161
|
+
async missing(path) {
|
|
162
|
+
return !(await this.exists(path));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Deletes a file from this disk.
|
|
166
|
+
*
|
|
167
|
+
* @param path - Relative storage path to delete.
|
|
168
|
+
* @returns True when a file was removed.
|
|
169
|
+
*/
|
|
170
|
+
async delete(path) {
|
|
171
|
+
const normalized = normalizeStoragePath(path);
|
|
172
|
+
const exists = await this.storage.fileExists(normalized);
|
|
173
|
+
await this.storage.deleteFile(normalized);
|
|
174
|
+
return exists;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Copies a file to another path on this disk.
|
|
178
|
+
*
|
|
179
|
+
* @param from - Existing relative storage path.
|
|
180
|
+
* @param to - New relative storage path.
|
|
181
|
+
* @returns Promise that resolves once the file is copied.
|
|
182
|
+
*/
|
|
183
|
+
async copy(from, to) {
|
|
184
|
+
await this.storage.copyFile(normalizeStoragePath(from), normalizeStoragePath(to));
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Moves a file to another path on this disk.
|
|
188
|
+
*
|
|
189
|
+
* @param from - Existing relative storage path.
|
|
190
|
+
* @param to - New relative storage path.
|
|
191
|
+
* @returns Promise that resolves once the file is moved.
|
|
192
|
+
*/
|
|
193
|
+
async move(from, to) {
|
|
194
|
+
await this.storage.moveFile(normalizeStoragePath(from), normalizeStoragePath(to));
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Returns file size in bytes.
|
|
198
|
+
*
|
|
199
|
+
* @param path - Relative storage path to inspect.
|
|
200
|
+
* @returns File size in bytes.
|
|
201
|
+
*/
|
|
202
|
+
async size(path) {
|
|
203
|
+
return this.storage.fileSize(normalizeStoragePath(path));
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Returns the last modification date for a file.
|
|
207
|
+
*
|
|
208
|
+
* @param path - Relative storage path to inspect.
|
|
209
|
+
* @returns Last modified date.
|
|
210
|
+
*/
|
|
211
|
+
async lastModified(path) {
|
|
212
|
+
return new Date(await this.storage.lastModified(normalizeStoragePath(path)));
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Returns a MIME type for a storage path.
|
|
216
|
+
*
|
|
217
|
+
* @param path - Relative storage path to inspect.
|
|
218
|
+
* @returns MIME type inferred from the file extension or storage metadata.
|
|
219
|
+
*/
|
|
220
|
+
async mimeType(path) {
|
|
221
|
+
const normalized = normalizeStoragePath(path);
|
|
222
|
+
try {
|
|
223
|
+
return await this.storage.mimeType(normalized, {
|
|
224
|
+
fallbackMethod: 'path',
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return mimeTypeFromPath(normalized);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Builds a public URL for this disk when supported by the driver.
|
|
233
|
+
*
|
|
234
|
+
* @param path - Relative storage path to expose.
|
|
235
|
+
* @returns Public URL for the storage path.
|
|
236
|
+
*/
|
|
237
|
+
async url(path) {
|
|
238
|
+
return this.storage.publicUrl(normalizeStoragePath(path));
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Reports that this disk is not backed by a local filesystem path.
|
|
242
|
+
*
|
|
243
|
+
* @param path - Relative storage path requested by the caller.
|
|
244
|
+
* @returns This method never returns for non-local disks.
|
|
245
|
+
*/
|
|
246
|
+
path(path) {
|
|
247
|
+
normalizeStoragePath(path);
|
|
248
|
+
throw new Error(`Storage disk "${this.name}" does not expose local filesystem paths.`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { StatEntry } from '@flystorage/file-storage';
|
|
2
|
+
import type { StorageEntry, StorageListing } from '../contracts/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes a Flystorage directory listing behind Platform's storage contract.
|
|
5
|
+
*/
|
|
6
|
+
export declare class FlystorageListing implements StorageListing {
|
|
7
|
+
private readonly listing;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a Platform listing over a Flystorage stat-entry source.
|
|
10
|
+
*
|
|
11
|
+
* @param listing - Lazy Flystorage directory entries.
|
|
12
|
+
*/
|
|
13
|
+
constructor(listing: AsyncIterable<StatEntry>);
|
|
14
|
+
/**
|
|
15
|
+
* Collects all remaining entries from the underlying listing.
|
|
16
|
+
*
|
|
17
|
+
* @param sorted - Whether entries should be sorted by path.
|
|
18
|
+
* @returns Normalized storage entries.
|
|
19
|
+
*/
|
|
20
|
+
toArray(sorted?: boolean): Promise<StorageEntry[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Streams normalized storage entries from the underlying listing.
|
|
23
|
+
*
|
|
24
|
+
* @returns Async generator of normalized storage entries.
|
|
25
|
+
*/
|
|
26
|
+
[Symbol.asyncIterator](): AsyncGenerator<StorageEntry>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a Flystorage directory listing behind Platform's storage contract.
|
|
3
|
+
*/
|
|
4
|
+
export class FlystorageListing {
|
|
5
|
+
listing;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a Platform listing over a Flystorage stat-entry source.
|
|
8
|
+
*
|
|
9
|
+
* @param listing - Lazy Flystorage directory entries.
|
|
10
|
+
*/
|
|
11
|
+
constructor(listing) {
|
|
12
|
+
this.listing = listing;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Collects all remaining entries from the underlying listing.
|
|
16
|
+
*
|
|
17
|
+
* @param sorted - Whether entries should be sorted by path.
|
|
18
|
+
* @returns Normalized storage entries.
|
|
19
|
+
*/
|
|
20
|
+
async toArray(sorted = true) {
|
|
21
|
+
const entries = [];
|
|
22
|
+
for await (const entry of this) {
|
|
23
|
+
entries.push(entry);
|
|
24
|
+
}
|
|
25
|
+
if (sorted) {
|
|
26
|
+
entries.sort((left, right) => left.path.localeCompare(right.path));
|
|
27
|
+
}
|
|
28
|
+
return entries;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Streams normalized storage entries from the underlying listing.
|
|
32
|
+
*
|
|
33
|
+
* @returns Async generator of normalized storage entries.
|
|
34
|
+
*/
|
|
35
|
+
async *[Symbol.asyncIterator]() {
|
|
36
|
+
for await (const entry of this.listing) {
|
|
37
|
+
yield storageEntry(entry);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Converts one Flystorage stat entry into Platform's provider-neutral shape.
|
|
43
|
+
*
|
|
44
|
+
* @param entry - Flystorage file or directory metadata.
|
|
45
|
+
* @returns Normalized Platform storage entry.
|
|
46
|
+
*/
|
|
47
|
+
function storageEntry(entry) {
|
|
48
|
+
const lastModified = entry.lastModifiedMs === undefined
|
|
49
|
+
? undefined
|
|
50
|
+
: new Date(entry.lastModifiedMs);
|
|
51
|
+
if (entry.type === 'file') {
|
|
52
|
+
return {
|
|
53
|
+
type: 'file',
|
|
54
|
+
isFile: true,
|
|
55
|
+
isDirectory: false,
|
|
56
|
+
path: entry.path,
|
|
57
|
+
lastModified,
|
|
58
|
+
size: entry.size,
|
|
59
|
+
mimeType: entry.mimeType,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
type: 'directory',
|
|
64
|
+
isFile: false,
|
|
65
|
+
isDirectory: true,
|
|
66
|
+
path: entry.path,
|
|
67
|
+
lastModified,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { LocalStorageDiskConfig } from '../types.js';
|
|
2
|
+
import { FlystorageDisk } from './FlystorageDisk.js';
|
|
3
|
+
/**
|
|
4
|
+
* Local filesystem storage disk.
|
|
5
|
+
*
|
|
6
|
+
* Paths are always relative to the configured disk root. The disk rejects empty,
|
|
7
|
+
* absolute, and parent-directory paths before touching the filesystem.
|
|
8
|
+
*/
|
|
9
|
+
export declare class LocalStorageDisk extends FlystorageDisk {
|
|
10
|
+
private readonly root;
|
|
11
|
+
/**
|
|
12
|
+
* Creates a local disk backed by Flystorage's local filesystem adapter.
|
|
13
|
+
*
|
|
14
|
+
* @param name - Configured disk name.
|
|
15
|
+
* @param config - Local disk configuration.
|
|
16
|
+
*/
|
|
17
|
+
constructor(name: string, config?: LocalStorageDiskConfig);
|
|
18
|
+
/**
|
|
19
|
+
* Returns the absolute local filesystem path for a storage path.
|
|
20
|
+
*
|
|
21
|
+
* @param path - Relative storage path to resolve.
|
|
22
|
+
* @returns Absolute filesystem path inside the disk root.
|
|
23
|
+
*/
|
|
24
|
+
path(path: string): string;
|
|
25
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { FileStorage } from '@flystorage/file-storage';
|
|
2
|
+
import { LocalStorageAdapter } from '@flystorage/local-fs';
|
|
3
|
+
import { resolve } from 'node:path';
|
|
4
|
+
import { resolveLocalStoragePath } from '../path.js';
|
|
5
|
+
import { FlystorageDisk } from './FlystorageDisk.js';
|
|
6
|
+
/**
|
|
7
|
+
* Local filesystem storage disk.
|
|
8
|
+
*
|
|
9
|
+
* Paths are always relative to the configured disk root. The disk rejects empty,
|
|
10
|
+
* absolute, and parent-directory paths before touching the filesystem.
|
|
11
|
+
*/
|
|
12
|
+
export class LocalStorageDisk extends FlystorageDisk {
|
|
13
|
+
root;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a local disk backed by Flystorage's local filesystem adapter.
|
|
16
|
+
*
|
|
17
|
+
* @param name - Configured disk name.
|
|
18
|
+
* @param config - Local disk configuration.
|
|
19
|
+
*/
|
|
20
|
+
constructor(name, config = { driver: 'local' }) {
|
|
21
|
+
const root = resolve(config.root ?? 'storage/app');
|
|
22
|
+
super(name, new FileStorage(new LocalStorageAdapter(root, {
|
|
23
|
+
publicUrlOptions: {
|
|
24
|
+
baseUrl: config.url?.replace(/\/+$/, ''),
|
|
25
|
+
},
|
|
26
|
+
})));
|
|
27
|
+
this.root = root;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the absolute local filesystem path for a storage path.
|
|
31
|
+
*
|
|
32
|
+
* @param path - Relative storage path to resolve.
|
|
33
|
+
* @returns Absolute filesystem path inside the disk root.
|
|
34
|
+
*/
|
|
35
|
+
path(path) {
|
|
36
|
+
return resolveLocalStoragePath(this.root, path);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { S3StorageDiskConfig } from '../types.js';
|
|
2
|
+
import { FlystorageDisk } from './FlystorageDisk.js';
|
|
3
|
+
/**
|
|
4
|
+
* S3-compatible object storage disk.
|
|
5
|
+
*
|
|
6
|
+
* This driver supports AWS S3 plus providers that implement the S3 protocol,
|
|
7
|
+
* such as DigitalOcean Spaces, by using a custom endpoint.
|
|
8
|
+
*/
|
|
9
|
+
export declare class S3StorageDisk extends FlystorageDisk {
|
|
10
|
+
/**
|
|
11
|
+
* Creates an S3-compatible disk backed by Flystorage's AWS S3 adapter.
|
|
12
|
+
*
|
|
13
|
+
* @param name - Configured disk name.
|
|
14
|
+
* @param config - S3 disk configuration.
|
|
15
|
+
*/
|
|
16
|
+
constructor(name: string, config: S3StorageDiskConfig);
|
|
17
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
2
|
+
import { AwsS3StorageAdapter } from '@flystorage/aws-s3';
|
|
3
|
+
import { FileStorage } from '@flystorage/file-storage';
|
|
4
|
+
import { FlystorageDisk } from './FlystorageDisk.js';
|
|
5
|
+
/**
|
|
6
|
+
* S3-compatible object storage disk.
|
|
7
|
+
*
|
|
8
|
+
* This driver supports AWS S3 plus providers that implement the S3 protocol,
|
|
9
|
+
* such as DigitalOcean Spaces, by using a custom endpoint.
|
|
10
|
+
*/
|
|
11
|
+
export class S3StorageDisk extends FlystorageDisk {
|
|
12
|
+
/**
|
|
13
|
+
* Creates an S3-compatible disk backed by Flystorage's AWS S3 adapter.
|
|
14
|
+
*
|
|
15
|
+
* @param name - Configured disk name.
|
|
16
|
+
* @param config - S3 disk configuration.
|
|
17
|
+
*/
|
|
18
|
+
constructor(name, config) {
|
|
19
|
+
const bucket = requiredS3Option(config.bucket, 'bucket');
|
|
20
|
+
const client = new S3Client(s3ClientConfig(config));
|
|
21
|
+
super(name, new FileStorage(new AwsS3StorageAdapter(client, {
|
|
22
|
+
bucket,
|
|
23
|
+
prefix: trimSlashes(config.prefix),
|
|
24
|
+
region: config.region,
|
|
25
|
+
publicUrlOptions: {
|
|
26
|
+
baseUrl: publicUrlBase(config.url),
|
|
27
|
+
forcePathStyle: config.forcePathStyle,
|
|
28
|
+
region: config.region,
|
|
29
|
+
},
|
|
30
|
+
})));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Builds AWS SDK S3 client config from a storage disk config.
|
|
35
|
+
*
|
|
36
|
+
* @param config - S3 disk configuration.
|
|
37
|
+
* @returns AWS SDK S3 client config.
|
|
38
|
+
*/
|
|
39
|
+
function s3ClientConfig(config) {
|
|
40
|
+
return {
|
|
41
|
+
region: config.region ?? 'us-east-1',
|
|
42
|
+
endpoint: config.endpoint,
|
|
43
|
+
forcePathStyle: config.forcePathStyle,
|
|
44
|
+
credentials: credentials(config),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolves optional static S3 credentials from disk config.
|
|
49
|
+
*
|
|
50
|
+
* @param config - S3 disk configuration.
|
|
51
|
+
* @returns AWS SDK credentials or undefined for default provider resolution.
|
|
52
|
+
*/
|
|
53
|
+
function credentials(config) {
|
|
54
|
+
const accessKeyId = config.accessKeyId ?? config.key;
|
|
55
|
+
const secretAccessKey = config.secretAccessKey ?? config.secret;
|
|
56
|
+
if (!accessKeyId && !secretAccessKey)
|
|
57
|
+
return undefined;
|
|
58
|
+
if (!accessKeyId || !secretAccessKey) {
|
|
59
|
+
throw new Error('S3 storage disk requires both accessKeyId and secretAccessKey when either credential is configured.');
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
accessKeyId,
|
|
63
|
+
secretAccessKey,
|
|
64
|
+
sessionToken: config.sessionToken,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns a required S3 string option.
|
|
69
|
+
*
|
|
70
|
+
* @param value - Option value.
|
|
71
|
+
* @param name - Option name used in error messages.
|
|
72
|
+
* @returns Required non-empty string.
|
|
73
|
+
*/
|
|
74
|
+
function requiredS3Option(value, name) {
|
|
75
|
+
if (!value?.trim()) {
|
|
76
|
+
throw new Error(`S3 storage disk requires a ${name}.`);
|
|
77
|
+
}
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Removes leading and trailing slashes from a configured prefix.
|
|
82
|
+
*
|
|
83
|
+
* @param value - Prefix value to normalize.
|
|
84
|
+
* @returns Normalized prefix or undefined.
|
|
85
|
+
*/
|
|
86
|
+
function trimSlashes(value) {
|
|
87
|
+
const normalized = value?.replace(/^\/+|\/+$/g, '');
|
|
88
|
+
return normalized ? normalized : undefined;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Converts a configured public base URL into Flystorage's URL template shape.
|
|
92
|
+
*
|
|
93
|
+
* @param value - Configured public URL or template.
|
|
94
|
+
* @returns URL template with a path placeholder.
|
|
95
|
+
*/
|
|
96
|
+
function publicUrlBase(value) {
|
|
97
|
+
if (!value)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (value.includes('{uri}'))
|
|
100
|
+
return value;
|
|
101
|
+
return `${value.replace(/\/+$/, '')}/{uri}`;
|
|
102
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a best-effort MIME type from a file path.
|
|
3
|
+
*
|
|
4
|
+
* @param path - File path or storage path with an extension.
|
|
5
|
+
* @returns MIME type for known extensions, or application/octet-stream.
|
|
6
|
+
*/
|
|
7
|
+
export declare function mimeTypeFromPath(path: string): string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { extname } from 'node:path';
|
|
2
|
+
const mimeTypes = {
|
|
3
|
+
'.avif': 'image/avif',
|
|
4
|
+
'.css': 'text/css',
|
|
5
|
+
'.csv': 'text/csv',
|
|
6
|
+
'.gif': 'image/gif',
|
|
7
|
+
'.html': 'text/html',
|
|
8
|
+
'.jpeg': 'image/jpeg',
|
|
9
|
+
'.jpg': 'image/jpeg',
|
|
10
|
+
'.js': 'text/javascript',
|
|
11
|
+
'.json': 'application/json',
|
|
12
|
+
'.md': 'text/markdown',
|
|
13
|
+
'.pdf': 'application/pdf',
|
|
14
|
+
'.png': 'image/png',
|
|
15
|
+
'.svg': 'image/svg+xml',
|
|
16
|
+
'.txt': 'text/plain',
|
|
17
|
+
'.webp': 'image/webp',
|
|
18
|
+
'.xml': 'application/xml',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Returns a best-effort MIME type from a file path.
|
|
22
|
+
*
|
|
23
|
+
* @param path - File path or storage path with an extension.
|
|
24
|
+
* @returns MIME type for known extensions, or application/octet-stream.
|
|
25
|
+
*/
|
|
26
|
+
export function mimeTypeFromPath(path) {
|
|
27
|
+
return mimeTypes[extname(path).toLowerCase()] ?? 'application/octet-stream';
|
|
28
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes a caller-provided storage path into a safe relative path.
|
|
3
|
+
*
|
|
4
|
+
* @param path - User or application supplied storage path.
|
|
5
|
+
* @returns Normalized relative storage path using forward slashes.
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeStoragePath(path: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes a storage directory path while allowing the disk root.
|
|
10
|
+
*
|
|
11
|
+
* @param path - User or application supplied directory path.
|
|
12
|
+
* @returns Normalized relative directory path, or an empty string for the root.
|
|
13
|
+
*/
|
|
14
|
+
export declare function normalizeStorageDirectoryPath(path?: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves a normalized storage path against a local disk root.
|
|
17
|
+
*
|
|
18
|
+
* @param root - Absolute or process-relative disk root.
|
|
19
|
+
* @param path - Storage path to resolve.
|
|
20
|
+
* @returns Absolute filesystem path inside the disk root.
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveLocalStoragePath(root: string, path: string): string;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { isAbsolute, resolve, sep } from 'node:path';
|
|
2
|
+
import { posix } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes a caller-provided storage path into a safe relative path.
|
|
5
|
+
*
|
|
6
|
+
* @param path - User or application supplied storage path.
|
|
7
|
+
* @returns Normalized relative storage path using forward slashes.
|
|
8
|
+
*/
|
|
9
|
+
export function normalizeStoragePath(path) {
|
|
10
|
+
if (typeof path !== 'string') {
|
|
11
|
+
throw new Error('Storage path must be a string.');
|
|
12
|
+
}
|
|
13
|
+
if (path.includes('\0')) {
|
|
14
|
+
throw new Error('Storage path cannot contain null bytes.');
|
|
15
|
+
}
|
|
16
|
+
const input = path.trim().replace(/\\/g, '/');
|
|
17
|
+
if (!input) {
|
|
18
|
+
throw new Error('Storage path cannot be empty.');
|
|
19
|
+
}
|
|
20
|
+
if (input.startsWith('/') || isAbsolute(input)) {
|
|
21
|
+
throw new Error(`Storage path "${path}" must be relative.`);
|
|
22
|
+
}
|
|
23
|
+
if (/^[A-Za-z]:\//.test(input)) {
|
|
24
|
+
throw new Error(`Storage path "${path}" must be relative.`);
|
|
25
|
+
}
|
|
26
|
+
const normalized = posix.normalize(input);
|
|
27
|
+
if (normalized === '.' || normalized === '..' || normalized.startsWith('../')) {
|
|
28
|
+
throw new Error(`Storage path "${path}" cannot leave the storage disk root.`);
|
|
29
|
+
}
|
|
30
|
+
return normalized;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Normalizes a storage directory path while allowing the disk root.
|
|
34
|
+
*
|
|
35
|
+
* @param path - User or application supplied directory path.
|
|
36
|
+
* @returns Normalized relative directory path, or an empty string for the root.
|
|
37
|
+
*/
|
|
38
|
+
export function normalizeStorageDirectoryPath(path = '') {
|
|
39
|
+
if (typeof path !== 'string') {
|
|
40
|
+
throw new Error('Storage path must be a string.');
|
|
41
|
+
}
|
|
42
|
+
const input = path.trim().replace(/\\/g, '/');
|
|
43
|
+
if (input === '' || input === '.')
|
|
44
|
+
return '';
|
|
45
|
+
return normalizeStoragePath(input);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolves a normalized storage path against a local disk root.
|
|
49
|
+
*
|
|
50
|
+
* @param root - Absolute or process-relative disk root.
|
|
51
|
+
* @param path - Storage path to resolve.
|
|
52
|
+
* @returns Absolute filesystem path inside the disk root.
|
|
53
|
+
*/
|
|
54
|
+
export function resolveLocalStoragePath(root, path) {
|
|
55
|
+
const normalizedRoot = resolve(root);
|
|
56
|
+
const resolved = resolve(normalizedRoot, normalizeStoragePath(path));
|
|
57
|
+
if (resolved !== normalizedRoot && !resolved.startsWith(`${normalizedRoot}${sep}`)) {
|
|
58
|
+
throw new Error(`Storage path "${path}" cannot leave the storage disk root.`);
|
|
59
|
+
}
|
|
60
|
+
return resolved;
|
|
61
|
+
}
|