@happyvertical/smrt-images 0.51.39 → 0.53.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/AGENTS.md CHANGED
@@ -11,7 +11,8 @@ Image management with AI categorization, editing, and metadata extraction. Exten
11
11
  - **ImageCollection**: dimension/orientation filters — `getByMinDimensions()`, `getByAspectRatio()`, `getLandscape()`, `getPortrait()`, `getSquare()`, `getHighResolution()`, `getMissingAltText()`
12
12
  - **ImageMetadataExtractor**: dimensions, format, EXIF from buffers (via `@happyvertical/images`)
13
13
  - **ImageCategorizer**: curated metadata categorization → tags, description, confidence, subjects; optional typed decisions constrain offered tag/subject vocabularies, while image bytes remain unsupported
14
- - **ImageEditor**: resize/crop/convert/thumbnail + AI editing. Creates new Image records with `parentId` linking to source.
14
+ - **ImageEditor**: resize/crop (a real x/y region, clamped to the picture)/convert/thumbnail/adjust + AI editing. Creates new Image records with `sourceAssetId` linking to source.
15
+ - **Local adjustments** (`src/adjust.ts`, sharp, no GPU): brightness, contrast, colour, black-and-white, rotate, flip, region crop (zoom) and resize. `imageAdjustVariants(operation)` gives 2–4 versions to offer ("10/20/30% brighter"); `encodeImageAdjustments`/`decodeImageAdjustments` make a short URL-safe spec for preview routes (decode refuses anything it did not write); `applyImageAdjustments(buffer, adjustments, { fit })` renders; `ImageEditor.adjust()` saves one as a derivative. Everything but `applyImageAdjustments` is pure.
15
16
  - **ImageDeriver**: creates derived images and, when requested, records source provenance through generic `AssetAssociation` links
16
17
  - **ImageSearch**: text search across name/description/alt with orientation filters
