@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.
Files changed (336) hide show
  1. package/build/commands/commands.json +1 -1
  2. package/build/commands/make/attachment_v5_migration.d.ts.map +1 -1
  3. package/build/commands/make/attachment_v5_migration.js +6 -3
  4. package/build/commands/make/attachment_v5_migration.js.map +1 -1
  5. package/build/commands/make/attachments_table.d.ts.map +1 -1
  6. package/build/commands/make/attachments_table.js +8 -2
  7. package/build/commands/make/attachments_table.js.map +1 -1
  8. package/build/commands/make/converter.d.ts +17 -0
  9. package/build/commands/make/converter.d.ts.map +1 -0
  10. package/build/commands/make/converter.js +27 -0
  11. package/build/commands/make/converter.js.map +1 -0
  12. package/build/index.d.ts +12 -6
  13. package/build/index.d.ts.map +1 -1
  14. package/build/index.js +3 -5
  15. package/build/index.js.map +1 -1
  16. package/build/providers/attachment_provider.d.ts.map +1 -1
  17. package/build/providers/attachment_provider.js +36 -1
  18. package/build/providers/attachment_provider.js.map +1 -1
  19. package/build/services/converters.d.ts +10 -0
  20. package/build/services/converters.d.ts.map +1 -0
  21. package/build/services/converters.js +17 -0
  22. package/build/services/converters.js.map +1 -0
  23. package/build/src/adapters/adonis_drive_storage.d.ts.map +1 -1
  24. package/build/src/adapters/adonis_drive_storage.js +4 -1
  25. package/build/src/adapters/adonis_drive_storage.js.map +1 -1
  26. package/build/src/adapters/local_file_storage.d.ts.map +1 -1
  27. package/build/src/adapters/local_file_storage.js +9 -2
  28. package/build/src/adapters/local_file_storage.js.map +1 -1
  29. package/build/src/converters/autodetect_converter.d.ts +24 -0
  30. package/build/src/converters/autodetect_converter.d.ts.map +1 -0
  31. package/build/src/converters/autodetect_converter.js +113 -0
  32. package/build/src/converters/autodetect_converter.js.map +1 -0
  33. package/build/src/converters/configured_variant_converter_registry.d.ts +36 -0
  34. package/build/src/converters/configured_variant_converter_registry.d.ts.map +1 -0
  35. package/build/src/converters/configured_variant_converter_registry.js +81 -0
  36. package/build/src/converters/configured_variant_converter_registry.js.map +1 -0
  37. package/build/src/converters/converter.d.ts +148 -0
  38. package/build/src/converters/converter.d.ts.map +1 -0
  39. package/build/src/converters/converter.js +24 -0
  40. package/build/src/converters/converter.js.map +1 -0
  41. package/build/src/core/attachment.d.ts +7 -3
  42. package/build/src/core/attachment.d.ts.map +1 -1
  43. package/build/src/core/attachment.js +29 -4
  44. package/build/src/core/attachment.js.map +1 -1
  45. package/build/src/core/attachment_job_processor.d.ts +17 -1
  46. package/build/src/core/attachment_job_processor.d.ts.map +1 -1
  47. package/build/src/core/attachment_job_processor.js +81 -8
  48. package/build/src/core/attachment_job_processor.js.map +1 -1
  49. package/build/src/core/attachment_metadata_persister.d.ts +13 -0
  50. package/build/src/core/attachment_metadata_persister.d.ts.map +1 -0
  51. package/build/{tests/create_legacy_attachment_migration_script.spec.d.ts → src/core/attachment_metadata_persister.js} +1 -1
  52. package/build/src/core/attachment_metadata_persister.js.map +1 -0
  53. package/build/src/core/attachment_options.d.ts +3 -2
  54. package/build/src/core/attachment_options.d.ts.map +1 -1
  55. package/build/src/core/attachment_options.js.map +1 -1
  56. package/build/src/core/attachment_service.d.ts +24 -1
  57. package/build/src/core/attachment_service.d.ts.map +1 -1
  58. package/build/src/core/attachment_service.js +95 -4
  59. package/build/src/core/attachment_service.js.map +1 -1
  60. package/build/src/core/index.d.ts +9 -2
  61. package/build/src/core/index.d.ts.map +1 -1
  62. package/build/src/core/index.js +8 -2
  63. package/build/src/core/index.js.map +1 -1
  64. package/build/src/core/queue.d.ts +11 -1
  65. package/build/src/core/queue.d.ts.map +1 -1
  66. package/build/src/define_config.d.ts +40 -3
  67. package/build/src/define_config.d.ts.map +1 -1
  68. package/build/src/define_config.js +43 -1
  69. package/build/src/define_config.js.map +1 -1
  70. package/build/src/errors.d.ts +57 -0
  71. package/build/src/errors.d.ts.map +1 -0
  72. package/build/src/errors.js +96 -0
  73. package/build/src/errors.js.map +1 -0
  74. package/build/src/events/adonis_attachment_event_emitter.d.ts +17 -0
  75. package/build/src/events/adonis_attachment_event_emitter.d.ts.map +1 -0
  76. package/build/src/events/adonis_attachment_event_emitter.js +17 -0
  77. package/build/src/events/adonis_attachment_event_emitter.js.map +1 -0
  78. package/build/src/events/attachment_events.d.ts +43 -0
  79. package/build/src/events/attachment_events.d.ts.map +1 -0
  80. package/build/src/events/attachment_events.js +32 -0
  81. package/build/src/events/attachment_events.js.map +1 -0
  82. package/build/src/integrations/lucid/{attachment_column.d.ts → column/attachment_column.d.ts} +2 -2
  83. package/build/src/integrations/lucid/column/attachment_column.d.ts.map +1 -0
  84. package/build/src/integrations/lucid/{attachment_column.js → column/attachment_column.js} +2 -2
  85. package/build/src/integrations/lucid/column/attachment_column.js.map +1 -0
  86. package/build/src/integrations/lucid/index.d.ts +17 -13
  87. package/build/src/integrations/lucid/index.d.ts.map +1 -1
  88. package/build/src/integrations/lucid/index.js +17 -13
  89. package/build/src/integrations/lucid/index.js.map +1 -1
  90. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts +20 -0
  91. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.d.ts.map +1 -0
  92. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js +18 -0
  93. package/build/src/integrations/lucid/migrations/legacy/legacy_attachment_migration_stub.js.map +1 -0
  94. package/build/src/integrations/lucid/{migrate_legacy_attachment.d.ts → migrations/legacy/migrate_legacy_attachment.d.ts} +22 -10
  95. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.d.ts.map +1 -0
  96. package/build/src/integrations/lucid/{migrate_legacy_attachment.js → migrations/legacy/migrate_legacy_attachment.js} +35 -25
  97. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment.js.map +1 -0
  98. package/build/src/integrations/lucid/{migrate_legacy_attachment_records.d.ts → migrations/legacy/migrate_legacy_attachment_records.d.ts} +3 -3
  99. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.d.ts.map +1 -0
  100. package/build/src/integrations/lucid/{migrate_legacy_attachment_records.js → migrations/legacy/migrate_legacy_attachment_records.js} +11 -7
  101. package/build/src/integrations/lucid/migrations/legacy/migrate_legacy_attachment_records.js.map +1 -0
  102. package/build/src/integrations/lucid/models/attachment_link_model.d.ts +30 -0
  103. package/build/src/integrations/lucid/models/attachment_link_model.d.ts.map +1 -0
  104. package/build/src/integrations/lucid/models/attachment_link_model.js +59 -0
  105. package/build/src/integrations/lucid/models/attachment_link_model.js.map +1 -0
  106. package/build/src/integrations/lucid/{attachment_model.d.ts → models/attachment_model.d.ts} +5 -8
  107. package/build/src/integrations/lucid/models/attachment_model.d.ts.map +1 -0
  108. package/build/src/integrations/lucid/{attachment_model.js → models/attachment_model.js} +5 -16
  109. package/build/src/integrations/lucid/models/attachment_model.js.map +1 -0
  110. package/build/src/integrations/lucid/{lucid_attachment_lifecycle_service.d.ts → persistence/lucid_attachment_lifecycle_service.d.ts} +18 -14
  111. package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.d.ts.map +1 -0
  112. package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js +252 -0
  113. package/build/src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js.map +1 -0
  114. package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.d.ts +17 -0
  115. package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.d.ts.map +1 -0
  116. package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.js +18 -0
  117. package/build/src/integrations/lucid/persistence/lucid_attachment_metadata_persister.js.map +1 -0
  118. package/build/src/integrations/lucid/{lucid_attachment_repository.d.ts → persistence/lucid_attachment_repository.d.ts} +3 -3
  119. package/build/src/integrations/lucid/persistence/lucid_attachment_repository.d.ts.map +1 -0
  120. package/build/src/integrations/lucid/{lucid_attachment_repository.js → persistence/lucid_attachment_repository.js} +1 -1
  121. package/build/src/integrations/lucid/persistence/lucid_attachment_repository.js.map +1 -0
  122. package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts +48 -0
  123. package/build/src/integrations/lucid/persistence/lucid_attachment_store.d.ts.map +1 -0
  124. package/build/src/integrations/lucid/persistence/lucid_attachment_store.js +226 -0
  125. package/build/src/integrations/lucid/persistence/lucid_attachment_store.js.map +1 -0
  126. package/build/src/integrations/lucid/{lucid_variant_generation_service.d.ts → persistence/lucid_variant_generation_service.d.ts} +8 -5
  127. package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.d.ts.map +1 -0
  128. package/build/src/integrations/lucid/{lucid_variant_generation_service.js → persistence/lucid_variant_generation_service.js} +9 -3
  129. package/build/src/integrations/lucid/persistence/lucid_variant_generation_service.js.map +1 -0
  130. package/build/src/integrations/lucid/relations/attachment_owner.d.ts.map +1 -0
  131. package/build/src/integrations/lucid/relations/attachment_owner.js.map +1 -0
  132. package/build/src/integrations/lucid/{attachment_relation.d.ts → relations/attachment_relation.d.ts} +29 -15
  133. package/build/src/integrations/lucid/relations/attachment_relation.d.ts.map +1 -0
  134. package/build/src/integrations/lucid/relations/attachment_relation.js +273 -0
  135. package/build/src/integrations/lucid/relations/attachment_relation.js.map +1 -0
  136. package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts +28 -0
  137. package/build/src/integrations/lucid/schema/attachment_schema_service.d.ts.map +1 -0
  138. package/build/src/integrations/lucid/schema/attachment_schema_service.js +81 -0
  139. package/build/src/integrations/lucid/schema/attachment_schema_service.js.map +1 -0
  140. package/build/src/integrations/lucid/schema/attachment_table_names.d.ts +15 -0
  141. package/build/src/integrations/lucid/schema/attachment_table_names.d.ts.map +1 -0
  142. package/build/src/integrations/lucid/schema/attachment_table_names.js +23 -0
  143. package/build/src/integrations/lucid/schema/attachment_table_names.js.map +1 -0
  144. package/build/src/integrations/lucid/schema/attachments_table_stub.d.ts.map +1 -0
  145. package/build/src/integrations/lucid/{attachments_table_stub.js → schema/attachments_table_stub.js} +2 -4
  146. package/build/src/integrations/lucid/schema/attachments_table_stub.js.map +1 -0
  147. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts +12 -0
  148. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.d.ts.map +1 -0
  149. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js +19 -0
  150. package/build/src/integrations/lucid/schema/configure_lucid_attachment_tables.js.map +1 -0
  151. package/build/src/media/binaries.d.ts +79 -0
  152. package/build/src/media/binaries.d.ts.map +1 -0
  153. package/build/src/media/binaries.js +288 -0
  154. package/build/src/media/binaries.js.map +1 -0
  155. package/build/src/media/blurhash.d.ts +48 -0
  156. package/build/src/media/blurhash.d.ts.map +1 -0
  157. package/build/src/media/blurhash.js +46 -0
  158. package/build/src/media/blurhash.js.map +1 -0
  159. package/build/src/media/exif.d.ts +23 -0
  160. package/build/src/media/exif.d.ts.map +1 -0
  161. package/build/src/media/exif.js +98 -0
  162. package/build/src/media/exif.js.map +1 -0
  163. package/build/src/media/media_metadata.d.ts +55 -0
  164. package/build/src/media/media_metadata.d.ts.map +1 -0
  165. package/build/src/media/media_metadata.js +27 -0
  166. package/build/src/media/media_metadata.js.map +1 -0
  167. package/build/src/media/sharp.d.ts +45 -0
  168. package/build/src/media/sharp.d.ts.map +1 -0
  169. package/build/src/media/sharp.js +76 -0
  170. package/build/src/media/sharp.js.map +1 -0
  171. package/build/src/media/v5_metadata.d.ts +20 -0
  172. package/build/src/media/v5_metadata.d.ts.map +1 -0
  173. package/build/src/media/v5_metadata.js +20 -0
  174. package/build/src/media/v5_metadata.js.map +1 -0
  175. package/build/src/queues/memory_queue.d.ts.map +1 -1
  176. package/build/src/queues/memory_queue.js +4 -1
  177. package/build/src/queues/memory_queue.js.map +1 -1
  178. package/build/src/sources/attachment_manager.d.ts +1 -3
  179. package/build/src/sources/attachment_manager.d.ts.map +1 -1
  180. package/build/src/sources/attachment_manager.js +19 -12
  181. package/build/src/sources/attachment_manager.js.map +1 -1
  182. package/build/src/variants/variant_converter.d.ts +4 -1
  183. package/build/src/variants/variant_converter.d.ts.map +1 -1
  184. package/build/src/variants/variant_generation_service.d.ts +9 -3
  185. package/build/src/variants/variant_generation_service.d.ts.map +1 -1
  186. package/build/src/variants/variant_generation_service.js +47 -6
  187. package/build/src/variants/variant_generation_service.js.map +1 -1
  188. package/build/stubs/config/attachment.stub +23 -2
  189. package/build/stubs/converters/converter.stub +18 -0
  190. package/build/stubs/migrations/attachments_table.stub +7 -25
  191. package/build/{src/integrations/lucid/render_legacy_attachment_migration_script.js → stubs/migrations/legacy_attachment_migration.stub} +13 -15
  192. package/build/tests/adonis_queue.spec.js +56 -1
  193. package/build/tests/adonis_queue.spec.js.map +1 -1
  194. package/build/tests/attachment_events.spec.d.ts +8 -0
  195. package/build/tests/attachment_events.spec.d.ts.map +1 -0
  196. package/build/tests/attachment_events.spec.js +65 -0
  197. package/build/tests/attachment_events.spec.js.map +1 -0
  198. package/build/tests/attachment_job_processor.spec.js +77 -2
  199. package/build/tests/attachment_job_processor.spec.js.map +1 -1
  200. package/build/tests/attachment_provider.spec.js +84 -1
  201. package/build/tests/attachment_provider.spec.js.map +1 -1
  202. package/build/tests/attachment_schema_service.spec.d.ts +8 -0
  203. package/build/tests/attachment_schema_service.spec.d.ts.map +1 -0
  204. package/build/tests/attachment_schema_service.spec.js +52 -0
  205. package/build/tests/attachment_schema_service.spec.js.map +1 -0
  206. package/build/tests/attachment_service.spec.js +81 -2
  207. package/build/tests/attachment_service.spec.js.map +1 -1
  208. package/build/tests/attachment_table_names.spec.d.ts +8 -0
  209. package/build/tests/attachment_table_names.spec.d.ts.map +1 -0
  210. package/build/tests/attachment_table_names.spec.js +36 -0
  211. package/build/tests/attachment_table_names.spec.js.map +1 -0
  212. package/build/tests/attachments_table_stub.spec.js +41 -6
  213. package/build/tests/attachments_table_stub.spec.js.map +1 -1
  214. package/build/tests/autodetect_converter.spec.d.ts +8 -0
  215. package/build/tests/autodetect_converter.spec.d.ts.map +1 -0
  216. package/build/tests/autodetect_converter.spec.js +55 -0
  217. package/build/tests/autodetect_converter.spec.js.map +1 -0
  218. package/build/tests/binary_media.spec.d.ts +8 -0
  219. package/build/tests/binary_media.spec.d.ts.map +1 -0
  220. package/build/tests/binary_media.spec.js +106 -0
  221. package/build/tests/binary_media.spec.js.map +1 -0
  222. package/build/tests/blurhash_media.spec.d.ts +8 -0
  223. package/build/tests/blurhash_media.spec.d.ts.map +1 -0
  224. package/build/tests/blurhash_media.spec.js +40 -0
  225. package/build/tests/blurhash_media.spec.js.map +1 -0
  226. package/build/tests/configure.spec.js +1 -0
  227. package/build/tests/configure.spec.js.map +1 -1
  228. package/build/tests/configured_variant_converter_registry.spec.d.ts +8 -0
  229. package/build/tests/configured_variant_converter_registry.spec.d.ts.map +1 -0
  230. package/build/tests/configured_variant_converter_registry.spec.js +73 -0
  231. package/build/tests/configured_variant_converter_registry.spec.js.map +1 -0
  232. package/build/tests/converter_config.types.d.ts +36 -0
  233. package/build/tests/converter_config.types.d.ts.map +1 -0
  234. package/build/tests/converter_config.types.js +60 -0
  235. package/build/tests/converter_config.types.js.map +1 -0
  236. package/build/tests/define_config.spec.js +113 -0
  237. package/build/tests/define_config.spec.js.map +1 -1
  238. package/build/tests/errors.spec.d.ts +8 -0
  239. package/build/tests/errors.spec.d.ts.map +1 -0
  240. package/build/tests/errors.spec.js +43 -0
  241. package/build/tests/errors.spec.js.map +1 -0
  242. package/build/tests/exif_media.spec.d.ts +8 -0
  243. package/build/tests/exif_media.spec.d.ts.map +1 -0
  244. package/build/tests/exif_media.spec.js +50 -0
  245. package/build/tests/exif_media.spec.js.map +1 -0
  246. package/build/tests/helpers/lucid_test_database.d.ts.map +1 -1
  247. package/build/tests/helpers/lucid_test_database.js +17 -7
  248. package/build/tests/helpers/lucid_test_database.js.map +1 -1
  249. package/build/tests/legacy_attachment_migration_stub.spec.d.ts +8 -0
  250. package/build/tests/legacy_attachment_migration_stub.spec.d.ts.map +1 -0
  251. package/build/tests/legacy_attachment_migration_stub.spec.js +57 -0
  252. package/build/tests/legacy_attachment_migration_stub.spec.js.map +1 -0
  253. package/build/tests/lucid_attachment_collection_store.spec.js +5 -4
  254. package/build/tests/lucid_attachment_collection_store.spec.js.map +1 -1
  255. package/build/tests/lucid_attachment_column.spec.js +1 -1
  256. package/build/tests/lucid_attachment_column.spec.js.map +1 -1
  257. package/build/tests/lucid_attachment_lifecycle_service.spec.js +144 -256
  258. package/build/tests/lucid_attachment_lifecycle_service.spec.js.map +1 -1
  259. package/build/tests/lucid_attachment_metadata_persister.spec.d.ts +8 -0
  260. package/build/tests/lucid_attachment_metadata_persister.spec.d.ts.map +1 -0
  261. package/build/tests/lucid_attachment_metadata_persister.spec.js +34 -0
  262. package/build/tests/lucid_attachment_metadata_persister.spec.js.map +1 -0
  263. package/build/tests/lucid_attachment_relation.spec.js +167 -27
  264. package/build/tests/lucid_attachment_relation.spec.js.map +1 -1
  265. package/build/tests/lucid_attachment_repository.spec.js +1 -1
  266. package/build/tests/lucid_attachment_repository.spec.js.map +1 -1
  267. package/build/tests/lucid_attachment_store.spec.js +24 -52
  268. package/build/tests/lucid_attachment_store.spec.js.map +1 -1
  269. package/build/tests/lucid_sqlite_integration.spec.js +24 -18
  270. package/build/tests/lucid_sqlite_integration.spec.js.map +1 -1
  271. package/build/tests/lucid_variant_generation_service.spec.js +18 -1
  272. package/build/tests/lucid_variant_generation_service.spec.js.map +1 -1
  273. package/build/tests/make_converter.spec.d.ts +8 -0
  274. package/build/tests/make_converter.spec.d.ts.map +1 -0
  275. package/build/tests/make_converter.spec.js +32 -0
  276. package/build/tests/make_converter.spec.js.map +1 -0
  277. package/build/tests/media_metadata.spec.d.ts +8 -0
  278. package/build/tests/media_metadata.spec.d.ts.map +1 -0
  279. package/build/tests/media_metadata.spec.js +51 -0
  280. package/build/tests/media_metadata.spec.js.map +1 -0
  281. package/build/tests/migrate_legacy_attachment.spec.js +62 -47
  282. package/build/tests/migrate_legacy_attachment.spec.js.map +1 -1
  283. package/build/tests/migrate_legacy_attachment_records.spec.js +4 -3
  284. package/build/tests/migrate_legacy_attachment_records.spec.js.map +1 -1
  285. package/build/tests/package_exports.spec.js +18 -2
  286. package/build/tests/package_exports.spec.js.map +1 -1
  287. package/build/tests/sharp_media.spec.d.ts +8 -0
  288. package/build/tests/sharp_media.spec.d.ts.map +1 -0
  289. package/build/tests/sharp_media.spec.js +84 -0
  290. package/build/tests/sharp_media.spec.js.map +1 -0
  291. package/build/tests/v5_metadata.spec.d.ts +8 -0
  292. package/build/tests/v5_metadata.spec.d.ts.map +1 -0
  293. package/build/tests/v5_metadata.spec.js +19 -0
  294. package/build/tests/v5_metadata.spec.js.map +1 -0
  295. package/build/tests/variant_generation_service.spec.js +122 -0
  296. package/build/tests/variant_generation_service.spec.js.map +1 -1
  297. package/package.json +50 -2
  298. package/build/src/integrations/lucid/attachment_column.d.ts.map +0 -1
  299. package/build/src/integrations/lucid/attachment_column.js.map +0 -1
  300. package/build/src/integrations/lucid/attachment_model.d.ts.map +0 -1
  301. package/build/src/integrations/lucid/attachment_model.js.map +0 -1
  302. package/build/src/integrations/lucid/attachment_owner.d.ts.map +0 -1
  303. package/build/src/integrations/lucid/attachment_owner.js.map +0 -1
  304. package/build/src/integrations/lucid/attachment_relation.d.ts.map +0 -1
  305. package/build/src/integrations/lucid/attachment_relation.js +0 -163
  306. package/build/src/integrations/lucid/attachment_relation.js.map +0 -1
  307. package/build/src/integrations/lucid/attachments_table_stub.d.ts.map +0 -1
  308. package/build/src/integrations/lucid/attachments_table_stub.js.map +0 -1
  309. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts +0 -13
  310. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.d.ts.map +0 -1
  311. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js +0 -20
  312. package/build/src/integrations/lucid/create_legacy_attachment_migration_script.js.map +0 -1
  313. package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.d.ts.map +0 -1
  314. package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js +0 -188
  315. package/build/src/integrations/lucid/lucid_attachment_lifecycle_service.js.map +0 -1
  316. package/build/src/integrations/lucid/lucid_attachment_repository.d.ts.map +0 -1
  317. package/build/src/integrations/lucid/lucid_attachment_repository.js.map +0 -1
  318. package/build/src/integrations/lucid/lucid_attachment_store.d.ts +0 -36
  319. package/build/src/integrations/lucid/lucid_attachment_store.d.ts.map +0 -1
  320. package/build/src/integrations/lucid/lucid_attachment_store.js +0 -179
  321. package/build/src/integrations/lucid/lucid_attachment_store.js.map +0 -1
  322. package/build/src/integrations/lucid/lucid_variant_generation_service.d.ts.map +0 -1
  323. package/build/src/integrations/lucid/lucid_variant_generation_service.js.map +0 -1
  324. package/build/src/integrations/lucid/migrate_legacy_attachment.d.ts.map +0 -1
  325. package/build/src/integrations/lucid/migrate_legacy_attachment.js.map +0 -1
  326. package/build/src/integrations/lucid/migrate_legacy_attachment_records.d.ts.map +0 -1
  327. package/build/src/integrations/lucid/migrate_legacy_attachment_records.js.map +0 -1
  328. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts +0 -11
  329. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.d.ts.map +0 -1
  330. package/build/src/integrations/lucid/render_legacy_attachment_migration_script.js.map +0 -1
  331. package/build/tests/create_legacy_attachment_migration_script.spec.d.ts.map +0 -1
  332. package/build/tests/create_legacy_attachment_migration_script.spec.js +0 -31
  333. package/build/tests/create_legacy_attachment_migration_script.spec.js.map +0 -1
  334. /package/build/src/integrations/lucid/{attachment_owner.d.ts → relations/attachment_owner.d.ts} +0 -0
  335. /package/build/src/integrations/lucid/{attachment_owner.js → relations/attachment_owner.js} +0 -0
  336. /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
