@sealpixel/plugin-redact 1.0.0-rc.10 → 1.0.0-rc.12

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,3 +1,7 @@
1
1
  # @sealpixel/plugin-redact
2
2
 
3
- Pixelate or blur regions of an image. Regions are in image space, amounts in source pixels.
3
+ Pixelate, blur or mosaic regions of an image. Regions are in image space, amounts in source pixels.
4
+
5
+ `pixelate` and `blur` compute the result from the pixels under the region, so it still carries information about them. `mosaic` takes its colours from around the region and never reads a pixel inside it. Use `mosaic` for licence plates, faces and anything else that identifies a person.
6
+
7
+ A pixelate cell is never smaller than 2 rendered pixels. The options `defaultAmount` and `amountRange.min` therefore start at 2. An op with a smaller amount still loads and renders cells of 2 pixels.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
1
  import type { OperationBase, Rect, SourcePx } from '@sealpixel/core';
2
2
  import { z } from 'zod';
3
- export type RedactMode = 'pixelate' | 'blur';
3
+ /**
4
+ * `pixelate` and `blur` are cosmetic: they compute the result from the pixels
5
+ * under the region, so it carries information about them. `mosaic` takes its
6
+ * colours from around the region and covers every pixel the region touches, so
7
+ * the result carries none.
8
+ */
9
+ export type RedactMode = 'pixelate' | 'blur' | 'mosaic';
4
10
  export type RedactRegion = {
5
11
  kind: 'rect';
6
12
  rect: Rect;
@@ -13,7 +19,10 @@ export interface Redaction {
13
19
  id: string;
14
20
  region: RedactRegion;
15
21
  mode: RedactMode;
16
- /** Pixelate cell size or blur diameter, in source pixels. */
22
+ /**
23
+ * Pixelate or mosaic cell size, or blur diameter, in source pixels. A
24
+ * pixelate cell is never smaller than 2 rendered pixels, whatever the amount.
25
+ */
17
26
  amount: SourcePx;
18
27
  }
19
28
  export interface RedactDoc {
@@ -66,10 +75,10 @@ export declare const redactClear: import("@sealpixel/core").OperationDef<RedactD
66
75
  export interface RedactOptions {
67
76
  /** Redaction modes offered. */
68
77
  modes: RedactMode[];
69
- /** Region shapes the user may draw. */
78
+ /** Region shapes the user may draw. `rect` also covers a turned rectangle. */
70
79
  shapes: ('rect' | 'path')[];
71
80
  defaultMode: RedactMode;
72
- /** Pixel cell size or blur radius a new region starts with, in source px. */
81
+ /** Cell size or blur diameter a new region starts with, in source px. At least 2. */
73
82
  defaultAmount: number;
74
83
  amountRange: {
75
84
  min: number;
@@ -85,6 +94,7 @@ export declare const RedactOptionsSchema: z.ZodObject<{
85
94
  modes: z.ZodArray<z.ZodEnum<{
86
95
  pixelate: "pixelate";
87
96
  blur: "blur";
97
+ mosaic: "mosaic";
88
98
  }>>;
89
99
  shapes: z.ZodArray<z.ZodEnum<{
90
100
  rect: "rect";
@@ -93,6 +103,7 @@ export declare const RedactOptionsSchema: z.ZodObject<{
93
103
  defaultMode: z.ZodEnum<{
94
104
  pixelate: "pixelate";
95
105
  blur: "blur";
106
+ mosaic: "mosaic";
96
107
  }>;
97
108
  defaultAmount: z.ZodNumber;
98
109
  amountRange: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAC7C,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC9D,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,eAAe,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,eAAe,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAE1D,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,iBAAiB;QACzB,YAAY,EAAE,WAAW,CAAC;QAC1B,eAAe,EAAE,cAAc,CAAC;QAChC,eAAe,EAAE,cAAc,CAAC;QAChC,cAAc,EAAE,aAAa,CAAC;KAC/B;IACD,UAAU,gBAAgB;QACxB,MAAM,EAAE,SAAS,CAAC;KACnB;CACF;AAMD,eAAO,MAAM,YAAY;;;;;;;;;;;4BAWvB,CAAC;AAKH,eAAO,MAAM,SAAS,gEAkBpB,CAAC;AAEH,eAAO,MAAM,YAAY,mEAwBvB,CAAC;AAEH,eAAO,MAAM,YAAY,mEAMvB,CAAC;AAEH,eAAO,MAAM,WAAW,kEAItB,CAAC;AAEH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,CAAC;IACxB,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;kBAkB7B,CAAC;AAEJ,eAAO,MAAM,sBAAsB,EAAE,aAQpC,CAAC;AAEF,eAAO,MAAM,YAAY,wFAwCvB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AACxD,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa,CAAC,YAAY,CAAC;IAC9D,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,eAAe,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AACD,MAAM,WAAW,cAAe,SAAQ,aAAa,CAAC,eAAe,CAAC;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;AAE1D,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,iBAAiB;QACzB,YAAY,EAAE,WAAW,CAAC;QAC1B,eAAe,EAAE,cAAc,CAAC;QAChC,eAAe,EAAE,cAAc,CAAC;QAChC,cAAc,EAAE,aAAa,CAAC;KAC/B;IACD,UAAU,gBAAgB;QACxB,MAAM,EAAE,SAAS,CAAC;KACnB;CACF;AAMD,eAAO,MAAM,YAAY;;;;;;;;;;;4BAWvB,CAAC;AAmBH,eAAO,MAAM,SAAS,gEAmBpB,CAAC;AAEH,eAAO,MAAM,YAAY,mEAyBvB,CAAC;AAEH,eAAO,MAAM,YAAY,mEAOvB,CAAC;AAEH,eAAO,MAAM,WAAW,kEAKtB,CAAC;AAEH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,8EAA8E;IAC9E,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,WAAW,EAAE,UAAU,CAAC;IACxB,qFAAqF;IACrF,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,0EAA0E;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;kBAkB7B,CAAC;AAEJ,eAAO,MAAM,sBAAsB,EAAE,aAQpC,CAAC;AAkCF,eAAO,MAAM,YAAY,wFA+CvB,CAAC"}
package/dist/index.js CHANGED
@@ -16,8 +16,22 @@ export const RegionSchema = z.discriminatedUnion('kind', [
16
16
  })
17
17
  .strict(),
18
18
  ]);
19
- const ModeSchema = z.enum(['pixelate', 'blur']);
19
+ const ModeSchema = z.enum(['pixelate', 'blur', 'mosaic']);
20
+ /**
21
+ * Version 2 added the `mosaic` mode. Version 3 renders a pixelate cell of at
22
+ * least 2 pixels; the bump changes the render cache key, so a render of an
23
+ * older log with a smaller cell is not served again. An older op is valid as
24
+ * it is.
25
+ */
26
+ const unchanged = (_from, op) => op;
27
+ /**
28
+ * An op accepts any positive amount, so a log written before the options
29
+ * minimum below still loads. The kernel renders a pixelate cell of at least
30
+ * two pixels whatever the amount: a one-pixel cell would show the pixel itself.
31
+ */
20
32
  const AmountSchema = z.number().gt(0).max(4096);
33
+ /** Host options start at 2 source px, the smallest cell that hides a pixel. */
34
+ const OptionAmountSchema = AmountSchema.min(2);
21
35
  const base = { id: z.string().min(1), at: z.number().optional() };
22
36
  export const redactAdd = defineOperation({
23
37
  type: 'redact.add',
@@ -31,6 +45,7 @@ export const redactAdd = defineOperation({
31
45
  regionId: z.string().min(1).optional(),
32
46
  })
33
47
  .strict(),
48
+ migrate: unchanged,
34
49
  reduce: (slice, op) => ({
35
50
  regions: [
36
51
  ...slice.regions.filter((r) => r.id !== (op.regionId ?? op.id)),
@@ -50,6 +65,7 @@ export const redactUpdate = defineOperation({
50
65
  amount: AmountSchema.optional(),
51
66
  })
52
67
  .strict(),
68
+ migrate: unchanged,
53
69
  reduce: (slice, op) => ({
54
70
  regions: slice.regions.map((r) => r.id === op.regionId
55
71
  ? {
@@ -66,11 +82,13 @@ export const redactRemove = defineOperation({
66
82
  schema: z
67
83
  .object({ type: z.literal('redact.remove'), ...base, regionId: z.string().min(1) })
68
84
  .strict(),
85
+ migrate: unchanged,
69
86
  reduce: (slice, op) => ({ regions: slice.regions.filter((r) => r.id !== op.regionId) }),
70
87
  });
71
88
  export const redactClear = defineOperation({
72
89
  type: 'redact.clear',
73
90
  schema: z.object({ type: z.literal('redact.clear'), ...base }).strict(),
91
+ migrate: unchanged,
74
92
  reduce: () => ({ regions: [] }),
75
93
  });
76
94
  export const RedactOptionsSchema = z
@@ -78,9 +96,9 @@ export const RedactOptionsSchema = z
78
96
  modes: z.array(ModeSchema).min(1),
79
97
  shapes: z.array(z.enum(['rect', 'path'])).min(1),
80
98
  defaultMode: ModeSchema,
81
- defaultAmount: AmountSchema,
99
+ defaultAmount: OptionAmountSchema,
82
100
  amountRange: z
83
- .object({ min: AmountSchema, max: AmountSchema, step: z.number().positive() })
101
+ .object({ min: OptionAmountSchema, max: OptionAmountSchema, step: z.number().positive() })
84
102
  .strict()
85
103
  .refine((r) => r.min < r.max, 'min must be below max'),
86
104
  enforce: z.boolean(),
@@ -90,7 +108,7 @@ export const RedactOptionsSchema = z
90
108
  .refine((o) => o.modes.includes(o.defaultMode), 'defaultMode must be one of modes')
91
109
  .refine((o) => o.defaultAmount >= o.amountRange.min && o.defaultAmount <= o.amountRange.max, 'defaultAmount must lie within amountRange');
92
110
  export const REDACT_DEFAULT_OPTIONS = {
93
- modes: ['pixelate', 'blur'],
111
+ modes: ['pixelate', 'blur', 'mosaic'],
94
112
  shapes: ['rect', 'path'],
95
113
  defaultMode: 'pixelate',
96
114
  defaultAmount: 12,
@@ -98,9 +116,37 @@ export const REDACT_DEFAULT_OPTIONS = {
98
116
  enforce: false,
99
117
  transform: true,
100
118
  };
119
+ /**
120
+ * True when a region is a path of four points that form a rectangle on the
121
+ * source, at any angle. The turn handle writes a turned rectangle this way, so
122
+ * `shapes: ['rect']` accepts it. The test runs in source pixels, because a
123
+ * turned rectangle is a parallelogram in normalised space when the source is
124
+ * not square. The diagonals must share their midpoint, which holds exactly
125
+ * under any scale. The right angle has a tolerance of 1% in its cosine, which
126
+ * covers a preview whose aspect ratio differs from the source by rounding.
127
+ */
128
+ function isTurnedRectangle(region, size) {
129
+ if (region.kind !== 'path' || region.points.length !== 4)
130
+ return false;
131
+ const [a, b, c, d] = region.points.map(([x, y]) => [x * size.width, y * size.height]);
132
+ const [ax = 0, ay = 0] = a;
133
+ const [bx = 0, by = 0] = b;
134
+ const [cx = 0, cy = 0] = c;
135
+ const [dx = 0, dy = 0] = d;
136
+ const e0 = [bx - ax, by - ay];
137
+ const e1 = [cx - bx, cy - by];
138
+ const len0 = Math.hypot(e0[0], e0[1]);
139
+ const len1 = Math.hypot(e1[0], e1[1]);
140
+ if (!(len0 > 1e-9 && len1 > 1e-9))
141
+ return false;
142
+ const tol = 1e-3 * Math.max(len0, len1);
143
+ const midpointsMeet = Math.hypot(ax + cx - bx - dx, ay + cy - by - dy) <= 2 * tol;
144
+ const rightAngle = Math.abs(e0[0] * e1[0] + e0[1] * e1[1]) <= 0.01 * len0 * len1;
145
+ return midpointsMeet && rightAngle;
146
+ }
101
147
  export const redactPlugin = definePlugin({
102
148
  id: 'redact',
103
- version: 1,
149
+ version: 3,
104
150
  operations: [redactAdd, redactUpdate, redactRemove, redactClear],
105
151
  initialDocument: { regions: [] },
106
152
  stage: { name: 'redact', order: 200 },
@@ -112,22 +158,24 @@ export const redactPlugin = definePlugin({
112
158
  schema: RedactOptionsSchema,
113
159
  defaults: REDACT_DEFAULT_OPTIONS,
114
160
  describe: {
115
- modes: 'Redaction modes offered (pixelate, blur).',
116
- shapes: 'Region shapes the user may draw (rect, path).',
161
+ modes: 'Redaction modes offered (pixelate, blur, mosaic). Only mosaic leaves no information about the covered pixels.',
162
+ shapes: 'Region shapes the user may draw (rect, path). With enforce, rect also accepts a turned rectangle, which is written as a four-point path.',
117
163
  defaultMode: 'Mode a new region starts with.',
118
- defaultAmount: 'Cell size or blur radius a new region starts with, in source px.',
119
- amountRange: 'Amounts accepted with enforce; the UI has no slider, new regions use defaultAmount.',
164
+ defaultAmount: 'Cell size or blur diameter a new region starts with, in source px. At least 2: a pixelate cell of one pixel shows the pixel.',
165
+ amountRange: 'Amounts accepted with enforce, min at least 2; the UI has no slider, new regions use defaultAmount.',
120
166
  enforce: 'Reject regions with modes, shapes or amounts outside the options.',
121
167
  transform: 'Handles to resize and turn a region after it is drawn; a turned rectangle is written as a four-point path. UI only.',
122
168
  },
123
169
  },
124
- validate: (op, { options }) => {
170
+ validate: (op, { options, source }) => {
125
171
  if ((op.type !== 'redact.add' && op.type !== 'redact.update') || !options.enforce)
126
172
  return null;
127
173
  const o = op;
128
174
  if (o.mode !== undefined && !options.modes.includes(o.mode))
129
175
  return `mode "${o.mode}" is not offered`;
130
- if (o.region !== undefined && !options.shapes.includes(o.region.kind))
176
+ if (o.region !== undefined &&
177
+ !options.shapes.includes(o.region.kind) &&
178
+ !(options.shapes.includes('rect') && isTurnedRectangle(o.region, source)))
131
179
  return `region shape "${o.region.kind}" is not offered`;
132
180
  if (o.amount !== undefined &&
133
181
  (o.amount < options.amountRange.min - 1e-9 || o.amount > options.amountRange.max + 1e-9))
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sealpixel/plugin-redact",
3
- "version": "1.0.0-rc.10",
4
- "description": "Pixelate or blur rectangular and freeform regions. Built for anonymisation: cells snap to the source grid so proxy and full renders match.",
3
+ "version": "1.0.0-rc.12",
4
+ "description": "Pixelate, blur or mosaic rectangular and freeform regions. Mosaic never reads the pixels it covers. Cells snap to the source grid so proxy and full renders match.",
5
5
  "license": "BUSL-1.1",
6
6
  "repository": {
7
7
  "type": "git",
@@ -27,15 +27,15 @@
27
27
  "./package.json": "./package.json"
28
28
  },
29
29
  "dependencies": {
30
- "@sealpixel/plugin-sdk": "1.0.0-rc.10"
30
+ "@sealpixel/plugin-sdk": "1.0.0-rc.12"
31
31
  },
32
32
  "peerDependencies": {
33
- "@sealpixel/core": "1.0.0-rc.10",
33
+ "@sealpixel/core": "1.0.0-rc.12",
34
34
  "zod": "^4.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@sealpixel/config": "0.0.0",
38
- "@sealpixel/core": "1.0.0-rc.10",
38
+ "@sealpixel/core": "1.0.0-rc.12",
39
39
  "@types/node": "^24.0.0",
40
40
  "typescript": "^6.0.0",
41
41
  "vitest": "^5.0.0",