17
18
  - **UpstreamManager**: import from external providers with provenance tracking
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Local picture adjustments: brightness, contrast, colour, black-and-white,
3
+ * rotate, flip, region crop and resize, applied with sharp on the server.
4
+ *
5
+ * These are the cheap, instant edits (no GPU, no model): an app offers a few
6
+ * versions of one picture ("brighter by 10, 20 or 30%") and saves the one the
7
+ * person picks. {@link imageAdjustVariants} builds those versions for one
8
+ * {@link ImageAdjustOperation}; {@link encodeImageAdjustments} turns an
9
+ * adjustment into a short, URL-safe string (`b1.2,g,r90`) so a preview route
10
+ * can render it; {@link applyImageAdjustments} renders it.
11
+ *
12
+ * Everything but {@link applyImageAdjustments} is pure, so an app can build
13
+ * and check adjustments without loading sharp.
14
+ */
15
+ /** Ways to change a picture locally. */
16
+ export type ImageAdjustOperation = 'brighter' | 'darker' | 'more-contrast' | 'less-contrast' | 'more-color' | 'less-color' | 'black-and-white' | 'rotate' | 'flip' | 'zoom' | 'resize';
17
+ /** Where a zoom (region crop) centres. */
18
+ export type ImageFocus = 'center' | 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
19
+ /** A part of the picture, as fractions (0–1) of its width and height. */
20
+ export interface ImageRegion {
21
+ left: number;
22
+ top: number;
23
+ width: number;
24
+ height: number;
25
+ }
26
+ /**
27
+ * One set of adjustments. Every field is optional; a missing field leaves
28
+ * the picture as it is. Applied in this order: rotate, flip, region, colour
29
+ * (brightness, saturation), contrast, black-and-white, resize.
30
+ */
31
+ export interface ImageAdjustments {
32
+ /** Brightness multiplier (1 = unchanged, 1.2 = 20% brighter), 0.2–3. */
33
+ brightness?: number;
34
+ /** Contrast multiplier around mid-grey (1 = unchanged), 0.2–3. */
35
+ contrast?: number;
36
+ /** Colour multiplier (1 = unchanged, 0 = no colour), 0–3. */
37
+ saturation?: number;
38
+ /** Black and white. */
39
+ grayscale?: boolean;
40
+ /** Clockwise quarter turns, in degrees. */
41
+ rotate?: 0 | 90 | 180 | 270;
42
+ /** Mirror left to right. */
43
+ flipHorizontal?: boolean;
44
+ /** Upside down (mirror top to bottom). */
45
+ flipVertical?: boolean;
46
+ /** Keep only this part (after rotating and flipping). */
47
+ region?: ImageRegion;
48
+ /** Fit inside this width (keeps the shape; never enlarges). */
49
+ maxWidth?: number;
50
+ /** Fit inside this height (keeps the shape; never enlarges). */
51
+ maxHeight?: number;
52
+ }
53
+ /** One version of a picture an app can offer. */
54
+ export interface ImageAdjustVariant {
55
+ /** Stable within the operation (`brighter-20`). */
56
+ id: string;
57
+ /** Short plain label ("20% brighter"). */
58
+ label: string;
59
+ /** One plain sentence, or omitted. */
60
+ description?: string;
61
+ adjustments: ImageAdjustments;
62
+ }
63
+ /** The operations, with a plain description for tool and help text. */
64
+ export declare const IMAGE_ADJUST_OPERATIONS: ReadonlyArray<{
65
+ id: ImageAdjustOperation;
66
+ description: string;
67
+ }>;
68
+ export declare function isImageAdjustOperation(value: unknown): value is ImageAdjustOperation;
69
+ export declare function isImageFocus(value: unknown): value is ImageFocus;
70
+ /**
71
+ * Check and tidy adjustments from an untrusted source: clamp every value to
72
+ * its range and drop what would change nothing. Throws a plain `Error` for a
73
+ * value that cannot be understood (a rotation that is not a quarter turn).
74
+ */
75
+ export declare function normalizeImageAdjustments(input: unknown): ImageAdjustments;
76
+ /** True when the adjustments change nothing. */
77
+ export declare function isEmptyImageAdjustments(adjustments: ImageAdjustments): boolean;
78
+ /**
79
+ * A short, URL-safe string for adjustments, stable for the same values
80
+ * (usable as a cache key): `b1.2,c1.1,s0.8,g,r90,fh,fv,x0.1_0.1_0.5_0.5,w1600,h900`.
81
+ */
82
+ export declare function encodeImageAdjustments(input: ImageAdjustments): string;
83
+ /** Read a string from {@link encodeImageAdjustments}. Throws on anything else. */
84
+ export declare function decodeImageAdjustments(spec: string): ImageAdjustments;
85
+ /** The region for a zoom on `focus`, keeping `scale` (0.3–0.95) of each side. */
86
+ export declare function regionForFocus(focus: ImageFocus, scale: number): ImageRegion;
87
+ /**
88
+ * Two to four versions for one operation, mildest first. `focus` is where a
89
+ * zoom centres (default the middle).
90
+ */
91
+ export declare function imageAdjustVariants(operation: ImageAdjustOperation, options?: {
92
+ focus?: ImageFocus;
93
+ }): ImageAdjustVariant[];
94
+ /** A plain sentence for adjustments ("20% brighter, black and white"). */
95
+ export declare function describeImageAdjustments(input: ImageAdjustments): string;
96
+ /** Output of {@link applyImageAdjustments}. */
97
+ export interface AppliedImageAdjustments {
98
+ data: Buffer;
99
+ mimeType: string;
100
+ width: number;
101
+ height: number;
102
+ }
103
+ export type ImageAdjustOutputFormat = 'jpeg' | 'png' | 'webp';
104
+ /** A pixel rectangle inside a `width`×`height` picture for `region`. */
105
+ export declare function regionToPixels(region: ImageRegion, width: number, height: number): {
106
+ left: number;
107
+ top: number;
108
+ width: number;
109
+ height: number;
110
+ };
111
+ /**
112
+ * Render adjustments with sharp. The EXIF orientation is applied first, so
113
+ * "turn right" means right as the person sees the picture. `format` defaults
114
+ * to the source's (JPEG, PNG or WebP; anything else becomes JPEG).
115
+ */
116
+ export declare function applyImageAdjustments(data: Buffer, input: ImageAdjustments, options?: {
117
+ format?: ImageAdjustOutputFormat;
118
+ quality?: number;
119
+ /** A final fit (for previews), after `maxWidth`/`maxHeight`. */
120
+ fit?: {
121
+ width: number;
122
+ height: number;
123
+ fit?: 'cover' | 'inside';
124
+ };
125
+ }): Promise<AppliedImageAdjustments>;
126
+ //# sourceMappingURL=adjust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust.d.ts","sourceRoot":"","sources":["../src/adjust.ts"],"names":[],"mappings":"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"}
package/dist/editor.d.ts CHANGED
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import type { AIClientOptions } from '@happyvertical/ai';
12
12
  import type { AssetStore } from '@happyvertical/smrt-assets';
