@jrmc/adonis-attachment 5.2.0 → 6.0.0-alpha.0
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/README.md +10 -73
- package/build/bin/test.d.ts +2 -0
- package/build/bin/test.d.ts.map +1 -0
- package/build/bin/test.js +9 -0
- package/build/bin/test.js.map +1 -0
- package/build/commands/commands.json +1 -1
- package/build/commands/make/attachment_v5_migration.d.ts +17 -0
- package/build/commands/make/attachment_v5_migration.d.ts.map +1 -0
- package/build/commands/make/attachment_v5_migration.js +26 -0
- package/build/commands/make/attachment_v5_migration.js.map +1 -0
- package/build/commands/make/{converter.d.ts → attachments_table.d.ts} +6 -4
- package/build/commands/make/attachments_table.d.ts.map +1 -0
- package/build/commands/make/attachments_table.js +30 -0
- package/build/commands/make/attachments_table.js.map +1 -0
- package/build/configure.d.ts.map +1 -1
- package/build/configure.js +2 -1
- package/build/configure.js.map +1 -0
- package/build/index.d.ts +23 -8
- package/build/index.d.ts.map +1 -1
- package/build/index.js +13 -7
- package/build/index.js.map +1 -0
- package/build/providers/attachment_provider.d.ts +0 -19
- package/build/providers/attachment_provider.d.ts.map +1 -1
- package/build/providers/attachment_provider.js +30 -26
- package/build/providers/attachment_provider.js.map +1 -0
- package/build/services/main.d.ts +3 -3
- package/build/services/main.d.ts.map +1 -1
- package/build/services/main.js +42 -5
- package/build/services/main.js.map +1 -0
- package/build/src/adapters/adonis_drive_storage.d.ts +33 -0
- package/build/src/adapters/adonis_drive_storage.d.ts.map +1 -0
- package/build/src/adapters/adonis_drive_storage.js +35 -0
- package/build/src/adapters/adonis_drive_storage.js.map +1 -0
- package/build/src/adapters/local_file_storage.d.ts +25 -0
- package/build/src/adapters/local_file_storage.d.ts.map +1 -0
- package/build/src/adapters/local_file_storage.js +54 -0
- package/build/src/adapters/local_file_storage.js.map +1 -0
- package/build/src/controllers/attachments_controller.d.ts +13 -2
- package/build/src/controllers/attachments_controller.d.ts.map +1 -1
- package/build/src/controllers/attachments_controller.js +20 -107
- package/build/src/controllers/attachments_controller.js.map +1 -0
- package/build/src/core/attachment.d.ts +35 -0
- package/build/src/core/attachment.d.ts.map +1 -0
- package/build/src/core/attachment.js +47 -0
- package/build/src/core/attachment.js.map +1 -0
- package/build/src/core/attachment_job_processor.d.ts +30 -0
- package/build/src/core/attachment_job_processor.d.ts.map +1 -0
- package/build/src/core/attachment_job_processor.js +47 -0
- package/build/src/core/attachment_job_processor.js.map +1 -0
- package/build/src/core/attachment_repository.d.ts +15 -0
- package/build/src/core/attachment_repository.d.ts.map +1 -0
- package/build/src/core/attachment_repository.js +8 -0
- package/build/src/core/attachment_repository.js.map +1 -0
- package/build/src/core/attachment_service.d.ts +28 -0
- package/build/src/core/attachment_service.d.ts.map +1 -0
- package/build/src/core/attachment_service.js +47 -0
- package/build/src/core/attachment_service.js.map +1 -0
- package/build/src/core/attachment_state.d.ts +11 -0
- package/build/src/core/attachment_state.d.ts.map +1 -0
- package/build/src/core/attachment_state.js +17 -0
- package/build/src/core/attachment_state.js.map +1 -0
- package/build/src/core/index.d.ts +13 -0
- package/build/src/core/index.d.ts.map +1 -0
- package/build/src/core/index.js +10 -0
- package/build/src/core/index.js.map +1 -0
- package/build/src/core/queue.d.ts +20 -0
- package/build/src/core/queue.d.ts.map +1 -0
- package/build/src/{types/event.js → core/queue.js} +1 -0
- package/build/src/core/queue.js.map +1 -0
- package/build/src/core/storage.d.ts +23 -0
- package/build/src/core/storage.d.ts.map +1 -0
- package/build/src/{types/config.js → core/storage.js} +1 -0
- package/build/src/core/storage.js.map +1 -0
- package/build/src/define_config.d.ts +35 -20
- package/build/src/define_config.d.ts.map +1 -1
- package/build/src/define_config.js +45 -24
- package/build/src/define_config.js.map +1 -0
- package/build/src/integrations/lucid/attachment_column.d.ts +11 -0
- package/build/src/integrations/lucid/attachment_column.d.ts.map +1 -0
- package/build/src/integrations/lucid/attachment_column.js +138 -0
- package/build/src/integrations/lucid/attachment_column.js.map +1 -0
- package/build/src/integrations/lucid/attachment_model.d.ts +36 -0
- package/build/src/integrations/lucid/attachment_model.d.ts.map +1 -0
- package/build/src/integrations/lucid/attachment_model.js +96 -0
- package/build/src/integrations/lucid/attachment_model.js.map +1 -0
- package/build/src/integrations/lucid/attachment_owner.d.ts +17 -0
- package/build/src/integrations/lucid/attachment_owner.d.ts.map +1 -0
- package/build/src/integrations/lucid/attachment_owner.js +15 -0
- package/build/src/integrations/lucid/attachment_owner.js.map +1 -0
- package/build/src/integrations/lucid/attachments_table_stub.d.ts +21 -0
- package/build/src/integrations/lucid/attachments_table_stub.d.ts.map +1 -0
- package/build/src/integrations/lucid/attachments_table_stub.js +26 -0
- package/build/src/integrations/lucid/attachments_table_stub.js.map +1 -0
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts +13 -0
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts.map +1 -0
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js +20 -0
- package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js.map +1 -0
- package/build/src/integrations/lucid/index.d.ts +19 -0
- package/build/src/integrations/lucid/index.d.ts.map +1 -0
- package/build/src/integrations/lucid/index.js +19 -0
- package/build/src/integrations/lucid/index.js.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts +21 -0
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js +68 -0
- package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_repository.d.ts +18 -0
- package/build/src/integrations/lucid/lucid_attachment_repository.d.ts.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_repository.js +21 -0
- package/build/src/integrations/lucid/lucid_attachment_repository.js.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts +27 -0
- package/build/src/integrations/lucid/lucid_attachment_store.d.ts.map +1 -0
- package/build/src/integrations/lucid/lucid_attachment_store.js +84 -0
- package/build/src/integrations/lucid/lucid_attachment_store.js.map +1 -0
- package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts +24 -0
- package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts.map +1 -0
- package/build/src/integrations/lucid/lucid_variant_generation_service.js +42 -0
- package/build/src/integrations/lucid/lucid_variant_generation_service.js.map +1 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts +57 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts.map +1 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment.js +67 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment.js.map +1 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts +34 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts.map +1 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.js +47 -0
- package/build/src/integrations/lucid/migrate_legacy_attachment_records.js.map +1 -0
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts +11 -0
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts.map +1 -0
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js +41 -0
- package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js.map +1 -0
- package/build/src/queues/adonis_queue.d.ts +27 -0
- package/build/src/queues/adonis_queue.d.ts.map +1 -0
- package/build/src/queues/adonis_queue.js +22 -0
- package/build/src/queues/adonis_queue.js.map +1 -0
- package/build/src/queues/memory_queue.d.ts +22 -0
- package/build/src/queues/memory_queue.d.ts.map +1 -0
- package/build/src/queues/memory_queue.js +67 -0
- package/build/src/queues/memory_queue.js.map +1 -0
- package/build/src/sources/attachment_manager.d.ts +51 -0
- package/build/src/sources/attachment_manager.d.ts.map +1 -0
- package/build/src/sources/attachment_manager.js +169 -0
- package/build/src/sources/attachment_manager.js.map +1 -0
- package/build/src/variants/variant_converter.d.ts +23 -0
- package/build/src/variants/variant_converter.d.ts.map +1 -0
- package/build/src/{types/converter.js → variants/variant_converter.js} +1 -0
- package/build/src/variants/variant_converter.js.map +1 -0
- package/build/src/variants/variant_generation_service.d.ts +28 -0
- package/build/src/variants/variant_generation_service.d.ts.map +1 -0
- package/build/src/variants/variant_generation_service.js +44 -0
- package/build/src/variants/variant_generation_service.js.map +1 -0
- package/build/stubs/config/attachment.stub +12 -0
- package/build/stubs/main.d.ts.map +1 -1
- package/build/stubs/main.js +1 -0
- package/build/stubs/main.js.map +1 -0
- package/build/stubs/migrations/attachments_table.stub +38 -0
- package/build/tests/adonis_drive_storage.spec.d.ts +8 -0
- package/build/tests/adonis_drive_storage.spec.d.ts.map +1 -0
- package/build/tests/adonis_drive_storage.spec.js +69 -0
- package/build/tests/adonis_drive_storage.spec.js.map +1 -0
- package/build/{src/types/attachment.js → tests/adonis_queue.spec.d.ts} +1 -0
- package/build/tests/adonis_queue.spec.d.ts.map +1 -0
- package/build/tests/adonis_queue.spec.js +52 -0
- package/build/tests/adonis_queue.spec.js.map +1 -0
- package/build/tests/attachment_job_processor.spec.d.ts +8 -0
- package/build/tests/attachment_job_processor.spec.d.ts.map +1 -0
- package/build/tests/attachment_job_processor.spec.js +89 -0
- package/build/tests/attachment_job_processor.spec.js.map +1 -0
- package/build/tests/attachment_manager.spec.d.ts +8 -0
- package/build/tests/attachment_manager.spec.d.ts.map +1 -0
- package/build/tests/attachment_manager.spec.js +128 -0
- package/build/tests/attachment_manager.spec.js.map +1 -0
- package/build/tests/attachment_manager_service.spec.d.ts +8 -0
- package/build/tests/attachment_manager_service.spec.d.ts.map +1 -0
- package/build/tests/attachment_manager_service.spec.js +47 -0
- package/build/tests/attachment_manager_service.spec.js.map +1 -0
- package/build/tests/attachment_provider.spec.d.ts +8 -0
- package/build/tests/attachment_provider.spec.d.ts.map +1 -0
- package/build/tests/attachment_provider.spec.js +71 -0
- package/build/tests/attachment_provider.spec.js.map +1 -0
- package/build/tests/attachment_service.spec.d.ts +8 -0
- package/build/tests/attachment_service.spec.d.ts.map +1 -0
- package/build/tests/attachment_service.spec.js +91 -0
- package/build/tests/attachment_service.spec.js.map +1 -0
- package/build/tests/attachments_controller.spec.d.ts +8 -0
- package/build/tests/attachments_controller.spec.d.ts.map +1 -0
- package/build/tests/attachments_controller.spec.js +34 -0
- package/build/tests/attachments_controller.spec.js.map +1 -0
- package/build/tests/attachments_table_stub.spec.d.ts +2 -0
- package/build/tests/attachments_table_stub.spec.d.ts.map +1 -0
- package/build/tests/attachments_table_stub.spec.js +65 -0
- package/build/tests/attachments_table_stub.spec.js.map +1 -0
- package/build/tests/configure.spec.d.ts +2 -0
- package/build/tests/configure.spec.d.ts.map +1 -0
- package/build/tests/configure.spec.js +38 -0
- package/build/tests/configure.spec.js.map +1 -0
- package/build/tests/container_bindings.types.d.ts +8 -0
- package/build/tests/container_bindings.types.d.ts.map +1 -0
- package/build/tests/container_bindings.types.js +9 -0
- package/build/tests/container_bindings.types.js.map +1 -0
- package/build/tests/create_legacy_attachment_migration_script.spec.d.ts +8 -0
- package/build/tests/create_legacy_attachment_migration_script.spec.d.ts.map +1 -0
- package/build/tests/create_legacy_attachment_migration_script.spec.js +31 -0
- package/build/tests/create_legacy_attachment_migration_script.spec.js.map +1 -0
- package/build/tests/define_config.spec.d.ts +8 -0
- package/build/tests/define_config.spec.d.ts.map +1 -0
- package/build/tests/define_config.spec.js +191 -0
- package/build/tests/define_config.spec.js.map +1 -0
- package/build/tests/helpers/lucid_test_database.d.ts +9 -0
- package/build/tests/helpers/lucid_test_database.d.ts.map +1 -0
- package/build/tests/helpers/lucid_test_database.js +51 -0
- package/build/tests/helpers/lucid_test_database.js.map +1 -0
- package/build/tests/local_file_storage.spec.d.ts +8 -0
- package/build/tests/local_file_storage.spec.d.ts.map +1 -0
- package/build/tests/local_file_storage.spec.js +44 -0
- package/build/tests/local_file_storage.spec.js.map +1 -0
- package/build/tests/lucid_attachment_column.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_column.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_column.spec.js +137 -0
- package/build/tests/lucid_attachment_column.spec.js.map +1 -0
- package/build/tests/lucid_attachment_lifecycle_service.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_lifecycle_service.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_lifecycle_service.spec.js +206 -0
- package/build/tests/lucid_attachment_lifecycle_service.spec.js.map +1 -0
- package/build/tests/lucid_attachment_repository.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_repository.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_repository.spec.js +50 -0
- package/build/tests/lucid_attachment_repository.spec.js.map +1 -0
- package/build/tests/lucid_attachment_store.spec.d.ts +8 -0
- package/build/tests/lucid_attachment_store.spec.d.ts.map +1 -0
- package/build/tests/lucid_attachment_store.spec.js +71 -0
- package/build/tests/lucid_attachment_store.spec.js.map +1 -0
- package/build/tests/lucid_sqlite_integration.spec.d.ts +8 -0
- package/build/tests/lucid_sqlite_integration.spec.d.ts.map +1 -0
- package/build/tests/lucid_sqlite_integration.spec.js +103 -0
- package/build/tests/lucid_sqlite_integration.spec.js.map +1 -0
- package/build/tests/lucid_variant_generation_service.spec.d.ts +8 -0
- package/build/tests/lucid_variant_generation_service.spec.d.ts.map +1 -0
- package/build/tests/lucid_variant_generation_service.spec.js +56 -0
- package/build/tests/lucid_variant_generation_service.spec.js.map +1 -0
- package/build/tests/memory_queue.spec.d.ts +8 -0
- package/build/tests/memory_queue.spec.d.ts.map +1 -0
- package/build/tests/memory_queue.spec.js +52 -0
- package/build/tests/memory_queue.spec.js.map +1 -0
- package/build/tests/migrate_legacy_attachment.spec.d.ts +8 -0
- package/build/tests/migrate_legacy_attachment.spec.d.ts.map +1 -0
- package/build/tests/migrate_legacy_attachment.spec.js +91 -0
- package/build/tests/migrate_legacy_attachment.spec.js.map +1 -0
- package/build/tests/migrate_legacy_attachment_records.spec.d.ts +8 -0
- package/build/tests/migrate_legacy_attachment_records.spec.d.ts.map +1 -0
- package/build/tests/migrate_legacy_attachment_records.spec.js +66 -0
- package/build/tests/migrate_legacy_attachment_records.spec.js.map +1 -0
- package/build/tests/package_exports.spec.d.ts +8 -0
- package/build/tests/package_exports.spec.d.ts.map +1 -0
- package/build/tests/package_exports.spec.js +31 -0
- package/build/tests/package_exports.spec.js.map +1 -0
- package/build/tests/variant_generation_service.spec.d.ts +8 -0
- package/build/tests/variant_generation_service.spec.d.ts.map +1 -0
- package/build/tests/variant_generation_service.spec.js +79 -0
- package/build/tests/variant_generation_service.spec.js.map +1 -0
- package/package.json +82 -78
- package/build/commands/make/converter.d.ts.map +0 -1
- package/build/commands/make/converter.js +0 -28
- package/build/services/regenerate_service.d.ts +0 -9
- package/build/services/regenerate_service.d.ts.map +0 -1
- package/build/services/regenerate_service.js +0 -29
- package/build/src/adapters/blurhash.d.ts +0 -11
- package/build/src/adapters/blurhash.d.ts.map +0 -1
- package/build/src/adapters/blurhash.js +0 -12
- package/build/src/adapters/exif.d.ts +0 -15
- package/build/src/adapters/exif.d.ts.map +0 -1
- package/build/src/adapters/exif.js +0 -165
- package/build/src/adapters/ffmpeg.d.ts +0 -19
- package/build/src/adapters/ffmpeg.d.ts.map +0 -1
- package/build/src/adapters/ffmpeg.js +0 -115
- package/build/src/adapters/lock.d.ts +0 -9
- package/build/src/adapters/lock.d.ts.map +0 -1
- package/build/src/adapters/lock.js +0 -21
- package/build/src/adapters/meta.d.ts +0 -10
- package/build/src/adapters/meta.d.ts.map +0 -1
- package/build/src/adapters/meta.js +0 -49
- package/build/src/adapters/poppler.d.ts +0 -20
- package/build/src/adapters/poppler.d.ts.map +0 -1
- package/build/src/adapters/poppler.js +0 -117
- package/build/src/adapters/soffice.d.ts +0 -14
- package/build/src/adapters/soffice.d.ts.map +0 -1
- package/build/src/adapters/soffice.js +0 -64
- package/build/src/attachment_manager.d.ts +0 -50
- package/build/src/attachment_manager.d.ts.map +0 -1
- package/build/src/attachment_manager.js +0 -145
- package/build/src/attachments/attachment.d.ts +0 -42
- package/build/src/attachments/attachment.d.ts.map +0 -1
- package/build/src/attachments/attachment.js +0 -233
- package/build/src/attachments/attachment_base.d.ts +0 -59
- package/build/src/attachments/attachment_base.d.ts.map +0 -1
- package/build/src/attachments/attachment_base.js +0 -211
- package/build/src/attachments/variant_attachment.d.ts +0 -27
- package/build/src/attachments/variant_attachment.d.ts.map +0 -1
- package/build/src/attachments/variant_attachment.js +0 -40
- package/build/src/converters/autodetect_converter.d.ts +0 -13
- package/build/src/converters/autodetect_converter.d.ts.map +0 -1
- package/build/src/converters/autodetect_converter.js +0 -77
- package/build/src/converters/converter.d.ts +0 -14
- package/build/src/converters/converter.d.ts.map +0 -1
- package/build/src/converters/converter.js +0 -14
- package/build/src/converters/document_thumbnail_converter.d.ts +0 -14
- package/build/src/converters/document_thumbnail_converter.d.ts.map +0 -1
- package/build/src/converters/document_thumbnail_converter.js +0 -36
- package/build/src/converters/image_converter.d.ts +0 -13
- package/build/src/converters/image_converter.d.ts.map +0 -1
- package/build/src/converters/image_converter.js +0 -27
- package/build/src/converters/pdf_thumbnail_converter.d.ts +0 -14
- package/build/src/converters/pdf_thumbnail_converter.d.ts.map +0 -1
- package/build/src/converters/pdf_thumbnail_converter.js +0 -39
- package/build/src/converters/video_thumbnail_converter.d.ts +0 -14
- package/build/src/converters/video_thumbnail_converter.d.ts.map +0 -1
- package/build/src/converters/video_thumbnail_converter.js +0 -40
- package/build/src/decorators/attachment.d.ts +0 -15
- package/build/src/decorators/attachment.d.ts.map +0 -1
- package/build/src/decorators/attachment.js +0 -103
- package/build/src/errors.d.ts +0 -67
- package/build/src/errors.d.ts.map +0 -1
- package/build/src/errors.js +0 -68
- package/build/src/services/attachment/attachment_detachment_service.d.ts +0 -19
- package/build/src/services/attachment/attachment_detachment_service.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_detachment_service.js +0 -66
- package/build/src/services/attachment/attachment_persister_service.d.ts +0 -22
- package/build/src/services/attachment/attachment_persister_service.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_persister_service.js +0 -96
- package/build/src/services/attachment/attachment_recorder_service.d.ts +0 -68
- package/build/src/services/attachment/attachment_recorder_service.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_recorder_service.js +0 -121
- package/build/src/services/attachment/attachment_transaction_service.d.ts +0 -26
- package/build/src/services/attachment/attachment_transaction_service.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_transaction_service.js +0 -46
- package/build/src/services/attachment/attachment_utils.d.ts +0 -35
- package/build/src/services/attachment/attachment_utils.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_utils.js +0 -71
- package/build/src/services/attachment/attachment_variant_service.d.ts +0 -17
- package/build/src/services/attachment/attachment_variant_service.d.ts.map +0 -1
- package/build/src/services/attachment/attachment_variant_service.js +0 -99
- package/build/src/services/attachment/index.d.ts +0 -15
- package/build/src/services/attachment/index.d.ts.map +0 -1
- package/build/src/services/attachment/index.js +0 -15
- package/build/src/services/attachment_service.d.ts +0 -8
- package/build/src/services/attachment_service.d.ts.map +0 -1
- package/build/src/services/attachment_service.js +0 -7
- package/build/src/services/variant/variant_generator_service.d.ts +0 -24
- package/build/src/services/variant/variant_generator_service.d.ts.map +0 -1
- package/build/src/services/variant/variant_generator_service.js +0 -101
- package/build/src/services/variant/variant_persister_service.d.ts +0 -24
- package/build/src/services/variant/variant_persister_service.d.ts.map +0 -1
- package/build/src/services/variant/variant_persister_service.js +0 -59
- package/build/src/services/variant/variant_purger_service.d.ts +0 -15
- package/build/src/services/variant/variant_purger_service.d.ts.map +0 -1
- package/build/src/services/variant/variant_purger_service.js +0 -47
- package/build/src/services/variant_service.d.ts +0 -13
- package/build/src/services/variant_service.d.ts.map +0 -1
- package/build/src/services/variant_service.js +0 -63
- package/build/src/types/attachment.d.ts +0 -100
- package/build/src/types/attachment.d.ts.map +0 -1
- package/build/src/types/config.d.ts +0 -58
- package/build/src/types/config.d.ts.map +0 -1
- package/build/src/types/converter.d.ts +0 -144
- package/build/src/types/converter.d.ts.map +0 -1
- package/build/src/types/drive.d.ts +0 -6
- package/build/src/types/drive.d.ts.map +0 -1
- package/build/src/types/drive.js +0 -1
- package/build/src/types/event.d.ts +0 -16
- package/build/src/types/event.d.ts.map +0 -1
- package/build/src/types/index.d.ts +0 -15
- package/build/src/types/index.d.ts.map +0 -1
- package/build/src/types/index.js +0 -14
- package/build/src/types/input.d.ts +0 -35
- package/build/src/types/input.d.ts.map +0 -1
- package/build/src/types/input.js +0 -7
- package/build/src/types/lock.d.ts +0 -14
- package/build/src/types/lock.d.ts.map +0 -1
- package/build/src/types/lock.js +0 -7
- package/build/src/types/metadata.d.ts +0 -24
- package/build/src/types/metadata.d.ts.map +0 -1
- package/build/src/types/metadata.js +0 -7
- package/build/src/types/mixin.d.ts +0 -17
- package/build/src/types/mixin.d.ts.map +0 -1
- package/build/src/types/mixin.js +0 -7
- package/build/src/types/regenerate.d.ts +0 -12
- package/build/src/types/regenerate.d.ts.map +0 -1
- package/build/src/types/regenerate.js +0 -7
- package/build/src/types/service.d.ts +0 -25
- package/build/src/types/service.d.ts.map +0 -1
- package/build/src/types/service.js +0 -7
- package/build/src/utils/default_values.d.ts +0 -20
- package/build/src/utils/default_values.d.ts.map +0 -1
- package/build/src/utils/default_values.js +0 -19
- package/build/src/utils/helpers.d.ts +0 -19
- package/build/src/utils/helpers.d.ts.map +0 -1
- package/build/src/utils/helpers.js +0 -131
- package/build/src/utils/hooks.d.ts +0 -12
- package/build/src/utils/hooks.d.ts.map +0 -1
- package/build/src/utils/hooks.js +0 -42
- package/build/src/utils/symbols.d.ts +0 -8
- package/build/src/utils/symbols.d.ts.map +0 -1
- package/build/src/utils/symbols.js +0 -7
- package/build/stubs/config.stub +0 -140
- package/build/stubs/make/converter/main.stub +0 -20
- package/build/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export type CreateLegacyAttachmentMigrationScriptOptions = {
|
|
8
|
+
directory: string;
|
|
9
|
+
defaultDisk?: string;
|
|
10
|
+
timestamp?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function createLegacyAttachmentMigrationScript(options: CreateLegacyAttachmentMigrationScriptOptions): Promise<string>;
|
|
13
|
+
//# sourceMappingURL=create_legacy_attachment_migration_script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_legacy_attachment_migration_script.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/create_legacy_attachment_migration_script.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,MAAM,4CAA4C,GAAG;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAsB,qCAAqC,CACzD,OAAO,EAAE,4CAA4C,GACpD,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
8
|
+
import { dirname, join } from 'node:path';
|
|
9
|
+
import { renderLegacyAttachmentMigrationScript } from './render_legacy_attachment_migration_script.js';
|
|
10
|
+
export async function createLegacyAttachmentMigrationScript(options) {
|
|
11
|
+
const timestamp = options.timestamp ?? Date.now();
|
|
12
|
+
const filePath = join(options.directory, `${timestamp}_migrate_v5_attachments.ts`);
|
|
13
|
+
const contents = renderLegacyAttachmentMigrationScript({
|
|
14
|
+
...(options.defaultDisk ? { defaultDisk: options.defaultDisk } : {}),
|
|
15
|
+
});
|
|
16
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
17
|
+
await writeFile(filePath, contents, 'utf8');
|
|
18
|
+
return filePath;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=create_legacy_attachment_migration_script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_legacy_attachment_migration_script.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/create_legacy_attachment_migration_script.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAA;AAQtG,MAAM,CAAC,KAAK,UAAU,qCAAqC,CACzD,OAAqD;IAErD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,SAAS,4BAA4B,CAAC,CAAA;IAClF,MAAM,QAAQ,GAAG,qCAAqC,CAAC;QACrD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,CAAA;IAEF,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACnD,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAE3C,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export { AttachmentModel } from './attachment_model.js';
|
|
8
|
+
export { attachment } from './attachment_column.js';
|
|
9
|
+
export { LucidAttachmentRepository } from './lucid_attachment_repository.js';
|
|
10
|
+
export { LucidAttachmentStore, type LucidAttachmentWithVariants, } from './lucid_attachment_store.js';
|
|
11
|
+
export { LucidAttachmentLifecycleService, type AttachmentFileService, type LucidAttachmentPersistence, } from './lucid_attachment_lifecycle_service.js';
|
|
12
|
+
export { LucidVariantGenerationService, PersistedAttachmentNotFoundError, type LucidVariantGenerationServiceOptions, } from './lucid_variant_generation_service.js';
|
|
13
|
+
export { createAttachmentOwnerKey, type AttachmentOwner } from './attachment_owner.js';
|
|
14
|
+
export { createAttachmentsTableStubState, type AttachmentsTableStubOptions, type AttachmentsTableStubState, } from './attachments_table_stub.js';
|
|
15
|
+
export { migrateLegacyAttachment, type LegacyAttachment, type LegacyVariant, type MigrateLegacyAttachmentOptions, type MigratedAttachmentRow, } from './migrate_legacy_attachment.js';
|
|
16
|
+
export { migrateLegacyAttachmentRecords, type LegacyAttachmentMigrationRecord, type LegacyAttachmentMigrationResult, type LegacyAttachmentMigrationWriter, type MigrateLegacyAttachmentRecordsOptions, } from './migrate_legacy_attachment_records.js';
|
|
17
|
+
export { createLegacyAttachmentMigrationScript, type CreateLegacyAttachmentMigrationScriptOptions, } from './create_legacy_attachment_migration_script.js';
|
|
18
|
+
export { renderLegacyAttachmentMigrationScript, type RenderLegacyAttachmentMigrationScriptOptions, } from './render_legacy_attachment_migration_script.js';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,GACjC,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,+BAA+B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,EAChC,KAAK,oCAAoC,GAC1C,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,+BAA+B,EAC/B,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,GAC3B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,8BAA8B,EAC9B,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,EACpC,KAAK,qCAAqC,GAC3C,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,qCAAqC,EACrC,KAAK,4CAA4C,GAClD,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,qCAAqC,EACrC,KAAK,4CAA4C,GAClD,MAAM,gDAAgD,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export { AttachmentModel } from './attachment_model.js';
|
|
8
|
+
export { attachment } from './attachment_column.js';
|
|
9
|
+
export { LucidAttachmentRepository } from './lucid_attachment_repository.js';
|
|
10
|
+
export { LucidAttachmentStore, } from './lucid_attachment_store.js';
|
|
11
|
+
export { LucidAttachmentLifecycleService, } from './lucid_attachment_lifecycle_service.js';
|
|
12
|
+
export { LucidVariantGenerationService, PersistedAttachmentNotFoundError, } from './lucid_variant_generation_service.js';
|
|
13
|
+
export { createAttachmentOwnerKey } from './attachment_owner.js';
|
|
14
|
+
export { createAttachmentsTableStubState, } from './attachments_table_stub.js';
|
|
15
|
+
export { migrateLegacyAttachment, } from './migrate_legacy_attachment.js';
|
|
16
|
+
export { migrateLegacyAttachmentRecords, } from './migrate_legacy_attachment_records.js';
|
|
17
|
+
export { createLegacyAttachmentMigrationScript, } from './create_legacy_attachment_migration_script.js';
|
|
18
|
+
export { renderLegacyAttachmentMigrationScript, } from './render_legacy_attachment_migration_script.js';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAC5E,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,+BAA+B,GAGhC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,wBAAwB,EAAwB,MAAM,uBAAuB,CAAA;AACtF,OAAO,EACL,+BAA+B,GAGhC,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,uBAAuB,GAKxB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,8BAA8B,GAK/B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,qCAAqC,GAEtC,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACL,qCAAqC,GAEtC,MAAM,gDAAgD,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { CreateAttachmentInput } from '../../core/attachment.js';
|
|
8
|
+
import type { AttachmentService } from '../../core/attachment_service.js';
|
|
9
|
+
import type { AttachmentOwner } from './attachment_owner.js';
|
|
10
|
+
import { AttachmentModel } from './attachment_model.js';
|
|
11
|
+
import { LucidAttachmentStore } from './lucid_attachment_store.js';
|
|
12
|
+
export type AttachmentFileService = Pick<AttachmentService, 'create' | 'remove'>;
|
|
13
|
+
export type LucidAttachmentPersistence = Pick<LucidAttachmentStore, 'createOriginal' | 'findOriginal' | 'listVariants' | 'releaseOwner' | 'restoreOwner' | 'remove'>;
|
|
14
|
+
export declare class LucidAttachmentLifecycleService {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(attachments: AttachmentFileService, store: LucidAttachmentPersistence);
|
|
17
|
+
attach(owner: AttachmentOwner, input: CreateAttachmentInput): Promise<AttachmentModel>;
|
|
18
|
+
replace(owner: AttachmentOwner, input: CreateAttachmentInput): Promise<AttachmentModel>;
|
|
19
|
+
detach(owner: AttachmentOwner): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=lucid_attachment_lifecycle_service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_lifecycle_service.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_lifecycle_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAc,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAA;AAChF,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,oBAAoB,EACpB,gBAAgB,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,QAAQ,CAChG,CAAA;AAED,qBAAa,+BAA+B;;gBAI9B,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,0BAA0B;IAK3E,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAWtF,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiCvF,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBpD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export class LucidAttachmentLifecycleService {
|
|
8
|
+
#attachments;
|
|
9
|
+
#store;
|
|
10
|
+
constructor(attachments, store) {
|
|
11
|
+
this.#attachments = attachments;
|
|
12
|
+
this.#store = store;
|
|
13
|
+
}
|
|
14
|
+
async attach(owner, input) {
|
|
15
|
+
const attachment = await this.#attachments.create(input);
|
|
16
|
+
try {
|
|
17
|
+
return await this.#store.createOriginal(owner, attachment);
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
await this.#removeStoredFile(attachment);
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async replace(owner, input) {
|
|
25
|
+
const previous = await this.#store.findOriginal(owner);
|
|
26
|
+
if (!previous) {
|
|
27
|
+
return this.attach(owner, input);
|
|
28
|
+
}
|
|
29
|
+
const attachment = await this.#attachments.create(input);
|
|
30
|
+
let current;
|
|
31
|
+
try {
|
|
32
|
+
await this.#store.releaseOwner(previous);
|
|
33
|
+
current = await this.#store.createOriginal(owner, attachment);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
await this.#store.restoreOwner(previous).catch(() => undefined);
|
|
37
|
+
await this.#removeStoredFile(attachment);
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
await this.#store.remove(previous);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
await this.#store.remove(current).catch(() => undefined);
|
|
45
|
+
await this.#store.restoreOwner(previous).catch(() => undefined);
|
|
46
|
+
await this.#removeStoredFile(current.toAttachment());
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
await this.#removeStoredFile(previous.toAttachment());
|
|
50
|
+
return current;
|
|
51
|
+
}
|
|
52
|
+
async detach(owner) {
|
|
53
|
+
const original = await this.#store.findOriginal(owner);
|
|
54
|
+
if (!original) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const variants = await this.#store.listVariants(original.id);
|
|
58
|
+
await this.#store.remove(original);
|
|
59
|
+
await Promise.all([
|
|
60
|
+
this.#removeStoredFile(original.toAttachment()),
|
|
61
|
+
...variants.map((variant) => this.#removeStoredFile(variant.toAttachment())),
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
async #removeStoredFile(attachment) {
|
|
65
|
+
await this.#attachments.remove(attachment);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=lucid_attachment_lifecycle_service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_lifecycle_service.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_lifecycle_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { Attachment } from '../../core/attachment.js';
|
|
8
|
+
import type { AttachmentRepository } from '../../core/attachment_repository.js';
|
|
9
|
+
import { AttachmentModel } from './attachment_model.js';
|
|
10
|
+
/**
|
|
11
|
+
* Attachment repository used by workers when attachments are persisted by Lucid.
|
|
12
|
+
*/
|
|
13
|
+
export declare class LucidAttachmentRepository implements AttachmentRepository {
|
|
14
|
+
#private;
|
|
15
|
+
constructor(model?: typeof AttachmentModel);
|
|
16
|
+
findById(id: string): Promise<Attachment | null>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=lucid_attachment_repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_repository.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,qBAAa,yBAA0B,YAAW,oBAAoB;;gBAGxD,KAAK,GAAE,OAAO,eAAiC;IAIrD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAKvD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import { AttachmentModel } from './attachment_model.js';
|
|
8
|
+
/**
|
|
9
|
+
* Attachment repository used by workers when attachments are persisted by Lucid.
|
|
10
|
+
*/
|
|
11
|
+
export class LucidAttachmentRepository {
|
|
12
|
+
#model;
|
|
13
|
+
constructor(model = AttachmentModel) {
|
|
14
|
+
this.#model = model;
|
|
15
|
+
}
|
|
16
|
+
async findById(id) {
|
|
17
|
+
const row = await this.#model.find(id);
|
|
18
|
+
return row?.toAttachment() ?? null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=lucid_attachment_repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_repository.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAC3B,MAAM,CAAwB;IAEvC,YAAY,QAAgC,eAAe;QACzD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEtC,OAAO,GAAG,EAAE,YAAY,EAAE,IAAI,IAAI,CAAA;IACpC,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { Attachment } from '../../core/attachment.js';
|
|
8
|
+
import { type AttachmentOwner } from './attachment_owner.js';
|
|
9
|
+
import { AttachmentModel } from './attachment_model.js';
|
|
10
|
+
export type LucidAttachmentWithVariants = {
|
|
11
|
+
original: AttachmentModel;
|
|
12
|
+
variants: AttachmentModel[];
|
|
13
|
+
};
|
|
14
|
+
export declare class LucidAttachmentStore {
|
|
15
|
+
#private;
|
|
16
|
+
constructor(model?: typeof AttachmentModel);
|
|
17
|
+
createOriginal(owner: AttachmentOwner, attachment: Attachment): Promise<AttachmentModel>;
|
|
18
|
+
createVariant(original: AttachmentModel, key: string, attachment: Attachment): Promise<AttachmentModel>;
|
|
19
|
+
releaseOwner(original: AttachmentModel): Promise<void>;
|
|
20
|
+
restoreOwner(original: AttachmentModel): Promise<void>;
|
|
21
|
+
findOriginal(owner: AttachmentOwner): Promise<AttachmentModel | null>;
|
|
22
|
+
findById(id: string): Promise<AttachmentModel | null>;
|
|
23
|
+
findByOwner(owner: AttachmentOwner): Promise<LucidAttachmentWithVariants | null>;
|
|
24
|
+
listVariants(originalId: string): Promise<AttachmentModel[]>;
|
|
25
|
+
remove(original: AttachmentModel): Promise<void>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=lucid_attachment_store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_store.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,eAAe,CAAA;IACzB,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B,CAAA;AAED,qBAAa,oBAAoB;;gBAGnB,KAAK,GAAE,OAAO,eAAiC;IAIrD,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBxF,aAAa,CACjB,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,eAAe,CAAC;IAgBrB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAUrE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI/C,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAatF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAItD,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAGvD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import { markAttachmentPersisted } from '../../core/attachment_state.js';
|
|
8
|
+
import { createAttachmentOwnerKey } from './attachment_owner.js';
|
|
9
|
+
import { AttachmentModel } from './attachment_model.js';
|
|
10
|
+
export class LucidAttachmentStore {
|
|
11
|
+
#model;
|
|
12
|
+
constructor(model = AttachmentModel) {
|
|
13
|
+
this.#model = model;
|
|
14
|
+
}
|
|
15
|
+
async createOriginal(owner, attachment) {
|
|
16
|
+
const row = await this.#model.create({
|
|
17
|
+
...attachment,
|
|
18
|
+
attachableType: owner.type,
|
|
19
|
+
attachableId: owner.id,
|
|
20
|
+
field: owner.field,
|
|
21
|
+
ownerKey: createAttachmentOwnerKey(owner),
|
|
22
|
+
parentId: null,
|
|
23
|
+
variantKey: null,
|
|
24
|
+
metadata: attachment.metadata ?? null,
|
|
25
|
+
});
|
|
26
|
+
markAttachmentPersisted(attachment);
|
|
27
|
+
return row;
|
|
28
|
+
}
|
|
29
|
+
async createVariant(original, key, attachment) {
|
|
30
|
+
const row = await this.#model.create({
|
|
31
|
+
...attachment,
|
|
32
|
+
attachableType: original.attachableType,
|
|
33
|
+
attachableId: original.attachableId,
|
|
34
|
+
field: original.field,
|
|
35
|
+
ownerKey: null,
|
|
36
|
+
parentId: original.id,
|
|
37
|
+
variantKey: key,
|
|
38
|
+
metadata: attachment.metadata ?? null,
|
|
39
|
+
});
|
|
40
|
+
markAttachmentPersisted(attachment);
|
|
41
|
+
return row;
|
|
42
|
+
}
|
|
43
|
+
async releaseOwner(original) {
|
|
44
|
+
original.ownerKey = null;
|
|
45
|
+
await original.save();
|
|
46
|
+
}
|
|
47
|
+
async restoreOwner(original) {
|
|
48
|
+
original.ownerKey = createAttachmentOwnerKey({
|
|
49
|
+
type: original.attachableType,
|
|
50
|
+
id: original.attachableId,
|
|
51
|
+
field: original.field,
|
|
52
|
+
});
|
|
53
|
+
await original.save();
|
|
54
|
+
}
|
|
55
|
+
findOriginal(owner) {
|
|
56
|
+
return this.#model
|
|
57
|
+
.query()
|
|
58
|
+
.where('attachable_type', owner.type)
|
|
59
|
+
.where('attachable_id', owner.id)
|
|
60
|
+
.where('field', owner.field)
|
|
61
|
+
.whereNull('parent_id')
|
|
62
|
+
.first();
|
|
63
|
+
}
|
|
64
|
+
findById(id) {
|
|
65
|
+
return this.#model.find(id);
|
|
66
|
+
}
|
|
67
|
+
async findByOwner(owner) {
|
|
68
|
+
const original = await this.findOriginal(owner);
|
|
69
|
+
if (!original) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
original,
|
|
74
|
+
variants: await this.listVariants(original.id),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
listVariants(originalId) {
|
|
78
|
+
return this.#model.query().where('parent_id', originalId);
|
|
79
|
+
}
|
|
80
|
+
async remove(original) {
|
|
81
|
+
await original.delete();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=lucid_attachment_store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_attachment_store.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_attachment_store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAwB,MAAM,uBAAuB,CAAA;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,MAAM,OAAO,oBAAoB;IACtB,MAAM,CAAwB;IAEvC,YAAY,QAAgC,eAAe;QACzD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAsB,EAAE,UAAsB;QACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,GAAG,UAAU;YACb,cAAc,EAAE,KAAK,CAAC,IAAI;YAC1B,YAAY,EAAE,KAAK,CAAC,EAAE;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,wBAAwB,CAAC,KAAK,CAAC;YACzC,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;SACtC,CAAC,CAAA;QAEF,uBAAuB,CAAC,UAAU,CAAC,CAAA;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAyB,EACzB,GAAW,EACX,UAAsB;QAEtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACnC,GAAG,UAAU;YACb,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACrB,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;SACtC,CAAC,CAAA;QAEF,uBAAuB,CAAC,UAAU,CAAC,CAAA;QACnC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAyB;QAC1C,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;QACxB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAyB;QAC1C,QAAQ,CAAC,QAAQ,GAAG,wBAAwB,CAAC;YAC3C,IAAI,EAAE,QAAQ,CAAC,cAAc;YAC7B,EAAE,EAAE,QAAQ,CAAC,YAAY;YACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB,CAAC,CAAA;QACF,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IAED,YAAY,CAAC,KAAsB;QACjC,OAAO,IAAI,CAAC,MAAM;aACf,KAAK,EAAE;aACP,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC;aACpC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;aAChC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC;aAC3B,SAAS,CAAC,WAAW,CAAC;aACtB,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAsB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;QAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO;YACL,QAAQ;YACR,QAAQ,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;SAC/C,CAAA;IACH,CAAC;IAED,YAAY,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAyB;QACpC,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAA;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { AttachmentService } from '../../core/attachment_service.js';
|
|
8
|
+
import type { VariantGenerationRequest, VariantGenerator } from '../../core/attachment_job_processor.js';
|
|
9
|
+
import type { VariantGenerationService } from '../../variants/variant_generation_service.js';
|
|
10
|
+
import { LucidAttachmentStore } from './lucid_attachment_store.js';
|
|
11
|
+
export type LucidVariantGenerationServiceOptions = {
|
|
12
|
+
generator: Pick<VariantGenerationService, 'generateAll'>;
|
|
13
|
+
attachments: Pick<AttachmentService, 'remove'>;
|
|
14
|
+
store: Pick<LucidAttachmentStore, 'findById' | 'createVariant'>;
|
|
15
|
+
};
|
|
16
|
+
export declare class LucidVariantGenerationService implements VariantGenerator {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(options: LucidVariantGenerationServiceOptions);
|
|
19
|
+
generate(request: VariantGenerationRequest): Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare class PersistedAttachmentNotFoundError extends Error {
|
|
22
|
+
constructor(id: string);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=lucid_variant_generation_service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_variant_generation_service.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_variant_generation_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AACxG,OAAO,KAAK,EAAoB,wBAAwB,EAAE,MAAM,8CAA8C,CAAA;AAE9G,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElE,MAAM,MAAM,oCAAoC,GAAG;IACjD,SAAS,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,CAAA;IACxD,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAA;IAC9C,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,eAAe,CAAC,CAAA;CAChE,CAAA;AAED,qBAAa,6BAA8B,YAAW,gBAAgB;;gBAKxD,OAAO,EAAE,oCAAoC;IAMnD,QAAQ,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBjE;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC7C,EAAE,EAAE,MAAM;CAIvB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export class LucidVariantGenerationService {
|
|
8
|
+
#generator;
|
|
9
|
+
#attachments;
|
|
10
|
+
#store;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.#generator = options.generator;
|
|
13
|
+
this.#attachments = options.attachments;
|
|
14
|
+
this.#store = options.store;
|
|
15
|
+
}
|
|
16
|
+
async generate(request) {
|
|
17
|
+
const original = await this.#store.findById(request.attachment.id);
|
|
18
|
+
if (!original) {
|
|
19
|
+
throw new PersistedAttachmentNotFoundError(request.attachment.id);
|
|
20
|
+
}
|
|
21
|
+
const variants = await this.#generator.generateAll(request);
|
|
22
|
+
for (const variant of variants) {
|
|
23
|
+
await this.#persist(original, variant);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async #persist(original, variant) {
|
|
27
|
+
try {
|
|
28
|
+
await this.#store.createVariant(original, variant.key, variant.attachment);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
await this.#attachments.remove(variant.attachment);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class PersistedAttachmentNotFoundError extends Error {
|
|
37
|
+
constructor(id) {
|
|
38
|
+
super(`Persisted attachment "${id}" was not found`);
|
|
39
|
+
this.name = 'PersistedAttachmentNotFoundError';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=lucid_variant_generation_service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lucid_variant_generation_service.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/lucid_variant_generation_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,MAAM,OAAO,6BAA6B;IAC/B,UAAU,CAA+C;IACzD,YAAY,CAAmC;IAC/C,MAAM,CAA0D;IAEzE,YAAY,OAA6C;QACvD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAA;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAiC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QAElE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,gCAAgC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACnE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAyB,EAAE,OAAyB;QACjE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAC5E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAClD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,gCAAiC,SAAQ,KAAK;IACzD,YAAY,EAAU;QACpB,KAAK,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAA;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
export type LegacyAttachment = {
|
|
8
|
+
name: string;
|
|
9
|
+
originalName?: string;
|
|
10
|
+
size: number;
|
|
11
|
+
extname: string;
|
|
12
|
+
mimeType: string;
|
|
13
|
+
disk?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
meta?: Record<string, unknown>;
|
|
16
|
+
variants?: LegacyVariant[];
|
|
17
|
+
};
|
|
18
|
+
export type LegacyVariant = {
|
|
19
|
+
key: string;
|
|
20
|
+
name: string;
|
|
21
|
+
size: number;
|
|
22
|
+
extname: string;
|
|
23
|
+
mimeType: string;
|
|
24
|
+
disk?: string;
|
|
25
|
+
path?: string;
|
|
26
|
+
meta?: Record<string, unknown>;
|
|
27
|
+
};
|
|
28
|
+
import { type AttachmentOwner } from './attachment_owner.js';
|
|
29
|
+
export type { AttachmentOwner } from './attachment_owner.js';
|
|
30
|
+
export type MigratedAttachmentRow = {
|
|
31
|
+
id: string;
|
|
32
|
+
attachableType: string;
|
|
33
|
+
attachableId: string;
|
|
34
|
+
field: string;
|
|
35
|
+
ownerKey: string | null;
|
|
36
|
+
parentId: string | null;
|
|
37
|
+
variantKey: string | null;
|
|
38
|
+
disk: string;
|
|
39
|
+
path: string;
|
|
40
|
+
name: string;
|
|
41
|
+
originalName: string;
|
|
42
|
+
mimeType: string;
|
|
43
|
+
extname: string;
|
|
44
|
+
size: number;
|
|
45
|
+
metadata: Record<string, unknown> | null;
|
|
46
|
+
};
|
|
47
|
+
export type MigrateLegacyAttachmentOptions = {
|
|
48
|
+
owner: AttachmentOwner;
|
|
49
|
+
defaultDisk: string;
|
|
50
|
+
createId: () => string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Converts one v5 JSON attachment document into rows for the polymorphic table.
|
|
54
|
+
* Callers can run it from an Ace command, another ORM migration, or a one-off script.
|
|
55
|
+
*/
|
|
56
|
+
export declare function migrateLegacyAttachment(value: LegacyAttachment | string, options: MigrateLegacyAttachmentOptions): MigratedAttachmentRow[];
|
|
57
|
+
//# sourceMappingURL=migrate_legacy_attachment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate_legacy_attachment.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/migrate_legacy_attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B,CAAA;AAED,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEtF,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;CACzC,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,eAAe,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,MAAM,CAAA;CACvB,CAAA;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAChC,OAAO,EAAE,8BAA8B,GACtC,qBAAqB,EAAE,CA8BzB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import { createAttachmentOwnerKey } from './attachment_owner.js';
|
|
8
|
+
/**
|
|
9
|
+
* Converts one v5 JSON attachment document into rows for the polymorphic table.
|
|
10
|
+
* Callers can run it from an Ace command, another ORM migration, or a one-off script.
|
|
11
|
+
*/
|
|
12
|
+
export function migrateLegacyAttachment(value, options) {
|
|
13
|
+
const attachment = typeof value === 'string' ? parseLegacyAttachment(value) : value;
|
|
14
|
+
const id = options.createId();
|
|
15
|
+
const originalName = attachment.originalName ?? attachment.name;
|
|
16
|
+
const original = toRow({
|
|
17
|
+
id,
|
|
18
|
+
attachment,
|
|
19
|
+
owner: options.owner,
|
|
20
|
+
ownerKey: createAttachmentOwnerKey(options.owner),
|
|
21
|
+
parentId: null,
|
|
22
|
+
variantKey: null,
|
|
23
|
+
originalName,
|
|
24
|
+
defaultDisk: options.defaultDisk,
|
|
25
|
+
});
|
|
26
|
+
return [
|
|
27
|
+
original,
|
|
28
|
+
...(attachment.variants ?? []).map((variant) => toRow({
|
|
29
|
+
id: options.createId(),
|
|
30
|
+
attachment: variant,
|
|
31
|
+
owner: options.owner,
|
|
32
|
+
ownerKey: null,
|
|
33
|
+
parentId: id,
|
|
34
|
+
variantKey: variant.key,
|
|
35
|
+
originalName,
|
|
36
|
+
defaultDisk: options.defaultDisk,
|
|
37
|
+
})),
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
function parseLegacyAttachment(value) {
|
|
41
|
+
try {
|
|
42
|
+
return JSON.parse(value);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
throw new Error('Legacy attachment value must be valid JSON');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function toRow({ id, attachment, owner, ownerKey, parentId, variantKey, originalName, defaultDisk, }) {
|
|
49
|
+
return {
|
|
50
|
+
id,
|
|
51
|
+
attachableType: owner.type,
|
|
52
|
+
attachableId: owner.id,
|
|
53
|
+
field: owner.field,
|
|
54
|
+
ownerKey,
|
|
55
|
+
parentId,
|
|
56
|
+
variantKey,
|
|
57
|
+
disk: attachment.disk ?? defaultDisk,
|
|
58
|
+
path: attachment.path ?? attachment.name,
|
|
59
|
+
name: attachment.name,
|
|
60
|
+
originalName,
|
|
61
|
+
mimeType: attachment.mimeType,
|
|
62
|
+
extname: attachment.extname,
|
|
63
|
+
size: attachment.size,
|
|
64
|
+
metadata: attachment.meta ?? null,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=migrate_legacy_attachment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate_legacy_attachment.js","sourceRoot":"","sources":["../../../../src/integrations/lucid/migrate_legacy_attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,OAAO,EAAE,wBAAwB,EAAwB,MAAM,uBAAuB,CAAA;AA4BtF;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAgC,EAChC,OAAuC;IAEvC,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACnF,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC7B,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,IAAI,CAAA;IAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC;QACrB,EAAE;QACF,UAAU;QACV,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,KAAK,CAAC;QACjD,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ;QACR,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC7C,KAAK,CAAC;YACJ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE;YACtB,UAAU,EAAE,OAAO;YACnB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,OAAO,CAAC,GAAG;YACvB,YAAY;YACZ,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CACH;KACF,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAqB,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EACb,EAAE,EACF,UAAU,EACV,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,GAUZ;IACC,OAAO;QACL,EAAE;QACF,cAAc,EAAE,KAAK,CAAC,IAAI;QAC1B,YAAY,EAAE,KAAK,CAAC,EAAE;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,WAAW;QACpC,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI;QACxC,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,YAAY;QACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI;KAClC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jrmc/adonis-attachment
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
|
|
6
|
+
*/
|
|
7
|
+
import type { AttachmentOwner } from './attachment_owner.js';
|
|
8
|
+
import { type LegacyAttachment, type MigratedAttachmentRow } from './migrate_legacy_attachment.js';
|
|
9
|
+
export type LegacyAttachmentMigrationRecord = {
|
|
10
|
+
owner: AttachmentOwner;
|
|
11
|
+
value: LegacyAttachment | string | null | undefined;
|
|
12
|
+
};
|
|
13
|
+
export type LegacyAttachmentMigrationWriter = {
|
|
14
|
+
insert(rows: readonly MigratedAttachmentRow[]): Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
export type MigrateLegacyAttachmentRecordsOptions = {
|
|
17
|
+
records: Iterable<LegacyAttachmentMigrationRecord> | AsyncIterable<LegacyAttachmentMigrationRecord>;
|
|
18
|
+
defaultDisk: string;
|
|
19
|
+
createId: () => string;
|
|
20
|
+
writer: LegacyAttachmentMigrationWriter;
|
|
21
|
+
batchSize?: number;
|
|
22
|
+
};
|
|
23
|
+
export type LegacyAttachmentMigrationResult = {
|
|
24
|
+
attachments: number;
|
|
25
|
+
variants: number;
|
|
26
|
+
skipped: number;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Migrates a stream of legacy v5 JSON values into attachment-table rows.
|
|
30
|
+
* The caller owns source-model iteration and database transactions; this keeps
|
|
31
|
+
* the migration compatible with custom Lucid models and other persistence layouts.
|
|
32
|
+
*/
|
|
33
|
+
export declare function migrateLegacyAttachmentRecords(options: MigrateLegacyAttachmentRecordsOptions): Promise<LegacyAttachmentMigrationResult>;
|
|
34
|
+
//# sourceMappingURL=migrate_legacy_attachment_records.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate_legacy_attachment_records.d.ts","sourceRoot":"","sources":["../../../../src/integrations/lucid/migrate_legacy_attachment_records.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC3B,MAAM,gCAAgC,CAAA;AAEvC,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,CAAC,IAAI,EAAE,SAAS,qBAAqB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,qCAAqC,GAAG;IAClD,OAAO,EAAE,QAAQ,CAAC,+BAA+B,CAAC,GAAG,aAAa,CAAC,+BAA+B,CAAC,CAAA;IACnG,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,MAAM,CAAA;IACtB,MAAM,EAAE,+BAA+B,CAAA;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,+BAA+B,CAAC,CAyC1C"}
|