@jrmc/adonis-attachment 5.0.0-beta.4 → 5.0.0-beta.6

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 (27) hide show
  1. package/build/src/adapters/poppler.js +0 -1
  2. package/build/src/attachment_manager.d.ts +6 -2
  3. package/build/src/attachment_manager.d.ts.map +1 -1
  4. package/build/src/attachment_manager.js +11 -50
  5. package/build/src/attachments/attachment.d.ts +9 -4
  6. package/build/src/attachments/attachment.d.ts.map +1 -1
  7. package/build/src/attachments/attachment.js +53 -9
  8. package/build/src/attachments/attachment_base.d.ts +11 -2
  9. package/build/src/attachments/attachment_base.d.ts.map +1 -1
  10. package/build/src/attachments/attachment_base.js +60 -3
  11. package/build/src/services/attachment/attachment_detachment_service.d.ts.map +1 -1
  12. package/build/src/services/attachment/attachment_detachment_service.js +8 -6
  13. package/build/src/services/attachment/attachment_persister_service.d.ts.map +1 -1
  14. package/build/src/services/attachment/attachment_persister_service.js +3 -1
  15. package/build/src/services/attachment/attachment_recorder_service.d.ts +1 -1
  16. package/build/src/services/attachment/attachment_recorder_service.d.ts.map +1 -1
  17. package/build/src/services/attachment/attachment_recorder_service.js +5 -3
  18. package/build/src/services/attachment/attachment_transaction_service.d.ts.map +1 -1
  19. package/build/src/services/attachment/attachment_transaction_service.js +4 -1
  20. package/build/src/types/attachment.d.ts +12 -3
  21. package/build/src/types/attachment.d.ts.map +1 -1
  22. package/build/src/types/config.d.ts +2 -1
  23. package/build/src/types/config.d.ts.map +1 -1
  24. package/build/src/types/service.d.ts +1 -1
  25. package/build/src/types/service.d.ts.map +1 -1
  26. package/build/tsconfig.tsbuildinfo +1 -1
  27. package/package.json +1 -1
@@ -85,7 +85,6 @@ export default class Poppler {
85
85
  if (metadata['creationdate']) {
86
86
  const dateStr = metadata['creationdate'];
87
87
  const date = DateTime.fromFormat(dateStr, 'EEE MMM dd HH:mm:ss yyyy z', { zone: 'UTC' });
88
- console.log('Parsed date:', date.toISO());
89
88
  if (date.isValid) {
90
89
  creationDate = date.toFormat('yyyy-MM-dd\'T\'HH:mm:ss');
91
90
  }
@@ -24,6 +24,10 @@ export declare class AttachmentManager<KnownConverters extends Record<string, Co
24
24
  getVariant(variantName: string): import("./types/attachment.js").Variant | null;
25
25
  getUrl(variantName?: string): Promise<string>;
26
26
  getSignedUrl(variantNameOrOptions?: string | SignedURLOptions, signedUrlOptions?: SignedURLOptions): Promise<string>;
27
+ preComputeUrl(): Promise<void>;
28
+ moveFileForDelete(): Promise<void>;
29
+ rollbackMoveFileForDelete(): Promise<void>;
30
+ remove(): Promise<void>;
27
31
  toObject(): AttachmentAttributes;
28
32
  })[]>;
29
33
  createFromPath(input: string, name?: string): Promise<AttachmentType>;
@@ -31,12 +35,12 @@ export declare class AttachmentManager<KnownConverters extends Record<string, Co
31
35
  createFromBase64(input: string, name?: string): Promise<AttachmentType>;
32
36
  createFromUrl(input: URL, name?: string): Promise<AttachmentType>;
33
37
  createFromStream(stream: NodeJS.ReadableStream, name?: string): Promise<AttachmentType>;
34
- getConverter(key: string): Promise<void | Converter>;
35
38
  computeUrl(attachment: AttachmentType | AttachmentBase, signedUrlOptions?: SignedURLOptions): Promise<void>;
36
39
  preComputeUrl(attachment: AttachmentType): Promise<void>;
37
40
  write(attachment: AttachmentBase): Promise<void>;
38
41
  remove(attachment: AttachmentBase): Promise<void>;
39
- getConfig(): ResolvedAttachmentConfig<KnownConverters>;
40
42
  get lock(): LockService;