- const variants = await this.#getVariants();
28
- await variants.generate({
29
- attachment,
30
- ...(variantKeys ? { variantKeys } : {}),
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 Error {
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;AAsBH,MAAM,OAAO,sBAAsB;IACxB,YAAY,CAAsB;IAClC,SAAS,CAA4C;IAC9D,iBAAiB,CAAuC;IAExD,YAAY,OAAsC;QAChD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAA;QACvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,mBAAmB;gBACtB,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;gBAC/D,OAAM;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,WAA+B;QAC3E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAEjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAA;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAC1C,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACtB,UAAU;YACV,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAED,YAAY;QACV,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,CAAC,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;QAC5D,OAAO,IAAI,CAAC,iBAAiB,CAAA;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD,YAAY,YAAoB;QAC9B,KAAK,CAAC,eAAe,YAAY,iBAAiB,CAAC,CAAA;QACnD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAA;IACvC,CAAC;CACF"}
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"}
@@ -5,4 +5,4 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  export {};
8
- //# sourceMappingURL=create_legacy_attachment_migration_script.spec.d.ts.map
8
+ //# sourceMappingURL=attachment_metadata_persister.js.map
@@ -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 string[] | null;
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 string[];
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,MAAM,EAAE,GAAG,IAAI,CAAA;CACpC,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,MAAM,EAAE,CAAA;CAC7B,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
+ {"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":"AAmCA;;;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"}
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
- scheduleVariantGeneration(attachment: Attachment, variantKeys?: readonly string[]): Promise<void>;
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;AAErD,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;CACxC,CAAA;AAED;;;GAGG;AACH,qBAAa,iBAAiB;;gBAMhB,OAAO,EAAE,wBAAwB;IAO7C,WAAW,CACT,KAAK,EAAE,qBAAqB,EAC5B,OAAO,GAAE,4BAAiC,GACzC,eAAe;IAgBlB;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmC/D,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjD,yBAAyB,CACvB,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAC9B,OAAO,CAAC,IAAI,CAAC;CAOjB"}
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
- const attachment = this.#factory.create(source, {
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
- return this.#storage.remove(attachment);
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
- scheduleVariantGeneration(attachment, variantKeys) {
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":"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"}
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 { AttachmentJobProcessor, AttachmentNotFoundError, type AttachmentJobProcessorOptions, type VariantGenerationRequest, type VariantGenerator, type VariantGeneratorFactory, } from './attachment_job_processor.js';
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,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,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"}
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"}
@@ -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 { AttachmentJobProcessor, AttachmentNotFoundError, } from './attachment_job_processor.js';
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,EAAE,iBAAiB,EAAiC,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GAKxB,MAAM,+BAA+B,CAAA"}
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 AttachmentJob = GenerateVariantsJob;
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;CAChC,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAE/C;;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"}
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 AttachmentConfig = {
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;AAEhF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,kBAAkB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvE,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAE/D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAA;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAA;IACpC,UAAU,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAA;IAC9C,SAAS,CAAC,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAA;IAC9C,qDAAqD;IACrD,QAAQ,CAAC,EAAE,4BAA4B,CAAA;IACvC,OAAO,CAAC,EAAE,wBAAwB,CAAA;IAClC,KAAK,CAAC,EAAE,qBAAqB,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,GAAG;IAChE,UAAU,CAAC,EAAE,oBAAoB,CAAA;IACjC,QAAQ,CAAC,EAAE,4BAA4B,CAAA;IACvC,OAAO,CAAC,EAAE,wBAAwB,CAAA;IAClC,KAAK,EAAE,6BAA6B,GAAG,KAAK,CAAA;CAC7C,CAAA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,cAAc,CAAC,wBAAwB,CAAC,CA8B/F"}
1
+ {"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"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"}