@jrmc/adonis-attachment 2.4.2 → 3.1.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 (49) hide show
  1. package/build/bin/test.d.ts +1 -0
  2. package/build/bin/test.js +34 -0
  3. package/build/index.d.ts +1 -0
  4. package/build/providers/attachment_provider.d.ts +2 -2
  5. package/build/services/main.d.ts +2 -2
  6. package/build/src/adapters/exif.d.ts +7 -1
  7. package/build/src/adapters/exif.js +8 -5
  8. package/build/src/attachment_manager.d.ts +7 -4
  9. package/build/src/attachment_manager.js +21 -8
  10. package/build/src/define_config.d.ts +16 -2
  11. package/build/src/define_config.js +8 -9
  12. package/build/src/errors.d.ts +18 -14
  13. package/build/src/errors.js +4 -0
  14. package/build/src/mixins/attachmentable.d.ts +127 -112
  15. package/build/src/mixins/attachmentable.js +2 -2
  16. package/build/src/types/attachment.d.ts +2 -1
  17. package/build/src/types/config.d.ts +22 -19
  18. package/build/src/types/index.d.ts +5 -0
  19. package/build/src/types/index.js +5 -0
  20. package/build/src/utils/helpers.d.ts +2 -0
  21. package/build/src/utils/helpers.js +35 -1
  22. package/build/stubs/config.stub +11 -5
  23. package/build/tests/attachment-manager.spec.d.ts +7 -0
  24. package/build/tests/attachment-manager.spec.js +234 -0
  25. package/build/tests/attachment.spec.d.ts +7 -0
  26. package/build/tests/attachment.spec.js +16 -0
  27. package/build/tests/commands.spec.d.ts +7 -0
  28. package/build/tests/commands.spec.js +58 -0
  29. package/build/tests/fixtures/converters/image_converter.d.ts +12 -0
  30. package/build/tests/fixtures/converters/image_converter.js +12 -0
  31. package/build/tests/fixtures/factories/user.d.ts +8 -0
  32. package/build/tests/fixtures/factories/user.js +19 -0
  33. package/build/tests/fixtures/factories/user_with_variants.d.ts +8 -0
  34. package/build/tests/fixtures/factories/user_with_variants.js +19 -0
  35. package/build/tests/fixtures/migrations/create_users_table.d.ts +12 -0
  36. package/build/tests/fixtures/migrations/create_users_table.js +23 -0
  37. package/build/tests/fixtures/models/user.d.ts +466 -0
  38. package/build/tests/fixtures/models/user.js +36 -0
  39. package/build/tests/fixtures/models/user_with_variants.d.ts +465 -0
  40. package/build/tests/fixtures/models/user_with_variants.js +33 -0
  41. package/build/tests/helpers/app.d.ts +29 -0
  42. package/build/tests/helpers/app.js +104 -0
  43. package/build/tests/helpers/index.d.ts +7 -0
  44. package/build/tests/helpers/index.js +7 -0
  45. package/build/tests/options.spec.d.ts +7 -0
  46. package/build/tests/options.spec.js +126 -0
  47. package/build/tests/variants.spec.d.ts +7 -0
  48. package/build/tests/variants.spec.js +21 -0
  49. package/package.json +39 -14
@@ -7,7 +7,8 @@
7
7
  import type { BaseModel } from '@adonisjs/lucid/orm';
8
8
  import type { NormalizeConstructor } from '@adonisjs/core/types/helpers';
9
9
  import type { AttributeOfModelWithAttachment } from '../types/mixin.js';
