@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
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { test } from '@japa/runner';
8
8
  import { AttachmentService } from '../src/core/attachment_service.js';
9
- import { LucidAttachmentLifecycleService } from '../src/integrations/lucid/lucid_attachment_lifecycle_service.js';
9
+ import { LucidAttachmentLifecycleService } from '../src/integrations/lucid/persistence/lucid_attachment_lifecycle_service.js';
10
10
  const attachment = {
11
11
  id: 'attachment-id',
12
12
  disk: 'public',
@@ -17,20 +17,66 @@ const attachment = {
17
17
  extname: 'jpg',
18
18
  size: 42,
19
19
  };
20
- function makeRow(value, id = value.id) {
20
+ function makeBlob(value) {
21
+ return {
22
+ id: value.id,
23
+ toAttachment() {
24
+ return value;
25
+ },
26
+ };
27
+ }
28
+ function makeLink(value, id = `link-${value.id}`) {
29
+ const blob = makeBlob(value);
21
30
  return {
22
31
  id,
32
+ attachmentId: value.id,
33
+ attachment: blob,
23
34
  toAttachment() {
24
35
  return value;
25
36
  },
26
37
  };
27
38
  }
39
+ function makeStore(overrides = {}) {
40
+ const link = makeLink(attachment);
41
+ return {
42
+ async createOriginal() {
43
+ return link;
44
+ },
45
+ async findOriginal() {
46
+ return null;
47
+ },
48
+ async listVariants() {
49
+ return [];
50
+ },
51
+ async releaseOwner() { },
52
+ async restoreOwner() { },
53
+ async remove() {
54
+ return [];
55
+ },
56
+ async createCollectionItem() {
57
+ return link;
58
+ },
59
+ async findCollectionItem() {
60
+ return null;
61
+ },
62
+ async listCollection() {
63
+ return [];
64
+ },
65
+ async moveCollectionItem() {
66
+ return [];
67
+ },
68
+ async removeCollectionItem() {
69
+ return [];
70
+ },
71
+ ...overrides,
72
+ };
73
+ }
28
74
  test.group('LucidAttachmentLifecycleService', () => {
29
- test('persists a manager draft before inserting its polymorphic row', async ({ assert }) => {
75
+ test('persists a manager draft before creating its polymorphic link', async ({ assert }) => {
30
76
  const events = [];
31
77
  const attachments = new AttachmentService({
32
78
  defaultDisk: 'fs',
33
- createId: () => 'attachment-id',
79
+ createId: () => attachment.id,
34
80
  queue: { async enqueue() { } },
35
81
  storage: {
36
82
  async write() {
@@ -42,60 +88,72 @@ test.group('LucidAttachmentLifecycleService', () => {
42
88
  async remove() { },
43
89
  },
44
90
  });
45
- const draft = attachments.createDraft({
46
- body: new Uint8Array([1]),
47
- originalName: 'profile.jpg',
48
- });
49
- const service = new LucidAttachmentLifecycleService(attachments, {
91
+ const draft = attachments.createDraft({ body: new Uint8Array([1]), originalName: 'profile.jpg' });
92
+ const service = new LucidAttachmentLifecycleService(attachments, makeStore({
50
93
  async createOriginal() {
51
- events.push('persist');
52
- return {};
53
- },
54
- async findOriginal() {
55
- return null;
56
- },
57
- async listVariants() {
58
- return [];
94
+ events.push('link');
95
+ return makeLink(attachment);
59
96
  },
60
- async releaseOwner() { },
61
- async restoreOwner() { },
62
- async remove() { },
63
- });
64
- assert.isFalse(draft.isPersisted);
97
+ }));
65
98
  await service.attach({ type: 'users', id: '42', field: 'avatar' }, draft);
66
99
  assert.isTrue(draft.isPersisted);
67
- assert.deepEqual(events, ['write', 'persist']);
100
+ assert.deepEqual(events, ['write', 'link']);
68
101
  });
69
- test('persists the file before creating its polymorphic row', async ({ assert }) => {
70
- const events = [];
71
- const service = new LucidAttachmentLifecycleService({
72
- async create() {
73
- events.push('write');
74
- return attachment;
75
- },
76
- async remove() { },
77
- }, {
78
- async createOriginal() {
79
- events.push('persist');
80
- return {};
81
- },
82
- async findOriginal() {
83
- return null;
102
+ test('schedules deferred metadata after the attachment blob exists', async ({ assert }) => {
103
+ const jobs = [];
104
+ const attachments = new AttachmentService({
105
+ defaultDisk: 'fs',
106
+ createId: () => attachment.id,
107
+ queue: {
108
+ async enqueue(job) {
109
+ jobs.push(`${job.type}:${job.attachmentId}`);
110
+ },
84
111
  },
85
- async listVariants() {
86
- return [];
112
+ storage: {
113
+ async write() { },
114
+ async read() { return new Uint8Array(); },
115
+ async remove() { },
87
116
  },
88
- async releaseOwner() { },
89
- async restoreOwner() { },
90
- async remove() { },
117
+ metadataMode: 'deferred',
118
+ metadataExtractors: [{ async extract() { return {}; } }],
119
+ metadataPersister: { async persistMetadata() { } },
91
120
  });
92
- await service.attach({ type: 'users', id: '42', field: 'avatar' }, {
93
- body: new Uint8Array(),
121
+ const draft = attachments.createDraft({ body: new Uint8Array([1]), originalName: 'profile.jpg' });
122
+ const service = new LucidAttachmentLifecycleService(attachments, makeStore());
123
+ await service.attach({ type: 'users', id: '42', field: 'avatar' }, draft, { meta: true });
124
+ assert.deepEqual(jobs, ['extract-metadata:attachment-id']);
125
+ });
126
+ test('preserves the Lucid owner in queued lifecycle events', async ({ assert }) => {
127
+ const jobs = [];
128
+ const attachments = new AttachmentService({
129
+ defaultDisk: 'fs',
130
+ createId: () => attachment.id,
131
+ queue: { async enqueue(job) { jobs.push(job); } },
132
+ storage: { async write() { }, async read() { return new Uint8Array(); }, async remove() { } },
133
+ defaults: { variants: ['thumbnail'] },
134
+ });
135
+ const owner = {
136
+ type: 'users',
137
+ id: '42',
138
+ field: 'avatar',
139
+ model: { constructor: { primaryKey: 'uuid' } },
140
+ };
141
+ await new LucidAttachmentLifecycleService(attachments, makeStore()).attach(owner, {
142
+ body: new Uint8Array([1]),
94
143
  originalName: 'profile.jpg',
95
144
  });
96
- assert.deepEqual(events, ['write', 'persist']);
145
+ assert.deepEqual(jobs, [{
146
+ type: 'generate-variants',
147
+ attachmentId: attachment.id,
148
+ variantKeys: ['thumbnail'],
149
+ eventContext: {
150
+ tableName: 'users',
151
+ attributeName: 'avatar',
152
+ primary: { key: 'uuid', value: '42' },
153
+ },
154
+ }]);
97
155
  });
98
- test('removes a new file when database persistence fails', async ({ assert }) => {
156
+ test('removes a new file when blob or link persistence fails', async ({ assert }) => {
99
157
  const removed = [];
100
158
  const service = new LucidAttachmentLifecycleService({
101
159
  async create() {
@@ -104,275 +162,105 @@ test.group('LucidAttachmentLifecycleService', () => {
104
162
  async remove(value) {
105
163
  removed.push(value);
106
164
  },
107
- }, {
165
+ }, makeStore({
108
166
  async createOriginal() {
109
167
  throw new Error('database unavailable');
110
168
  },
111
- async findOriginal() {
112
- return null;
113
- },
114
- async listVariants() {
115
- return [];
116
- },
117
- async releaseOwner() { },
118
- async restoreOwner() { },
119
- async remove() { },
120
- });
169
+ }));
121
170
  await assert.rejects(() => service.attach({ type: 'users', id: '42', field: 'avatar' }, {
122
171
  body: new Uint8Array(),
123
172
  originalName: 'profile.jpg',
124
173
  }), 'database unavailable');
125
174
  assert.deepEqual(removed, [attachment]);
126
175
  });
127
- test('replaces the persisted row before removing the previous file', async ({ assert }) => {
176
+ test('replaces a link before purging its unreferenced blob', async ({ assert }) => {
128
177
  const events = [];
129
178
  const previousAttachment = { ...attachment, id: 'previous-id', path: 'users/42/previous.jpg' };
130
179
  const currentAttachment = { ...attachment, id: 'current-id', path: 'users/42/current.jpg' };
131
- const previous = makeRow(previousAttachment);
132
- const current = makeRow(currentAttachment);
180
+ const previous = makeLink(previousAttachment);
181
+ const current = makeLink(currentAttachment);
133
182
  const service = new LucidAttachmentLifecycleService({
134
183
  async create() {
135
- events.push('write-current');
184
+ events.push('write');
136
185
  return currentAttachment;
137
186
  },
138
187
  async remove(value) {
139
188
  events.push(`remove-file:${value.id}`);
140
189
  },
141
- }, {
190
+ }, makeStore({
142
191
  async createOriginal() {
143
- events.push('persist-current');
192
+ events.push('create-link');
144
193
  return current;
145
194
  },
146
195
  async findOriginal() {
147
196
  return previous;
148
197
  },
149
- async listVariants() {
150
- return [];
151
- },
152
198
  async releaseOwner() {
153
- events.push('release-previous');
199
+ events.push('release-link');
154
200
  },
155
- async restoreOwner() { },
156
- async remove(row) {
157
- events.push(`remove-row:${row.id}`);
201
+ async remove() {
202
+ events.push('remove-link');
203
+ return [makeBlob(previousAttachment)];
158
204
  },
159
- });
160
- const row = await service.replace({ type: 'users', id: '42', field: 'avatar' }, {
205
+ }));
206
+ await service.replace({ type: 'users', id: '42', field: 'avatar' }, {
161
207
  body: new Uint8Array(),
162
208
  originalName: 'profile.jpg',
163
209
  });
164
- assert.equal(row, current);
165
210
  assert.deepEqual(events, [
166
- 'write-current',
167
- 'release-previous',
168
- 'persist-current',
169
- 'remove-row:previous-id',
211
+ 'write',
212
+ 'release-link',
213
+ 'create-link',
214
+ 'remove-link',
170
215
  'remove-file:previous-id',
171
216
  ]);
172
217
  });
173
- test('restores the previous owner when replacement persistence fails', async ({ assert }) => {
174
- const events = [];
175
- const previous = makeRow(attachment, 'previous-id');
176
- const currentAttachment = { ...attachment, id: 'current-id', path: 'users/42/current.jpg' };
177
- const service = new LucidAttachmentLifecycleService({
178
- async create() {
179
- events.push('write-current');
180
- return currentAttachment;
181
- },
182
- async remove(value) {
183
- events.push(`remove-file:${value.id}`);
184
- },
185
- }, {
186
- async createOriginal() {
187
- throw new Error('database unavailable');
188
- },
189
- async findOriginal() {
190
- return previous;
191
- },
192
- async listVariants() {
193
- return [];
194
- },
195
- async releaseOwner() {
196
- events.push('release-previous');
197
- },
198
- async restoreOwner() {
199
- events.push('restore-previous');
200
- },
201
- async remove() { },
202
- });
203
- await assert.rejects(() => service.replace({ type: 'users', id: '42', field: 'avatar' }, {
204
- body: new Uint8Array(),
205
- originalName: 'profile.jpg',
206
- }), 'database unavailable');
207
- assert.deepEqual(events, [
208
- 'write-current',
209
- 'release-previous',
210
- 'restore-previous',
211
- 'remove-file:current-id',
212
- ]);
213
- });
214
- test('detaches the original and every persisted variant', async ({ assert }) => {
215
- const removedRows = [];
216
- const removedFiles = [];
217
- const original = makeRow(attachment);
218
- const variant = makeRow({ ...attachment, id: 'variant-id', path: 'users/42/thumbnail.webp' });
219
- const service = new LucidAttachmentLifecycleService({
220
- async create() {
221
- return attachment;
222
- },
223
- async remove(value) {
224
- removedFiles.push(value.id);
225
- },
226
- }, {
227
- async createOriginal() {
228
- return original;
229
- },
230
- async findOriginal() {
231
- return original;
232
- },
233
- async listVariants() {
234
- return [variant];
235
- },
236
- async releaseOwner() { },
237
- async restoreOwner() { },
238
- async remove(row) {
239
- removedRows.push(row.id);
240
- },
241
- });
242
- await service.detach({ type: 'users', id: '42', field: 'avatar' });
243
- assert.deepEqual(removedRows, ['attachment-id']);
244
- assert.sameDeepMembers(removedFiles, ['attachment-id', 'variant-id']);
245
- });
246
- test('persists a collection item before inserting its polymorphic row', async ({ assert }) => {
247
- const events = [];
248
- const item = makeRow(attachment);
249
- const service = new LucidAttachmentLifecycleService({
250
- async create() {
251
- events.push('write');
252
- return attachment;
253
- },
254
- async remove() { },
255
- }, {
256
- async createOriginal() {
257
- return item;
258
- },
259
- async findOriginal() {
260
- return null;
261
- },
262
- async listVariants() {
263
- return [];
264
- },
265
- async releaseOwner() { },
266
- async restoreOwner() { },
267
- async remove() { },
268
- async createCollectionItem() {
269
- events.push('persist');
270
- return item;
271
- },
272
- async findCollectionItem() {
273
- return null;
274
- },
275
- async listCollection() {
276
- return [];
277
- },
278
- async moveCollectionItem() {
279
- return [];
280
- },
281
- async removeCollectionItem() { },
282
- });
283
- await service.add({ type: 'users', id: '42', field: 'avatars' }, {
284
- body: new Uint8Array(),
285
- originalName: 'profile.jpg',
286
- });
287
- assert.deepEqual(events, ['write', 'persist']);
288
- });
289
- test('removes a collection file when its database insertion fails', async ({ assert }) => {
218
+ test('only removes files for blobs that became unreferenced', async ({ assert }) => {
290
219
  const removed = [];
291
220
  const service = new LucidAttachmentLifecycleService({
292
221
  async create() {
293
222
  return attachment;
294
223
  },
295
224
  async remove(value) {
296
- removed.push(value);
297
- },
298
- }, {
299
- async createOriginal() {
300
- return makeRow(attachment);
225
+ removed.push(value.id);
301
226
  },
227
+ }, makeStore({
302
228
  async findOriginal() {
303
- return null;
304
- },
305
- async listVariants() {
306
- return [];
307
- },
308
- async releaseOwner() { },
309
- async restoreOwner() { },
310
- async remove() { },
311
- async createCollectionItem() {
312
- throw new Error('database unavailable');
313
- },
314
- async findCollectionItem() {
315
- return null;
316
- },
317
- async listCollection() {
318
- return [];
229
+ return makeLink(attachment);
319
230
  },
320
- async moveCollectionItem() {
231
+ async remove() {
321
232
  return [];
322
233
  },
323
- async removeCollectionItem() { },
324
- });
325
- await assert.rejects(() => service.add({ type: 'users', id: '42', field: 'avatars' }, {
326
- body: new Uint8Array(),
327
- originalName: 'profile.jpg',
328
- }), 'database unavailable');
329
- assert.deepEqual(removed, [attachment]);
234
+ }));
235
+ await service.detach({ type: 'users', id: '42', field: 'avatar' });
236
+ assert.deepEqual(removed, []);
330
237
  });
331
- test('removes a collection item and its persisted variants', async ({ assert }) => {
332
- const removedRows = [];
333
- const removedFiles = [];
334
- const item = makeRow(attachment);
335
- const variant = makeRow({ ...attachment, id: 'variant-id', path: 'users/42/thumbnail.webp' });
238
+ test('adds and removes ordered collection links', async ({ assert }) => {
239
+ const item = makeLink(attachment);
240
+ const removed = [];
336
241
  const service = new LucidAttachmentLifecycleService({
337
242
  async create() {
338
243
  return attachment;
339
244
  },
340
245
  async remove(value) {
341
- removedFiles.push(value.id);
246
+ removed.push(value.id);
342
247
  },
343
- }, {
344
- async createOriginal() {
345
- return item;
346
- },
347
- async findOriginal() {
348
- return null;
349
- },
350
- async listVariants() {
351
- return [variant];
352
- },
353
- async releaseOwner() { },
354
- async restoreOwner() { },
355
- async remove() { },
248
+ }, makeStore({
356
249
  async createCollectionItem() {
357
250
  return item;
358
251
  },
359
252
  async findCollectionItem() {
360
253
  return item;
361
254
  },
362
- async listCollection() {
363
- return [item];
364
- },
365
- async moveCollectionItem() {
366
- return [item];
255
+ async removeCollectionItem() {
256
+ return [makeBlob(attachment)];
367
257
  },
368
- async removeCollectionItem(_owner, row) {
369
- removedRows.push(row.id);
370
- },
371
- });
372
- const removed = await service.removeCollectionItem({ type: 'users', id: '42', field: 'avatars' }, attachment.id);
373
- assert.isTrue(removed);
374
- assert.deepEqual(removedRows, ['attachment-id']);
375
- assert.sameDeepMembers(removedFiles, ['attachment-id', 'variant-id']);
258
+ }));
259
+ const added = await service.add({ type: 'users', id: '42', field: 'gallery' }, { body: new Uint8Array(), originalName: 'profile.jpg' });
260
+ const didRemove = await service.removeCollectionItem({ type: 'users', id: '42', field: 'gallery' }, added.id);
261
+ assert.equal(added.id, item.id);
262
+ assert.isTrue(didRemove);
263
+ assert.deepEqual(removed, [attachment.id]);
376
264
  });
377
265
  });
378
266
  //# sourceMappingURL=lucid_attachment_lifecycle_service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucid_attachment_lifecycle_service.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_lifecycle_service.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucid_attachment_lifecycle_service.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_lifecycle_service.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAGrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,6EAA6E,CAAA;AAE7H,MAAM,UAAU,GAAe;IAC7B,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,EAAE;CACT,CAAA;AAED,SAAS,QAAQ,CAAC,KAAiB;IACjC,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,YAAY;YACV,OAAO,KAAK,CAAA;QACd,CAAC;KACiB,CAAA;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,KAAiB,EAAE,EAAE,GAAG,QAAQ,KAAK,CAAC,EAAE,EAAE;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE5B,OAAO;QACL,EAAE;QACF,YAAY,EAAE,KAAK,CAAC,EAAE;QACtB,UAAU,EAAE,IAAI;QAChB,YAAY;YACV,OAAO,KAAK,CAAA;QACd,CAAC;KACqB,CAAA;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,YAA8C,EAAE;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEjC,OAAO;QACL,KAAK,CAAC,cAAc;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,YAAY;YAChB,OAAO,EAAuB,CAAA;QAChC,CAAC;QACD,KAAK,CAAC,YAAY,KAAI,CAAC;QACvB,KAAK,CAAC,YAAY,KAAI,CAAC;QACvB,KAAK,CAAC,MAAM;YACV,OAAO,EAAuB,CAAA;QAChC,CAAC;QACD,KAAK,CAAC,oBAAoB;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,kBAAkB;YACtB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,CAAC,cAAc;YAClB,OAAO,EAA2B,CAAA;QACpC,CAAC;QACD,KAAK,CAAC,kBAAkB;YACtB,OAAO,EAA2B,CAAA;QACpC,CAAC;QACD,KAAK,CAAC,oBAAoB;YACxB,OAAO,EAAuB,CAAA;QAChC,CAAC;QACD,GAAG,SAAS;KACJ,CAAA;AACZ,CAAC;AAED,IAAI,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACjD,IAAI,CAAC,+DAA+D,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACzF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC;YACxC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;YAC7B,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,KAAI,CAAC,EAAE;YAC7B,OAAO,EAAE;gBACP,KAAK,CAAC,KAAK;oBACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACtB,CAAC;gBACD,KAAK,CAAC,IAAI;oBACR,OAAO,IAAI,UAAU,EAAE,CAAA;gBACzB,CAAC;gBACD,KAAK,CAAC,MAAM,KAAI,CAAC;aAClB;SACF,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;QACjG,MAAM,OAAO,GAAG,IAAI,+BAA+B,CACjD,WAAW,EACX,SAAS,CAAC;YACR,KAAK,CAAC,cAAc;gBAClB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACnB,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC7B,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAA;QAEzE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAChC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8DAA8D,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACxF,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC;YACxC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;YAC7B,KAAK,EAAE;gBACL,KAAK,CAAC,OAAO,CAAC,GAAG;oBACf,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,CAAA;gBAC9C,CAAC;aACF;YACD,OAAO,EAAE;gBACP,KAAK,CAAC,KAAK,KAAI,CAAC;gBAChB,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,EAAE,CAAA,CAAC,CAAC;gBACxC,KAAK,CAAC,MAAM,KAAI,CAAC;aAClB;YACD,YAAY,EAAE,UAAU;YACxB,kBAAkB,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,KAAK,OAAO,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC;YACvD,iBAAiB,EAAE,EAAE,KAAK,CAAC,eAAe,KAAI,CAAC,EAAE;SAClD,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;QACjG,MAAM,OAAO,GAAG,IAAI,+BAA+B,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;QAE7E,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAEzF,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,gCAAgC,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChF,MAAM,IAAI,GAAmC,EAAE,CAAA;QAC/C,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC;YACxC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE;YAC7B,KAAK,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,EAAE;YAChD,OAAO,EAAE,EAAE,KAAK,CAAC,KAAK,KAAI,CAAC,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,UAAU,EAAE,CAAA,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,KAAI,CAAC,EAAE;YAC1F,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE;SACtC,CAAC,CAAA;QACF,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE;SAC/C,CAAA;QAED,MAAM,IAAI,+BAA+B,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;YAChF,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,WAAW,EAAE,CAAC,WAAW,CAAC;gBAC1B,YAAY,EAAE;oBACZ,SAAS,EAAE,OAAO;oBAClB,aAAa,EAAE,QAAQ;oBACvB,OAAO,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;iBACtC;aACF,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,wDAAwD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAClF,MAAM,OAAO,GAAiB,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,IAAI,+BAA+B,CACjD;YACE,KAAK,CAAC,MAAM;gBACV,OAAO,UAAU,CAAA;YACnB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,KAAK;gBAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;SACF,EACD,SAAS,CAAC;YACR,KAAK,CAAC,cAAc;gBAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACzC,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CACH,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC3D,IAAI,EAAE,IAAI,UAAU,EAAE;YACtB,YAAY,EAAE,aAAa;SAC5B,CAAC,EACJ,sBAAsB,CACvB,CAAA;QAED,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,MAAM,kBAAkB,GAAG,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAA;QAC9F,MAAM,iBAAiB,GAAG,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAA;QAC3F,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,IAAI,+BAA+B,CACjD;YACE,KAAK,CAAC,MAAM;gBACV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;gBACpB,OAAO,iBAAiB,CAAA;YAC1B,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,KAAK;gBAChB,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;YACxC,CAAC;SACF,EACD,SAAS,CAAC;YACR,KAAK,CAAC,cAAc;gBAClB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,KAAK,CAAC,YAAY;gBAChB,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,KAAK,CAAC,YAAY;gBAChB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YAC7B,CAAC;YACD,KAAK,CAAC,MAAM;gBACV,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;gBAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACvC,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClE,IAAI,EAAE,IAAI,UAAU,EAAE;YACtB,YAAY,EAAE,aAAa;SAC5B,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;YACvB,OAAO;YACP,cAAc;YACd,aAAa;YACb,aAAa;YACb,yBAAyB;SAC1B,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,uDAAuD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACjF,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,+BAA+B,CACjD;YACE,KAAK,CAAC,MAAM;gBACV,OAAO,UAAU,CAAA;YACnB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,KAAK;gBAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC;SACF,EACD,SAAS,CAAC;YACR,KAAK,CAAC,YAAY;gBAChB,OAAO,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC7B,CAAC;YACD,KAAK,CAAC,MAAM;gBACV,OAAO,EAAE,CAAA;YACX,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QAElE,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,2CAA2C,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;QACjC,MAAM,OAAO,GAAa,EAAE,CAAA;QAC5B,MAAM,OAAO,GAAG,IAAI,+BAA+B,CACjD;YACE,KAAK,CAAC,MAAM;gBACV,OAAO,UAAU,CAAA;YACnB,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,KAAK;gBAChB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC;SACF,EACD,SAAS,CAAC;YACR,KAAK,CAAC,oBAAoB;gBACxB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,KAAK,CAAC,kBAAkB;gBACtB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,KAAK,CAAC,oBAAoB;gBACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAA;YAC/B,CAAC;SACF,CAAC,CACH,CAAA;QAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAC7C,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CACxD,CAAA;QACD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAClD,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAC7C,KAAK,CAAC,EAAE,CACT,CAAA;QAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACxB,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=lucid_attachment_metadata_persister.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucid_attachment_metadata_persister.spec.d.ts","sourceRoot":"","sources":["../../tests/lucid_attachment_metadata_persister.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ import { test } from '@japa/runner';
8
+ import { LucidAttachmentMetadataPersister } from '../src/integrations/lucid/persistence/lucid_attachment_metadata_persister.js';
9
+ const attachment = {
10
+ id: 'attachment-id', disk: 'public', path: 'avatar.jpg', name: 'avatar.jpg',
11
+ originalName: 'avatar.jpg', mimeType: 'image/jpeg', extname: 'jpg', size: 3,
12
+ };
13
+ test.group('LucidAttachmentMetadataPersister', () => {
14
+ test('updates the metadata JSON column for the stored blob', async ({ assert }) => {
15
+ const updates = [];
16
+ const model = {
17
+ query() {
18
+ return {
19
+ where(_, id) {
20
+ return {
21
+ async update({ metadata }) {
22
+ updates.push({ id, metadata });
23
+ },
24
+ };
25
+ },
26
+ };
27
+ },
28
+ };
29
+ const persister = new LucidAttachmentMetadataPersister(model);
30
+ await persister.persistMetadata(attachment, { dimension: { width: 320, height: 180 } });
31
+ assert.deepEqual(updates, [{ id: 'attachment-id', metadata: { dimension: { width: 320, height: 180 } } }]);
32
+ });
33
+ });
34
+ //# sourceMappingURL=lucid_attachment_metadata_persister.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lucid_attachment_metadata_persister.spec.js","sourceRoot":"","sources":["../../tests/lucid_attachment_metadata_persister.spec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAGnC,OAAO,EAAE,gCAAgC,EAAE,MAAM,8EAA8E,CAAA;AAE/H,MAAM,UAAU,GAAe;IAC7B,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;IAC3E,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;CAC5E,CAAA;AAED,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QAChF,MAAM,OAAO,GAA6C,EAAE,CAAA;QAC5D,MAAM,KAAK,GAAG;YACZ,KAAK;gBACH,OAAO;oBACL,KAAK,CAAC,CAAS,EAAE,EAAU;wBACzB,OAAO;4BACL,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAyB;gCAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;4BAChC,CAAC;yBACF,CAAA;oBACH,CAAC;iBACF,CAAA;YACH,CAAC;SACO,CAAA;QACV,MAAM,SAAS,GAAG,IAAI,gCAAgC,CAAC,KAAK,CAAC,CAAA;QAE7D,MAAM,SAAS,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAA;QAEvF,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC5G,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}