13
+ import { type ImageAdjustments } from './adjust';
13
14
  import type { Image } from './image';
14
15
  import type { ImageCollection } from './images';
15
16
  export declare class ImageEditor {
@@ -29,7 +30,8 @@ export declare class ImageEditor {
29
30
  */
30
31
  resize(image: Image, width: number, height: number): Promise<Image>;
31
32
  /**
32
- * Crop an image to the specified region
33
+ * Crop an image to the specified region (in pixels of the picture as it is
34
+ * seen, after its EXIF orientation). The region is clamped to the picture.
33
35
  *
34
36
  * @param image - Source image
35
37
  * @param x - Left offset
@@ -39,6 +41,16 @@ export declare class ImageEditor {
39
41
  * @returns New derivative Image
40
42
  */
41
43
  crop(image: Image, x: number, y: number, w: number, h: number): Promise<Image>;
44
+ /**
45
+ * Brightness, contrast, colour, black-and-white, rotate, flip, region crop
46
+ * or resize, in one pass (see `./adjust.ts`). The source is unchanged; the
47
+ * result is a new derivative linked to it.
48
+ *
49
+ * @param image - Source image
50
+ * @param adjustments - What to change (checked and clamped)
51
+ * @returns New derivative Image
52
+ */
53
+ adjust(image: Image, adjustments: ImageAdjustments): Promise<Image>;
42
54
  /**
43
55
  * Convert an image to a different format
44
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgBhD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,eAAe,CAAA;KAAO;IAGzD;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAwBzE;;;;;;;;;OASG;IACG,IAAI,CACR,KAAK,EAAE,KAAK,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,KAAK,CAAC;IAiCjB;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA6C3D;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA2B3D;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAuBxD;;;;;;;OAOG;IACG,iBAAiB,CACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;IAenB;;OAEG;YACW,gBAAgB;CAqC/B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAgBhD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE;QAAE,EAAE,CAAC,EAAE,eAAe,CAAA;KAAO;IAGzD;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAwBzE;;;;;;;;;;OAUG;IACG,IAAI,CACR,KAAK,EAAE,KAAK,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAAC,KAAK,CAAC;IA8BjB;;;;;;;;OAQG;IACG,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAkBzE;;;;;;OAMG;IACG,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA6C3D;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IA2B3D;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAuBxD;;;;;;;OAOG;IACG,iBAAiB,CACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;IAenB;;OAEG;YACW,gBAAgB;CAqC/B"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import './__smrt-register__.js';
10
10
  import './prompts.js';
11
+ export { type AppliedImageAdjustments, applyImageAdjustments, decodeImageAdjustments, describeImageAdjustments, encodeImageAdjustments, IMAGE_ADJUST_OPERATIONS, type ImageAdjustments, type ImageAdjustOperation, type ImageAdjustOutputFormat, type ImageAdjustVariant, type ImageFocus, type ImageRegion, imageAdjustVariants, isEmptyImageAdjustments, isImageAdjustOperation, isImageFocus, normalizeImageAdjustments, regionForFocus, regionToPixels, } from './adjust';
11
12
  export { ImageCategorizer } from './categorizer';
12
13
  export { ImageDeriver } from './deriver';
13
14
  export { ImageEditor } from './editor';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,wBAAwB,CAAC;AAIhC,OAAO,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,qCAAqC,EAC1C,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,uCAAuC,EAC5C,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,EAC5C,KAAK,4CAA4C,EACjD,iCAAiC,EACjC,KAAK,sCAAsC,GAC5C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,iCAAiC,EACjC,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,eAAe,GAChB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,wBAAwB,CAAC;AAIhC,OAAO,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,uBAAuB,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,yBAAyB,EACzB,cAAc,EACd,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EACL,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,qCAAqC,EAC1C,KAAK,0BAA0B,EAC/B,KAAK,iCAAiC,EACtC,KAAK,uCAAuC,EAC5C,KAAK,wCAAwC,EAC7C,KAAK,uCAAuC,EAC5C,KAAK,4CAA4C,EACjD,iCAAiC,EACjC,KAAK,sCAAsC,GAC5C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EACV,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,iCAAiC,EACjC,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,eAAe,GAChB,MAAM,YAAY,CAAC"}