10
- export declare const Attachmentable: <Model extends NormalizeConstructor<typeof BaseModel>>(superclass: Model) => {
10
+ type Constructor = NormalizeConstructor<typeof BaseModel>;
11
+ export declare function Attachmentable<T extends Constructor>(superclass: T): {
11
12
  new (...args: any[]): {
12
13
  $attachments: AttributeOfModelWithAttachment;
13
14
  $attributes: import("@adonisjs/lucid/types/model").ModelObject;
@@ -28,8 +29,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
28
29
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
29
30
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
30
31
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
31
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
32
- useConnection(connection: string): any;
32
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
33
+ useConnection(connection: string): /*elided*/ any;
33
34
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
34
35
  $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
35
36
  $setAttribute(key: string, value: any): void;
@@ -43,19 +44,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
43
44
  $hydrateOriginals(): void;
44
45
  fill(value: Partial<{
45
46
  $attachments: AttributeOfModelWithAttachment;
46
- }>, allowExtraProperties?: boolean): any;
47
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
47
48
  merge(value: Partial<{
48
49
  $attachments: AttributeOfModelWithAttachment;
49
- }>, allowExtraProperties?: boolean): any;
50
- enableForceUpdate(): any;
51
- save(): Promise<any>;
52
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
50
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
51
+ isDirty(fields?: "$attachments" | ("$attachments" | undefined)[] | undefined): boolean;
52
+ enableForceUpdate(): /*elided*/ any;
53
+ save(): Promise</*elided*/ any>;
54
+ lockForUpdate<T_1>(callback: (user: /*elided*/ any) => T_1 | Promise<T_1>): Promise<T_1>;
53
55
  delete(): Promise<void>;
54
- refresh(): Promise<any>;
55
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
56
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
57
- loadAggregate: <Self extends 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>;
58
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
56
+ refresh(): Promise</*elided*/ any>;
57
+ load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
58
+ loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
59
+ preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
60
+ 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>;
61
+ 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>;
59
62
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
60
63
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
61
64
  serializeRelations(fields: undefined, raw: true): {
@@ -66,7 +69,7 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
66
69
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
67
70
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
68
71
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
69
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
70
73
  };
71
74
  afterFindHook(modelInstance: {
72
75
  $attachments: AttributeOfModelWithAttachment;
@@ -88,8 +91,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
88
91
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
89
92
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
90
93
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
91
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
92
- useConnection(connection: string): any;
94
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
95
+ useConnection(connection: string): /*elided*/ any;
93
96
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
94
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>;
95
98
  $setAttribute(key: string, value: any): void;
@@ -103,19 +106,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
103
106
  $hydrateOriginals(): void;
104
107
  fill(value: Partial<{
105
108
  $attachments: AttributeOfModelWithAttachment;
106
- }>, allowExtraProperties?: boolean): any;
109
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
107
110
  merge(value: Partial<{
108
111
  $attachments: AttributeOfModelWithAttachment;
109
- }>, allowExtraProperties?: boolean): any;
110
- enableForceUpdate(): any;
111
- save(): Promise<any>;
112
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
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>;
113
117
  delete(): Promise<void>;
114
- refresh(): Promise<any>;
115
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
116
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
117
- loadAggregate: <Self extends 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>;
118
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
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>;
119
124
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
120
125
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
121
126
  serializeRelations(fields: undefined, raw: true): {
@@ -126,7 +131,7 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
126
131
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
127
132
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
128
133
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
129
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
130
135
  }): Promise<void>;
131
136
  afterFetchHook(modelInstances: {
132
137
  $attachments: AttributeOfModelWithAttachment;
@@ -148,8 +153,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
148
153
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
149
154
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
150
155
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
151
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
152
- useConnection(connection: string): any;
156
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
157
+ useConnection(connection: string): /*elided*/ any;
153
158
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
154
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>;
155
160
  $setAttribute(key: string, value: any): void;
@@ -163,19 +168,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
163
168
  $hydrateOriginals(): void;
164
169
  fill(value: Partial<{
165
170
  $attachments: AttributeOfModelWithAttachment;
166
- }>, allowExtraProperties?: boolean): any;
171
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
167
172
  merge(value: Partial<{
168
173
  $attachments: AttributeOfModelWithAttachment;
169
- }>, allowExtraProperties?: boolean): any;
170
- enableForceUpdate(): any;
171
- save(): Promise<any>;
172
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
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>;
173
179
  delete(): Promise<void>;
174
- refresh(): Promise<any>;
175
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
176
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
177
- loadAggregate: <Self extends 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>;
178
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
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>;
179
186
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
180
187
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
181
188
  serializeRelations(fields: undefined, raw: true): {
@@ -186,7 +193,7 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
186
193
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
187
194
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
188
195
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
189
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
190
197
  }[]): Promise<void>;
191
198
  beforeSaveHook(modelInstance: {
192
199
  $attachments: AttributeOfModelWithAttachment;
@@ -208,8 +215,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
208
215
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
209
216
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
210
217
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
211
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
212
- useConnection(connection: string): any;
218
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
219
+ useConnection(connection: string): /*elided*/ any;
213
220
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
214
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>;
215
222
  $setAttribute(key: string, value: any): void;
@@ -223,19 +230,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
223
230
  $hydrateOriginals(): void;
224
231
  fill(value: Partial<{
225
232
  $attachments: AttributeOfModelWithAttachment;
226
- }>, allowExtraProperties?: boolean): any;
233
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
227
234
  merge(value: Partial<{
228
235
  $attachments: AttributeOfModelWithAttachment;
229
- }>, allowExtraProperties?: boolean): any;
230
- enableForceUpdate(): any;
231
- save(): Promise<any>;
232
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
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>;
233
241
  delete(): Promise<void>;
234
- refresh(): Promise<any>;
235
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
236
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
237
- loadAggregate: <Self extends 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>;
238
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
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>;
239
248
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
240
249
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
241
250
  serializeRelations(fields: undefined, raw: true): {
@@ -246,7 +255,7 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
246
255
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
247
256
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
248
257
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
249
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
250
259
  }): Promise<void>;
251
260
  afterSaveHook(modelInstance: {
252
261
  $attachments: AttributeOfModelWithAttachment;
@@ -268,8 +277,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
268
277
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
269
278
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
270
279
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
271
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
272
- useConnection(connection: string): any;
280
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
281
+ useConnection(connection: string): /*elided*/ any;
273
282
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
274
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>;
275
284
  $setAttribute(key: string, value: any): void;
@@ -283,19 +292,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
283
292
  $hydrateOriginals(): void;
284
293
  fill(value: Partial<{
285
294
  $attachments: AttributeOfModelWithAttachment;
286
- }>, allowExtraProperties?: boolean): any;
295
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
287
296
  merge(value: Partial<{
288
297
  $attachments: AttributeOfModelWithAttachment;
289
- }>, allowExtraProperties?: boolean): any;
290
- enableForceUpdate(): any;
291
- save(): Promise<any>;
292
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
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>;
293
303
  delete(): Promise<void>;
294
- refresh(): Promise<any>;
295
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
296
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
297
- loadAggregate: <Self extends 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>;
298
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
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>;
299
310
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
300
311
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
301
312
  serializeRelations(fields: undefined, raw: true): {
@@ -306,7 +317,7 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
306
317
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
307
318
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
308
319
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
309
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
310
321
  }): Promise<void>;
311
322
  beforeDeleteHook(modelInstance: {
312
323
  $attachments: AttributeOfModelWithAttachment;
@@ -328,8 +339,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
328
339
  $options?: import("@adonisjs/lucid/types/model").ModelOptions;
329
340
  $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
330
341
  $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
331
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): any;
332
- useConnection(connection: string): any;
342
+ useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
343
+ useConnection(connection: string): /*elided*/ any;
333
344
  $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
334
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>;
335
346
  $setAttribute(key: string, value: any): void;
@@ -343,19 +354,21 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
343
354
  $hydrateOriginals(): void;
344
355
  fill(value: Partial<{
345
356
  $attachments: AttributeOfModelWithAttachment;
346
- }>, allowExtraProperties?: boolean): any;
357
+ }>, allowExtraProperties?: boolean): /*elided*/ any;
347
358
  merge(value: Partial<{
348
359
  $attachments: AttributeOfModelWithAttachment;
349
- }>, allowExtraProperties?: boolean): any;
350
- enableForceUpdate(): any;
351
- save(): Promise<any>;
352
- lockForUpdate<T>(callback: (user: any) => T | Promise<T>): Promise<T>;
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>;
353
365
  delete(): Promise<void>;
354
- refresh(): Promise<any>;
355
- load: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
356
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload<any>;
357
- loadAggregate: <Self extends 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>;
358
- loadCount: <Self extends any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
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>;
359
372
  serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
360
373
  serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
361
374
  serializeRelations(fields: undefined, raw: true): {
@@ -366,9 +379,9 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
366
379
  serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
367
380
  toObject(): import("@adonisjs/lucid/types/model").ModelObject;
368
381
  toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
369
- related<Name_2 extends undefined>(relation: Name_2): any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? any[Name_2]["client"] : never;
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;
370
383
  }): Promise<void>;
371
- find: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T>>;
384
+ 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>>;
372
385
  readonly booted: boolean;
373
386
  $columnsDefinitions: Map<string, import("@adonisjs/lucid/types/model").ModelColumnOptions>;
374
387
  $relationsDefinitions: Map<string, import("@adonisjs/lucid/types/relations").RelationshipsContract>;
@@ -389,8 +402,8 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
389
402
  serializedToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
390
403
  serializedToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
391
404
  };
392
- $createFromAdapterResult: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, result?: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => null | InstanceType<T>;
393
- $createMultipleFromAdapterResult: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, results: import("@adonisjs/lucid/types/model").ModelObject[], sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => InstanceType<T>[];
405
+ $createFromAdapterResult: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, result?: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => null | InstanceType<T_1>;
406
+ $createMultipleFromAdapterResult: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, results: import("@adonisjs/lucid/types/model").ModelObject[], sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => InstanceType<T_1>[];
394
407
  $addColumn: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ColumnOptions>) => import("@adonisjs/lucid/types/model").ColumnOptions;
395
408
  $hasColumn: (name: string) => boolean;
396
409
  $getColumn: (name: string) => import("@adonisjs/lucid/types/model").ModelColumnOptions | undefined;
@@ -400,46 +413,48 @@ export declare const Attachmentable: <Model extends NormalizeConstructor<typeof
400
413
  $addRelation: (name: string, type: import("@adonisjs/lucid/types/relations").ModelRelationTypes["__opaque_type"], relatedModel: () => import("@adonisjs/lucid/types/model").LucidModel, options: import("@adonisjs/lucid/types/model").ModelRelationOptions) => void;
401
414
  $hasRelation: (name: string) => boolean;
402
415
  $getRelation: {
403
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Name_2 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<InstanceType<Model_1>>>(this: Model_1, name: Name_2): InstanceType<Model_1>[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? InstanceType<Model_1>[Name_2]["client"]["relation"] : import("@adonisjs/lucid/types/relations").RelationshipsContract;
404
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
416
+ <Model extends import("@adonisjs/lucid/types/model").LucidModel, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<InstanceType<Model>>>(this: Model, name: Name): InstanceType<Model>[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? InstanceType<Model>[Name]["client"]["relation"] : import("@adonisjs/lucid/types/relations").RelationshipsContract;
417
+ <Model extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
405
418
  };
406
- $defineProperty: <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Prop extends keyof Model_1>(this: Model_1, propertyName: Prop, defaultValue: Model_1[Prop], strategy: "inherit" | "define" | ((value: Model_1[Prop]) => Model_1[Prop])) => void;
419
+ $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;
407
420
  boot: () => void;
408
421
  before: {
409
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event extends "find" | "fetch">(this: Model_1, event: Event, handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>, Event>): void;
410
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>, import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>], "paginate">): void;
411
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event_1 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_1, event: Event_1, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>, Event_1>): void;
422
+ <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
+ <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;
424
+ <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;
412
425
  };
413
426
  after: {
414
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "fetch", handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>[], "fetch">): void;
415
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelPaginatorContract<InstanceType<Model_1>>, "paginate">): void;
416
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event_2 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_1, event: Event_2, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>, Event_2>): void;
427
+ <Model extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model, event: "fetch", handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model>[], "fetch">): void;
428
+ <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
+ <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;
417
430
  };
