@jrmc/adonis-attachment 6.0.0-alpha.1 → 6.0.0-alpha.3
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/build/commands/commands.json +1 -1
- package/build/commands/make/attachment_v5_migration.d.ts.map +1 -1
- package/build/commands/make/attachment_v5_migration.js +6 -3
- package/build/commands/make/attachment_v5_migration.js.map +1 -1
- package/build/commands/make/attachments_table.d.ts.map +1 -1
- package/build/commands/make/attachments_table.js +8 -2
- package/build/commands/make/attachments_table.js.map +1 -1
- package/build/commands/make/converter.d.ts +17 -0
- package/build/commands/make/converter.d.ts.map +1 -0
- package/build/commands/make/converter.js +27 -0
- package/build/commands/make/converter.js.map +1 -0
- package/build/index.d.ts +12 -6
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3 -5
- package/build/index.js.map +1 -1
- package/build/providers/attachment_provider.d.ts.map +1 -1
- package/build/providers/attachment_provider.js +36 -1
- package/build/providers/attachment_provider.js.map +1 -1
- package/build/services/converters.d.ts +10 -0
- package/build/services/converters.d.ts.map +1 -0
- package/build/services/converters.js +17 -0
- package/build/services/converters.js.map +1 -0
- package/build/src/adapters/adonis_drive_storage.d.ts.map +1 -1
- package/build/src/adapters/adonis_drive_storage.js +4 -1
- package/build/src/adapters/adonis_drive_storage.js.map +1 -1
- package/build/src/adapters/local_file_storage.d.ts.map +1 -1
- package/build/src/adapters/local_file_storage.js +9 -2
- package/build/src/adapters/local_file_storage.js.map +1 -1
- package/build/src/converters/autodetect_converter.d.ts +24 -0
- package/build/src/converters/autodetect_converter.d.ts.map +1 -0
- package/build/src/converters/autodetect_converter.js +113 -0
- package/build/src/converters/autodetect_converter.js.map +1 -0
- package/build/src/converters/configured_variant_converter_registry.d.ts +36 -0
- package/build/src/converters/configured_variant_converter_registry.d.ts.map +1 -0
- package/build/src/converters/configured_variant_converter_registry.js +81 -0
- package/build/src/converters/configured_variant_converter_registry.js.map +1 -0
- package/build/src/converters/converter.d.ts +148 -0
- package/build/src/converters/converter.d.ts.map +1 -0
- package/build/src/converters/converter.js +24 -0
- package/build/src/converters/converter.js.map +1 -0
- package/build/src/core/attachment.d.ts +7 -3
- package/build/src/core/attachment.d.ts.map +1 -1
- package/build/src/core/attachment.js +29 -4
- package/build/src/core/attachment.js.map +1 -1
- package/build/src/core/attachment_job_processor.d.ts +17 -1
- package/build/src/core/attachment_job_processor.d.ts.map +1 -1
- package/build/src/core/attachment_job_processor.js +81 -8
- package/build/src/core/attachment_job_processor.js.map +1 -1
- package/build/src/core/attachment_metadata_persister.d.ts +13 -0
- package/build/src/core/attachment_metadata_persister.d.ts.map +1 -0
- package/build/{tests/create_legacy_attachment_migration_script.spec.d.ts → src/core/attachment_metadata_persister.js} +1 -1
- package/build/src/core/attachment_metadata_persister.js.map +1 -0
- package/build/src/core/attachment_options.d.ts +3 -2
- package/build/src/core/attachment_options.d.ts.map +1 -1
- package/build/src/core/attachment_options.js.map +1 -1
- package/build/src/core/attachment_service.d.ts +24 -1
- package/build/src/core/attachment_service.d.ts.map +1 -1
- package/build/src/core/attachment_service.js +95 -4
- package/build/src/core/attachment_service.js.map +1 -1
- package/build/src/core/index.d.ts +9 -2
- package/build/src/core/index.d.ts.map +1 -1
- package/build/src/core/index.js +8 -2
- package/build/src/core/index.js.map +1 -1
- package/build/src/core/queue.d.ts +11 -1
- package/build/src/core/queue.d.ts.map +1 -1
- package/build/src/define_config.d.ts +40 -3
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +43 -1
- package/build/src/define_config.js.map +1 -1
- package/build/src/errors.d.ts +57 -0
- package/build/src/errors.d.ts.map +1 -0
- package/build/src/errors.js +96 -0
- package/build/src/errors.js.map +1 -0
- package/build/src/events/adonis_attachment_event_emitter.d.ts +17 -0
- package/build/src/events/adonis_attachment_event_emitter.d.ts.map +1 -0
- package/build/src/events/adonis_attachment_event_emitter.js +17 -0
- package/build/src/events/adonis_attachment_event_emitter.js.map +1 -0
- package/build/src/events/attachment_events.d.ts +43 -0
- package/build/src/events/attachment_events.d.ts.map +1 -0
- package/build/src/events/attachment_events.js +32 -0
- package/build/src/events/attachment_events.js.map +1 -0
- package/build/src/integrations/lucid/{attachment_column.d.ts → column/attachment_column.d.ts} +2 -2
- package/build/src/integrations/lucid/column/attachment_column.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachment_column.js → column/attachment_column.js} +2 -2
- package/build/src/integrations/lucid/column/attachment_column.js.map +1 -0
- package/build/src/integrations/lucid/index.d.ts +17 -13
- package/build/src/integrations/lucid/index.d.ts.map +1 -1
- package/build/src/integrations/lucid/index.js +17 -13
- package/build/src/integrations/lucid/index.js.map +1 -1
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts +20 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts.map +1 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js +18 -0
- package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment.d.ts → migrations/legacy/migrate_legacy_attachment.d.ts} +22 -10
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.d.ts.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment.js → migrations/legacy/migrate_legacy_attachment.js} +35 -25
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.js.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment_records.d.ts → migrations/legacy/migrate_legacy_attachment_records.d.ts} +3 -3
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.d.ts.map +1 -0
- package/build/src/integrations/lucid/{migrate_legacy_attachment_records.js → migrations/legacy/migrate_legacy_attachment_records.js} +11 -7
- package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.js.map +1 -0
- package/build/src/integrations/lucid/models/attachment_link_model.d.ts +30 -0
- package/build/src/integrations/lucid/models/attachment_link_model.d.ts.map +1 -0
- package/build/src/integrations/lucid/models/attachment_link_model.js +59 -0
- package/build/src/integrations/lucid/models/attachment_link_model.js.map +1 -0
- package/build/src/integrations/lucid/{attachment_model.d.ts → models/attachment_model.d.ts} +5 -8
- package/build/src/integrations/lucid/models/attachment_model.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachment_model.js → models/attachment_model.js} +5 -16
- package/build/src/integrations/lucid/models/attachment_model.js.map +1 -0
- package/build/src/integrations/lucid/{lucid_attachment_lifecycle_service.d.ts → persistence/lucid_attachment_lifecycle_service.d.ts} +18 -14
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js +252 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.d.ts +17 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.js +18 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.js.map +1 -0
- package/build/src/integrations/lucid/{lucid_attachment_repository.d.ts → persistence/lucid_attachment_repository.d.ts} +3 -3
- package/build/src/integrations/lucid/persistence/lucid_attachment_repository.d.ts.map +1 -0
- package/build/src/integrations/lucid/{lucid_attachment_repository.js → persistence/lucid_attachment_repository.js} +1 -1
- package/build/src/integrations/lucid/persistence/lucid_attachment_repository.js.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts +48 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts.map +1 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.js +226 -0
- package/build/src/integrations/lucid/persistence/lucid_attachment_store.js.map +1 -0
- package/build/src/integrations/lucid/{lucid_variant_generation_service.d.ts → persistence/lucid_variant_generation_service.d.ts} +8 -5
- package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/{lucid_variant_generation_service.js → persistence/lucid_variant_generation_service.js} +9 -3
- package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.js.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_owner.d.ts.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_owner.js.map +1 -0
- package/build/src/integrations/lucid/{attachment_relation.d.ts → relations/attachment_relation.d.ts} +29 -15
- package/build/src/integrations/lucid/relations/attachment_relation.d.ts.map +1 -0
- package/build/src/integrations/lucid/relations/attachment_relation.js +273 -0
- package/build/src/integrations/lucid/relations/attachment_relation.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts +28 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.js +81 -0
- package/build/src/integrations/lucid/schema/attachment_schema_service.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.d.ts +15 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.js +23 -0
- package/build/src/integrations/lucid/schema/attachment_table_names.js.map +1 -0
- package/build/src/integrations/lucid/schema/attachments_table_stub.d.ts.map +1 -0
- package/build/src/integrations/lucid/{attachments_table_stub.js → schema/attachments_table_stub.js} +2 -4
- package/build/src/integrations/lucid/schema/attachments_table_stub.js.map +1 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts +12 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts.map +1 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js +19 -0
- package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js.map +1 -0
- package/build/src/media/binaries.d.ts +79 -0
- package/build/src/media/binaries.d.ts.map +1 -0
- package/build/src/media/binaries.js +288 -0
- package/build/src/media/binaries.js.map +1 -0
- package/build/src/media/blurhash.d.ts +48 -0
- package/build/src/media/blurhash.d.ts.map +1 -0
- package/build/src/media/blurhash.js +46 -0
- package/build/src/media/blurhash.js.map +1 -0
- package/build/src/media/exif.d.ts +23 -0
- package/build/src/media/exif.d.ts.map +1 -0
- package/build/src/media/exif.js +98 -0
- package/build/src/media/exif.js.map +1 -0
- package/build/src/media/media_metadata.d.ts +55 -0
- package/build/src/media/media_metadata.d.ts.map +1 -0
- package/build/src/media/media_metadata.js +27 -0
- package/build/src/media/media_metadata.js.map +1 -0
- package/build/src/media/sharp.d.ts +45 -0
- package/build/src/media/sharp.d.ts.map +1 -0
- package/build/src/media/sharp.js +76 -0
- package/build/src/media/sharp.js.map +1 -0
- package/build/src/media/v5_metadata.d.ts +20 -0
- package/build/src/media/v5_metadata.d.ts.map +1 -0
- package/build/src/media/v5_metadata.js +20 -0
- package/build/src/media/v5_metadata.js.map +1 -0
- package/build/src/queues/memory_queue.d.ts.map +1 -1
- package/build/src/queues/memory_queue.js +4 -1
- package/build/src/queues/memory_queue.js.map +1 -1
- package/build/src/sources/attachment_manager.d.ts +1 -3
- package/build/src/sources/attachment_manager.d.ts.map +1 -1
- package/build/src/sources/attachment_manager.js +19 -12
- package/build/src/sources/attachment_manager.js.map +1 -1
- package/build/src/variants/variant_converter.d.ts +4 -1
- package/build/src/variants/variant_converter.d.ts.map +1 -1
- package/build/src/variants/variant_generation_service.d.ts +9 -3
- package/build/src/variants/variant_generation_service.d.ts.map +1 -1
- package/build/src/variants/variant_generation_service.js +47 -6
- package/build/src/variants/variant_generation_service.js.map +1 -1
- package/build/stubs/config/attachment.stub +23 -2
- package/build/stubs/converters/converter.stub +18 -0
- package/build/stubs/migrations/attachments_table.stub +7 -25
- package/build/{src/integrations/lucid/render_legacy_attachment_migration_script.js → stubs/migrations/legacy_attachment_migration.stub} +13 -15
- package/build/tests/adonis_queue.spec.js +56 -1
- package/build/tests/adonis_queue.spec.js.map +1 -1
- package/build/tests/attachment_events.spec.d.ts +8 -0
- package/build/tests/attachment_events.spec.d.ts.map +1 -0
- package/build/tests/attachment_events.spec.js +65 -0
- package/build/tests/attachment_events.spec.js.map +1 -0
- package/build/tests/attachment_job_processor.spec.js +77 -2
- package/build/tests/attachment_job_processor.spec.js.map +1 -1
- package/build/tests/attachment_provider.spec.js +84 -1
- package/build/tests/attachment_provider.spec.js.map +1 -1
- package/build/tests/attachment_schema_service.spec.d.ts +8 -0
- package/build/tests/attachment_schema_service.spec.d.ts.map +1 -0
- package/build/tests/attachment_schema_service.spec.js +52 -0
- package/build/tests/attachment_schema_service.spec.js.map +1 -0
- package/build/tests/attachment_service.spec.js +81 -2
- package/build/tests/attachment_service.spec.js.map +1 -1
- package/build/tests/attachment_table_names.spec.d.ts +8 -0
- package/build/tests/attachment_table_names.spec.d.ts.map +1 -0
- package/build/tests/attachment_table_names.spec.js +36 -0
- package/build/tests/attachment_table_names.spec.js.map +1 -0
- package/build/tests/attachments_table_stub.spec.js +41 -6
- package/build/tests/attachments_table_stub.spec.js.map +1 -1
- package/build/tests/autodetect_converter.spec.d.ts +8 -0
- package/build/tests/autodetect_converter.spec.d.ts.map +1 -0
- package/build/tests/autodetect_converter.spec.js +55 -0
- package/build/tests/autodetect_converter.spec.js.map +1 -0
- package/build/tests/binary_media.spec.d.ts +8 -0
- package/build/tests/binary_media.spec.d.ts.map +1 -0
- package/build/tests/binary_media.spec.js +106 -0
- package/build/tests/binary_media.spec.js.map +1 -0
- package/build/tests/blurhash_media.spec.d.ts +8 -0
- package/build/tests/blurhash_media.spec.d.ts.map +1 -0
- package/build/tests/blurhash_media.spec.js +40 -0
- package/build/tests/blurhash_media.spec.js.map +1 -0
- package/build/tests/configure.spec.js +1 -0
- package/build/tests/configure.spec.js.map +1 -1
- package/build/tests/configured_variant_converter_registry.spec.d.ts +8 -0
- package/build/tests/configured_variant_converter_registry.spec.d.ts.map +1 -0
- package/build/tests/configured_variant_converter_registry.spec.js +73 -0
- package/build/tests/configured_variant_converter_registry.spec.js.map +1 -0
- package/build/tests/converter_config.types.d.ts +36 -0
- package/build/tests/converter_config.types.d.ts.map +1 -0
- package/build/tests/converter_config.types.js +60 -0
- package/build/tests/converter_config.types.js.map +1 -0
- package/build/tests/define_config.spec.js +113 -0
- package/build/tests/define_config.spec.js.map +1 -1
- package/build/tests/errors.spec.d.ts +8 -0
- package/build/tests/errors.spec.d.ts.map +1 -0
- package/build/tests/errors.spec.js +43 -0
- package/build/tests/errors.spec.js.map +1 -0
- package/build/tests/exif_media.spec.d.ts +8 -0
- package/build/tests/exif_media.spec.d.ts.map +1 -0
- package/build/tests/exif_media.spec.js +50 -0
- package/build/tests/exif_media.spec.js.map +1 -0
- package/build/tests/helpers/lucid_test_database.d.ts.map +1 -1
- package/build/tests/helpers/lucid_test_database.js +17 -7
- package/build/tests/helpers/lucid_test_database.js.map +1 -1
- package/build/tests/legacy_attachment_migration_stub.spec.d.ts +8 -0
- package/build/tests/legacy_attachment_migration_stub.spec.d.ts.map +1 -0
- package/build/tests/legacy_attachment_migration_stub.spec.js +57 -0
- package/build/tests/legacy_attachment_migration_stub.spec.js.map +1 -0
- package/build/tests/lucid_attachment_collection_store.spec.js +5 -4
- package/build/tests/lucid_attachment_collection_store.spec.js.map +1 -1
- package/build/tests/lucid_attachment_column.spec.js +1 -1
- package/build/tests/lucid_attachment_column.spec.js.map +1 -1
- package/build/tests/lucid_attachment_lifecycle_service.spec.js +144 -256
- package/build/tests/lucid_attachment_lifecycle_service.spec.js.map +1 -1
- package/build/tests/lucid_attachment_metadata_persister.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_metadata_persister.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_metadata_persister.spec.js +34 -0
- package/build/tests/lucid_attachment_metadata_persister.spec.js.map +1 -0
- package/build/tests/lucid_attachment_relation.spec.js +167 -27
- package/build/tests/lucid_attachment_relation.spec.js.map +1 -1
- package/build/tests/lucid_attachment_repository.spec.js +1 -1
- package/build/tests/lucid_attachment_repository.spec.js.map +1 -1
- package/build/tests/lucid_attachment_store.spec.js +24 -52
- package/build/tests/lucid_attachment_store.spec.js.map +1 -1
- package/build/tests/lucid_sqlite_integration.spec.js +24 -18
- package/build/tests/lucid_sqlite_integration.spec.js.map +1 -1
- package/build/tests/lucid_variant_generation_service.spec.js +18 -1
- package/build/tests/lucid_variant_generation_service.spec.js.map +1 -1
- package/build/tests/make_converter.spec.d.ts +8 -0
- package/build/tests/make_converter.spec.d.ts.map +1 -0
- package/build/tests/make_converter.spec.js +32 -0
- package/build/tests/make_converter.spec.js.map +1 -0
- package/build/tests/media_metadata.spec.d.ts +8 -0
- package/build/tests/media_metadata.spec.d.ts.map +1 -0
- package/build/tests/media_metadata.spec.js +51 -0
- package/build/tests/media_metadata.spec.js.map +1 -0
- package/build/tests/migrate_legacy_attachment.spec.js +62 -47
- package/build/tests/migrate_legacy_attachment.spec.js.map +1 -1
- package/build/tests/migrate_legacy_attachment_records.spec.js +4 -3
- package/build/tests/migrate_legacy_attachment_records.spec.js.map +1 -1
- package/build/tests/package_exports.spec.js +18 -2
- package/build/tests/package_exports.spec.js.map +1 -1
- package/build/tests/sharp_media.spec.d.ts +8 -0
- package/build/tests/sharp_media.spec.d.ts.map +1 -0
- package/build/tests/sharp_media.spec.js +84 -0
- package/build/tests/sharp_media.spec.js.map +1 -0
- package/build/tests/v5_metadata.spec.d.ts +8 -0
- package/build/tests/v5_metadata.spec.d.ts.map +1 -0
- package/build/tests/v5_metadata.spec.js +19 -0
- package/build/tests/v5_metadata.spec.js.map +1 -0
- package/build/tests/variant_generation_service.spec.js +122 -0
- package/build/tests/variant_generation_service.spec.js.map +1 -1
- package/package.json +50 -2
- package/build/src/integrations/lucid/attachment_column.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_column.js.map +0 -1
- package/build/src/integrations/lucid/attachment_model.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_model.js.map +0 -1
- package/build/src/integrations/lucid/attachment_owner.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_owner.js.map +0 -1
- package/build/src/integrations/lucid/attachment_relation.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachment_relation.js +0 -163
- package/build/src/integrations/lucid/attachment_relation.js.map +0 -1
- package/build/src/integrations/lucid/attachments_table_stub.d.ts.map +0 -1
- package/build/src/integrations/lucid/attachments_table_stub.js.map +0 -1
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts +0 -13
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts.map +0 -1
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js +0 -20
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js +0 -188
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_repository.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_repository.js.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts +0 -36
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_attachment_store.js +0 -179
- package/build/src/integrations/lucid/lucid_attachment_store.js.map +0 -1
- package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts.map +0 -1
- package/build/src/integrations/lucid/lucid_variant_generation_service.js.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment.js.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts.map +0 -1
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.js.map +0 -1
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts +0 -11
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts.map +0 -1
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js.map +0 -1
- package/build/tests/create_legacy_attachment_migration_script.spec.d.ts.map +0 -1
- package/build/tests/create_legacy_attachment_migration_script.spec.js +0 -31
- package/build/tests/create_legacy_attachment_migration_script.spec.js.map +0 -1
- /package/build/src/integrations/lucid/{attachment_owner.d.ts → relations/attachment_owner.d.ts} +0 -0
- /package/build/src/integrations/lucid/{attachment_owner.js → relations/attachment_owner.js} +0 -0
- /package/build/src/integrations/lucid/{attachments_table_stub.d.ts → schema/attachments_table_stub.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autodetect_converter.js","sourceRoot":"","sources":["../../../src/converters/autodetect_converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import Converter, { type ConverterOptions } from './converter.js';
|
|
8
|
+
import type { VariantConverter } from '../variants/variant_converter.js';
|
|
9
|
+
import { AttachmentError } from '../errors.js';
|
|
10
|
+
export type ConverterConstructor = new (options?: any) => Converter<any>;
|
|
11
|
+
export type ConverterModule = {
|
|
12
|
+
default: ConverterConstructor | Converter | VariantConverter;
|
|
13
|
+
};
|
|
14
|
+
export type ConverterConfig<Options extends ConverterOptions = ConverterOptions> = Options & {
|
|
15
|
+
/** Defaults to AutodetectConverter when omitted. */
|
|
16
|
+
converter?: () => Promise<ConverterModule>;
|
|
17
|
+
/** Optional nested options are merged after the direct v5-style options. */
|
|
18
|
+
options?: Partial<Options>;
|
|
19
|
+
};
|
|
20
|
+
export type ConverterConfigMap = Record<string, ConverterConfig>;
|
|
21
|
+
export interface VariantConverterRegistry<Key extends string = string> {
|
|
22
|
+
keys(): Promise<readonly Key[]>;
|
|
23
|
+
get(key: string): Promise<VariantConverter | undefined>;
|
|
24
|
+
}
|
|
25
|
+
/** Lazily imports and instantiates the converters declared in package configuration. */
|
|
26
|
+
export declare class ConfiguredVariantConverterRegistry<Config extends ConverterConfigMap = ConverterConfigMap> implements VariantConverterRegistry<Extract<keyof Config, string>> {
|
|
27
|
+
#private;
|
|
28
|
+
constructor(config: Config);
|
|
29
|
+
keys(): Promise<readonly Extract<keyof Config, string>[]>;
|
|
30
|
+
get(key: string): Promise<VariantConverter | undefined>;
|
|
31
|
+
}
|
|
32
|
+
export declare class InvalidConverterModuleError extends AttachmentError {
|
|
33
|
+
static code: string;
|
|
34
|
+
constructor(key: string);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=configured_variant_converter_registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured_variant_converter_registry.d.ts","sourceRoot":"","sources":["../../../src/converters/configured_variant_converter_registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,SAAS,EAAE,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,oBAAoB,GAAG,KAAK,OAAO,CAAC,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAA;AACxE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,oBAAoB,GAAG,SAAS,GAAG,gBAAgB,CAAA;CAC7D,CAAA;AACD,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,IAAI,OAAO,GAAG;IAC3F,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3B,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;AAEhE,MAAM,WAAW,wBAAwB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IACnE,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAA;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;CACxD;AAED,wFAAwF;AACxF,qBAAa,kCAAkC,CAC7C,MAAM,SAAS,kBAAkB,GAAG,kBAAkB,CACtD,YAAW,wBAAwB,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,CAAC;;gBAItD,MAAM,EAAE,MAAM;IAIpB,IAAI,IAAI,OAAO,CAAC,SAAS,OAAO,CAAC,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAI/D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAuCxD;AAED,qBAAa,2BAA4B,SAAQ,eAAe;IAC9D,MAAM,CAAC,IAAI,SAA+B;gBAE9B,GAAG,EAAE,MAAM;CAIxB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import Converter from './converter.js';
|
|
8
|
+
import AutodetectConverter from './autodetect_converter.js';
|
|
9
|
+
import { AttachmentError } from '../errors.js';
|
|
10
|
+
/** Lazily imports and instantiates the converters declared in package configuration. */
|
|
11
|
+
export class ConfiguredVariantConverterRegistry {
|
|
12
|
+
#config;
|
|
13
|
+
#converters = new Map();
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.#config = config;
|
|
16
|
+
}
|
|
17
|
+
async keys() {
|
|
18
|
+
return Object.keys(this.#config);
|
|
19
|
+
}
|
|
20
|
+
get(key) {
|
|
21
|
+
const config = this.#config[key];
|
|
22
|
+
if (!config) {
|
|
23
|
+
return Promise.resolve(undefined);
|
|
24
|
+
}
|
|
25
|
+
let converter = this.#converters.get(key);
|
|
26
|
+
if (!converter) {
|
|
27
|
+
converter = this.#load(key, config);
|
|
28
|
+
this.#converters.set(key, converter);
|
|
29
|
+
}
|
|
30
|
+
return converter;
|
|
31
|
+
}
|
|
32
|
+
async #load(key, config) {
|
|
33
|
+
if (!config.converter) {
|
|
34
|
+
const options = resolveOptions(config);
|
|
35
|
+
return asVariantConverter(key, new AutodetectConverter(options), options);
|
|
36
|
+
}
|
|
37
|
+
const module = await config.converter();
|
|
38
|
+
const implementation = module.default;
|
|
39
|
+
if (isVariantConverter(implementation)) {
|
|
40
|
+
return asVariantConverter(key, implementation, resolveOptions(config));
|
|
41
|
+
}
|
|
42
|
+
const converter = typeof implementation === 'function'
|
|
43
|
+
? new implementation(resolveOptions(config))
|
|
44
|
+
: implementation;
|
|
45
|
+
if (!(converter instanceof Converter)) {
|
|
46
|
+
throw new InvalidConverterModuleError(key);
|
|
47
|
+
}
|
|
48
|
+
return asVariantConverter(key, converter, converter.options);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export class InvalidConverterModuleError extends AttachmentError {
|
|
52
|
+
static code = 'E_INVALID_CONVERTER_MODULE';
|
|
53
|
+
constructor(key) {
|
|
54
|
+
super(`Converter "${key}" must default-export a Converter class or a VariantConverter object`);
|
|
55
|
+
this.name = 'InvalidConverterModuleError';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function isVariantConverter(value) {
|
|
59
|
+
return !!value && typeof value === 'object' && 'convert' in value && typeof value.convert === 'function';
|
|
60
|
+
}
|
|
61
|
+
function asVariantConverter(key, converter, options) {
|
|
62
|
+
const inheritedBlurhash = converter instanceof Converter ? undefined : converter.blurhash;
|
|
63
|
+
return {
|
|
64
|
+
key,
|
|
65
|
+
...(options?.blurhash !== undefined
|
|
66
|
+
? { blurhash: options.blurhash }
|
|
67
|
+
: inheritedBlurhash !== undefined
|
|
68
|
+
? { blurhash: inheritedBlurhash }
|
|
69
|
+
: {}),
|
|
70
|
+
convert(input) {
|
|
71
|
+
return converter instanceof Converter
|
|
72
|
+
? converter.handle({ ...input, options: converter.options })
|
|
73
|
+
: converter.convert(input);
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function resolveOptions(config) {
|
|
78
|
+
const { converter: _converter, options, ...direct } = config;
|
|
79
|
+
return { ...direct, ...options };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=configured_variant_converter_registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured_variant_converter_registry.js","sourceRoot":"","sources":["../../../src/converters/configured_variant_converter_registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { VariantConversionInput, VariantConversionOutput } from '../variants/variant_converter.js';
|
|
8
|
+
import type { BlurhashOptions } from '../media/blurhash.js';
|
|
9
|
+
export type { BlurhashComponent, BlurhashOptions } from '../media/blurhash.js';
|
|
10
|
+
export type SharpBackground = string | {
|
|
11
|
+
r: number;
|
|
12
|
+
g: number;
|
|
13
|
+
b: number;
|
|
14
|
+
alpha: number;
|
|
15
|
+
};
|
|
16
|
+
/** Matches the resize options supported by Sharp and exposed by v5. */
|
|
17
|
+
export type SharpResizeOptions = {
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
fit?: string;
|
|
21
|
+
position?: string;
|
|
22
|
+
background?: SharpBackground;
|
|
23
|
+
kernel?: string;
|
|
24
|
+
withoutEnlargement?: boolean;
|
|
25
|
+
withoutReduction?: boolean;
|
|
26
|
+
fastShrinkOnLoad?: boolean;
|
|
27
|
+
};
|
|
28
|
+
export type SharpOutputFormat = 'jpeg' | 'jpg' | 'png' | 'gif' | 'webp' | 'avif' | 'heif' | 'tiff' | 'raw';
|
|
29
|
+
type JpegFormatOptions = {
|
|
30
|
+
quality?: number;
|
|
31
|
+
progressive?: boolean;
|
|
32
|
+
chromaSubsampling?: string;
|
|
33
|
+
optimiseCoding?: boolean;
|
|
34
|
+
optimizeCoding?: boolean;
|
|
35
|
+
mozjpeg?: boolean;
|
|
36
|
+
trellisQuantisation?: boolean;
|
|
37
|
+
overshootDeringing?: boolean;
|
|
38
|
+
optimiseScans?: boolean;
|
|
39
|
+
optimizeScans?: boolean;
|
|
40
|
+
quantisationTable?: number;
|
|
41
|
+
quantizationTable?: number;
|
|
42
|
+
force?: boolean;
|
|
43
|
+
};
|
|
44
|
+
type PngFormatOptions = {
|
|
45
|
+
quality?: number;
|
|
46
|
+
progressive?: boolean;
|
|
47
|
+
compressionLevel?: number;
|
|
48
|
+
adaptiveFiltering?: boolean;
|
|
49
|
+
palette?: boolean;
|
|
50
|
+
effort?: number;
|
|
51
|
+
colours?: number;
|
|
52
|
+
colors?: number;
|
|
53
|
+
dither?: number;
|
|
54
|
+
force?: boolean;
|
|
55
|
+
};
|
|
56
|
+
type GifFormatOptions = {
|
|
57
|
+
reuse?: boolean;
|
|
58
|
+
progressive?: boolean;
|
|
59
|
+
colours?: number;
|
|
60
|
+
colors?: number;
|
|
61
|
+
effort?: number;
|
|
62
|
+
dither?: number;
|
|
63
|
+
interFrameMaxError?: number;
|
|
64
|
+
interPaletteMaxError?: number;
|
|
65
|
+
loop?: number;
|
|
66
|
+
delay?: number | number[];
|
|
67
|
+
force?: boolean;
|
|
68
|
+
};
|
|
69
|
+
type WebpFormatOptions = {
|
|
70
|
+
quality?: number;
|
|
71
|
+
alphaQuality?: number;
|
|
72
|
+
lossless?: boolean;
|
|
73
|
+
nearLossless?: boolean;
|
|
74
|
+
smartSubsample?: boolean;
|
|
75
|
+
preset?: string;
|
|
76
|
+
effort?: number;
|
|
77
|
+
loop?: number;
|
|
78
|
+
delay?: number | number[];
|
|
79
|
+
minSize?: boolean;
|
|
80
|
+
mixed?: boolean;
|
|
81
|
+
force?: boolean;
|
|
82
|
+
};
|
|
83
|
+
type AvifFormatOptions = {
|
|
84
|
+
quality?: number;
|
|
85
|
+
lossless?: boolean;
|
|
86
|
+
effort?: number;
|
|
87
|
+
chromaSubsampling?: string;
|
|
88
|
+
bitdepth?: number;
|
|
89
|
+
};
|
|
90
|
+
type HeifFormatOptions = {
|
|
91
|
+
compression?: string;
|
|
92
|
+
quality?: number;
|
|
93
|
+
lossless?: boolean;
|
|
94
|
+
effort?: number;
|
|
95
|
+
chromaSubsampling?: string;
|
|
96
|
+
bitdepth?: number;
|
|
97
|
+
};
|
|
98
|
+
export type SharpFormatOptions = JpegFormatOptions | PngFormatOptions | GifFormatOptions | WebpFormatOptions | AvifFormatOptions | HeifFormatOptions;
|
|
99
|
+
/** A v5-compatible Sharp output format declaration. */
|
|
100
|
+
export type SharpFormat = SharpOutputFormat | {
|
|
101
|
+
format: 'jpeg' | 'jpg';
|
|
102
|
+
options?: JpegFormatOptions;
|
|
103
|
+
} | {
|
|
104
|
+
format: 'png';
|
|
105
|
+
options?: PngFormatOptions;
|
|
106
|
+
} | {
|
|
107
|
+
format: 'gif';
|
|
108
|
+
options?: GifFormatOptions;
|
|
109
|
+
} | {
|
|
110
|
+
format: 'webp';
|
|
111
|
+
options?: WebpFormatOptions;
|
|
112
|
+
} | {
|
|
113
|
+
format: 'avif';
|
|
114
|
+
options?: AvifFormatOptions;
|
|
115
|
+
} | {
|
|
116
|
+
format: 'heif';
|
|
117
|
+
options?: HeifFormatOptions;
|
|
118
|
+
} | {
|
|
119
|
+
format: 'tiff' | 'raw';
|
|
120
|
+
};
|
|
121
|
+
/** Options declared next to a converter in `config/attachment.ts`. */
|
|
122
|
+
export type ConverterOptions = {
|
|
123
|
+
resize?: number | SharpResizeOptions;
|
|
124
|
+
format?: SharpFormat;
|
|
125
|
+
autoOrient?: boolean;
|
|
126
|
+
blurhash?: BlurhashOptions;
|
|
127
|
+
startTime?: number;
|
|
128
|
+
startPage?: number;
|
|
129
|
+
folder?: string;
|
|
130
|
+
[key: string]: unknown;
|
|
131
|
+
};
|
|
132
|
+
export type ConverterAttributes<Options extends ConverterOptions = ConverterOptions> = VariantConversionInput & {
|
|
133
|
+
options: Readonly<Options>;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
* Base class for application converters generated by `make:converter`.
|
|
137
|
+
* Instances receive their configuration entry through the constructor.
|
|
138
|
+
*/
|
|
139
|
+
export default abstract class Converter<Options extends ConverterOptions = ConverterOptions> {
|
|
140
|
+
readonly options: Readonly<Options>;
|
|
141
|
+
constructor(options?: Options);
|
|
142
|
+
abstract handle(attributes: ConverterAttributes<Options>): Promise<VariantConversionOutput | undefined>;
|
|
143
|
+
}
|
|
144
|
+
export declare function normalizeSharpFormat(format: SharpFormat): {
|
|
145
|
+
format: Exclude<SharpOutputFormat, 'jpg'>;
|
|
146
|
+
options?: SharpFormatOptions;
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=converter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../../src/converters/converter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base class for application converters generated by `make:converter`.
|
|
9
|
+
* Instances receive their configuration entry through the constructor.
|
|
10
|
+
*/
|
|
11
|
+
export default class Converter {
|
|
12
|
+
options;
|
|
13
|
+
constructor(options = {}) {
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function normalizeSharpFormat(format) {
|
|
18
|
+
const declared = typeof format === 'string' ? { format } : format;
|
|
19
|
+
return {
|
|
20
|
+
format: declared.format === 'jpg' ? 'jpeg' : declared.format,
|
|
21
|
+
...('options' in declared && declared.options ? { options: declared.options } : {}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/converters/converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsJH;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAgB,SAAS;IAC5B,OAAO,CAAmB;IAEnC,YAAY,UAAmB,EAAa;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;CAGF;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAmB;IAItD,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;IAEjE,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM;QAC5D,GAAG,CAAC,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAA;AACH,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
6
|
*/
|
|
7
7
|
import type { AttachmentPersistenceContext, AttachmentPersistenceOptions } from './attachment_options.js';
|
|
8
|
+
import type { AttachmentMetadata } from '../media/media_metadata.js';
|
|
8
9
|
export type Attachment = Readonly<{
|
|
9
10
|
id: string;
|
|
10
11
|
disk: string;
|
|
@@ -14,7 +15,8 @@ export type Attachment = Readonly<{
|
|
|
14
15
|
size: number;
|
|
15
16
|
extname: string;
|
|
16
17
|
mimeType: string;
|
|
17
|
-
|
|
18
|
+
blurhash?: string;
|
|
19
|
+
metadata?: AttachmentMetadata | undefined;
|
|
18
20
|
}>;
|
|
19
21
|
export type AttachmentPersistRequest<Model = any> = {
|
|
20
22
|
options?: AttachmentPersistenceOptions<Model>;
|
|
@@ -25,9 +27,10 @@ export type CreateAttachmentInput = {
|
|
|
25
27
|
body: Uint8Array;
|
|
26
28
|
originalName: string;
|
|
27
29
|
mimeType?: string;
|
|
30
|
+
blurhash?: string;
|
|
28
31
|
disk?: string;
|
|
29
32
|
folder?: string;
|
|
30
|
-
metadata?:
|
|
33
|
+
metadata?: AttachmentMetadata;
|
|
31
34
|
};
|
|
32
35
|
/**
|
|
33
36
|
* A source-backed attachment that has not been written to storage yet.
|
|
@@ -43,7 +46,8 @@ export declare class AttachmentDraft implements Attachment {
|
|
|
43
46
|
size: number;
|
|
44
47
|
extname: string;
|
|
45
48
|
mimeType: string;
|
|
46
|
-
|
|
49
|
+
blurhash?: string;
|
|
50
|
+
metadata?: AttachmentMetadata | undefined;
|
|
47
51
|
constructor(source: CreateAttachmentInput, provisional: Attachment, options: AttachmentPersistenceOptions, persistence: AttachmentDraftPersistence);
|
|
48
52
|
get isPersisted(): boolean;
|
|
49
53
|
get source(): Readonly<CreateAttachmentInput>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/core/attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,4BAA4B,EAC5B,4BAA4B,EAC7B,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/core/attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { randomUUID } from 'node:crypto';
|
|
8
8
|
import { extname } from 'node:path';
|
|
9
|
+
import { AttachmentError } from '../errors.js';
|
|
9
10
|
/**
|
|
10
11
|
* A source-backed attachment that has not been written to storage yet.
|
|
11
12
|
* Its public properties become final after `persist()` resolves.
|
|
@@ -19,6 +20,7 @@ export class AttachmentDraft {
|
|
|
19
20
|
size;
|
|
20
21
|
extname;
|
|
21
22
|
mimeType;
|
|
23
|
+
blurhash;
|
|
22
24
|
metadata;
|
|
23
25
|
#options;
|
|
24
26
|
#source;
|
|
@@ -34,6 +36,9 @@ export class AttachmentDraft {
|
|
|
34
36
|
this.size = provisional.size;
|
|
35
37
|
this.extname = provisional.extname;
|
|
36
38
|
this.mimeType = provisional.mimeType;
|
|
39
|
+
if (provisional.blurhash) {
|
|
40
|
+
this.blurhash = provisional.blurhash;
|
|
41
|
+
}
|
|
37
42
|
if (provisional.metadata) {
|
|
38
43
|
this.metadata = provisional.metadata;
|
|
39
44
|
}
|
|
@@ -46,7 +51,10 @@ export class AttachmentDraft {
|
|
|
46
51
|
}
|
|
47
52
|
get source() {
|
|
48
53
|
if (!this.#source) {
|
|
49
|
-
throw new
|
|
54
|
+
throw new AttachmentError('Attachment draft source is no longer available after persistence', {
|
|
55
|
+
code: 'E_ATTACHMENT_DRAFT_SOURCE_UNAVAILABLE',
|
|
56
|
+
status: 409,
|
|
57
|
+
});
|
|
50
58
|
}
|
|
51
59
|
return this.#source;
|
|
52
60
|
}
|
|
@@ -66,6 +74,12 @@ export class AttachmentDraft {
|
|
|
66
74
|
this.size = attachment.size;
|
|
67
75
|
this.extname = attachment.extname;
|
|
68
76
|
this.mimeType = attachment.mimeType;
|
|
77
|
+
if (attachment.blurhash) {
|
|
78
|
+
this.blurhash = attachment.blurhash;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
delete this.blurhash;
|
|
82
|
+
}
|
|
69
83
|
if (attachment.metadata) {
|
|
70
84
|
this.metadata = attachment.metadata;
|
|
71
85
|
}
|
|
@@ -85,7 +99,10 @@ export class AttachmentDraft {
|
|
|
85
99
|
}
|
|
86
100
|
toJSON() {
|
|
87
101
|
if (!this.#persisted) {
|
|
88
|
-
throw new
|
|
102
|
+
throw new AttachmentError('Attachment drafts must be persisted before serialization', {
|
|
103
|
+
code: 'E_ATTACHMENT_DRAFT_NOT_PERSISTED',
|
|
104
|
+
status: 409,
|
|
105
|
+
});
|
|
89
106
|
}
|
|
90
107
|
return this.toAttachment();
|
|
91
108
|
}
|
|
@@ -99,6 +116,7 @@ export class AttachmentDraft {
|
|
|
99
116
|
size: this.size,
|
|
100
117
|
extname: this.extname,
|
|
101
118
|
mimeType: this.mimeType,
|
|
119
|
+
...(this.blurhash ? { blurhash: this.blurhash } : {}),
|
|
102
120
|
...(this.metadata ? { metadata: this.metadata } : {}),
|
|
103
121
|
};
|
|
104
122
|
}
|
|
@@ -127,6 +145,7 @@ export class AttachmentFactory {
|
|
|
127
145
|
size: input.body.byteLength,
|
|
128
146
|
extname: extension,
|
|
129
147
|
mimeType: input.mimeType ?? 'application/octet-stream',
|
|
148
|
+
...(input.blurhash ? { blurhash: input.blurhash } : {}),
|
|
130
149
|
...(input.metadata ? { metadata: input.metadata } : {}),
|
|
131
150
|
};
|
|
132
151
|
}
|
|
@@ -136,14 +155,20 @@ function getExtension(fileName) {
|
|
|
136
155
|
}
|
|
137
156
|
function joinPath(folder, name) {
|
|
138
157
|
if (name.includes('/') || name.includes('\\') || name === '.' || name === '..') {
|
|
139
|
-
throw new
|
|
158
|
+
throw new AttachmentError('Attachment names must not contain path separators', {
|
|
159
|
+
code: 'E_INVALID_ATTACHMENT_NAME',
|
|
160
|
+
status: 400,
|
|
161
|
+
});
|
|
140
162
|
}
|
|
141
163
|
if (!folder) {
|
|
142
164
|
return name;
|
|
143
165
|
}
|
|
144
166
|
const normalizedFolder = folder.replaceAll('\\', '/').replace(/^\/+|\/+$/g, '');
|
|
145
167
|
if (!normalizedFolder || normalizedFolder.split('/').includes('..')) {
|
|
146
|
-
throw new
|
|
168
|
+
throw new AttachmentError('Attachment folder must be a relative path without parent segments', {
|
|
169
|
+
code: 'E_INVALID_ATTACHMENT_FOLDER',
|
|
170
|
+
status: 400,
|
|
171
|
+
});
|
|
147
172
|
}
|
|
148
173
|
return `${normalizedFolder}/${name}`;
|
|
149
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../src/core/attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"attachment.js","sourceRoot":"","sources":["../../../src/core/attachment.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
import type { Attachment } from './attachment.js';
|
|
8
8
|
import type { AttachmentJob } from './queue.js';
|
|
9
9
|
import type { AttachmentRepository } from './attachment_repository.js';
|
|
10
|
+
import { AttachmentError } from '../errors.js';
|
|
11
|
+
import { type AttachmentEventEmitter } from '../events/attachment_events.js';
|
|
10
12
|
export type VariantGenerationRequest = {
|
|
11
13
|
attachment: Attachment;
|
|
12
14
|
variantKeys?: readonly string[];
|
|
15
|
+
meta?: boolean;
|
|
13
16
|
};
|
|
14
17
|
export interface VariantGenerator {
|
|
15
18
|
generate(request: VariantGenerationRequest): Promise<void>;
|
|
@@ -18,13 +21,26 @@ export type VariantGeneratorFactory = () => VariantGenerator | Promise<VariantGe
|
|
|
18
21
|
export type AttachmentJobProcessorOptions = {
|
|
19
22
|
attachments: AttachmentRepository;
|
|
20
23
|
variants: VariantGenerator | VariantGeneratorFactory;
|
|
24
|
+
metadata?: DeferredAttachmentMetadataProcessor;
|
|
25
|
+
events?: AttachmentEventEmitter;
|
|
26
|
+
};
|
|
27
|
+
export type DeferredAttachmentMetadataProcessor = {
|
|
28
|
+
extractAndPersistMetadata(attachment: Attachment): Promise<void>;
|
|
21
29
|
};
|
|
22
30
|
export declare class AttachmentJobProcessor {
|
|
23
31
|
#private;
|
|
24
32
|
constructor(options: AttachmentJobProcessorOptions);
|
|
33
|
+
/** Overrides the event emitter after construction, for config-driven workers. */
|
|
34
|
+
setEventEmitter(events: AttachmentEventEmitter): void;
|
|
25
35
|
process(job: AttachmentJob): Promise<void>;
|
|
26
36
|
}
|
|
27
|
-
export declare class AttachmentNotFoundError extends
|
|
37
|
+
export declare class AttachmentNotFoundError extends AttachmentError {
|
|
38
|
+
static code: string;
|
|
39
|
+
static status: number;
|
|
28
40
|
constructor(attachmentId: string);
|
|
29
41
|
}
|
|
42
|
+
export declare class DeferredMetadataProcessorNotConfiguredError extends AttachmentError {
|
|
43
|
+
static code: string;
|
|
44
|
+
constructor();
|
|
45
|
+
}
|
|
30
46
|
//# sourceMappingURL=attachment_job_processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_job_processor.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_job_processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"attachment_job_processor.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_job_processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,EAAE,UAAU,CAAA;IACtB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3D;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAExF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,oBAAoB,CAAA;IACjC,QAAQ,EAAE,gBAAgB,GAAG,uBAAuB,CAAA;IACpD,QAAQ,CAAC,EAAE,mCAAmC,CAAA;IAC9C,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG;IAChD,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACjE,CAAA;AAED,qBAAa,sBAAsB;;gBAQrB,OAAO,EAAE,6BAA6B;IAOlD,iFAAiF;IACjF,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAI/C,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAgGjD;AAED,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,MAAM,CAAC,IAAI,SAA2B;IACtC,MAAM,CAAC,MAAM,SAAM;gBAEP,YAAY,EAAE,MAAM;CAIjC;AAED,qBAAa,2CAA4C,SAAQ,eAAe;IAC9E,MAAM,CAAC,IAAI,SAAwC;;CAMpD"}
|