@frogbotai/piece-image-helper 0.29.0 → 0.30.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `@frogbotai/piece-image-helper`
2
2
 
3
- Inspect, transform, compress, and convert images stored in FrogBot's files collection.
3
+ Inspect, transform, compress, and convert images stored in the files collection.
4
4
 
5
5
  ## Usage
6
6
 
@@ -10,6 +10,8 @@ import { createImageHelper } from '@frogbotai/piece-image-helper';
10
10
  export const imageHelper = createImageHelper();
11
11
  ```
12
12
 
13
+ Every action uses the [files collection](https://docs.frogbot.ai/upload/files), the upload collection marked `file: true`. Without one, they fail with an error that asks you to add it.
14
+
13
15
  ## Actions
14
16
 
15
17
  | Upstream action slug | Previous wrapper export | Native action | Notes |
@@ -3,10 +3,18 @@ import { z } from 'zod';
3
3
  import { defineAction } from '../define.js';
4
4
  import { imageFile, loadImage, savedImage, saveImage } from '../files.js';
5
5
  const inputSchema = z.object({
6
- image: imageFile.meta({ label: 'Image' }),
7
- quality: z.union([z.literal(90), z.literal(60)]),
8
- format: z.enum(['jpg', 'png']),
9
- resultFileName: z.string().min(1).optional(),
6
+ image: imageFile.meta({
7
+ label: 'Image'
8
+ }),
9
+ quality: z.union([
10
+ z.literal(90),
11
+ z.literal(60)
12
+ ]),
13
+ format: z.enum([
14
+ 'jpg',
15
+ 'png'
16
+ ]),
17
+ resultFileName: z.string().min(1).optional()
10
18
  });
11
19
  export const compress = defineAction({
12
20
  slug: 'compress',
@@ -14,7 +22,7 @@ export const compress = defineAction({
14
22
  description: 'Compress an image with the selected quality.',
15
23
  input: inputSchema,
16
24
  output: savedImage,
17
- async run({ input, req }) {
25
+ async run ({ input, req }) {
18
26
  const source = await loadImage(req, input.image);
19
27
  const image = await Jimp.read(source.data);
20
28
  const mimeType = input.format === 'jpg' ? Jimp.MIME_JPEG : Jimp.MIME_PNG;
@@ -24,8 +32,9 @@ export const compress = defineAction({
24
32
  req,
25
33
  data,
26
34
  name: `${input.resultFileName ?? 'image'}.${input.format}`,
27
- mimeType,
35
+ mimeType
28
36
  });
29
- },
37
+ }
30
38
  });
39
+
31
40
  //# sourceMappingURL=compress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compress.js","sourceRoot":"","sources":["../../src/actions/compress.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;IACnC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,8CAA8C;IAC3D,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEzE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAElD,OAAO,SAAS,CAAC;YACf,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;YAC1D,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/compress.ts"],"names":["Jimp","z","defineAction","imageFile","loadImage","savedImage","saveImage","inputSchema","object","image","meta","label","quality","union","literal","format","enum","resultFileName","string","min","optional","compress","slug","description","input","output","run","req","source","read","data","mimeType","MIME_JPEG","MIME_PNG","getBufferAsync","name"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAE1E,MAAMC,cAAcN,EAAEO,MAAM,CAAC;IAC3BC,OAAON,UAAUO,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,SAASX,EAAEY,KAAK,CAAC;QAACZ,EAAEa,OAAO,CAAC;QAAKb,EAAEa,OAAO,CAAC;KAAI;IAC/CC,QAAQd,EAAEe,IAAI,CAAC;QAAC;QAAO;KAAM;IAC7BC,gBAAgBhB,EAAEiB,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEA,OAAO,MAAMC,WAAWnB,aAAa;IACnCoB,MAAM;IACNX,OAAO;IACPY,aAAa;IACbC,OAAOjB;IACPkB,QAAQpB;IACR,MAAMqB,KAAI,EAAEF,KAAK,EAAEG,GAAG,EAAE;QACtB,MAAMC,SAAS,MAAMxB,UAAUuB,KAAKH,MAAMf,KAAK;QAC/C,MAAMA,QAAQ,MAAMT,KAAK6B,IAAI,CAACD,OAAOE,IAAI;QACzC,MAAMC,WAAWP,MAAMT,MAAM,KAAK,QAAQf,KAAKgC,SAAS,GAAGhC,KAAKiC,QAAQ;QAExExB,MAAMG,OAAO,CAACY,MAAMZ,OAAO;QAE3B,MAAMkB,OAAO,MAAMrB,MAAMyB,cAAc,CAACH;QAExC,OAAOzB,UAAU;YACfqB;YACAG;YACAK,MAAM,GAAGX,MAAMP,cAAc,IAAI,QAAQ,CAAC,EAAEO,MAAMT,MAAM,EAAE;YAC1DgB;QACF;IACF;AACF,GAAG","file":"compress.js"}
@@ -5,19 +5,39 @@ import { z } from 'zod';
5
5
  import { defineAction } from '../define.js';
6
6
  import { imageFile, loadImage, savedImage, saveImage } from '../files.js';
7
7
  const inputSchema = z.object({
8
- image: imageFile.meta({ label: 'Image' }),
9
- outputFormat: z.enum(['JPEG', 'PNG', 'TIFF', 'BMP', 'AVIF']),
10
- resultFileName: z.string().min(1).optional(),
8
+ image: imageFile.meta({
9
+ label: 'Image'
10
+ }),
11
+ outputFormat: z.enum([
12
+ 'JPEG',
13
+ 'PNG',
14
+ 'TIFF',
15
+ 'BMP',
16
+ 'AVIF'
17
+ ]),
18
+ resultFileName: z.string().min(1).optional()
11
19
  });
12
20
  const output = z.object({
13
21
  file: savedImage,
14
- sourceMimeType: z.string().min(1),
22
+ sourceMimeType: z.string().min(1)
15
23
  });
16
24
  const formats = {
17
- JPEG: { extension: 'jpg', mimeType: Jimp.MIME_JPEG },
18
- PNG: { extension: 'png', mimeType: Jimp.MIME_PNG },
19
- TIFF: { extension: 'tiff', mimeType: Jimp.MIME_TIFF },
20
- BMP: { extension: 'bmp', mimeType: Jimp.MIME_BMP },
25
+ JPEG: {
26
+ extension: 'jpg',
27
+ mimeType: Jimp.MIME_JPEG
28
+ },
29
+ PNG: {
30
+ extension: 'png',
31
+ mimeType: Jimp.MIME_PNG
32
+ },
33
+ TIFF: {
34
+ extension: 'tiff',
35
+ mimeType: Jimp.MIME_TIFF
36
+ },
37
+ BMP: {
38
+ extension: 'bmp',
39
+ mimeType: Jimp.MIME_BMP
40
+ }
21
41
  };
22
42
  export const convertFormat = defineAction({
23
43
  slug: 'convertFormat',
@@ -25,11 +45,15 @@ export const convertFormat = defineAction({
25
45
  description: 'Convert an image to JPEG, PNG, TIFF, BMP, or AVIF.',
26
46
  input: inputSchema,
27
47
  output,
28
- async run({ input, req }) {
48
+ async run ({ input, req }) {
29
49
  const source = await loadImage(req, input.image);
30
- const sourceData = ['image/heic', 'image/heif'].includes(source.mimeType)
31
- ? Buffer.from(await convertHeic({ buffer: source.data, format: 'PNG' }))
32
- : source.data;
50
+ const sourceData = [
51
+ 'image/heic',
52
+ 'image/heif'
53
+ ].includes(source.mimeType) ? Buffer.from(await convertHeic({
54
+ buffer: source.data,
55
+ format: 'PNG'
56
+ })) : source.data;
33
57
  let data;
34
58
  let extension;
35
59
  let mimeType;
@@ -37,8 +61,7 @@ export const convertFormat = defineAction({
37
61
  data = await sharp(sourceData).avif().toBuffer();
38
62
  extension = 'avif';
39
63
  mimeType = 'image/avif';
40
- }
41
- else {
64
+ } else {
42
65
  const format = formats[input.outputFormat];
43
66
  const image = await Jimp.read(sourceData);
44
67
  data = await image.getBufferAsync(format.mimeType);
@@ -49,9 +72,13 @@ export const convertFormat = defineAction({
49
72
  req,
50
73
  data,
51
74
  name: `${input.resultFileName ?? 'image'}.${extension}`,
52
- mimeType,
75
+ mimeType
53
76
  });
54
- return { file, sourceMimeType: source.mimeType };
55
- },
77
+ return {
78
+ file,
79
+ sourceMimeType: source.mimeType
80
+ };
81
+ }
56
82
  });
83
+
57
84
  //# sourceMappingURL=convertFormat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"convertFormat.js","sourceRoot":"","sources":["../../src/actions/convertFormat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/actions/convertFormat.ts"],"names":["convertHeic","Jimp","sharp","z","defineAction","imageFile","loadImage","savedImage","saveImage","inputSchema","object","image","meta","label","outputFormat","enum","resultFileName","string","min","optional","output","file","sourceMimeType","formats","JPEG","extension","mimeType","MIME_JPEG","PNG","MIME_PNG","TIFF","MIME_TIFF","BMP","MIME_BMP","convertFormat","slug","description","input","run","req","source","sourceData","includes","Buffer","from","buffer","data","format","avif","toBuffer","read","getBufferAsync","name"],"mappings":"AAAA,OAAOA,iBAAiB,eAAe;AACvC,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,QAAQ;AAC1B,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAE1E,MAAMC,cAAcN,EAAEO,MAAM,CAAC;IAC3BC,OAAON,UAAUO,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,cAAcX,EAAEY,IAAI,CAAC;QAAC;QAAQ;QAAO;QAAQ;QAAO;KAAO;IAC3DC,gBAAgBb,EAAEc,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEA,MAAMC,SAASjB,EAAEO,MAAM,CAAC;IACtBW,MAAMd;IACNe,gBAAgBnB,EAAEc,MAAM,GAAGC,GAAG,CAAC;AACjC;AAIA,MAAMK,UAAyE;IAC7EC,MAAM;QAAEC,WAAW;QAAOC,UAAUzB,KAAK0B,SAAS;IAAC;IACnDC,KAAK;QAAEH,WAAW;QAAOC,UAAUzB,KAAK4B,QAAQ;IAAC;IACjDC,MAAM;QAAEL,WAAW;QAAQC,UAAUzB,KAAK8B,SAAS;IAAC;IACpDC,KAAK;QAAEP,WAAW;QAAOC,UAAUzB,KAAKgC,QAAQ;IAAC;AACnD;AAEA,OAAO,MAAMC,gBAAgB9B,aAAa;IACxC+B,MAAM;IACNtB,OAAO;IACPuB,aAAa;IACbC,OAAO5B;IACPW;IACA,MAAMkB,KAAI,EAAED,KAAK,EAAEE,GAAG,EAAE;QACtB,MAAMC,SAAS,MAAMlC,UAAUiC,KAAKF,MAAM1B,KAAK;QAC/C,MAAM8B,aAAa;YAAC;YAAc;SAAa,CAACC,QAAQ,CAACF,OAAOd,QAAQ,IACpEiB,OAAOC,IAAI,CAAC,MAAM5C,YAAY;YAAE6C,QAAQL,OAAOM,IAAI;YAAEC,QAAQ;QAAM,MACnEP,OAAOM,IAAI;QAEf,IAAIA;QACJ,IAAIrB;QACJ,IAAIC;QAEJ,IAAIW,MAAMvB,YAAY,KAAK,QAAQ;YACjCgC,OAAO,MAAM5C,MAAMuC,YAAYO,IAAI,GAAGC,QAAQ;YAC9CxB,YAAY;YACZC,WAAW;QACb,OAAO;YACL,MAAMqB,SAASxB,OAAO,CAACc,MAAMvB,YAAY,CAAC;YAC1C,MAAMH,QAAQ,MAAMV,KAAKiD,IAAI,CAACT;YAE9BK,OAAO,MAAMnC,MAAMwC,cAAc,CAACJ,OAAOrB,QAAQ;YACjDD,YAAYsB,OAAOtB,SAAS;YAC5BC,WAAWqB,OAAOrB,QAAQ;QAC5B;QAEA,MAAML,OAAO,MAAMb,UAAU;YAC3B+B;YACAO;YACAM,MAAM,GAAGf,MAAMrB,cAAc,IAAI,QAAQ,CAAC,EAAES,WAAW;YACvDC;QACF;QAEA,OAAO;YAAEL;YAAMC,gBAAgBkB,OAAOd,QAAQ;QAAC;IACjD;AACF,GAAG","file":"convertFormat.js"}
@@ -3,12 +3,14 @@ import { z } from 'zod';
3
3
  import { defineAction } from '../define.js';
4
4
  import { imageFile, loadImage, savedImage, saveImage } from '../files.js';
5
5
  const inputSchema = z.object({
6
- image: imageFile.meta({ label: 'Image' }),
6
+ image: imageFile.meta({
7
+ label: 'Image'
8
+ }),
7
9
  left: z.number().int().nonnegative(),
8
10
  top: z.number().int().nonnegative(),
9
11
  width: z.number().int().positive(),
10
12
  height: z.number().int().positive(),
11
- resultFileName: z.string().min(1).optional(),
13
+ resultFileName: z.string().min(1).optional()
12
14
  });
13
15
  export const crop = defineAction({
14
16
  slug: 'crop',
@@ -16,7 +18,7 @@ export const crop = defineAction({
16
18
  description: 'Crop a rectangular region from an image.',
17
19
  input: inputSchema,
18
20
  output: savedImage,
19
- async run({ input, req }) {
21
+ async run ({ input, req }) {
20
22
  const source = await loadImage(req, input.image);
21
23
  const image = await Jimp.read(source.data);
22
24
  image.crop(input.left, input.top, input.width, input.height);
@@ -25,8 +27,9 @@ export const crop = defineAction({
25
27
  req,
26
28
  data,
27
29
  name: `${input.resultFileName ?? 'image'}.${image.getExtension()}`,
28
- mimeType: image.getMIME(),
30
+ mimeType: image.getMIME()
29
31
  });
30
- },
32
+ }
31
33
  });
34
+
32
35
  //# sourceMappingURL=crop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crop.js","sourceRoot":"","sources":["../../src/actions/crop.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACpC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,YAAY,CAAC;IAC/B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,0CAA0C;IACvD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzD,OAAO,SAAS,CAAC;YACf,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;YAClE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/crop.ts"],"names":["Jimp","z","defineAction","imageFile","loadImage","savedImage","saveImage","inputSchema","object","image","meta","label","left","number","int","nonnegative","top","width","positive","height","resultFileName","string","min","optional","crop","slug","description","input","output","run","req","source","read","data","getBufferAsync","getMIME","name","getExtension","mimeType"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAE1E,MAAMC,cAAcN,EAAEO,MAAM,CAAC;IAC3BC,OAAON,UAAUO,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,MAAMX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,WAAW;IAClCC,KAAKf,EAAEY,MAAM,GAAGC,GAAG,GAAGC,WAAW;IACjCE,OAAOhB,EAAEY,MAAM,GAAGC,GAAG,GAAGI,QAAQ;IAChCC,QAAQlB,EAAEY,MAAM,GAAGC,GAAG,GAAGI,QAAQ;IACjCE,gBAAgBnB,EAAEoB,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEA,OAAO,MAAMC,OAAOtB,aAAa;IAC/BuB,MAAM;IACNd,OAAO;IACPe,aAAa;IACbC,OAAOpB;IACPqB,QAAQvB;IACR,MAAMwB,KAAI,EAAEF,KAAK,EAAEG,GAAG,EAAE;QACtB,MAAMC,SAAS,MAAM3B,UAAU0B,KAAKH,MAAMlB,KAAK;QAC/C,MAAMA,QAAQ,MAAMT,KAAKgC,IAAI,CAACD,OAAOE,IAAI;QAEzCxB,MAAMe,IAAI,CAACG,MAAMf,IAAI,EAAEe,MAAMX,GAAG,EAAEW,MAAMV,KAAK,EAAEU,MAAMR,MAAM;QAE3D,MAAMc,OAAO,MAAMxB,MAAMyB,cAAc,CAACzB,MAAM0B,OAAO;QAErD,OAAO7B,UAAU;YACfwB;YACAG;YACAG,MAAM,GAAGT,MAAMP,cAAc,IAAI,QAAQ,CAAC,EAAEX,MAAM4B,YAAY,IAAI;YAClEC,UAAU7B,MAAM0B,OAAO;QACzB;IACF;AACF,GAAG","file":"crop.js"}
@@ -2,7 +2,11 @@ import ExifReader from 'exifreader';
2
2
  import { z } from 'zod';
3
3
  import { defineAction } from '../define.js';
4
4
  import { imageFile, loadImage } from '../files.js';
5
- const inputSchema = z.object({ image: imageFile.meta({ label: 'Image' }) });
5
+ const inputSchema = z.object({
6
+ image: imageFile.meta({
7
+ label: 'Image'
8
+ })
9
+ });
6
10
  export const getMetadata = defineAction({
7
11
  slug: 'getMetadata',
8
12
  label: 'Get image metadata',
@@ -10,11 +14,12 @@ export const getMetadata = defineAction({
10
14
  input: inputSchema,
11
15
  output: z.record(z.string(), z.object({
12
16
  value: z.unknown(),
13
- description: z.string().optional(),
17
+ description: z.string().optional()
14
18
  })),
15
- async run({ input, req }) {
19
+ async run ({ input, req }) {
16
20
  const image = await loadImage(req, input.image);
17
21
  return ExifReader.load(image.data);
18
- },
22
+ }
19
23
  });
24
+
20
25
  //# sourceMappingURL=getMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMetadata.js","sourceRoot":"","sources":["../../src/actions/getMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;IACtC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EAAE,qCAAqC;IAClD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CACd,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC,CACH;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/getMetadata.ts"],"names":["ExifReader","z","defineAction","imageFile","loadImage","inputSchema","object","image","meta","label","getMetadata","slug","description","input","output","record","string","value","unknown","optional","run","req","load","data"],"mappings":"AAAA,OAAOA,gBAAgB,aAAa;AACpC,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,QAAQ,cAAc;AAEnD,MAAMC,cAAcJ,EAAEK,MAAM,CAAC;IAAEC,OAAOJ,UAAUK,IAAI,CAAC;QAAEC,OAAO;IAAQ;AAAG;AAEzE,OAAO,MAAMC,cAAcR,aAAa;IACtCS,MAAM;IACNF,OAAO;IACPG,aAAa;IACbC,OAAOR;IACPS,QAAQb,EAAEc,MAAM,CACdd,EAAEe,MAAM,IACRf,EAAEK,MAAM,CAAC;QACPW,OAAOhB,EAAEiB,OAAO;QAChBN,aAAaX,EAAEe,MAAM,GAAGG,QAAQ;IAClC;IAEF,MAAMC,KAAI,EAAEP,KAAK,EAAEQ,GAAG,EAAE;QACtB,MAAMd,QAAQ,MAAMH,UAAUiB,KAAKR,MAAMN,KAAK;QAE9C,OAAOP,WAAWsB,IAAI,CAACf,MAAMgB,IAAI;IACnC;AACF,GAAG","file":"getMetadata.js"}
@@ -2,8 +2,12 @@ import { z } from 'zod';
2
2
  import { defineAction } from '../define.js';
3
3
  import { imageFile, loadImage } from '../files.js';
4
4
  const inputSchema = z.object({
5
- image: imageFile.meta({ label: 'Image' }),
6
- mimeType: z.string().min(1).optional().meta({ label: 'Override MIME type' }),
5
+ image: imageFile.meta({
6
+ label: 'Image'
7
+ }),
8
+ mimeType: z.string().min(1).optional().meta({
9
+ label: 'Override MIME type'
10
+ })
7
11
  });
8
12
  export const imageToBase64 = defineAction({
9
13
  slug: 'imageToBase64',
@@ -11,9 +15,10 @@ export const imageToBase64 = defineAction({
11
15
  description: 'Convert an image to a Base64 data URL.',
12
16
  input: inputSchema,
13
17
  output: z.string().regex(/^data:[^;,]+;base64,[A-Za-z0-9+/]*={0,2}$/),
14
- async run({ input, req }) {
18
+ async run ({ input, req }) {
15
19
  const image = await loadImage(req, input.image);
16
20
  return `data:${input.mimeType ?? image.mimeType};base64,${image.data.toString('base64')}`;
17
- },
21
+ }
18
22
  });
23
+
19
24
  //# sourceMappingURL=imageToBase64.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageToBase64.js","sourceRoot":"","sources":["../../src/actions/imageToBase64.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;CAC7E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;IACxC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,wCAAwC;IACrD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,2CAA2C,CAAC;IACrE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhD,OAAO,QAAQ,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5F,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/imageToBase64.ts"],"names":["z","defineAction","imageFile","loadImage","inputSchema","object","image","meta","label","mimeType","string","min","optional","imageToBase64","slug","description","input","output","regex","run","req","data","toString"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,QAAQ,cAAc;AAEnD,MAAMC,cAAcJ,EAAEK,MAAM,CAAC;IAC3BC,OAAOJ,UAAUK,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,UAAUT,EAAEU,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ,GAAGL,IAAI,CAAC;QAAEC,OAAO;IAAqB;AAC5E;AAEA,OAAO,MAAMK,gBAAgBZ,aAAa;IACxCa,MAAM;IACNN,OAAO;IACPO,aAAa;IACbC,OAAOZ;IACPa,QAAQjB,EAAEU,MAAM,GAAGQ,KAAK,CAAC;IACzB,MAAMC,KAAI,EAAEH,KAAK,EAAEI,GAAG,EAAE;QACtB,MAAMd,QAAQ,MAAMH,UAAUiB,KAAKJ,MAAMV,KAAK;QAE9C,OAAO,CAAC,KAAK,EAAEU,MAAMP,QAAQ,IAAIH,MAAMG,QAAQ,CAAC,QAAQ,EAAEH,MAAMe,IAAI,CAACC,QAAQ,CAAC,WAAW;IAC3F;AACF,GAAG","file":"imageToBase64.js"}
@@ -3,11 +3,13 @@ import { z } from 'zod';
3
3
  import { defineAction } from '../define.js';
4
4
  import { imageFile, loadImage, savedImage, saveImage } from '../files.js';
5
5
  const inputSchema = z.object({
6
- image: imageFile.meta({ label: 'Image' }),
6
+ image: imageFile.meta({
7
+ label: 'Image'
8
+ }),
7
9
  width: z.number().int().positive(),
8
10
  height: z.number().int().positive(),
9
11
  maintainAspectRatio: z.boolean().default(false),
10
- resultFileName: z.string().min(1).optional(),
12
+ resultFileName: z.string().min(1).optional()
11
13
  });
12
14
  export const resize = defineAction({
13
15
  slug: 'resize',
@@ -15,7 +17,7 @@ export const resize = defineAction({
15
17
  description: 'Resize an image to the requested dimensions.',
16
18
  input: inputSchema,
17
19
  output: savedImage,
18
- async run({ input, req }) {
20
+ async run ({ input, req }) {
19
21
  const source = await loadImage(req, input.image);
20
22
  const image = await Jimp.read(source.data);
21
23
  image.resize(input.width, input.maintainAspectRatio ? Jimp.AUTO : input.height);
@@ -24,8 +26,9 @@ export const resize = defineAction({
24
26
  req,
25
27
  data,
26
28
  name: `${input.resultFileName ?? 'image'}.${image.getExtension()}`,
27
- mimeType: image.getMIME(),
29
+ mimeType: image.getMIME()
28
30
  });
29
- },
31
+ }
30
32
  });
33
+
31
34
  //# sourceMappingURL=resize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/actions/resize.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACnC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;IACjC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,8CAA8C;IAC3D,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3C,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEhF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzD,OAAO,SAAS,CAAC;YACf,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;YAClE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/resize.ts"],"names":["Jimp","z","defineAction","imageFile","loadImage","savedImage","saveImage","inputSchema","object","image","meta","label","width","number","int","positive","height","maintainAspectRatio","boolean","default","resultFileName","string","min","optional","resize","slug","description","input","output","run","req","source","read","data","AUTO","getBufferAsync","getMIME","name","getExtension","mimeType"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAE1E,MAAMC,cAAcN,EAAEO,MAAM,CAAC;IAC3BC,OAAON,UAAUO,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,OAAOX,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IAChCC,QAAQf,EAAEY,MAAM,GAAGC,GAAG,GAAGC,QAAQ;IACjCE,qBAAqBhB,EAAEiB,OAAO,GAAGC,OAAO,CAAC;IACzCC,gBAAgBnB,EAAEoB,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEA,OAAO,MAAMC,SAAStB,aAAa;IACjCuB,MAAM;IACNd,OAAO;IACPe,aAAa;IACbC,OAAOpB;IACPqB,QAAQvB;IACR,MAAMwB,KAAI,EAAEF,KAAK,EAAEG,GAAG,EAAE;QACtB,MAAMC,SAAS,MAAM3B,UAAU0B,KAAKH,MAAMlB,KAAK;QAC/C,MAAMA,QAAQ,MAAMT,KAAKgC,IAAI,CAACD,OAAOE,IAAI;QAEzCxB,MAAMe,MAAM,CAACG,MAAMf,KAAK,EAAEe,MAAMV,mBAAmB,GAAGjB,KAAKkC,IAAI,GAAGP,MAAMX,MAAM;QAE9E,MAAMiB,OAAO,MAAMxB,MAAM0B,cAAc,CAAC1B,MAAM2B,OAAO;QAErD,OAAO9B,UAAU;YACfwB;YACAG;YACAI,MAAM,GAAGV,MAAMP,cAAc,IAAI,QAAQ,CAAC,EAAEX,MAAM6B,YAAY,IAAI;YAClEC,UAAU9B,MAAM2B,OAAO;QACzB;IACF;AACF,GAAG","file":"resize.js"}
@@ -3,9 +3,15 @@ import { z } from 'zod';
3
3
  import { defineAction } from '../define.js';
4
4
  import { imageFile, loadImage, savedImage, saveImage } from '../files.js';
5
5
  const inputSchema = z.object({
6
- image: imageFile.meta({ label: 'Image' }),
7
- degrees: z.union([z.literal(90), z.literal(180), z.literal(270)]),
8
- resultFileName: z.string().min(1).optional(),
6
+ image: imageFile.meta({
7
+ label: 'Image'
8
+ }),
9
+ degrees: z.union([
10
+ z.literal(90),
11
+ z.literal(180),
12
+ z.literal(270)
13
+ ]),
14
+ resultFileName: z.string().min(1).optional()
9
15
  });
10
16
  export const rotate = defineAction({
11
17
  slug: 'rotate',
@@ -13,7 +19,7 @@ export const rotate = defineAction({
13
19
  description: 'Rotate an image clockwise.',
14
20
  input: inputSchema,
15
21
  output: savedImage,
16
- async run({ input, req }) {
22
+ async run ({ input, req }) {
17
23
  const source = await loadImage(req, input.image);
18
24
  const image = await Jimp.read(source.data);
19
25
  image.rotate(-input.degrees);
@@ -22,8 +28,9 @@ export const rotate = defineAction({
22
28
  req,
23
29
  data,
24
30
  name: `${input.resultFileName ?? 'image'}.${image.getExtension()}`,
25
- mimeType: image.getMIME(),
31
+ mimeType: image.getMIME()
26
32
  });
27
- },
33
+ }
28
34
  });
35
+
29
36
  //# sourceMappingURL=rotate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/actions/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC;IACjC,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;IACrB,WAAW,EAAE,4BAA4B;IACzC,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE3C,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzD,OAAO,SAAS,CAAC;YACf,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;YAClE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/actions/rotate.ts"],"names":["Jimp","z","defineAction","imageFile","loadImage","savedImage","saveImage","inputSchema","object","image","meta","label","degrees","union","literal","resultFileName","string","min","optional","rotate","slug","description","input","output","run","req","source","read","data","getBufferAsync","getMIME","name","getExtension","mimeType"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,SAASC,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,SAAS,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,QAAQ,cAAc;AAE1E,MAAMC,cAAcN,EAAEO,MAAM,CAAC;IAC3BC,OAAON,UAAUO,IAAI,CAAC;QAAEC,OAAO;IAAQ;IACvCC,SAASX,EAAEY,KAAK,CAAC;QAACZ,EAAEa,OAAO,CAAC;QAAKb,EAAEa,OAAO,CAAC;QAAMb,EAAEa,OAAO,CAAC;KAAK;IAChEC,gBAAgBd,EAAEe,MAAM,GAAGC,GAAG,CAAC,GAAGC,QAAQ;AAC5C;AAEA,OAAO,MAAMC,SAASjB,aAAa;IACjCkB,MAAM;IACNT,OAAO;IACPU,aAAa;IACbC,OAAOf;IACPgB,QAAQlB;IACR,MAAMmB,KAAI,EAAEF,KAAK,EAAEG,GAAG,EAAE;QACtB,MAAMC,SAAS,MAAMtB,UAAUqB,KAAKH,MAAMb,KAAK;QAC/C,MAAMA,QAAQ,MAAMT,KAAK2B,IAAI,CAACD,OAAOE,IAAI;QAEzCnB,MAAMU,MAAM,CAAC,CAACG,MAAMV,OAAO;QAE3B,MAAMgB,OAAO,MAAMnB,MAAMoB,cAAc,CAACpB,MAAMqB,OAAO;QAErD,OAAOxB,UAAU;YACfmB;YACAG;YACAG,MAAM,GAAGT,MAAMP,cAAc,IAAI,QAAQ,CAAC,EAAEN,MAAMuB,YAAY,IAAI;YAClEC,UAAUxB,MAAMqB,OAAO;QACzB;IACF;AACF,GAAG","file":"rotate.js"}
package/dist/define.js CHANGED
@@ -1,3 +1,4 @@
1
1
  import { createPieceHelpers } from 'frogbot/pieces';
2
2
  export const { defineAction } = createPieceHelpers();
3
+
3
4
  //# sourceMappingURL=define.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"sources":["../src/define.ts"],"names":["createPieceHelpers","defineAction"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,iBAAiB;AAEpD,OAAO,MAAM,EAAEC,YAAY,EAAE,GAAGD,qBAAqB","file":"define.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,SAAS,iDAAoC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;iBAMrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAYF,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA6D9F;AAED,wBAAsB,SAAS,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;;;GAkBA"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,SAAS,iDAAoC,CAAC;AAE3D,eAAO,MAAM,UAAU;;;;;;iBAMrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA6D9F;AAED,wBAAsB,SAAS,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;;;;;;GAkBA"}
package/dist/files.js CHANGED
@@ -1,85 +1,96 @@
1
+ import { filesCollectionSlug } from 'frogbot/pieces';
1
2
  import { lookup } from 'mime-types';
2
3
  import { z } from 'zod';
3
- export const imageFile = z.union([z.string(), z.number()]);
4
+ export const imageFile = z.union([
5
+ z.string(),
6
+ z.number()
7
+ ]);
4
8
  export const savedImage = z.object({
5
- id: z.union([z.string().min(1), z.number()]),
9
+ id: z.union([
10
+ z.string().min(1),
11
+ z.number()
12
+ ]),
6
13
  name: z.string().min(1),
7
14
  mimeType: z.string().min(1),
8
15
  size: z.number().int().nonnegative(),
9
- url: z.string().min(1).optional(),
16
+ url: z.string().min(1).optional()
10
17
  });
11
- function filesCollection(req) {
12
- const collection = req.frogbot.config.files?.slug;
13
- if (!collection) {
14
- throw new Error('[frogbot] Image Helper requires the files collection to be configured.');
15
- }
16
- return collection;
17
- }
18
18
  export async function loadImage(req, id) {
19
19
  req.signal?.throwIfAborted();
20
20
  const doc = await req.frogbot.findByID({
21
- collection: filesCollection(req),
21
+ collection: filesCollectionSlug(req, 'Image Helper'),
22
22
  id,
23
23
  depth: 0,
24
24
  req,
25
- overrideAccess: false,
25
+ overrideAccess: false
26
26
  });
27
27
  if (typeof doc.url !== 'string') {
28
28
  throw new Error(`[frogbot] Image '${id}' is unavailable.`);
29
29
  }
30
30
  const config = await req.frogbot.config._internal.payloadConfig;
31
31
  const originURL = config.serverURL || req.url;
32
- if (!originURL)
33
- throw new Error('[frogbot] Image requests require a server URL.');
32
+ if (!originURL) throw new Error('[frogbot] Image requests require a server URL.');
34
33
  const origin = new URL(originURL);
35
34
  const url = new URL(doc.url, origin);
36
- if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password) {
35
+ if (![
36
+ 'http:',
37
+ 'https:'
38
+ ].includes(url.protocol) || url.username || url.password) {
37
39
  throw new Error(`[frogbot] Image '${id}' has an invalid URL.`);
38
40
  }
39
41
  const headers = new Headers();
40
42
  if (url.origin === origin.origin) {
41
- for (const name of ['authorization', 'cookie']) {
43
+ for (const name of [
44
+ 'authorization',
45
+ 'cookie'
46
+ ]){
42
47
  const value = req.headers.get(name);
43
- if (value)
44
- headers.set(name, value);
48
+ if (value) headers.set(name, value);
45
49
  }
46
50
  }
47
51
  const timeout = AbortSignal.timeout(30_000);
48
52
  const response = await fetch(url, {
49
53
  headers,
50
54
  redirect: 'error',
51
- signal: req.signal ? AbortSignal.any([req.signal, timeout]) : timeout,
55
+ signal: req.signal ? AbortSignal.any([
56
+ req.signal,
57
+ timeout
58
+ ]) : timeout
52
59
  });
53
60
  if (!response.ok) {
54
61
  throw new Error(`[frogbot] Image '${id}' is unavailable (${response.status}).`);
55
62
  }
56
63
  const name = typeof doc.filename === 'string' ? doc.filename : 'image';
57
64
  const extension = name.includes('.') ? name.split('.').pop()?.toLowerCase() : undefined;
58
- const mimeType = typeof doc.mimeType === 'string'
59
- ? doc.mimeType
60
- : (extension && lookup(extension)) || 'application/octet-stream';
65
+ const mimeType = typeof doc.mimeType === 'string' ? doc.mimeType : extension && lookup(extension) || 'application/octet-stream';
61
66
  return {
62
67
  data: Buffer.from(await response.arrayBuffer()),
63
68
  name,
64
69
  extension,
65
- mimeType,
70
+ mimeType
66
71
  };
67
72
  }
68
- export async function saveImage({ req, data, name, mimeType, }) {
73
+ export async function saveImage({ req, data, name, mimeType }) {
69
74
  req.signal?.throwIfAborted();
70
75
  const doc = await req.frogbot.create({
71
- collection: filesCollection(req),
76
+ collection: filesCollectionSlug(req, 'Image Helper'),
72
77
  data: {},
73
- file: { data, name, mimetype: mimeType, size: data.length },
78
+ file: {
79
+ data,
80
+ name,
81
+ mimetype: mimeType,
82
+ size: data.length
83
+ },
74
84
  req,
75
- overrideAccess: false,
85
+ overrideAccess: false
76
86
  });
77
87
  return {
78
88
  id: doc.id,
79
89
  name,
80
90
  mimeType,
81
91
  size: data.length,
82
- url: typeof doc.url === 'string' ? doc.url : undefined,
92
+ url: typeof doc.url === 'string' ? doc.url : undefined
83
93
  };
84
94
  }
95
+
85
96
  //# sourceMappingURL=files.js.map
package/dist/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../src/files.ts"],"names":["filesCollectionSlug","lookup","z","imageFile","union","string","number","savedImage","object","id","min","name","mimeType","size","int","nonnegative","url","optional","loadImage","req","signal","throwIfAborted","doc","frogbot","findByID","collection","depth","overrideAccess","Error","config","_internal","payloadConfig","originURL","serverURL","origin","URL","includes","protocol","username","password","headers","Headers","value","get","set","timeout","AbortSignal","response","fetch","redirect","any","ok","status","filename","extension","split","pop","toLowerCase","undefined","data","Buffer","from","arrayBuffer","saveImage","create","file","mimetype","length"],"mappings":"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","file":"files.js"}
package/dist/index.js CHANGED
@@ -9,7 +9,19 @@ import { rotate } from './actions/rotate.js';
9
9
  export const createImageHelper = definePiece({
10
10
  slug: 'image-helper',
11
11
  label: 'Image Helper',
12
- admin: { description: 'Inspect, transform, and convert images', group: 'Core' },
13
- actions: [imageToBase64, getMetadata, crop, rotate, resize, compress, convertFormat],
12
+ admin: {
13
+ description: 'Inspect, transform, and convert images',
14
+ group: 'Core'
15
+ },
16
+ actions: [
17
+ imageToBase64,
18
+ getMetadata,
19
+ crop,
20
+ rotate,
21
+ resize,
22
+ compress,
23
+ convertFormat
24
+ ]
14
25
  });
26
+
15
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;IAC3C,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/E,OAAO,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC;CACrF,CAAC,CAAC"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["definePiece","compress","convertFormat","crop","getMetadata","imageToBase64","resize","rotate","createImageHelper","slug","label","admin","description","group","actions"],"mappings":"AAAA,SAASA,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,aAAa,QAAQ,6BAA6B;AAC3D,SAASC,IAAI,QAAQ,oBAAoB;AACzC,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,aAAa,QAAQ,6BAA6B;AAC3D,SAASC,MAAM,QAAQ,sBAAsB;AAC7C,SAASC,MAAM,QAAQ,sBAAsB;AAE7C,OAAO,MAAMC,oBAAoBR,YAAY;IAC3CS,MAAM;IACNC,OAAO;IACPC,OAAO;QAAEC,aAAa;QAA0CC,OAAO;IAAO;IAC9EC,SAAS;QAACT;QAAeD;QAAaD;QAAMI;QAAQD;QAAQL;QAAUC;KAAc;AACtF,GAAG","file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/piece-image-helper",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "description": "image-helper tools for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -27,19 +27,19 @@
27
27
  "zod": "^4.3.6"
28
28
  },
29
29
  "peerDependencies": {
30
- "frogbot": "0.29.0"
30
+ "frogbot": "0.30.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/heic-convert": "2.1.1",
34
34
  "@types/mime-types": "2.1.1",
35
35
  "typescript": "5.6.2",
36
- "frogbot": "0.29.0"
36
+ "frogbot": "0.30.0"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"
40
40
  },
41
41
  "scripts": {
42
- "build": "rm -rf dist && tsc -p tsconfig.json",
42
+ "build": "node ../../../scripts/build-package.mjs",
43
43
  "clean": "rm -rf dist",
44
44
  "typecheck": "tsc --noEmit"
45
45
  }