@jrmc/adonis-attachment 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +4 -0
  2. package/build/src/adapters/meta.d.ts +3 -0
  3. package/build/src/adapters/meta.js +40 -0
  4. package/build/src/attachment_manager.d.ts +5 -5
  5. package/build/src/attachment_manager.js +39 -27
  6. package/build/src/attachments/attachment.js +9 -2
  7. package/build/src/decorators/attachment.js +25 -0
  8. package/build/src/errors.d.ts +15 -15
  9. package/build/src/mixins/attachmentable.d.ts +5 -314
  10. package/build/src/mixins/attachmentable.js +10 -88
  11. package/build/src/types/converter.d.ts +22 -1
  12. package/build/src/types/input.d.ts +5 -0
  13. package/build/src/utils/helpers.d.ts +0 -7
  14. package/build/src/utils/helpers.js +4 -26
  15. package/build/src/utils/hooks.d.ts +11 -0
  16. package/build/src/utils/hooks.js +92 -0
  17. package/package.json +18 -16
  18. package/build/bin/test.d.ts +0 -1
  19. package/build/bin/test.js +0 -34
  20. package/build/tests/attachment-manager.spec.d.ts +0 -7
  21. package/build/tests/attachment-manager.spec.js +0 -234
  22. package/build/tests/attachment.spec.d.ts +0 -7
  23. package/build/tests/attachment.spec.js +0 -16
  24. package/build/tests/commands.spec.d.ts +0 -7
  25. package/build/tests/commands.spec.js +0 -58
  26. package/build/tests/fixtures/converters/image_converter.d.ts +0 -12
  27. package/build/tests/fixtures/converters/image_converter.js +0 -12
  28. package/build/tests/fixtures/factories/user.d.ts +0 -8
  29. package/build/tests/fixtures/factories/user.js +0 -19
  30. package/build/tests/fixtures/factories/user_with_variants.d.ts +0 -8
  31. package/build/tests/fixtures/factories/user_with_variants.js +0 -19
  32. package/build/tests/fixtures/migrations/create_users_table.d.ts +0 -12
  33. package/build/tests/fixtures/migrations/create_users_table.js +0 -23
  34. package/build/tests/fixtures/models/user.d.ts +0 -466
  35. package/build/tests/fixtures/models/user.js +0 -36
  36. package/build/tests/fixtures/models/user_with_variants.d.ts +0 -465
  37. package/build/tests/fixtures/models/user_with_variants.js +0 -33
  38. package/build/tests/helpers/app.d.ts +0 -29
  39. package/build/tests/helpers/app.js +0 -104
  40. package/build/tests/helpers/index.d.ts +0 -7
  41. package/build/tests/helpers/index.js +0 -7
  42. package/build/tests/options.spec.d.ts +0 -7
  43. package/build/tests/options.spec.js +0 -126
  44. package/build/tests/variants.spec.d.ts +0 -7
  45. package/build/tests/variants.spec.js +0 -21
@@ -71,324 +71,18 @@ export declare function Attachmentable<T extends Constructor>(superclass: T): {
71
71
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
72
72
  related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
73
73
  };