43
+ getConfig(): ResolvedAttachmentConfig<KnownConverters>;
44
+ getConverter(key: string): Promise<void | Converter>;
41
45
  }
42
46
  //# sourceMappingURL=attachment_manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_manager.d.ts","sourceRoot":"","sources":["../../src/attachment_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,UAAU,IAAI,cAAc,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAQjD,qBAAa,iBAAiB,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;;IAC9E,KAAK,aAAA;gBAKO,MAAM,EAAE,wBAAwB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW;IAUrG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBvC,cAAc,CAAC,KAAK,EAAE,aAAa;IAgBnC,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE;;;;;;;;;IAIvC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAiB3C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAgB7C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAW7C,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM;IAMvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM;IAM7D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAMpD,UAAU,CACd,UAAU,EAAE,cAAc,GAAG,cAAc,EAC3C,gBAAgB,CAAC,EAAE,gBAAgB;IAY/B,aAAa,CAAC,UAAU,EAAE,cAAc;IAgBxC,KAAK,CAAC,UAAU,EAAE,cAAc;IAgBhC,MAAM,CAAC,UAAU,EAAE,cAAc;IAyBvC,SAAS;IAIT,IAAI,IAAI,gBAEP;CAmBF"}
1
+ {"version":3,"file":"attachment_manager.d.ts","sourceRoot":"","sources":["../../src/attachment_manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,UAAU,IAAI,cAAc,EAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAG5C,OAAO,SAAS,MAAM,2BAA2B,CAAA;AAQjD,qBAAa,iBAAiB,CAAC,eAAe,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;;IAC9E,KAAK,aAAA;gBAKO,MAAM,EAAE,wBAAwB,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW;IAUrG,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBvC,cAAc,CAAC,KAAK,EAAE,aAAa;IAgBnC,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE;;;;;;;;;;;;;IAIvC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAiB3C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAgB7C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAW7C,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM;IAMvC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM;IAM7D,UAAU,CACd,UAAU,EAAE,cAAc,GAAG,cAAc,EAC3C,gBAAgB,CAAC,EAAE,gBAAgB;IAK/B,aAAa,CAAC,UAAU,EAAE,cAAc;IAIxC,KAAK,CAAC,UAAU,EAAE,cAAc;IAUhC,MAAM,CAAC,UAAU,EAAE,cAAc;IAMvC,IAAI,IAAI,gBAEP;IAED,SAAS;IAIH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;CAuB3D"}
@@ -96,74 +96,35 @@ export class AttachmentManager {
96
96
  const tmpPath = await streamToTempFile(stream);
97
97
  return this.createFromPath(tmpPath, name || path.basename(tmpPath));
98
98
  }
99
- async getConverter(key) {
100
- if (this.#config.converters) {
101
- return this.#config.converters[key];
102
- }
103
- }
104
99
  async computeUrl(attachment, signedUrlOptions) {
105
- const disk = attachment.getDisk();
106
- const fileVisibility = await disk.getVisibility(attachment.path);
107
- if (fileVisibility === 'private') {
108
- attachment.url = await attachment.getSignedUrl(signedUrlOptions);
109
- }
110
- else {
111
- attachment.url = await attachment.getUrl();
112
- }
100
+ await attachment.computeUrl(signedUrlOptions);
113
101
  }
114
102
  async preComputeUrl(attachment) {
115
- if (attachment.options?.preComputeUrl === false) {
116
- return;
117
- }
118
- await this.computeUrl(attachment);
119
- if (attachment instanceof Attachment && attachment.variants) {
120
- for (const key in attachment.variants) {
121
- if (Object.prototype.hasOwnProperty.call(attachment.variants, key)) {
122
- await this.computeUrl(attachment.variants[key]);
123
- }
124
- }
125
- }
103
+ await attachment.preComputeUrl();
126
104
  }
127
105
  async write(attachment) {
128
- const destinationPath = attachment.path;
129
106
  if (attachment.options?.meta) {
130
107
  attachment.meta = await ExifAdapter.exif(attachment.input, this.#config);
131
108
  }
132
109
  else {
133
110
  attachment.meta = undefined;
134
111
  }
135
- if (Buffer.isBuffer(attachment.input)) {
136
- await attachment.getDisk().put(destinationPath, attachment.input);
137
- }
138
- else if (attachment.input) {
139
- await attachment.getDisk().copyFromFs(attachment.input, destinationPath);
140
- }
112
+ await attachment.put();
141
113
  }
142
114
  async remove(attachment) {
143
- if (attachment.path) {
144
- await attachment.getDisk().delete(attachment.path);
145
- if (attachment instanceof Attachment) {
146
- if (attachment.variants) {
147
- const variantPath = attachment.variants[0].folder;
148
- await attachment.getDisk().deleteAll(variantPath); // not compatible Minio, necessary for fs as not to leave an empty directory
149
- for (const key in attachment.variants) {
150
- if (Object.prototype.hasOwnProperty.call(attachment.variants, key)) {
151
- await attachment.getDisk().delete(attachment.variants[key].path);
152
- }
153
- }
154
- }
155
- }
156
- }
157
- if (attachment.originalPath) {
158
- await attachment.getDisk().delete(attachment.originalPath);
159
- }
115
+ await attachment.remove();
160
116
  }
161
117
  // getters
118
+ get lock() {
119
+ return this.#lock;
120
+ }
162
121
  getConfig() {
163
122
  return this.#config;
164
123
  }
165
- get lock() {
166
- return this.#lock;
124
+ async getConverter(key) {
125
+ if (this.#config.converters) {
126
+ return this.#config.converters[key];
127
+ }
167
128
  }
168
129
  // private methods
169
130
  #configureAttachment(attachment) {
@@ -9,14 +9,11 @@ import type { AttachmentAttributes, Attachment as AttachmentInterface, LucidOpti
9
9
  import type { Input } from '../types/input.js';
10
10
  import { AttachmentBase } from './attachment_base.js';
11
11
  import { Variant } from './variant_attachment.js';
12
+ import { LucidRow } from '@adonisjs/lucid/types/model';
12
13
  export declare class Attachment extends AttachmentBase implements AttachmentInterface {
13
14
  originalName: string;
14
15
  variants?: Variant[];
15
16
  constructor(drive: DriveService, attributes: AttachmentAttributes, input?: Input);
16
- /**
17
- * Getters
18
- */
19
- get name(): string;
20
17
  /**
21
18
  * Methods
22
19
  */
@@ -25,6 +22,14 @@ export declare class Attachment extends AttachmentBase implements AttachmentInte
25
22
  getUrl(variantName?: string): Promise<string>;
26
23
  getSignedUrl(variantNameOrOptions?: string | SignedURLOptions, signedUrlOptions?: SignedURLOptions): Promise<string>;
27
24
  setOptions(options: LucidOptions): this;
25
+ /**
26
+ * Actions
27
+ */
28
+ preComputeUrl(): Promise<void>;
29
+ makeName(record?: LucidRow, attributeName?: string): Promise<this>;
30
+ moveFileForDelete(): Promise<void>;
31
+ rollbackMoveFileForDelete(): Promise<void>;
32
+ remove(): Promise<void>;
28
33
  /**
29
34
  *
30
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/attachments/attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,IAAI,mBAAmB,EACjC,YAAY,EACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAGjD,qBAAa,UAAW,SAAQ,cAAe,YAAW,mBAAmB;IAC3E,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;gBAER,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,KAAK;IAehF;;OAEG;IAEH,IAAI,IAAI,WAMP;IAED;;OAEG;IAEG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhE,UAAU,CAAC,WAAW,EAAE,MAAM;IAIxB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM;IAe3B,YAAY,CAChB,oBAAoB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAChD,gBAAgB,CAAC,EAAE,gBAAgB;IAyBrC,UAAU,CAAC,OAAO,EAAE,YAAY;IAkBhC;;OAEG;IAEH,QAAQ,IAAI,oBAAoB;IAUhC,MAAM,IAAI,MAAM;CAsCjB"}
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/attachments/attachment.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,IAAI,mBAAmB,EACjC,YAAY,EACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAEtD,qBAAa,UAAW,SAAQ,cAAe,YAAW,mBAAmB;IAC3E,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;gBAER,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,KAAK;IAehF;;OAEG;IAEG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBhE,UAAU,CAAC,WAAW,EAAE,MAAM;IAIxB,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM;IAe3B,YAAY,CAChB,oBAAoB,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAChD,gBAAgB,CAAC,EAAE,gBAAgB;IAyBrC,UAAU,CAAC,OAAO,EAAE,YAAY;IAkBhC;;OAEG;IAEG,aAAa;IAiBb,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM;IAIlD,iBAAiB;IAWjB,yBAAyB;IAWzB,MAAM;IAkBZ;;OAEG;IAEH,QAAQ,IAAI,oBAAoB;IAUhC,MAAM,IAAI,MAAM;CAsCjB"}
@@ -22,15 +22,6 @@ export class Attachment extends AttachmentBase {
22
22
  });
23
23
  }
24
24
  }
25
- /**
26
- * Getters
27
- */
28
- get name() {
29
- if (this.options && this.options.rename === false) {
30
- return this.originalName;
31
- }
32
- return super.name;
33
- }
34
25
  /**
35
26
  * Methods
36
27
  */
@@ -107,6 +98,59 @@ export class Attachment extends AttachmentBase {
107
98
  }
108
99
  return this;
109
100
  }
101
+ /**
102
+ * Actions
103
+ */
104
+ async preComputeUrl() {
105
+ if (this.options?.preComputeUrl === false) {
106
+ return;
107
+ }
108
+ await this.computeUrl();
109
+ if (this.variants) {
110
+ for (const key in this.variants) {
111
+ if (Object.prototype.hasOwnProperty.call(this.variants, key)) {
112
+ await this.computeUrl(this.variants[key]);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ async makeName(record, attributeName) {
118
+ return super.makeName(record, attributeName, this.originalName);
119
+ }
120
+ async moveFileForDelete() {
121
+ if (this.options && this.options.rename !== true) {
122
+ const originalPath = this.path;
123
+ this.name = `${this.name}.trash`;
124
+ const trashPath = this.path;
125
+ this.originalPath = trashPath;
126
+ await this.getDisk().move(originalPath, trashPath);
127
+ }
128
+ }
129
+ async rollbackMoveFileForDelete() {
130
+ if (this.options && this.options.rename !== true) {
131
+ const trashPath = this.path;
132
+ this.name = this.name.replace('.trash', '');
133
+ const originalPath = this.path;
134
+ this.originalPath = originalPath;
135
+ await this.getDisk().move(trashPath, originalPath);
136
+ }
137
+ }
138
+ async remove() {
139
+ await super.remove();
140
+ if (this.variants) {
141
+ const variantPath = this.variants[0].folder;
142
+ try {
143
+ await this.getDisk().deleteAll(variantPath); // not compatible Minio, necessary for fs as not to leave an empty directory
144
+ }
145
+ catch (error) {
146
+ for (const key in this.variants) {
147
+ if (Object.prototype.hasOwnProperty.call(this.variants, key)) {
148
+ this.variants[key].remove();
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
110
154
  /**
111
155
  *
112
156
  */
@@ -21,9 +21,10 @@ export declare class AttachmentBase implements AttachmentBaseInterface {
21
21
  options: LucidOptions;
22
22
  constructor(drive: DriveService, attributes: AttachmentBaseAttributes, input?: Input);
23
23
  /**
24
- * Getters
24
+ * Getters / Setters
25
25
  */
26
26
  get name(): string;
27
+ set name(name: string);
27
28
  get folder(): string | undefined;
28
29
  get path(): string;
29
30
  /**
@@ -38,7 +39,15 @@ export declare class AttachmentBase implements AttachmentBaseInterface {
38
39
  getKeyId(): string | undefined;
39
40
  setKeyId(keyId: string): this;
40
41
  setOptions(options: LucidOptions): this;
41
- makeFolder(record?: LucidRow): this;
42
+ /**
43
+ * Actions
44
+ */
45
+ computeUrl(signedUrlOptions?: SignedURLOptions): Promise<void>;
46
+ preComputeUrl(): Promise<void>;
47
+ makeName(record?: LucidRow, attributeName?: string, originalName?: string): Promise<this>;
48
+ makeFolder(record?: LucidRow): Promise<this>;
49
+ put(): Promise<void>;
50
+ remove(): Promise<void>;
42
51
  /**
43
52
  *
44
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_base.d.ts","sourceRoot":"","sources":["../../../src/attachments/attachment_base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,IAAI,uBAAuB,EAC1C,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAOpD,qBAAa,cAAe,YAAW,uBAAuB;;IAC5D,KAAK,EAAE,YAAY,CAAA;IAEnB,KAAK,CAAC,EAAE,KAAK,CAAA;IAMb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,OAAO,EAAE,YAAY,CAAA;gBAET,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE,KAAK;IAsBpF;;OAEG;IAEH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAW/B;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED;;OAEG;IAEH,OAAO;IAIP,QAAQ;IAIF,SAAS;IAKf,SAAS;IAIT,MAAM;IAIN,YAAY,CAAC,gBAAgB,CAAC,EAAE,gBAAgB;IAIhD,QAAQ;IAIR,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKtB,UAAU,CAAC,OAAO,EAAE,YAAY;IAQhC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ;IAwB5B;;OAEG;IAEH,QAAQ,IAAI,wBAAwB;IAYpC,MAAM,IAAI,MAAM;CAUjB"}
1
+ {"version":3,"file":"attachment_base.d.ts","sourceRoot":"","sources":["../../../src/attachments/attachment_base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,cAAc,IAAI,uBAAuB,EAC1C,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAOpD,qBAAa,cAAe,YAAW,uBAAuB;;IAC5D,KAAK,EAAE,YAAY,CAAA;IAEnB,KAAK,CAAC,EAAE,KAAK,CAAA;IAMb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IAEZ,OAAO,EAAE,YAAY,CAAA;gBAET,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,wBAAwB,EAAE,KAAK,CAAC,EAAE,KAAK;IAsBpF;;OAEG;IAEH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAEpB;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAW/B;IAED,IAAI,IAAI,IAAI,MAAM,CAMjB;IAED;;OAEG;IAEH,OAAO;IAIP,QAAQ;IAIF,SAAS;IAKf,SAAS;IAIT,MAAM;IAIN,YAAY,CAAC,gBAAgB,CAAC,EAAE,gBAAgB;IAIhD,QAAQ;IAIR,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKtB,UAAU,CAAC,OAAO,EAAE,YAAY;IAQhC;;OAEG;IAEG,UAAU,CAAC,gBAAgB,CAAC,EAAE,gBAAgB;IAW9C,aAAa;IAQb,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAwBzE,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ;IAwB5B,GAAG;IAQH,MAAM;IASZ;;OAEG;IAEH,QAAQ,IAAI,wBAAwB;IAYpC,MAAM,IAAI,MAAM;CAUjB"}
@@ -41,11 +41,14 @@ export class AttachmentBase {
41
41
  this.drive = drive;
42
42
  }
43
43
  /**
44
- * Getters
44
+ * Getters / Setters
45
45
  */
46
46
  get name() {
47
47
  return this.#name;
48
48
  }
49
+ set name(name) {
50
+ this.#name = name;
51
+ }
49
52
  get folder() {
50
53
  if (this.#folder) {
51
54
  return this.#folder;
@@ -99,9 +102,49 @@ export class AttachmentBase {
99
102
  };
100
103
  return this;
101
104
  }
102
- makeFolder(record) {
105
+ /**
106
+ * Actions
107
+ */
108
+ async computeUrl(signedUrlOptions) {
109
+ const disk = this.getDisk();
110
+ const fileVisibility = await disk.getVisibility(this.path);
111
+ if (fileVisibility === 'private') {
112
+ this.url = await this.getSignedUrl(signedUrlOptions);
113
+ }
114
+ else {
115
+ this.url = await this.getUrl();
116
+ }
117
+ }
118
+ async preComputeUrl() {
119
+ if (this.options?.preComputeUrl === false) {
120
+ return;
121
+ }
122
+ await this.computeUrl();
123
+ }
124
+ async makeName(record, attributeName, originalName) {
125
+ if (typeof this.options.rename === 'function' && record) {
126
+ this.#name = (await this.options.rename(record, attributeName, originalName));
127
+ }
128
+ else if (originalName && this.options.rename === false) {
129
+ this.#name = originalName;
130
+ }
131
+ if (this.#name && record) {
132
+ const parameters = extractPathParameters(this.#name);
133
+ if (parameters) {
134
+ parameters.forEach((parameter) => {
135
+ const attribute = record.$attributes[parameter];
136
+ if (typeof attribute === 'string') {
137
+ const name = string.slug(string.noCase(string.escapeHTML(attribute.toLowerCase())));
138
+ this.#name = this.#name?.replace(`:${parameter}`, name);
139
+ }
140
+ });
141
+ }
142
+ }
143
+ return this;
144
+ }
145
+ async makeFolder(record) {
103
146
  if (typeof this.options.folder === 'function' && record) {
104
- this.#folder = this.options.folder(record);
147
+ this.#folder = (await this.options.folder(record));
105
148
  }
106
149
  else if (this.options.folder) {
107
150
  this.#folder = this.options.folder;
@@ -120,6 +163,20 @@ export class AttachmentBase {
120
163
  }
121
164
  return this;
122
165
  }
166
+ async put() {
167
+ if (Buffer.isBuffer(this.input)) {
168
+ await this.getDisk().put(this.path, this.input);
169
+ }
170
+ else if (this.input) {
171
+ await this.getDisk().copyFromFs(this.input, this.path);
172
+ }
173
+ }
174
+ async remove() {
175
+ await this.getDisk().delete(this.path);
176
+ if (this.originalPath) {
177
+ await this.getDisk().delete(this.originalPath);
178
+ }
179
+ }
123
180
  /**
124
181
  *
125
182
  */
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_detachment_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_detachment_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAIxG,qBAAa,2BAA2B;;IACtC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCvE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;CAyB3E"}
1
+ {"version":3,"file":"attachment_detachment_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_detachment_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAIxG,qBAAa,2BAA2B;;IACtC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCvE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B3E"}
@@ -11,7 +11,7 @@ export class AttachmentDetachmentService {
11
11
  */
12
12
  async detach(record) {
13
13
  const attachmentAttributeNames = AttachmentUtils.getDirtyAttributeNamesOfAttachment(record.row);
14
- await Promise.allSettled(attachmentAttributeNames.map((name) => {
14
+ await Promise.allSettled(attachmentAttributeNames.map(async (name) => {
15
15
  let attachments = [];
16
16
  const options = AttachmentUtils.getOptionsByAttributeName(record.row, name);
17
17
  if (record.row.$dirty[name] === null) {
@@ -36,7 +36,8 @@ export class AttachmentDetachmentService {
36
36
  }
37
37
  }
38
38
  }
39
- this.#markForDeletion(attachments, record);
39
+ await this.#moveForDeletion(attachments);
40
+ await this.#markForDeletion(attachments, record);
40
41
  }));
41
42
  }
42
43
  /**
@@ -56,9 +57,10 @@ export class AttachmentDetachmentService {
56
57
  /**
57
58
  * Mark attachments for deletion by adding them to detached array
58
59
  */
59
- #markForDeletion(attachments, record) {
60
- for (let i = 0; i < attachments.length; i++) {
61
- record.row.$attachments.detached.push(attachments[i]);
62
- }
60
+ async #markForDeletion(attachments, record) {
61
+ await Promise.allSettled(attachments.map((attachment) => record.row.$attachments.detached.push(attachment)));
62
+ }
63
+ async #moveForDeletion(attachments) {
64
+ await Promise.allSettled(attachments.map((attachment) => attachment.moveFileForDelete()));
63
65
  }
64
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_persister_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_persister_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAKxG,qBAAa,0BAA0B;IACrC;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CnF;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/E;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B3E"}
1
+ {"version":3,"file":"attachment_persister_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_persister_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAKxG,qBAAa,0BAA0B;IACrC;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CnF;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/E;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,kCAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B3E"}
@@ -36,7 +36,9 @@ export class AttachmentPersisterService {
36
36
  * file.
37
37
  */
38
38
  if (newAttachments[i]) {
39
- newAttachments[i].setOptions(options).makeFolder(record.row);
39
+ newAttachments[i].setOptions(options);
40
+ await newAttachments[i].makeFolder(record.row);
41
+ await newAttachments[i].makeName(record.row, name, newAttachments[i].originalName);
40
42
  record.row.$attachments.attached.push(newAttachments[i]);
41
43
  /**
42
44
  * Also write the file to the disk right away
@@ -63,6 +63,6 @@ export default class AttachmentRecorderService implements RecordWithAttachmentIm
63
63
  attributeName: string;
64
64
  requiredOriginal?: boolean;
65
65
  requiredDirty?: boolean;
66
- }): AttachmentType[];
66
+ }): Promise<AttachmentType[]>;
67
67
  }
68
68
  //# sourceMappingURL=attachment_recorder_service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_recorder_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_recorder_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAS7E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,kCAAkC;;gBAO9E,GAAG,EAAE,iBAAiB;IAclC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,WAAW,CAAC,OAAO,GAAE,kBAA8C,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;OAEG;IACH,IAAI,GAAG,IAAI,iBAAiB,CAE3B;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE;QACtB,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;KACxB,GAAG,cAAc,EAAE;CAoBrB"}
1
+ {"version":3,"file":"attachment_recorder_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_recorder_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAS7E,MAAM,CAAC,OAAO,OAAO,yBAA0B,YAAW,kCAAkC;;gBAO9E,GAAG,EAAE,iBAAiB;IAclC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACG,WAAW,CAAC,OAAO,GAAE,kBAA8C,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;OAEG;IACH,IAAI,GAAG,IAAI,iBAAiB,CAE3B;IAED;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;KACxB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAsB9B"}
@@ -97,7 +97,7 @@ export default class AttachmentRecorderService {
97
97
  /**
98
98
  * Get attachments with specific options
99
99
  */
100
- getAttachments(options) {
100
+ async getAttachments(options) {
101
101
  let attachments;
102
102
  if (options.requiredOriginal) {
103
103
  attachments = AttachmentUtils.getOriginalAttachmentsByAttributeName(this.#row, options.attributeName);
@@ -109,9 +109,11 @@ export default class AttachmentRecorderService {
109
109
  attachments = AttachmentUtils.getAttachmentsByAttributeName(this.#row, options.attributeName);
110
110
  }
111
111
  const opts = AttachmentUtils.getOptionsByAttributeName(this.#row, options.attributeName);
112
- attachments.forEach((attachment) => {
112
+ attachments.forEach(async (attachment) => {
113
113
  if (attachment) {
114
- attachment.setOptions(opts).makeFolder(this.#row);
114
+ attachment.setOptions(opts);
115
+ await attachment.makeFolder(this.#row);
116
+ // await attachment.makeName(this.#row, options.attributeName, attachment.originalName)
115
117
  }
116
118
  });
117
119
  return attachments;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment_transaction_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_transaction_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAGxG,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,qBAAa,4BAA4B;IACvC;;OAEG;IACG,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;OAEG;IACG,QAAQ,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQpE;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,kCAAkC,EAC1C,OAAO,GAAE,kBAA8C,GACtD,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
1
+ {"version":3,"file":"attachment_transaction_service.d.ts","sourceRoot":"","sources":["../../../../src/services/attachment/attachment_transaction_service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,IAAI,kCAAkC,EAAE,MAAM,wBAAwB,CAAA;AAGxG,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,qBAAa,4BAA4B;IACvC;;OAEG;IACG,MAAM,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;OAEG;IACG,QAAQ,CAAC,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,kCAAkC,EAC1C,OAAO,GAAE,kBAA8C,GACtD,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
@@ -16,7 +16,10 @@ export class AttachmentTransactionService {
16
16
  * During rollback we should remove the attached files.
17
17
  */
18
18
  async rollback(attachedAttachments) {
19
- await Promise.allSettled(attachedAttachments.map((attachment) => attachmentManager.remove(attachment)));
19
+ await Promise.allSettled(attachedAttachments.map(async (attachment) => {
20
+ await attachment.rollbackMoveFileForDelete();
21
+ await attachmentManager.remove(attachment);
22
+ }));
20
23
  }
21
24
  /**
22
25
  * Handle transaction lifecycle with commit and rollback hooks
@@ -24,7 +24,6 @@ export type AttachmentBase = {
24
24
  originalPath?: string;
25
25
  url?: string;
26
26
  options: LucidOptions;
27
- makeFolder(record?: LucidRow): void;
28
27
  getDisk(): Disk;
29
28
  getBytes(): Promise<Uint8Array>;
30
29
  getBuffer(): Promise<Buffer>;
@@ -33,6 +32,12 @@ export type AttachmentBase = {
33
32
  getSignedUrl(signedUrlOptions?: SignedURLOptions): Promise<string>;
34
33
  setKeyId(keyId: string): AttachmentBase;
35
34
  setOptions(options: LucidOptions): AttachmentBase;
35
+ computeUrl(signedUrlOptions?: SignedURLOptions): Promise<void>;
36
+ preComputeUrl(): Promise<void>;
37
+ makeFolder(record?: LucidRow): void;
38
+ makeName(record?: LucidRow, attributeName?: string, originalName?: string): void;
39
+ put(): Promise<void>;
40
+ remove(): Promise<void>;
36
41
  toObject(): AttachmentBaseAttributes;
37
42
  toJSON(): Object;
38
43
  };
@@ -43,6 +48,10 @@ export type Attachment = AttachmentBase & {
43
48
  getVariant(variantName: string): Variant | null;
44
49
  getUrl(variantName?: string): Promise<string>;
45
50
  getSignedUrl(variantNameOrOptions?: string | SignedURLOptions, signedUrlOptions?: SignedURLOptions): Promise<string>;
51
+ preComputeUrl(): Promise<void>;
52
+ moveFileForDelete(): Promise<void>;
53
+ rollbackMoveFileForDelete(): Promise<void>;
54
+ remove(): Promise<void>;
46
55
  toObject(): AttachmentAttributes;
47
56
  };
48
57
  export type Variant = AttachmentBase & {
@@ -54,10 +63,10 @@ export type Variant = AttachmentBase & {
54
63
  };
55
64
  export type LucidOptions<T = LucidRow> = {
56
65
  disk?: string;
57
- folder?: string | ((record: T) => string);
66
+ folder?: string | ((record: T) => string) | ((record: T) => Promise<string>);
67
+ rename?: boolean | ((record: T, column?: string, currentName?: string) => string) | ((record: T, column?: string, currentName?: string) => Promise<string>);
58
68
  preComputeUrl?: boolean;
59
69
  variants?: (keyof AttachmentVariants)[];
60
- rename?: boolean;
61
70
  meta?: boolean;
62
71
  serialize?: (value?: Attachment) => unknown;
63
72
  serializeAs?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/types/attachment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../../src/types/attachment.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * @license MIT
5
5
  * @copyright Jeremy Chaufourier <jeremy@chaufourier.fr>
6
6
  */
7
+ import type { LucidRow } from '@adonisjs/lucid/types/model';
7
8
  import type { Converter, ConverterOptions } from './converter.js';
8
9
  import { ConfigProvider } from '@adonisjs/core/types';
9
10
  import { AttachmentManager } from '../attachment_manager.js';
@@ -27,7 +28,7 @@ export type BinPaths = {
27
28
  export type AttachmentConfig<KnownConverter extends Record<string, ConverterConfig>> = {
28
29
  bin?: BinPaths;
29
30
  meta?: boolean;
30
- rename?: boolean;
31
+ rename?: boolean | ((record: LucidRow, column?: string, currentName?: string) => string) | ((record: LucidRow, column?: string, currentName?: string) => Promise<string>);
31
32
  preComputeUrl?: boolean;
32
33
  timeout?: number;
33
34
  converters?: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACrF,GAAG,CAAC,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE;SACV,CAAC,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC;KAC/C,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,WAAW,kBAAkB;CAAG;AAEtC,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAC,IACA,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;AAE7E,MAAM,WAAW,iBACf,SAAQ,iBAAiB,CACvB,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,kBAAkB,GAAG,KAAK,CAClF;CAAG"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,IAAI;IACrF,GAAG,CAAC,EAAE,QAAQ,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACzK,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE;SACV,CAAC,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC;KAC/C,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,MAAM,WAAW,kBAAkB;CAAG;AAEtC,MAAM,MAAM,eAAe,CACzB,MAAM,SAAS,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAC,IACA,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAA;AAE7E,MAAM,WAAW,iBACf,SAAQ,iBAAiB,CACvB,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,kBAAkB,GAAG,KAAK,CAClF;CAAG"}
@@ -20,6 +20,6 @@ export interface RecordWithAttachment {
20
20
  attributeName: string;
21
21
  requiredOriginal?: boolean;
22
22
  requiredDirty?: boolean;
23
- }): Attachment[];
23
+ }): Promise<Attachment[]>;
24
24
  }
25
25
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/types/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,iBAAiB,CAAA;IACtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,cAAc,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,UAAU,EAAE,CAAA;CACtH"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/types/service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,iBAAiB,CAAA;IACtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,WAAW,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClE,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,cAAc,CAAC,OAAO,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;CAC/H"}