@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
|
@@ -4,31 +4,68 @@
|
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
6
|
*/
|
|
7
|
+
import { AttachmentError } from '../errors.js';
|
|
8
|
+
import { emitAttachmentEvent, toAttachmentEventFailure, } from '../events/attachment_events.js';
|
|
7
9
|
export class AttachmentJobProcessor {
|
|
8
10
|
#attachments;
|
|
9
11
|
#variants;
|
|
12
|
+
#metadata;
|
|
13
|
+
#events;
|
|
14
|
+
#defaultEvents;
|
|
10
15
|
#resolvedVariants;
|
|
11
16
|
constructor(options) {
|
|
12
17
|
this.#attachments = options.attachments;
|
|
13
18
|
this.#variants = options.variants;
|
|
19
|
+
this.#metadata = options.metadata;
|
|
20
|
+
this.#events = options.events;
|
|
21
|
+
}
|
|
22
|
+
/** Overrides the event emitter after construction, for config-driven workers. */
|
|
23
|
+
setEventEmitter(events) {
|
|
24
|
+
this.#events = events;
|
|
14
25
|
}
|
|
15
26
|
async process(job) {
|
|
16
27
|
switch (job.type) {
|
|
17
28
|
case 'generate-variants':
|
|
18
|
-
await this.#generateVariants(job.attachmentId, job.variantKeys);
|
|
29
|
+
await this.#generateVariants(job.attachmentId, job.variantKeys, job.meta, job.eventContext);
|
|
30
|
+
return;
|
|
31
|
+
case 'extract-metadata':
|
|
32
|
+
if (!this.#metadata) {
|
|
33
|
+
throw new DeferredMetadataProcessorNotConfiguredError();
|
|
34
|
+
}
|
|
35
|
+
await this.#extractMetadata(job.attachment, job.eventContext);
|
|
19
36
|
return;
|
|
20
37
|
}
|
|
21
38
|
}
|
|
22
|
-
async #generateVariants(attachmentId, variantKeys) {
|
|
39
|
+
async #generateVariants(attachmentId, variantKeys, meta, eventContext) {
|
|
23
40
|
const attachment = await this.#attachments.findById(attachmentId);
|
|
24
41
|
if (!attachment) {
|
|
25
42
|
throw new AttachmentNotFoundError(attachmentId);
|
|
26
43
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
44
|
+
await this.#emit('attachment:variant_started', attachment, variantKeys, eventContext);
|
|
45
|
+
try {
|
|
46
|
+
const variants = await this.#getVariants();
|
|
47
|
+
await variants.generate({
|
|
48
|
+
attachment,
|
|
49
|
+
...(variantKeys ? { variantKeys } : {}),
|
|
50
|
+
...(meta !== undefined ? { meta } : {}),
|
|
51
|
+
});
|
|
52
|
+
await this.#emit('attachment:variant_completed', attachment, variantKeys, eventContext);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
await this.#emit('attachment:variant_failed', attachment, variantKeys, eventContext, error);
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async #extractMetadata(attachment, eventContext) {
|
|
60
|
+
await this.#emit('attachment:metadata_started', attachment, undefined, eventContext);
|
|
61
|
+
try {
|
|
62
|
+
await this.#metadata.extractAndPersistMetadata(attachment);
|
|
63
|
+
await this.#emit('attachment:metadata_completed', attachment, undefined, eventContext);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
await this.#emit('attachment:metadata_failed', attachment, undefined, eventContext, error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
32
69
|
}
|
|
33
70
|
#getVariants() {
|
|
34
71
|
if (typeof this.#variants !== 'function') {
|
|
@@ -37,11 +74,47 @@ export class AttachmentJobProcessor {
|
|
|
37
74
|
this.#resolvedVariants ??= Promise.resolve(this.#variants());
|
|
38
75
|
return this.#resolvedVariants;
|
|
39
76
|
}
|
|
77
|
+
async #emit(event, attachment, variants, context, error) {
|
|
78
|
+
emitAttachmentEvent(await this.#getEvents(), event, {
|
|
79
|
+
...(context ?? {}),
|
|
80
|
+
attachment,
|
|
81
|
+
...(variants ? { variants } : {}),
|
|
82
|
+
...(error ? { error: toAttachmentEventFailure(error) } : {}),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
#getEvents() {
|
|
86
|
+
if (this.#events) {
|
|
87
|
+
return Promise.resolve(this.#events);
|
|
88
|
+
}
|
|
89
|
+
this.#defaultEvents ??= this.#resolveAdonisEmitter();
|
|
90
|
+
return this.#defaultEvents;
|
|
91
|
+
}
|
|
92
|
+
async #resolveAdonisEmitter() {
|
|
93
|
+
try {
|
|
94
|
+
const [{ AdonisAttachmentEventEmitter }, { default: emitter }] = await Promise.all([
|
|
95
|
+
import('../events/adonis_attachment_event_emitter.js'),
|
|
96
|
+
import('@adonisjs/core/services/emitter'),
|
|
97
|
+
]);
|
|
98
|
+
return new AdonisAttachmentEventEmitter(emitter);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
40
104
|
}
|
|
41
|
-
export class AttachmentNotFoundError extends
|
|
105
|
+
export class AttachmentNotFoundError extends AttachmentError {
|
|
106
|
+
static code = 'E_ATTACHMENT_NOT_FOUND';
|
|
107
|
+
static status = 404;
|
|
42
108
|
constructor(attachmentId) {
|
|
43
109
|
super(`Attachment "${attachmentId}" was not found`);
|
|
44
110
|
this.name = 'AttachmentNotFoundError';
|
|
45
111
|
}
|
|
46
112
|
}
|
|
113
|
+
export class DeferredMetadataProcessorNotConfiguredError extends AttachmentError {
|
|
114
|
+
static code = 'E_METADATA_PROCESSOR_NOT_CONFIGURED';
|
|
115
|
+
constructor() {
|
|
116
|
+
super('Attachment metadata jobs require a configured metadata processor');
|
|
117
|
+
this.name = 'DeferredMetadataProcessorNotConfiguredError';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
47
120
|
//# sourceMappingURL=attachment_job_processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_job_processor.js","sourceRoot":"","sources":["../../../src/core/attachment_job_processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"attachment_job_processor.js","sourceRoot":"","sources":["../../../src/core/attachment_job_processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { Attachment } from './attachment.js';
|
|
8
|
+
import type { AttachmentMetadata } from '../media/media_metadata.js';
|
|
9
|
+
/** Persists metadata extracted after an attachment has already been stored. */
|
|
10
|
+
export interface AttachmentMetadataPersister {
|
|
11
|
+
persistMetadata(attachment: Attachment, metadata: AttachmentMetadata): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=attachment_metadata_persister.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment_metadata_persister.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_metadata_persister.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,+EAA+E;AAC/E,MAAM,WAAW,2BAA2B;IAC1C,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attachment_metadata_persister.js","sourceRoot":"","sources":["../../../src/core/attachment_metadata_persister.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AttachmentVariantKey } from '../../index.js';
|
|
1
2
|
export type AttachmentPersistenceContext<Model = unknown> = {
|
|
2
3
|
model?: Model;
|
|
3
4
|
field?: string;
|
|
@@ -14,7 +15,7 @@ export type AttachmentPersistenceOptions<Model = unknown> = {
|
|
|
14
15
|
rename?: AttachmentRename<Model> | null;
|
|
15
16
|
meta?: boolean | null;
|
|
16
17
|
preComputeUrl?: boolean | null;
|
|
17
|
-
variants?: readonly
|
|
18
|
+
variants?: readonly AttachmentVariantKey[] | null;
|
|
18
19
|
};
|
|
19
20
|
export type ResolvedAttachmentPersistenceOptions<Model = unknown> = {
|
|
20
21
|
disk?: string;
|
|
@@ -22,7 +23,7 @@ export type ResolvedAttachmentPersistenceOptions<Model = unknown> = {
|
|
|
22
23
|
rename?: AttachmentRename<Model>;
|
|
23
24
|
meta?: boolean;
|
|
24
25
|
preComputeUrl?: boolean;
|
|
25
|
-
variants?: readonly
|
|
26
|
+
variants?: readonly AttachmentVariantKey[];
|
|
26
27
|
};
|
|
27
28
|
/**
|
|
28
29
|
* Resolves options from lowest to highest priority. An explicit `null` clears
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_options.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IACxC,MAAM,GACN,CAAC,CAAC,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAEhF,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IACxC,OAAO,GACP,CAAC,CAAC,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAEhF;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"attachment_options.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE1D,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IACxC,MAAM,GACN,CAAC,CAAC,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAEhF,MAAM,MAAM,gBAAgB,CAAC,KAAK,GAAG,OAAO,IACxC,OAAO,GACP,CAAC,CAAC,OAAO,EAAE,4BAA4B,CAAC,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AAEhF;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,KAAK,GAAG,OAAO,IAAI;IAC1D,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACvC,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;IACvC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACrB,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAAA;CAClD,CAAA;AAED,MAAM,MAAM,oCAAoC,CAAC,KAAK,GAAG,OAAO,IAAI;IAClE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAC3C,CAAA;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,CAAC,KAAK,GAAG,OAAO,EACjE,GAAG,MAAM,EAAE,aAAa,CAAC,4BAA4B,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,GACxE,oCAAoC,CAAC,KAAK,CAAC,CAS7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_options.js","sourceRoot":"","sources":["../../../src/core/attachment_options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attachment_options.js","sourceRoot":"","sources":["../../../src/core/attachment_options.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,GAAG,MAAsE;IAEzE,OAAO;QACL,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAChC,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClC,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClC,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QAChC,GAAG,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC;QACzC,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC;KACrC,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CACpB,GAAQ,EACR,MAAsE;IAEtE,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAA;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC"}
|
|
@@ -7,14 +7,25 @@
|
|
|
7
7
|
import { AttachmentDraft, type Attachment, type CreateAttachmentInput } from './attachment.js';
|
|
8
8
|
import { type AttachmentPersistenceOptions } from './attachment_options.js';
|
|
9
9
|
import type { AttachmentQueue } from './queue.js';
|
|
10
|
+
import type { AttachmentMetadataPersister } from './attachment_metadata_persister.js';
|
|
10
11
|
import type { AttachmentStorage } from './storage.js';
|
|
12
|
+
import { type MediaMetadataExtractor } from '../media/media_metadata.js';
|
|
13
|
+
import { AttachmentError } from '../errors.js';
|
|
14
|
+
import type { AttachmentVariantKey } from '../../index.js';
|
|
15
|
+
import { type AttachmentEventContext, type AttachmentEventEmitter } from '../events/attachment_events.js';
|
|
11
16
|
export type AttachmentServiceOptions = {
|
|
12
17
|
storage: AttachmentStorage;
|
|
13
18
|
queue: AttachmentQueue;
|
|
14
19
|
defaultDisk: string;
|
|
15
20
|
createId?: () => string;
|
|
16
21
|
defaults?: AttachmentPersistenceOptions;
|
|
22
|
+
metadataExtractors?: readonly MediaMetadataExtractor[];
|
|
23
|
+
metadataMode?: AttachmentMetadataMode;
|
|
24
|
+
metadataPersister?: AttachmentMetadataPersister;
|
|
25
|
+
metadataVariants?: boolean;
|
|
26
|
+
events?: AttachmentEventEmitter;
|
|
17
27
|
};
|
|
28
|
+
export type AttachmentMetadataMode = 'sync' | 'deferred';
|
|
18
29
|
/**
|
|
19
30
|
* Creates files and delegates persistence to the configured storage backend.
|
|
20
31
|
* Database persistence deliberately remains the responsibility of the caller.
|
|
@@ -29,6 +40,18 @@ export declare class AttachmentService {
|
|
|
29
40
|
create(input: CreateAttachmentInput): Promise<Attachment>;
|
|
30
41
|
remove(attachment: Attachment): Promise<void>;
|
|
31
42
|
read(attachment: Attachment): Promise<Uint8Array>;
|
|
32
|
-
|
|
43
|
+
scheduleMetadataExtraction(attachment: Attachment, eventContext?: AttachmentEventContext): Promise<void>;
|
|
44
|
+
extractAndPersistMetadata(attachment: Attachment): Promise<void>;
|
|
45
|
+
scheduleVariantGeneration(attachment: Attachment, variantKeys?: readonly AttachmentVariantKey[], meta?: boolean, eventContext?: AttachmentEventContext): Promise<void>;
|
|
46
|
+
/** Resolves automatic variant keys with manager options taking precedence. */
|
|
47
|
+
getVariantKeys(draft: AttachmentDraft, options?: AttachmentPersistenceOptions): readonly AttachmentVariantKey[] | undefined;
|
|
48
|
+
/** Resolves whether variants should run the configured metadata extractors. */
|
|
49
|
+
getVariantMetadataEnabled(draft: AttachmentDraft | undefined, options?: AttachmentPersistenceOptions): boolean | undefined;
|
|
50
|
+
/** Resolves the configured strategy when metadata is enabled for a persistence operation. */
|
|
51
|
+
getMetadataMode(draft: AttachmentDraft | undefined, options?: AttachmentPersistenceOptions): AttachmentMetadataMode | undefined;
|
|
52
|
+
}
|
|
53
|
+
export declare class DeferredMetadataNotConfiguredError extends AttachmentError {
|
|
54
|
+
static code: string;
|
|
55
|
+
constructor();
|
|
33
56
|
}
|
|
34
57
|
//# sourceMappingURL=attachment_service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_service.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EAEf,KAAK,UAAU,EAEf,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAIL,KAAK,4BAA4B,EAElC,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"attachment_service.d.ts","sourceRoot":"","sources":["../../../src/core/attachment_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EAEf,KAAK,UAAU,EAEf,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAIL,KAAK,4BAA4B,EAElC,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,iBAAiB,CAAA;IAC1B,KAAK,EAAE,eAAe,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,4BAA4B,CAAA;IACvC,kBAAkB,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACtD,YAAY,CAAC,EAAE,sBAAsB,CAAA;IACrC,iBAAiB,CAAC,EAAE,2BAA2B,CAAA;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,MAAM,CAAC,EAAE,sBAAsB,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,UAAU,CAAA;AAExD;;;GAGG;AACH,qBAAa,iBAAiB;;gBAWhB,OAAO,EAAE,wBAAwB;IAc7C,WAAW,CACT,KAAK,EAAE,qBAAqB,EAC5B,OAAO,GAAE,4BAAiC,GACzC,eAAe;IAgBlB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsDzD,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjD,0BAA0B,CACxB,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,sBAAsB,GACpC,OAAO,CAAC,IAAI,CAAC;IAaV,yBAAyB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtE,yBAAyB,CACvB,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,EAC7C,IAAI,CAAC,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,sBAAsB,GACpC,OAAO,CAAC,IAAI,CAAC;IAUhB,8EAA8E;IAC9E,cAAc,CACZ,KAAK,EAAE,eAAe,EACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,SAAS,oBAAoB,EAAE,GAAG,SAAS;IAI9C,+EAA+E;IAC/E,yBAAyB,CACvB,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,GAAG,SAAS;IAUtB,6FAA6F;IAC7F,eAAe,CACb,KAAK,EAAE,eAAe,GAAG,SAAS,EAClC,OAAO,CAAC,EAAE,4BAA4B,GACrC,sBAAsB,GAAG,SAAS;CAoBtC;AAED,qBAAa,kCAAmC,SAAQ,eAAe;IACrE,MAAM,CAAC,IAAI,SAA8B;;CAM1C"}
|
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
import { AttachmentDraft, AttachmentFactory, } from './attachment.js';
|
|
8
8
|
import { markAttachmentPending } from './attachment_state.js';
|
|
9
9
|
import { resolveAttachmentPersistenceOptions, } from './attachment_options.js';
|
|
10
|
+
import { MediaMetadataService } from '../media/media_metadata.js';
|
|
11
|
+
import { AttachmentError } from '../errors.js';
|
|
12
|
+
import { emitAttachmentEvent, toAttachmentEventFailure, } from '../events/attachment_events.js';
|
|
10
13
|
/**
|
|
11
14
|
* Creates files and delegates persistence to the configured storage backend.
|
|
12
15
|
* Database persistence deliberately remains the responsibility of the caller.
|
|
@@ -16,11 +19,23 @@ export class AttachmentService {
|
|
|
16
19
|
#queue;
|
|
17
20
|
#factory;
|
|
18
21
|
#defaults;
|
|
22
|
+
#metadata;
|
|
23
|
+
#metadataMode;
|
|
24
|
+
#metadataPersister;
|
|
25
|
+
#metadataVariants;
|
|
26
|
+
#events;
|
|
19
27
|
constructor(options) {
|
|
20
28
|
this.#storage = options.storage;
|
|
21
29
|
this.#queue = options.queue;
|
|
22
30
|
this.#factory = new AttachmentFactory(options);
|
|
23
31
|
this.#defaults = options.defaults ?? {};
|
|
32
|
+
this.#metadata = options.metadataExtractors
|
|
33
|
+
? new MediaMetadataService(options.metadataExtractors)
|
|
34
|
+
: undefined;
|
|
35
|
+
this.#metadataMode = options.metadataMode ?? 'sync';
|
|
36
|
+
this.#metadataPersister = options.metadataPersister;
|
|
37
|
+
this.#metadataVariants = options.metadataVariants ?? true;
|
|
38
|
+
this.#events = options.events;
|
|
24
39
|
}
|
|
25
40
|
createDraft(input, options = {}) {
|
|
26
41
|
const draftOptions = {
|
|
@@ -49,12 +64,29 @@ export class AttachmentService {
|
|
|
49
64
|
const options = resolveAttachmentPersistenceOptions(this.#defaults, request?.options, draft.options);
|
|
50
65
|
const folder = await resolveFolder(options.folder, context);
|
|
51
66
|
const name = await resolveName(options.rename, context);
|
|
52
|
-
|
|
67
|
+
let attachment = this.#factory.create(source, {
|
|
53
68
|
id: draft.id,
|
|
54
69
|
...(options.disk ? { disk: options.disk } : {}),
|
|
55
70
|
...(folder ? { folder } : {}),
|
|
56
71
|
...(name ? { name } : {}),
|
|
57
72
|
});
|
|
73
|
+
if (options.meta && this.#metadata && this.#metadataMode === 'sync') {
|
|
74
|
+
this.#emit('attachment:metadata_started', attachment);
|
|
75
|
+
try {
|
|
76
|
+
const metadata = await this.#metadata.extract({ attachment, body: source.body });
|
|
77
|
+
if (metadata) {
|
|
78
|
+
attachment = {
|
|
79
|
+
...attachment,
|
|
80
|
+
metadata: { ...metadata, ...(source.metadata ?? {}) },
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
this.#emit('attachment:metadata_completed', attachment);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.#emit('attachment:metadata_failed', attachment, undefined, undefined, error);
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
58
90
|
await this.#storage.write({
|
|
59
91
|
disk: attachment.disk,
|
|
60
92
|
path: attachment.path,
|
|
@@ -62,21 +94,80 @@ export class AttachmentService {
|
|
|
62
94
|
mimeType: attachment.mimeType,
|
|
63
95
|
});
|
|
64
96
|
markAttachmentPending(draft);
|
|
97
|
+
this.#emit('attachment:created', attachment);
|
|
65
98
|
return attachment;
|
|
66
99
|
}
|
|
67
|
-
remove(attachment) {
|
|
68
|
-
|
|
100
|
+
async remove(attachment) {
|
|
101
|
+
await this.#storage.remove(attachment);
|
|
102
|
+
this.#emit('attachment:deleted', attachment);
|
|
69
103
|
}
|
|
70
104
|
read(attachment) {
|
|
71
105
|
return this.#storage.read({ disk: attachment.disk, path: attachment.path });
|
|
72
106
|
}
|
|
73
|
-
|
|
107
|
+
scheduleMetadataExtraction(attachment, eventContext) {
|
|
108
|
+
if (!this.#metadata || !this.#metadataPersister) {
|
|
109
|
+
throw new DeferredMetadataNotConfiguredError();
|
|
110
|
+
}
|
|
111
|
+
return this.#queue.enqueue({
|
|
112
|
+
type: 'extract-metadata',
|
|
113
|
+
attachmentId: attachment.id,
|
|
114
|
+
attachment,
|
|
115
|
+
...(eventContext ? { eventContext } : {}),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
async extractAndPersistMetadata(attachment) {
|
|
119
|
+
if (!this.#metadata || !this.#metadataPersister) {
|
|
120
|
+
throw new DeferredMetadataNotConfiguredError();
|
|
121
|
+
}
|
|
122
|
+
const extracted = await this.#metadata.extract({ attachment, body: await this.read(attachment) });
|
|
123
|
+
if (!extracted) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
await this.#metadataPersister.persistMetadata(attachment, {
|
|
127
|
+
...extracted,
|
|
128
|
+
...(attachment.metadata ?? {}),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
scheduleVariantGeneration(attachment, variantKeys, meta, eventContext) {
|
|
74
132
|
return this.#queue.enqueue({
|
|
75
133
|
type: 'generate-variants',
|
|
76
134
|
attachmentId: attachment.id,
|
|
77
135
|
...(variantKeys ? { variantKeys } : {}),
|
|
136
|
+
...(meta !== undefined ? { meta } : {}),
|
|
137
|
+
...(eventContext ? { eventContext } : {}),
|
|
78
138
|
});
|
|
79
139
|
}
|
|
140
|
+
/** Resolves automatic variant keys with manager options taking precedence. */
|
|
141
|
+
getVariantKeys(draft, options) {
|
|
142
|
+
return resolveAttachmentPersistenceOptions(this.#defaults, options, draft.options).variants;
|
|
143
|
+
}
|
|
144
|
+
/** Resolves whether variants should run the configured metadata extractors. */
|
|
145
|
+
getVariantMetadataEnabled(draft, options) {
|
|
146
|
+
return this.#metadataVariants
|
|
147
|
+
? resolveAttachmentPersistenceOptions(this.#defaults, options, draft?.options).meta
|
|
148
|
+
: undefined;
|
|
149
|
+
}
|
|
150
|
+
/** Resolves the configured strategy when metadata is enabled for a persistence operation. */
|
|
151
|
+
getMetadataMode(draft, options) {
|
|
152
|
+
return resolveAttachmentPersistenceOptions(this.#defaults, options, draft?.options).meta
|
|
153
|
+
? this.#metadataMode
|
|
154
|
+
: undefined;
|
|
155
|
+
}
|
|
156
|
+
#emit(event, attachment, variants, context, error) {
|
|
157
|
+
emitAttachmentEvent(this.#events, event, {
|
|
158
|
+
...(context ?? {}),
|
|
159
|
+
attachment,
|
|
160
|
+
...(variants ? { variants } : {}),
|
|
161
|
+
...(error ? { error: toAttachmentEventFailure(error) } : {}),
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
export class DeferredMetadataNotConfiguredError extends AttachmentError {
|
|
166
|
+
static code = 'E_METADATA_NOT_CONFIGURED';
|
|
167
|
+
constructor() {
|
|
168
|
+
super('Deferred metadata extraction requires configured extractors and a metadata persister');
|
|
169
|
+
this.name = 'DeferredMetadataNotConfiguredError';
|
|
170
|
+
}
|
|
80
171
|
}
|
|
81
172
|
async function resolveFolder(folder, context) {
|
|
82
173
|
if (typeof folder === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment_service.js","sourceRoot":"","sources":["../../../src/core/attachment_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,eAAe,EACf,iBAAiB,GAIlB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EACL,mCAAmC,GAKpC,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"attachment_service.js","sourceRoot":"","sources":["../../../src/core/attachment_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { AttachmentFactory, AttachmentDraft, isAttachmentDraft, type Attachment, type AttachmentDraftPersistence, type AttachmentFactoryOptions, type AttachmentPersistRequest, type CreateAttachmentInput, } from './attachment.js';
|
|
8
8
|
export { resolveAttachmentPersistenceOptions, type AttachmentFolder, type AttachmentPersistenceContext, type AttachmentPersistenceOptions, type AttachmentRename, type ResolvedAttachmentPersistenceOptions, } from './attachment_options.js';
|
|
9
|
-
export { AttachmentService, type AttachmentServiceOptions } from './attachment_service.js';
|
|
10
|
-
export {
|
|
9
|
+
export { AttachmentService, DeferredMetadataNotConfiguredError, type AttachmentMetadataMode, type AttachmentServiceOptions, } from './attachment_service.js';
|
|
10
|
+
export { type AttachmentMetadataPersister } from './attachment_metadata_persister.js';
|
|
11
|
+
export { emitAttachmentEvent, toAttachmentEventFailure, type AttachmentEventContext, type AttachmentEventEmitter, type AttachmentEventFailure, type AttachmentEventName, type AttachmentEventPayload, } from '../events/attachment_events.js';
|
|
12
|
+
export { AttachmentError, AttachmentSourceError, MissingOptionalDependencyError, type AttachmentErrorOptions, } from '../errors.js';
|
|
13
|
+
export { default as Converter, type ConverterAttributes, type ConverterOptions, type BlurhashComponent, type BlurhashOptions, } from '../converters/converter.js';
|
|
14
|
+
export { default as AutodetectConverter, type AutodetectConverterOptions, } from '../converters/autodetect_converter.js';
|
|
15
|
+
export { ConfiguredVariantConverterRegistry, InvalidConverterModuleError, type ConverterConfig, type ConverterConfigMap, type ConverterConstructor, type ConverterModule, type VariantConverterRegistry, } from '../converters/configured_variant_converter_registry.js';
|
|
16
|
+
export { MediaMetadataService, type AttachmentMetadata, type MediaMetadataExtractor, type MediaMetadataInput, } from '../media/media_metadata.js';
|
|
17
|
+
export { AttachmentJobProcessor, AttachmentNotFoundError, DeferredMetadataProcessorNotConfiguredError, type DeferredAttachmentMetadataProcessor, type AttachmentJobProcessorOptions, type VariantGenerationRequest, type VariantGenerator, type VariantGeneratorFactory, } from './attachment_job_processor.js';
|
|
11
18
|
export { type AttachmentRepository } from './attachment_repository.js';
|
|
12
19
|
export { type AttachmentJob, type AttachmentJobHandler, type AttachmentQueue, type GenerateVariantsJob, } from './queue.js';
|
|
13
20
|
export { type AttachmentStorage, type StorageLocation, type WriteAttachmentInput, } from './storage.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mCAAmC,EACnC,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,oCAAoC,GAC1C,MAAM,yBAAyB,CAAA;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mCAAmC,EACnC,KAAK,gBAAgB,EACrB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,gBAAgB,EACrB,KAAK,oCAAoC,GAC1C,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,iBAAiB,EACjB,kCAAkC,EAClC,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,KAAK,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,OAAO,IAAI,SAAS,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,OAAO,IAAI,mBAAmB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,kCAAkC,EAClC,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,2CAA2C,EAC3C,KAAK,mCAAmC,EACxC,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACtE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,cAAc,CAAA"}
|
package/build/src/core/index.js
CHANGED
|
@@ -6,6 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { AttachmentFactory, AttachmentDraft, isAttachmentDraft, } from './attachment.js';
|
|
8
8
|
export { resolveAttachmentPersistenceOptions, } from './attachment_options.js';
|
|
9
|
-
export { AttachmentService } from './attachment_service.js';
|
|
10
|
-
export {
|
|
9
|
+
export { AttachmentService, DeferredMetadataNotConfiguredError, } from './attachment_service.js';
|
|
10
|
+
export { emitAttachmentEvent, toAttachmentEventFailure, } from '../events/attachment_events.js';
|
|
11
|
+
export { AttachmentError, AttachmentSourceError, MissingOptionalDependencyError, } from '../errors.js';
|
|
12
|
+
export { default as Converter, } from '../converters/converter.js';
|
|
13
|
+
export { default as AutodetectConverter, } from '../converters/autodetect_converter.js';
|
|
14
|
+
export { ConfiguredVariantConverterRegistry, InvalidConverterModuleError, } from '../converters/configured_variant_converter_registry.js';
|
|
15
|
+
export { MediaMetadataService, } from '../media/media_metadata.js';
|
|
16
|
+
export { AttachmentJobProcessor, AttachmentNotFoundError, DeferredMetadataProcessorNotConfiguredError, } from './attachment_job_processor.js';
|
|
11
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAMlB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mCAAmC,GAMpC,MAAM,yBAAyB,CAAA;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAMlB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,mCAAmC,GAMpC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,iBAAiB,EACjB,kCAAkC,GAGnC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAMzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,8BAA8B,GAE/B,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,OAAO,IAAI,SAAS,GAKrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,OAAO,IAAI,mBAAmB,GAE/B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,kCAAkC,EAClC,2BAA2B,GAM5B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,oBAAoB,GAIrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,2CAA2C,GAM5C,MAAM,+BAA+B,CAAA"}
|
|
@@ -4,12 +4,22 @@
|
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
6
|
*/
|
|
7
|
+
import type { Attachment } from './attachment.js';
|
|
8
|
+
import type { AttachmentEventContext } from '../events/attachment_events.js';
|
|
7
9
|
export type GenerateVariantsJob = {
|
|
8
10
|
type: 'generate-variants';
|
|
9
11
|
attachmentId: string;
|
|
10
12
|
variantKeys?: readonly string[];
|
|
13
|
+
meta?: boolean;
|
|
14
|
+
eventContext?: AttachmentEventContext;
|
|
11
15
|
};
|
|
12
|
-
export type
|
|
16
|
+
export type ExtractMetadataJob = {
|
|
17
|
+
type: 'extract-metadata';
|
|
18
|
+
attachmentId: string;
|
|
19
|
+
attachment: Attachment;
|
|
20
|
+
eventContext?: AttachmentEventContext;
|
|
21
|
+
};
|
|
22
|
+
export type AttachmentJob = GenerateVariantsJob | ExtractMetadataJob;
|
|
13
23
|
/**
|
|
14
24
|
* Dispatch boundary. External queues only need to accept an AttachmentJob.
|
|
15
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/core/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,mBAAmB,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/core/queue.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAE5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,mBAAmB,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,sBAAsB,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,kBAAkB,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,CAAC,EAAE,sBAAsB,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,CAAA;AAEpE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3C;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
|
@@ -4,14 +4,20 @@
|
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
6
|
*/
|
|
7
|
+
import { type AttachmentTableNames } from './integrations/lucid/schema/attachment_table_names.js';
|
|
7
8
|
import type { ApplicationService, ConfigProvider } from '@adonisjs/core/types';
|
|
8
9
|
import type { AttachmentServiceOptions } from './core/attachment_service.js';
|
|
10
|
+
import type { AttachmentMetadataMode } from './core/attachment_service.js';
|
|
11
|
+
import type { AttachmentMetadataPersister } from './core/attachment_metadata_persister.js';
|
|
9
12
|
import type { AttachmentJobProcessor } from './core/attachment_job_processor.js';
|
|
10
13
|
import type { AttachmentRepository } from './core/attachment_repository.js';
|
|
11
14
|
import type { AttachmentJobHandler, AttachmentQueue } from './core/queue.js';
|
|
12
15
|
import type { AttachmentStorage } from './core/storage.js';
|
|
13
16
|
import type { AttachmentManagerOptions } from './sources/attachment_manager.js';
|
|
14
17
|
import type { AttachmentPersistenceOptions } from './core/attachment_options.js';
|
|
18
|
+
import type { MediaMetadataExtractor } from './media/media_metadata.js';
|
|
19
|
+
import type { AttachmentEventEmitter } from './events/attachment_events.js';
|
|
20
|
+
import { type ConverterConfigMap, type VariantConverterRegistry } from './converters/configured_variant_converter_registry.js';
|
|
15
21
|
type Integration<T> = T | ((app: ApplicationService) => T | Promise<T>);
|
|
16
22
|
export type AttachmentRouteConfig = false | {
|
|
17
23
|
prefix?: string;
|
|
@@ -19,7 +25,28 @@ export type AttachmentRouteConfig = false | {
|
|
|
19
25
|
export type ResolvedAttachmentRouteConfig = {
|
|
20
26
|
path: string;
|
|
21
27
|
};
|
|
22
|
-
export type
|
|
28
|
+
export type LucidAttachmentConfig = {
|
|
29
|
+
/** Blob table name. The link table is derived as `${singular(tableName)}_links`. */
|
|
30
|
+
tableName?: string;
|
|
31
|
+
};
|
|
32
|
+
export type AttachmentIntegrationsConfig = {
|
|
33
|
+
/** Optional configuration for the Lucid persistence integration. */
|
|
34
|
+
lucid?: LucidAttachmentConfig;
|
|
35
|
+
};
|
|
36
|
+
export type AttachmentMediaConfig = {
|
|
37
|
+
/** Extracts technical metadata when a persistence option enables `meta`. */
|
|
38
|
+
metadata?: Integration<readonly MediaMetadataExtractor[]>;
|
|
39
|
+
metadataPolicy?: {
|
|
40
|
+
mode?: AttachmentMetadataMode;
|
|
41
|
+
variants?: boolean;
|
|
42
|
+
};
|
|
43
|
+
metadataPersister?: Integration<AttachmentMetadataPersister>;
|
|
44
|
+
};
|
|
45
|
+
/** Optional application event emitter used for attachment lifecycle events. */
|
|
46
|
+
export type AttachmentEventsConfig = Integration<AttachmentEventEmitter>;
|
|
47
|
+
/** v5-style named converter declarations, resolved lazily when a job needs one. */
|
|
48
|
+
export type AttachmentConvertersConfig = ConverterConfigMap;
|
|
49
|
+
export type AttachmentConfig<KnownConverters extends ConverterConfigMap = ConverterConfigMap> = {
|
|
23
50
|
/** Overrides the storage default. Falls back to `fs` when no adapter provides one. */
|
|
24
51
|
defaultDisk?: string;
|
|
25
52
|
storage: Integration<AttachmentStorage>;
|
|
@@ -31,18 +58,28 @@ export type AttachmentConfig = {
|
|
|
31
58
|
defaults?: AttachmentPersistenceOptions;
|
|
32
59
|
sources?: AttachmentManagerOptions;
|
|
33
60
|
route?: AttachmentRouteConfig;
|
|
61
|
+
integrations?: AttachmentIntegrationsConfig;
|
|
62
|
+
media?: AttachmentMediaConfig;
|
|
63
|
+
events?: AttachmentEventsConfig;
|
|
64
|
+
converters?: KnownConverters;
|
|
34
65
|
queueConcurrency?: number;
|
|
35
66
|
createId?: () => string;
|
|
36
67
|
};
|
|
37
|
-
export type ResolvedAttachmentConfig = AttachmentServiceOptions & {
|
|
68
|
+
export type ResolvedAttachmentConfig<KnownConverters extends ConverterConfigMap = ConverterConfigMap> = AttachmentServiceOptions & {
|
|
38
69
|
repository?: AttachmentRepository;
|
|
39
70
|
defaults?: AttachmentPersistenceOptions;
|
|
40
71
|
sources?: AttachmentManagerOptions;
|
|
41
72
|
route: ResolvedAttachmentRouteConfig | false;
|
|
73
|
+
integrations?: {
|
|
74
|
+
lucid?: AttachmentTableNames;
|
|
75
|
+
};
|
|
76
|
+
converters?: VariantConverterRegistry<Extract<keyof KnownConverters, string>>;
|
|
42
77
|
};
|
|
78
|
+
/** Extracts the converter map from a config returned by `defineConfig`. */
|
|
79
|
+
export type InferConverters<Config> = Config extends ConfigProvider<ResolvedAttachmentConfig<infer KnownConverters>> ? KnownConverters : never;
|
|
43
80
|
/**
|
|
44
81
|
* Defers resolution of optional Adonis integrations until application boot.
|
|
45
82
|
*/
|
|
46
|
-
export declare function defineConfig(config: AttachmentConfig): ConfigProvider<ResolvedAttachmentConfig
|
|
83
|
+
export declare function defineConfig<const KnownConverters extends ConverterConfigMap = {}>(config: AttachmentConfig<KnownConverters>): ConfigProvider<ResolvedAttachmentConfig<KnownConverters>>;
|
|
47
84
|
export {};
|
|
48
85
|
//# sourceMappingURL=define_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"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"}
|