74
- afterFindHook(modelInstance: {
75
- $attachments: AttributeOfModelWithAttachment;
76
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
77
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
78
- $original: import("@adonisjs/lucid/types/model").ModelObject;
79
- $preloaded: {
80
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
81
- };
82
- $columns: undefined;
83
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
84
- $primaryKeyValue?: number | string;
85
- $isPersisted: boolean;
86
- $isNew: boolean;
87
- $isLocal: boolean;
88
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
89
- $isDirty: boolean;
90
- $isDeleted: boolean;
91
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
92
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
93
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
94
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
95
- useConnection(connection: string): /*elided*/ any;
96
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
97
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
98
- $setAttribute(key: string, value: any): void;
99
- $getAttribute(key: string): any;
100
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
101
- $hasRelated(key: string): boolean;
102
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
103
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
104
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
105
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
106
- $hydrateOriginals(): void;
107
- fill(value: Partial<{
108
- $attachments: AttributeOfModelWithAttachment;
109
- }>, allowExtraProperties?: boolean): /*elided*/ any;
110
- merge(value: Partial<{
111
- $attachments: AttributeOfModelWithAttachment;
112
- }>, allowExtraProperties?: boolean): /*elided*/ any;
113
- isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
114
- enableForceUpdate(): /*elided*/ any;
115
- save(): Promise</*elided*/ any>;
116
- lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
117
- delete(): Promise<void>;
118
- refresh(): Promise</*elided*/ any>;
119
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
120
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
121
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
122
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
123
- loadCount: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback?: ((builder: RelatedBuilder) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
124
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
125
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
126
- serializeRelations(fields: undefined, raw: true): {
127
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
128
- };
129
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
130
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
131
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
132
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
133
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
134
- related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
135
- }): Promise<void>;
136
- afterFetchHook(modelInstances: {
137
- $attachments: AttributeOfModelWithAttachment;
138
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
139
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
140
- $original: import("@adonisjs/lucid/types/model").ModelObject;
141
- $preloaded: {
142
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
143
- };
144
- $columns: undefined;
145
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
146
- $primaryKeyValue?: number | string;
147
- $isPersisted: boolean;
148
- $isNew: boolean;
149
- $isLocal: boolean;
150
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
151
- $isDirty: boolean;
152
- $isDeleted: boolean;
153
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
154
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
155
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
156
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
157
- useConnection(connection: string): /*elided*/ any;
158
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
159
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
160
- $setAttribute(key: string, value: any): void;
161
- $getAttribute(key: string): any;
162
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
163
- $hasRelated(key: string): boolean;
164
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
165
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
166
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
167
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
168
- $hydrateOriginals(): void;
169
- fill(value: Partial<{
170
- $attachments: AttributeOfModelWithAttachment;
171
- }>, allowExtraProperties?: boolean): /*elided*/ any;
172
- merge(value: Partial<{
173
- $attachments: AttributeOfModelWithAttachment;
174
- }>, allowExtraProperties?: boolean): /*elided*/ any;
175
- isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
176
- enableForceUpdate(): /*elided*/ any;
177
- save(): Promise</*elided*/ any>;
178
- lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
179
- delete(): Promise<void>;
180
- refresh(): Promise</*elided*/ any>;
181
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
182
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
183
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
184
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
185
- loadCount: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback?: ((builder: RelatedBuilder) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
186
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
187
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
188
- serializeRelations(fields: undefined, raw: true): {
189
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
190
- };
191
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
192
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
193
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
194
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
195
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
196
- related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
197
- }[]): Promise<void>;
198
- beforeSaveHook(modelInstance: {
199
- $attachments: AttributeOfModelWithAttachment;
200
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
201
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
202
- $original: import("@adonisjs/lucid/types/model").ModelObject;
203
- $preloaded: {
204
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
205
- };
206
- $columns: undefined;
207
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
208
- $primaryKeyValue?: number | string;
209
- $isPersisted: boolean;
210
- $isNew: boolean;
211
- $isLocal: boolean;
212
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
213
- $isDirty: boolean;
214
- $isDeleted: boolean;
215
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
216
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
217
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
218
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
219
- useConnection(connection: string): /*elided*/ any;
220
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
221
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
222
- $setAttribute(key: string, value: any): void;
223
- $getAttribute(key: string): any;
224
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
225
- $hasRelated(key: string): boolean;
226
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
227
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
228
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
229
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
230
- $hydrateOriginals(): void;
231
- fill(value: Partial<{
232
- $attachments: AttributeOfModelWithAttachment;
233
- }>, allowExtraProperties?: boolean): /*elided*/ any;
234
- merge(value: Partial<{
235
- $attachments: AttributeOfModelWithAttachment;
236
- }>, allowExtraProperties?: boolean): /*elided*/ any;
237
- isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
238
- enableForceUpdate(): /*elided*/ any;
239
- save(): Promise</*elided*/ any>;
240
- lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
241
- delete(): Promise<void>;
242
- refresh(): Promise</*elided*/ any>;
243
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
244
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
245
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
246
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
247
- loadCount: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback?: ((builder: RelatedBuilder) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
248
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
249
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
250
- serializeRelations(fields: undefined, raw: true): {
251
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
252
- };
253
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
254
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
255
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
256
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
257
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
258
- related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
259
- }): Promise<void>;
260
- afterSaveHook(modelInstance: {
261
- $attachments: AttributeOfModelWithAttachment;
262
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
263
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
264
- $original: import("@adonisjs/lucid/types/model").ModelObject;
265
- $preloaded: {
266
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
267
- };
268
- $columns: undefined;
269
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
270
- $primaryKeyValue?: number | string;
271
- $isPersisted: boolean;
272
- $isNew: boolean;
273
- $isLocal: boolean;
274
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
275
- $isDirty: boolean;
276
- $isDeleted: boolean;
277
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
278
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
279
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
280
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
281
- useConnection(connection: string): /*elided*/ any;
282
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
283
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
284
- $setAttribute(key: string, value: any): void;
285
- $getAttribute(key: string): any;
286
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
287
- $hasRelated(key: string): boolean;
288
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
289
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
290
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
291
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
292
- $hydrateOriginals(): void;
293
- fill(value: Partial<{
294
- $attachments: AttributeOfModelWithAttachment;
295
- }>, allowExtraProperties?: boolean): /*elided*/ any;
296
- merge(value: Partial<{
297
- $attachments: AttributeOfModelWithAttachment;
298
- }>, allowExtraProperties?: boolean): /*elided*/ any;
299
- isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
300
- enableForceUpdate(): /*elided*/ any;
301
- save(): Promise</*elided*/ any>;
302
- lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
303
- delete(): Promise<void>;
304
- refresh(): Promise</*elided*/ any>;
305
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
306
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
307
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
308
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
309
- loadCount: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback?: ((builder: RelatedBuilder) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
310
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
311
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
312
- serializeRelations(fields: undefined, raw: true): {
313
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
314
- };
315
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
316
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
317
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
318
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
319
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
320
- related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
321
- }): Promise<void>;
322
- beforeDeleteHook(modelInstance: {
323
- $attachments: AttributeOfModelWithAttachment;
324
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
325
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
326
- $original: import("@adonisjs/lucid/types/model").ModelObject;
327
- $preloaded: {
328
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
329
- };
330
- $columns: undefined;
331
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
332
- $primaryKeyValue?: number | string;
333
- $isPersisted: boolean;
334
- $isNew: boolean;
335
- $isLocal: boolean;
336
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
337
- $isDirty: boolean;
338
- $isDeleted: boolean;
339
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
340
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
341
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
342
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
343
- useConnection(connection: string): /*elided*/ any;
344
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
345
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
346
- $setAttribute(key: string, value: any): void;
347
- $getAttribute(key: string): any;
348
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
349
- $hasRelated(key: string): boolean;
350
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
351
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
352
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
353
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
354
- $hydrateOriginals(): void;
355
- fill(value: Partial<{
356
- $attachments: AttributeOfModelWithAttachment;
357
- }>, allowExtraProperties?: boolean): /*elided*/ any;
358
- merge(value: Partial<{
359
- $attachments: AttributeOfModelWithAttachment;
360
- }>, allowExtraProperties?: boolean): /*elided*/ any;
361
- isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
362
- enableForceUpdate(): /*elided*/ any;
363
- save(): Promise</*elided*/ any>;
364
- lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
365
- delete(): Promise<void>;
366
- refresh(): Promise</*elided*/ any>;
367
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
368
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
369
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
370
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
371
- loadCount: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback?: ((builder: RelatedBuilder) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
372
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
373
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
374
- serializeRelations(fields: undefined, raw: true): {
375
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
376
- };
377
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
378
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
379
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
380
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
381
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
382
- related<Name extends undefined>(relation: Name): /*elided*/ any[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name]["client"] : never;
383
- }): Promise<void>;
74
+ warn(): Promise<void>;
384
75
  find: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T_1>>;
385
76
  readonly booted: boolean;
77
+ boot: () => void;
78
+ create: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>>;
79
+ all: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T_1>[]>;
80
+ namingStrategy: import("@adonisjs/lucid/types/model").NamingStrategyContract;
386
81
  $columnsDefinitions: Map<string, import("@adonisjs/lucid/types/model").ModelColumnOptions>;
387
82
  $relationsDefinitions: Map<string, import("@adonisjs/lucid/types/relations").RelationshipsContract>;
388
83
  $computedDefinitions: Map<string, import("@adonisjs/lucid/types/model").ComputedOptions>;
389
84
  primaryKey: string;
390
85
  connection?: string | undefined;
391
- namingStrategy: import("@adonisjs/lucid/types/model").NamingStrategyContract;
392
86
  table: string;
393
87
  selfAssignPrimaryKey: boolean;
394
88
  $adapter: import("@adonisjs/lucid/types/model").AdapterContract;
@@ -417,7 +111,6 @@ export declare function Attachmentable<T extends Constructor>(superclass: T): {
417
111
  <Model extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
418
112
  };
419
113
  $defineProperty: <Model extends import("@adonisjs/lucid/types/model").LucidModel, Prop extends keyof Model>(this: Model, propertyName: Prop, defaultValue: Model[Prop], strategy: "inherit" | "define" | ((value: Model[Prop]) => Model[Prop])) => void;
420
- boot: () => void;
421
114
  before: {
422
115
  <Model extends import("@adonisjs/lucid/types/model").LucidModel, Event extends "find" | "fetch">(this: Model, event: Event, handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model>, Event>): void;
423
116
  <Model extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model>, import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model>], "paginate">): void;
@@ -428,7 +121,6 @@ export declare function Attachmentable<T extends Constructor>(superclass: T): {
428
121
  <Model extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelPaginatorContract<InstanceType<Model>>, "paginate">): void;
429
122
  <Model extends import("@adonisjs/lucid/types/model").LucidModel, Event extends import("@adonisjs/lucid/types/model").EventsList>(this: Model, event: Event, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model>, Event>): void;
430
123
  };
431
- create: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>>;
432
124
  createMany: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>[]>;
433
125
  findOrFail: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T_1>>;
434
126
  findBy: {
@@ -452,7 +144,6 @@ export declare function Attachmentable<T extends Constructor>(superclass: T): {
452
144
  fetchOrNewUpMany: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>[]>;
453
145
  fetchOrCreateMany: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>[]>;
454
146
  updateOrCreateMany: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>[]>;
455
- all: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T_1>[]>;
456
147
  query: <Model extends import("@adonisjs/lucid/types/model").LucidModel, Result = InstanceType<Model>>(this: Model, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model, Result>;
457
148
  transaction: import("@adonisjs/lucid/types/database").TransactionFn;
458
149
  truncate: (cascade?: boolean) => Promise<void>;
@@ -10,101 +10,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
10
10
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
11
11
  return c > 3 && r && Object.defineProperty(target, key, r), r;
12
12
  };
13
- import { beforeSave, afterSave, beforeDelete, afterFind, afterFetch, afterPaginate, } from '@adonisjs/lucid/orm';
14
- import { persistAttachment, commit, rollback, generateVariants, preComputeUrl, } from '../utils/actions.js';
15
- import { clone, getAttachmentAttributeNames, getDirtyAttachmentAttributeNames, } from '../utils/helpers.js';
13
+ import { beforeSave, beforeFind, beforeFetch, beforePaginate, beforeCreate, } from '@adonisjs/lucid/orm';
14
+ import { clone } from '../utils/helpers.js';
16
15
  import { defaultStateAttributeMixin } from '../utils/default_values.js';
16
+ import logger from '@adonisjs/core/services/logger';
17
17
  export function Attachmentable(superclass) {
18
18
  class ModelWithAttachment extends superclass {
19
19
  $attachments = clone(defaultStateAttributeMixin);
20
- static async afterFindHook(modelInstance) {
21
- const attachmentAttributeNames = getAttachmentAttributeNames(modelInstance);
22
- await Promise.all(attachmentAttributeNames.map((attributeName) => {
23
- return preComputeUrl(modelInstance, attributeName);
24
- }));
25
- }
26
- static async afterFetchHook(modelInstances) {
27
- await Promise.all(modelInstances.map((row) => this.afterFindHook(row)));
28
- }
29
- static async beforeSaveHook(modelInstance) {
30
- const attachmentAttributeNames = getDirtyAttachmentAttributeNames(modelInstance);
31
- /**
32
- * Empty previous $attachments
33
- */
34
- modelInstance.$attachments = clone(defaultStateAttributeMixin);
35
- /**
36
- * Set attributes Attachment type modified
37
- */
38
- attachmentAttributeNames.forEach((attributeName) => modelInstance.$attachments.attributesModified.push(attributeName));
39
- /**
40
- * Persist attachments before saving the model to the database. This
41
- * way if file saving fails we will not write anything to the
42
- * database
43
- */
44
- await Promise.all(attachmentAttributeNames.map((attributeName) => persistAttachment(modelInstance, attributeName)));
45
- try {
46
- if (modelInstance.$trx) {
47
- modelInstance.$trx.after('commit', () => commit(modelInstance));
48
- modelInstance.$trx.after('rollback', () => rollback(modelInstance));
49
- }
50
- else {
51
- await commit(modelInstance);
52
- }
53
- }
54
- catch (error) {
55
- await rollback(modelInstance);
56
- throw error;
57
- }
58
- }
59
- static async afterSaveHook(modelInstance) {
60
- const attachmentAttributeNames = getAttachmentAttributeNames(modelInstance);
61
- /**
62
- * For all properties Attachment
63
- * Launch async generation variants
64
- */
65
- await Promise.all(attachmentAttributeNames.map((attributeName) => {
66
- if (modelInstance.$attachments.attributesModified.includes(attributeName)) {
67
- return generateVariants(modelInstance, attributeName);
68
- }
69
- }));
70
- }
71
- static async beforeDeleteHook(modelInstance) {
72
- const attachmentAttributeNames = getAttachmentAttributeNames(modelInstance);
73
- /**
74
- * Mark all attachments for deletion
75
- */
76
- attachmentAttributeNames.map((attributeName) => {
77
- if (modelInstance.$attributes[attributeName]) {
78
- modelInstance.$attachments.detached.push(modelInstance.$attributes[attributeName]);
79
- }
80
- });
81
- /**
82
- * If model is using transaction, then wait for the transaction
83
- * to settle
84
- */
85
- if (modelInstance.$trx) {
86
- modelInstance.$trx.after('commit', () => commit(modelInstance));
87
- }
88
- else {
89
- await commit(modelInstance);
90
- }
20
+ static async warn() {
21
+ logger.warn(`The "Attachmentable" mixin is deprecated and may be removed in a future version.`);
91
22
  }
92
23
  }
93
24
  __decorate([
94
- afterFind()
95
- ], ModelWithAttachment, "afterFindHook", null);
96
- __decorate([
97
- afterFetch(),
98
- afterPaginate()
99
- ], ModelWithAttachment, "afterFetchHook", null);
100
- __decorate([
25
+ beforeCreate(),
26
+ beforeFind(),
27
+ beforeFetch(),
28
+ beforePaginate(),
101
29
  beforeSave()
102
- ], ModelWithAttachment, "beforeSaveHook", null);
103
- __decorate([
104
- afterSave()
105
- ], ModelWithAttachment, "afterSaveHook", null);
106
- __decorate([
107
- beforeDelete()
108
- ], ModelWithAttachment, "beforeDeleteHook", null);
30
+ ], ModelWithAttachment, "warn", null);
109
31
  return ModelWithAttachment;
110
32
  }
@@ -86,6 +86,27 @@ type webp = {
86
86
  force?: Boolean;
87
87
  };
88
88
  };
89
+ type avif = {
90
+ format: 'avif';
91
+ options: {
92
+ quality?: number;
93
+ lossless?: Boolean;
94
+ effort?: number;
95
+ chromaSubsampling?: string;
96
+ bitdepth?: number;
97
+ };
98
+ };
99
+ type heif = {
100
+ format: 'heif';
101
+ options: {
102
+ compression?: string;
103
+ quality?: number;
104
+ lossless?: Boolean;
105
+ effort?: number;
106
+ chromaSubsampling?: string;
107
+ bitdepth?: number;
108
+ };
109
+ };
89
110
  export type ConverterOptions = {
90
111
  resize?: number | {
91
112
  width?: number;
@@ -103,6 +124,6 @@ export type ConverterOptions = {
103
124
  withoutReduction?: Boolean;
104
125
  fastShrinkOnLoad?: Boolean;
105
126
  };
106
- format?: string | jpeg | png | gif | webp;
127
+ format?: 'jpeg' | 'jpg' | 'png' | 'gif' | 'webp' | 'avif' | 'heif' | 'tiff' | 'raw' | jpeg | png | gif | webp | avif | heif;
107
128
  };
108
129
  export {};
@@ -21,4 +21,9 @@ export type Exif = {
21
21
  height: number;
22
22
  };
23
23
  };
24
+ export type Meta = {
25
+ extname: string;
26
+ mimeType: string;
27
+ size: number;
28
+ };
24
29
  export type Input = Buffer | string;
@@ -5,17 +5,10 @@
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
7
  import type { LucidOptions } from '../types/attachment.js';
8
- import type { Input } from '../types/input.js';
9
8
  import type { ModelWithAttachment } from '../types/mixin.js';
10
9
  export declare function getAttachmentAttributeNames(modelInstance: ModelWithAttachment): string[];
11
10
  export declare function getDirtyAttachmentAttributeNames(modelInstance: ModelWithAttachment): string[];
12
11
  export declare function getOptions(modelInstance: ModelWithAttachment, attributeName: string): LucidOptions;
13
- export declare function createAttachmentAttributes(input: Input, name?: string): Promise<{
14
- originalName: string;
15
- extname: import("file-type").FileExtension;
16
- mimeType: import("file-type").MimeType;
17
- size: number;
18
- }>;
19
12
  export declare function cleanObject(obj: any): any;
20
13
  export declare function clone(object: Object): any;
21
14
  export declare function use(module: string): Promise<any>;
@@ -11,9 +11,6 @@ import fs from 'node:fs/promises';
11
11
  import { pipeline } from 'node:stream';
12
12
  import { promisify } from 'node:util';
13
13
  import { createWriteStream } from 'node:fs';
14
- import { cuid } from '@adonisjs/core/helpers';
15
- import string from '@adonisjs/core/helpers/string';
16
- import { fileTypeFromBuffer, fileTypeFromFile } from 'file-type';
17
14
  import { Attachment } from '../attachments/attachment.js';
18
15
  import * as errors from '../errors.js';
19
16
  import { optionsSym } from './symbols.js';
@@ -28,27 +25,6 @@ export function getDirtyAttachmentAttributeNames(modelInstance) {
28
25
  export function getOptions(modelInstance, attributeName) {
29
26
  return modelInstance.constructor.prototype[optionsSym]?.[attributeName];
30
27
  }
31
- export async function createAttachmentAttributes(input, name) {
32
- let fileType;
33
- if (Buffer.isBuffer(input)) {
34
- fileType = await fileTypeFromBuffer(input);
35
- }
36
- else {
37
- fileType = await fileTypeFromFile(input);
38
- }
39
- if (name) {
40
- name = string.slug(name);
41
- }
42
- else {
43
- name = `${cuid()}.${fileType.ext}`;
44
- }
45
- return {
46
- originalName: name,
47
- extname: fileType.ext,
48
- mimeType: fileType.mime,
49
- size: input.length,
50
- };
51
- }
52
28
  export function cleanObject(obj) {
53
29
  if (obj === null || typeof obj !== 'object') {
54
30
  return obj;
@@ -104,7 +80,8 @@ export async function streamToTempFile(input) {
104
80
  }
105
81
  export async function downloadToTempFile(input) {
106
82
  return await new Promise((resolve) => {
107
- https.get(input, (response) => {
83
+ https
84
+ .get(input, (response) => {
108
85
  if (response.statusCode === 200) {
109
86
  resolve(streamToTempFile(response));
110
87
  }
@@ -112,7 +89,8 @@ export async function downloadToTempFile(input) {
112
89
  // reject(`${response.statusCode}`)
113
90
  throw new errors.E_CANNOT_GENERATE_TEMP_FILE(['']);
114
91
  }
115
- }).on('error', (err) => {
92
+ })
93
+ .on('error', (err) => {
116
94
  throw new errors.E_CANNOT_GENERATE_TEMP_FILE([err.message]);
117
95
  });
118
96
  });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @jrmc/adonis-attachment
3
+ *
4
+ * @license MIT
5
+ * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
+ */
7
+ export declare const afterFindHook: (instance: unknown) => Promise<void>;
8
+ export declare const afterFetchHook: (instance: unknown) => Promise<void>;
9
+ export declare const beforeSaveHook: (instance: unknown) => Promise<void>;
10
+ export declare const afterSaveHook: (instance: unknown) => Promise<void>;
11
+ export declare const beforeDeleteHook: (instance: unknown) => Promise<void>;