@sealpixel/core 1.0.0-rc.11 → 1.0.0-rc.13

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 (48) hide show
  1. package/dist/errors.d.ts +1 -1
  2. package/dist/errors.d.ts.map +1 -1
  3. package/dist/errors.js.map +1 -1
  4. package/dist/generated/geometry.d.ts +1 -1
  5. package/dist/generated/plan.d.ts +6 -6
  6. package/dist/generated/plan.d.ts.map +1 -1
  7. package/dist/history.d.ts +2 -0
  8. package/dist/history.d.ts.map +1 -1
  9. package/dist/history.js +5 -1
  10. package/dist/history.js.map +1 -1
  11. package/dist/image-size.d.ts +4 -2
  12. package/dist/image-size.d.ts.map +1 -1
  13. package/dist/image-size.js +5 -3
  14. package/dist/image-size.js.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/inline-renderer.d.ts +2 -2
  19. package/dist/inline-renderer.d.ts.map +1 -1
  20. package/dist/inline-renderer.js +4 -4
  21. package/dist/inline-renderer.js.map +1 -1
  22. package/dist/plan.js +1 -1
  23. package/dist/plan.js.map +1 -1
  24. package/dist/registry.d.ts.map +1 -1
  25. package/dist/registry.js +10 -1
  26. package/dist/registry.js.map +1 -1
  27. package/dist/render.js +1 -1
  28. package/dist/render.js.map +1 -1
  29. package/dist/renderer-core.d.ts +13 -13
  30. package/dist/renderer-core.d.ts.map +1 -1
  31. package/dist/renderer-core.js +27 -19
  32. package/dist/renderer-core.js.map +1 -1
  33. package/dist/renderer.d.ts +3 -3
  34. package/dist/renderer.d.ts.map +1 -1
  35. package/dist/session.d.ts +24 -67
  36. package/dist/session.d.ts.map +1 -1
  37. package/dist/session.js +137 -238
  38. package/dist/session.js.map +1 -1
  39. package/dist/types.d.ts +1 -1
  40. package/dist/worker-protocol.d.ts +6 -6
  41. package/dist/worker-protocol.d.ts.map +1 -1
  42. package/dist/worker-renderer.d.ts +2 -2
  43. package/dist/worker-renderer.d.ts.map +1 -1
  44. package/dist/worker-renderer.js +8 -4
  45. package/dist/worker-renderer.js.map +1 -1
  46. package/dist/worker.js +5 -5
  47. package/dist/worker.js.map +1 -1
  48. package/package.json +2 -2
package/dist/session.js CHANGED
@@ -2,9 +2,10 @@ import { webCryptoSha256, withAssets } from './assets.js';
2
2
  import { compile } from './compile.js';
3
3
  import { SealpixelError } from './errors.js';
4
4
  import * as hist from './history.js';
5
- import { readImageSize } from './image-size.js';
6
5
  import { InlineRenderer } from './inline-renderer.js';
7
6
  import { createRegistry } from './registry.js';