418
- create: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
419
- createMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
420
- findOrFail: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>>;
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
+ 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
+ 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>>;
421
434
  findBy: {
422
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T>>;
423
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T>>;
435
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T_1>>;
436
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T_1>>;
424
437
  };
425
438
  findByOrFail: {
426
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>>;
427
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>>;
439
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T_1>>;
440
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T_1>>;
428
441
  };
429
442
  findManyBy: {
430
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>[]>;
431
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>[]>;
443
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T_1>[]>;
444
+ <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T_1>[]>;
432
445
  };
433
- first: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T>>;
434
- firstOrFail: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>>;
435
- findMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any[], options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>[]>;
436
- firstOrNew: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
437
- firstOrCreate: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
438
- updateOrCreate: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, updatePayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
439
- fetchOrNewUpMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
440
- fetchOrCreateMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
441
- updateOrCreateMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
442
- all: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>[]>;
443
- query: <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Result = InstanceType<Model_1>>(this: Model_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1, Result>;
446
+ first: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T_1>>;
447
+ firstOrFail: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T_1>>;
448
+ findMany: <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>[]>;
449
+ firstOrNew: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>>;
450
+ firstOrCreate: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>>;
451
+ updateOrCreate: <T_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: T_1, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, updatePayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T_1>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T_1>>;
452
+ 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
+ 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
+ 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
+ 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
+ transaction: import("@adonisjs/lucid/types/database").TransactionFn;
444
458
  truncate: (cascade?: boolean) => Promise<void>;
445
- } & Model;
459
+ } & T;
460
+ export {};
@@ -14,7 +14,7 @@ import { beforeSave, afterSave, beforeDelete, afterFind, afterFetch, afterPagina
14
14
  import { persistAttachment, commit, rollback, generateVariants, preComputeUrl, } from '../utils/actions.js';
15
15
  import { clone, getAttachmentAttributeNames, getDirtyAttachmentAttributeNames, } from '../utils/helpers.js';
16
16
  import { defaultStateAttributeMixin } from '../utils/default_values.js';
17
- export const Attachmentable = (superclass) => {
17
+ export function Attachmentable(superclass) {
18
18
  class ModelWithAttachment extends superclass {
19
19
  $attachments = clone(defaultStateAttributeMixin);
20
20
  static async afterFindHook(modelInstance) {
@@ -107,4 +107,4 @@ export const Attachmentable = (superclass) => {
107
107
  beforeDelete()
108
108
  ], ModelWithAttachment, "beforeDeleteHook", null);
109
109
  return ModelWithAttachment;
110
- };
110
+ }
@@ -8,6 +8,7 @@ import type { DriveService } from '@adonisjs/drive/types';
8
8
  import type { Exif, Input } from './input.js';
9
9
  import type { Disk } from '@adonisjs/drive';
10
10
  import type { SignedURLOptions } from '@adonisjs/drive/types';
11
+ import type { AttachmentVariants } from '@jrmc/adonis-attachment';
11
12
  export type AttachmentBase = {
12
13
  drive: DriveService;
13
14
  input?: Input;
@@ -46,7 +47,7 @@ export type LucidOptions = {
46
47
  disk?: string;
47
48
  folder?: string;
48
49
  preComputeUrl?: boolean;
49
- variants?: string[];
50
+ variants?: (keyof AttachmentVariants)[];
50
51
  rename?: boolean;
51
52
  meta?: boolean;
52
53
  };
@@ -4,42 +4,45 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
+ import { ConfigProvider } from '@adonisjs/core/types';
7
8
  import type { Converter, ConverterOptions } from './converter.js';
9
+ import { AttachmentManager } from '../attachment_manager.js';
8
10
  type ImportConverter = {
9
11
  default: unknown;
10
12
  };
11
- type ConverterConfig = {
12
- key: string;
13
+ export interface ConverterConfig {
13
14
  converter: () => Promise<ImportConverter>;
14
15
  options?: ConverterOptions;
15
- };
16
- type Queue = {
16
+ }
17
+ export interface Queue {
17
18
  concurrency: number;
18
- };
19
+ }
19
20
  export type BinPaths = {
20
21
  ffmpegPath?: string;
21
22
  ffprobePath?: string;
22
23
  pdftocairoBasePath?: string;
23
24
  libreofficePaths?: Array<string>;
24
25
  };
25
- export type AttachmentConfig = {
26
- bin?: BinPaths;
27
- meta?: boolean;
28
- rename?: boolean;
29
- preComputeUrl?: boolean;
30
- converters?: ConverterConfig[];
31
- queue?: Queue;
32
- };
33
- export type ResolvedConverter = {
34
- key: string;
35
- converter: Converter;
36
- };
37
- export type ResolvedAttachmentConfig = {
26
+ export type AttachmentConfig<KnownConverter extends Record<string, ConverterConfig>> = {
38
27
  bin?: BinPaths;
39
28
  meta?: boolean;
40
29
  rename?: boolean;
41
30
  preComputeUrl?: boolean;
42
- converters?: ResolvedConverter[];
31
+ converters?: {
32
+ [K in keyof KnownConverter]: KnownConverter[K];
33
+ };
43
34
  queue?: Queue;
44
35
  };
36
+ export interface AttachmentVariants {
37
+ }
38
+ export type InferConverters<Config extends ConfigProvider<{
39
+ bin?: unknown;
40
+ meta?: unknown;
41
+ rename?: unknown;
42
+ preComputeUrl?: unknown;
43
+ converters?: unknown;
44
+ queue?: unknown;
45
+ }>> = Exclude<Awaited<ReturnType<Config['resolver']>>['converters'], undefined>;
46
+ export interface AttachmentService extends AttachmentManager<AttachmentVariants extends Record<string, Converter> ? AttachmentVariants : never> {
47
+ }
45
48
  export {};