7
+ const hashMismatch = () => new SealpixelError('SOURCE_MISMATCH', 'the saved edit log belongs to a different image (hash differs)');
8
+ const supersededError = () => new SealpixelError('ABORTED', 'a newer load() replaced this one');
8
9
  const EXT = {
9
10
  'image/png': 'png',
10
11
  'image/jpeg': 'jpg',
@@ -13,29 +14,29 @@ const EXT = {
13
14
  export function createEditorSession(options) {
14
15
  const registry = createRegistry(options.plugins);
15
16
  const maxClientMegapixels = options.limits?.maxClientMegapixels ?? 16;
16
- const maxClientBytes = options.limits?.maxClientBytes ?? 20e6;
17
+ const maxClientBytes = options.limits?.maxClientBytes ?? 50e6;
17
18
  const renderer = options.renderer ??
18
19
  new InlineRenderer({
19
20
  plugins: options.plugins,
20
21
  maxClientMegapixels,
21
- proxyMaxSide: options.proxy?.maxSide ?? 2048,
22
+ workingCopyMaxSide: options.workingCopy?.maxSide ?? 2048,
22
23
  });
23
24
  // A renderer handed in by the host outlives this session: hosts reuse it across sessions.
24
25
  const ownsRenderer = options.renderer === undefined;
25
- const proxyStrategy = options.proxy?.strategy ?? 'auto';
26
26
  const debounceMs = options.preview?.debounceMs ?? 80;
27
27
  const previewEnabled = options.preview?.enabled ?? true;
28
28
  const listeners = new Set();
29
+ const emptyHistory = () => hist.createHistory({
30
+ version: 1,
31
+ source: { id: '', width: 1, height: 1 },
32
+ plugins: registry.pluginVersions(),
33
+ ops: [],
34
+ });
29
35
  let state = {
30
36
  status: 'empty',
31
37
  source: null,
32
38
  resident: false,
33
- history: hist.createHistory({
34
- version: 1,
35
- source: { id: '', width: 1, height: 1 },
36
- plugins: registry.pluginVersions(),
37
- ops: [],
38
- }),
39
+ history: emptyHistory(),
39
40
  document: registry.initialDocument(),
40
41
  version: 0,
41
42
  preview: null,
@@ -43,10 +44,16 @@ export function createEditorSession(options) {
43
44
  error: null,
44
45
  };
45
46
  let previewTransform = null;
46
- /** Original bytes, kept for server renders and the server proxy strategy. */
47
- let originalBytes = null;
48
- /** Set once the original has been uploaded, so a proxy and a render share one copy. */
49
- let uploadedSource = null;
47
+ /**
48
+ * The image that `state.source` describes and the renderer holds, with its
49
+ * original bytes to restore the renderer after a failed load. Changes only
50
+ * together with `state.source`.
51
+ */
52
+ let committed = null;
53
+ /** Increments on every `load`. A load that sees a newer one gives up. */
54
+ let loadGeneration = 0;
55
+ /** Serializes the part of `load` that switches the renderer. */
56
+ let loadQueue = Promise.resolve();
50
57
  /** Bytes of assets added through `addAsset`, re-put after a renderer reload. */
51
58
  const localAssets = new Map();
52
59
  const resolver = options.assets
@@ -110,15 +117,21 @@ export function createEditorSession(options) {
110
117
  const log = previewTransform ? previewTransform(base) : base;
111
118
  try {
112
119
  const [image, geometry, viewGeometry] = await Promise.all([
113
- withAssets(() => renderer.render({ log, target: 'proxy', signal: controller.signal }), resolver, (id, bytes) => renderer.putAsset(id, bytes)),
120
+ withAssets(() => renderer.render({ log, target: 'workingCopy', signal: controller.signal }), resolver, (id, bytes) => renderer.putAsset(id, bytes)),
114
121
  // Geometry always describes the real output, even when a preview
115
122
  // transform shows something else on the stage.
116
- renderer.geometry({ log: base, target: 'proxy' }),
123
+ renderer.geometry({ log: base, target: 'workingCopy' }),
117
124
  // The stage needs the geometry of what it shows to keep the view steady.
118
- previewTransform ? renderer.geometry({ log, target: 'proxy' }) : null,
125
+ previewTransform ? renderer.geometry({ log, target: 'workingCopy' }) : null,
119
126
  ]);
120
- if (disposed || controller.signal.aborted || version !== state.version)
127
+ if (disposed || controller.signal.aborted || version !== state.version) {
128
+ // With previews disabled no later render clears `inflight`, so a stale
129
+ // result has to, or `whenIdle` never resolves.
130
+ if (inflight?.controller === controller)
131
+ inflight = null;
132
+ settleIdle();
121
133
  return null;
134
+ }
122
135
  const preview = { image, geometry, viewGeometry: viewGeometry ?? geometry, version };
123
136
  inflight = null;
124
137
  set({ preview, previewPending: false, error: null });
@@ -129,8 +142,10 @@ export function createEditorSession(options) {
129
142
  if (inflight?.controller === controller)
130
143
  inflight = null;
131
144
  const e = SealpixelError.from(error);
132
- if (e.name === 'ABORTED' || version !== state.version)
145
+ if (e.name === 'ABORTED' || version !== state.version) {
146
+ settleIdle();
133
147
  return null;
148
+ }
134
149
  set({ previewPending: false, error: e });
135
150
  settleIdle();
136
151
  return null;
@@ -143,7 +158,7 @@ export function createEditorSession(options) {
143
158
  const log = transform(hist.current(state.history));
144
159
  return withAssets(() => renderer.render({
145
160
  log,
146
- target: 'proxy',
161
+ target: 'workingCopy',
147
162
  ...(options?.signal ? { signal: options.signal } : {}),
148
163
  }), resolver, (id, bytes) => renderer.putAsset(id, bytes));
149
164
  }
@@ -165,127 +180,72 @@ export function createEditorSession(options) {
165
180
  return { bytes: new Uint8Array(await source.arrayBuffer()), name };
166
181
  }
167
182
  /**
168
- * Decodes client-side when the image is within the limits or the strategy
169
- * says so; otherwise asks the server for a deterministic proxy.
183
+ * Decodes the original in WebAssembly. The renderer keeps the full image
184
+ * only within `maxClientMegapixels`; the preview always uses the working copy.
170
185
  */
171
- async function loadInto(bytes, id) {
172
- const megapixels = estimateMegapixels(bytes);
173
- const useServer = proxyStrategy === 'server' ||
174
- (proxyStrategy === 'auto' &&
175
- megapixels !== null &&
176
- megapixels > maxClientMegapixels &&
177
- options.server !== undefined);
178
- if (useServer && options.server) {
179
- const source = await sourceFor(bytes, options.server.endpoint);
180
- const res = await serverFetch({
181
- source,
182
- mode: 'proxy',
183
- proxyMaxSide: options.proxy?.maxSide ?? 2048,
184
- sourceId: id,
185
- // A named source has to be claimed by its hash; the bytes are right
186
- // here, so this costs nothing and an inline source ignores it.
187
- ...(source.kind === 's3' ? { sourceHash: await webCryptoSha256(bytes) } : {}),
188
- });
189
- const descriptor = JSON.parse(res.headers.get('x-sealpixel-descriptor') ?? '{}');
190
- const proxyPng = new Uint8Array(await res.arrayBuffer());
191
- return renderer.loadProxyEncoded(proxyPng, { ...descriptor, id });
192
- }
186
+ function loadInto(bytes, id) {
193
187
  return renderer.load(bytes, id, { maxClientMegapixels });
194
188
  }
195
- /**
196
- * Where the upload route lives, given the render endpoint. A trailing
197
- * `/render` becomes `/upload`, because a host that names one route usually
198
- * names the other beside it; anything else gets `/upload` appended, which is
199
- * what a bare function url needs.
200
- */
201
- function uploadEndpointFor(endpoint) {
202
- if (options.server?.uploadEndpoint)
203
- return options.server.uploadEndpoint;
204
- return endpoint.endsWith('/render')
205
- ? `${endpoint.slice(0, -'/render'.length)}/upload`
206
- : `${endpoint.replace(/\/$/, '')}/upload`;
189
+ function resolveSavedState(saved) {
190
+ const wrapped = saved;
191
+ const raw = wrapped && typeof wrapped === 'object' && 'log' in wrapped ? wrapped.log : saved;
192
+ const log = registry.parseEditLog(raw);
193
+ const index = typeof wrapped?.index === 'number' ? wrapped.index : undefined;
194
+ return { log, index };
195
+ }
196
+ /** Runs `task` after every renderer switch that started before it. */
197
+ function exclusive(task) {
198
+ const run = loadQueue.then(task);
199
+ loadQueue = run.catch(() => { });
200
+ return run;
207
201
  }
208
202
  /**
209
- * Puts the original in the endpoint's store and remembers the reference, so a
210
- * proxy request and the render that follows it upload once between them.
211
- *
212
- * Returns null when the endpoint has no upload route, which leaves the caller
213
- * to send the original inline as before. Any other failure throws: sending
214
- * megabytes inline after an upload failed only trades one error for a more
215
- * confusing one.
203
+ * Puts the committed image back into the renderer after a load switched it
204
+ * and then failed. If that fails too, the session drops to `empty`: a state
205
+ * that names an image the renderer does not hold renders wrong pixels.
216
206
  */
217
- async function ensureUploaded(bytes, endpoint) {
218
- if (uploadedSource)
219
- return uploadedSource;
220
- const doFetch = options.server?.fetch ?? fetch;
221
- let contentType = 'application/octet-stream';
207
+ async function restoreCommitted() {
208
+ // Nothing committed: the state is `empty` and nothing renders.
209
+ if (!committed)
210
+ return;
222
211
  try {
223
- contentType = readImageSize(bytes).mimeType ?? contentType;
212
+ await loadInto(committed.bytes, committed.id);
224
213
  }
225
214
  catch {
226
- // Unrecognised header: let the route decide whether it takes this.
227
- }
228
- const ticketRes = await doFetch(uploadEndpointFor(endpoint), {
229
- method: 'POST',
230
- headers: { 'content-type': 'application/json', ...(options.server?.headers ?? {}) },
231
- body: JSON.stringify({ contentType, bytes: bytes.byteLength }),
232
- });
233
- // No route here, or a store that cannot sign one.
234
- if (ticketRes.status === 404 || ticketRes.status === 501)
235
- return null;
236
- if (!ticketRes.ok) {
237
- const detail = (await ticketRes.json().catch(() => ({})));
238
- throw new SealpixelError(detail.error ?? 'SERVER_ERROR', String(detail.message ?? `upload ticket refused with HTTP ${ticketRes.status}`));
215
+ committed = null;
216
+ set({
217
+ status: 'empty',
218
+ source: null,
219
+ resident: false,
220
+ history: emptyHistory(),
221
+ document: registry.initialDocument(),
222
+ version: state.version + 1,
223
+ preview: null,
224
+ });
239
225
  }
240
- const ticket = (await ticketRes.json());
241
- const form = new FormData();
242
- // The file goes last. A presigned POST policy ignores anything after it.
243
- for (const [name, value] of Object.entries(ticket.fields))
244
- form.append(name, value);
245
- form.append('file', new Blob([bytes], { type: contentType }));
246
- const put = await doFetch(ticket.url, { method: 'POST', body: form });
247
- if (!put.ok)
248
- throw new SealpixelError('SERVER_ERROR', `the store refused the upload with HTTP ${put.status}`);
249
- uploadedSource = { kind: 's3', bucket: ticket.bucket, key: ticket.key };
250
- return uploadedSource;
251
226
  }
252
- /** The source for a server call: the uploaded reference when it is worth one, else inline. */
253
- async function sourceFor(bytes, endpoint) {
254
- const over = options.server?.uploadOver ?? 4_000_000;
255
- if (bytes.byteLength > over) {
256
- const uploaded = await ensureUploaded(bytes, endpoint);
257
- if (uploaded)
258
- return uploaded;
227
+ /** History for a saved state resumed on a freshly loaded image. Throws `SOURCE_MISMATCH`. */
228
+ function savedHistory(saved, descriptor, index) {
229
+ const { log } = saved;
230
+ if (log.source.hash !== undefined && log.source.hash !== descriptor.hash) {
231
+ throw hashMismatch();
259
232
  }
260
- return { kind: 'inline', base64: toBase64(bytes) };
261
- }
262
- async function serverFetch(body, endpoint = options.server?.endpoint) {
263
- if (!endpoint)
264
- throw new SealpixelError('NOT_CONFIGURED', 'no server endpoint configured');
265
- const doFetch = options.server?.fetch ?? fetch;
266
- const res = await doFetch(endpoint, {
267
- method: 'POST',
268
- headers: { 'content-type': 'application/json', ...(options.server?.headers ?? {}) },
269
- body: JSON.stringify(body),
270
- });
271
- if (!res.ok) {
272
- const detail = (await res
273
- .json()
274
- .catch(() => ({ error: 'SERVER_ERROR', message: `HTTP ${res.status}` })));
275
- throw new SealpixelError(detail.error ?? 'SERVER_ERROR', String(detail.message ?? `HTTP ${res.status}`), detail.details);
233
+ if (log.source.width !== descriptor.width || log.source.height !== descriptor.height) {
234
+ throw new SealpixelError('SOURCE_MISMATCH', `the saved edit log expects ${log.source.width}x${log.source.height}, image is ${descriptor.width}x${descriptor.height}`);
276
235
  }
277
- return res;
278
- }
279
- function resolveSavedState(saved) {
280
- const wrapped = saved;
281
- const raw = wrapped && typeof wrapped === 'object' && 'log' in wrapped ? wrapped.log : saved;
282
- const log = registry.parseEditLog(raw);
283
- const index = typeof wrapped?.index === 'number' ? wrapped.index : undefined;
284
- return { log, index };
236
+ return hist.createHistory({
237
+ ...log,
238
+ source: {
239
+ ...log.source,
240
+ hash: descriptor.hash ?? log.source.hash,
241
+ },
242
+ }, index ?? saved.index ?? log.ops.length);
285
243
  }
286
244
  const session = {
287
245
  registry,
288
246
  async load(source, loadOptions = {}) {
247
+ const generation = ++loadGeneration;
248
+ const superseded = () => generation !== loadGeneration;
289
249
  if (timer)
290
250
  clearTimeout(timer);
291
251
  timer = null;
@@ -294,56 +254,68 @@ export function createEditorSession(options) {
294
254
  set({ status: 'loading', error: null, preview: null, previewPending: false });
295
255
  try {
296
256
  const { bytes, name } = await readBytes(source);
257
+ if (superseded())
258
+ throw supersededError();
297
259
  if (bytes.byteLength > maxClientBytes) {
298
260
  throw new SealpixelError('TOO_LARGE', `${bytes.byteLength} bytes exceed the client limit of ${maxClientBytes}`);
299
261
  }
300
262
  const id = loadOptions.id ?? (name ? name.replace(/\.[^.]+$/, '') : 'image');
301
- originalBytes = bytes;
302
- // The previous image's upload says nothing about this one.
303
- uploadedSource = null;
304
- const loaded = await loadInto(bytes, id);
305
- const descriptor = loaded.descriptor;
306
- let history;
307
- if (loadOptions.editLog !== undefined) {
308
- const { log, index } = resolveSavedState(loadOptions.editLog);
309
- if (log.source.hash !== undefined && log.source.hash !== descriptor.hash) {
310
- throw new SealpixelError('SOURCE_MISMATCH', 'the saved edit log belongs to a different image (hash differs)');
263
+ // Validate what can be validated before the renderer switches.
264
+ const saved = loadOptions.editLog === undefined ? null : resolveSavedState(loadOptions.editLog);
265
+ if (saved?.log.source.hash !== undefined) {
266
+ if (saved.log.source.hash !== (await webCryptoSha256(bytes)))
267
+ throw hashMismatch();
268
+ if (superseded())
269
+ throw supersededError();
270
+ }
271
+ return await exclusive(async () => {
272
+ if (superseded())
273
+ throw supersededError();
274
+ const loaded = await loadInto(bytes, id);
275
+ // The renderer holds the new image now. Until the state commits to
276
+ // it, any failure puts the renderer back on the committed image.
277
+ try {
278
+ if (superseded())
279
+ throw supersededError();
280
+ const descriptor = loaded.descriptor;
281
+ const history = saved
282
+ ? savedHistory(saved, descriptor, loadOptions.index)
283
+ : hist.createHistory({
284
+ version: 1,
285
+ source: descriptor,
286
+ plugins: registry.pluginVersions(),
287
+ ops: [],
288
+ });
289
+ const document = compile(hist.current(history), registry);
290
+ committed = { bytes, id };
291
+ set({
292
+ status: 'ready',
293
+ source: descriptor,
294
+ resident: loaded.resident,
295
+ history,
296
+ document,
297
+ version: state.version + 1,
298
+ preview: null,
299
+ error: null,
300
+ });
301
+ schedulePreview();
302
+ return descriptor;
311
303
  }
312
- if (log.source.width !== descriptor.width || log.source.height !== descriptor.height) {
313
- throw new SealpixelError('SOURCE_MISMATCH', `the saved edit log expects ${log.source.width}x${log.source.height}, image is ${descriptor.width}x${descriptor.height}`);
304
+ catch (error) {
305
+ await restoreCommitted();
306
+ throw error;
314
307
  }
315
- history = hist.createHistory({
316
- ...log,
317
- source: {
318
- ...log.source,
319
- hash: descriptor.hash ?? log.source.hash,
320
- },
321
- }, loadOptions.index ?? index ?? log.ops.length);
322
- }
323
- else {
324
- history = hist.createHistory({
325
- version: 1,
326
- source: descriptor,
327
- plugins: registry.pluginVersions(),
328
- ops: [],
329
- });
330
- }
331
- set({
332
- status: 'ready',
333
- source: descriptor,
334
- resident: loaded.resident,
335
- history,
336
- document: compile(hist.current(history), registry),
337
- version: state.version + 1,
338
- preview: null,
339
- error: null,
340
308
  });
341
- schedulePreview();
342
- return descriptor;
343
309
  }
344
310
  catch (error) {
345
311
  const e = SealpixelError.from(error);
346
- set({ status: state.source ? 'ready' : 'empty', error: e });
312
+ // Only the newest load reports into the state. It waits for the
313
+ // renderer switches ahead of it, so the state never says `ready` while
314
+ // an older load still holds the renderer on another image.
315
+ await exclusive(async () => {
316
+ if (!superseded())
317
+ set({ status: state.source ? 'ready' : 'empty', error: e });
318
+ });
347
319
  throw e;
348
320
  }
349
321
  },
@@ -432,7 +404,7 @@ export function createEditorSession(options) {
432
404
  async export(exportOptions) {
433
405
  ensureReady();
434
406
  if (!state.resident) {
435
- throw new SealpixelError('NOT_RESIDENT', 'full-resolution pixels are not client-side; use requestServerRender');
407
+ throw new SealpixelError('NOT_RESIDENT', `the image is larger than maxClientMegapixels (${maxClientMegapixels}), so its full resolution is not in the browser; render the original outside the browser with the log from getEditLog()`);
436
408
  }
437
409
  const log = state.history.log;
438
410
  const upTo = exportOptions.upTo ?? state.history.index;
@@ -452,8 +424,6 @@ export function createEditorSession(options) {
452
424
  async download(downloadOptions = {}) {
453
425
  ensureReady();
454
426
  const output = downloadOptions.output ?? { format: 'image/png' };
455
- const via = downloadOptions.via ?? 'auto';
456
- const useServer = via === 'server' || (via === 'auto' && !state.resident);
457
427
  const exportOptions = {
458
428
  output,
459
429
  ...(downloadOptions.embedEditLog === undefined
@@ -462,66 +432,12 @@ export function createEditorSession(options) {
462
432
  ...(downloadOptions.upTo === undefined ? {} : { upTo: downloadOptions.upTo }),
463
433
  };
464
434
  const save = options.saveFile ?? browserSaveFile;
465
- if (useServer) {
466
- const result = await session.requestServerRender({
467
- ...exportOptions,
468
- destination: 'response',
469
- });
470
- const filename = downloadOptions.filename ??
471
- `${state.source?.id ?? 'image'}-${result.hash.slice(0, 8)}.${EXT[output.format]}`;
472
- await save(result.bytes, filename, result.mimeType);
473
- return { filename, result };
474
- }
475
435
  const result = await session.export(exportOptions);
476
436
  const filename = downloadOptions.filename ??
477
437
  `${state.source?.id ?? 'image'}-${result.hash.slice(0, 8)}.${EXT[output.format]}`;
478
438
  await save(result.bytes, filename, result.mimeType);
479
439
  return { filename, result };
480
440
  },
481
- async requestServerRender(renderOptions) {
482
- ensureReady();
483
- const endpoint = renderOptions.endpoint ?? options.server?.endpoint;
484
- if (!endpoint)
485
- throw new SealpixelError('NOT_CONFIGURED', 'no server endpoint configured');
486
- const source = renderOptions.source ?? (originalBytes ? await sourceFor(originalBytes, endpoint) : null);
487
- if (!source)
488
- throw new SealpixelError('NO_SOURCE', 'original bytes are not available; pass a source reference');
489
- const destination = renderOptions.destination ?? 'response';
490
- const body = {
491
- source,
492
- editLog: state.history.log,
493
- output: renderOptions.output,
494
- upTo: renderOptions.upTo ?? state.history.index,
495
- ...(renderOptions.embedEditLog ? { embedEditLog: true } : {}),
496
- destination: { kind: destination },
497
- };
498
- const res = await serverFetch(body, endpoint);
499
- if (destination === 's3') {
500
- const job = (await res.json());
501
- return {
502
- url: job.url,
503
- objectKey: job.objectKey,
504
- bucket: job.bucket,
505
- hash: job.hash,
506
- width: job.width,
507
- height: job.height,
508
- mimeType: job.mimeType,
509
- cached: job.cached,
510
- jobKey: job.key,
511
- };
512
- }
513
- const bytes = new Uint8Array(await res.arrayBuffer());
514
- return {
515
- bytes,
516
- hash: res.headers.get('x-sealpixel-hash') ?? '',
517
- width: state.preview?.geometry.logicalOut.width ?? 0,
518
- height: state.preview?.geometry.logicalOut.height ?? 0,
519
- mimeType: res.headers.get('content-type') ??
520
- renderOptions.output.format,
521
- cached: res.headers.get('x-sealpixel-cached') === 'true',
522
- jobKey: res.headers.get('x-sealpixel-job') ?? '',
523
- };
524
- },
525
441
  dispose() {
526
442
  disposed = true;
527
443
  if (timer)
@@ -567,21 +483,4 @@ export async function browserSaveFile(bytes, filename, mimeType) {
567
483
  setTimeout(() => URL.revokeObjectURL(url), 10_000);
568
484
  }
569
485
  }
570
- function estimateMegapixels(bytes) {
571
- try {
572
- const { width, height } = readImageSize(bytes);
573
- return (width * height) / 1e6;
574
- }
575
- catch {
576
- return null;
577
- }
578
- }
579
- function toBase64(bytes) {
580
- if (typeof Buffer !== 'undefined')
581
- return Buffer.from(bytes).toString('base64');
582
- let bin = '';
583
- for (let i = 0; i < bytes.length; i += 0x8000)
584
- bin += String.fromCharCode(...bytes.subarray(i, i + 0x8000));
585
- return btoa(bin);
586
- }
587
486
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -80,7 +80,7 @@ export interface RenderOptions {
80
80
  output: OutputOptions;
81
81
  /**
82
82
  * `truth` (default) requires the buffer to have the logical source
83
- * dimensions. `preview` accepts a proxy and scales lengths accordingly.
83
+ * dimensions. `preview` accepts a working copy and scales lengths accordingly.
84
84
  */
85
85
  mode?: 'truth' | 'preview';
86
86
  /** Render only `ops[0..upTo)`. Defaults to all ops. */