@sealpixel/core 1.0.0-rc.12 → 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.
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/generated/geometry.d.ts +1 -1
- package/dist/generated/plan.d.ts +3 -3
- package/dist/generated/plan.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inline-renderer.d.ts +2 -2
- package/dist/inline-renderer.d.ts.map +1 -1
- package/dist/inline-renderer.js +4 -4
- package/dist/inline-renderer.js.map +1 -1
- package/dist/plan.js +1 -1
- package/dist/plan.js.map +1 -1
- package/dist/render.js +1 -1
- package/dist/render.js.map +1 -1
- package/dist/renderer-core.d.ts +13 -13
- package/dist/renderer-core.d.ts.map +1 -1
- package/dist/renderer-core.js +27 -19
- package/dist/renderer-core.js.map +1 -1
- package/dist/renderer.d.ts +3 -3
- package/dist/renderer.d.ts.map +1 -1
- package/dist/session.d.ts +20 -70
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +16 -198
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/worker-protocol.d.ts +6 -6
- package/dist/worker-protocol.d.ts.map +1 -1
- package/dist/worker-renderer.d.ts +2 -2
- package/dist/worker-renderer.d.ts.map +1 -1
- package/dist/worker-renderer.js +8 -4
- package/dist/worker-renderer.js.map +1 -1
- package/dist/worker.js +5 -5
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
package/dist/session.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Headless editor session. Owns the edit log (as `History`), the derived
|
|
3
3
|
* document, and a renderer. Every state change schedules a debounced preview
|
|
4
|
-
* render on the
|
|
4
|
+
* render on the working copy; stale results are discarded by version.
|
|
5
5
|
*/
|
|
6
6
|
import type { RgbaBuffer } from '@sealpixel/wasm';
|
|
7
7
|
import { type AssetResolver } from './assets.js';
|
|
@@ -27,8 +27,10 @@ export interface SessionOptions {
|
|
|
27
27
|
renderer?: Renderer;
|
|
28
28
|
/**
|
|
29
29
|
* How much of the original stays in the browser. Default 16 megapixels and
|
|
30
|
-
*
|
|
31
|
-
*
|
|
30
|
+
* 50e6 bytes, enough for a camera JPEG of 60 megapixels. An image above
|
|
31
|
+
* `maxClientMegapixels` is not resident: the preview works on a working
|
|
32
|
+
* copy, and `export` fails with `NOT_RESIDENT`: the host renders the
|
|
33
|
+
* original elsewhere. An image above
|
|
32
34
|
* `maxClientBytes` does not load at all (`TOO_LARGE`). The megapixel limit
|
|
33
35
|
* reaches the renderer with every load, so a shared worker follows the
|
|
34
36
|
* session that loads into it.
|
|
@@ -42,35 +44,12 @@ export interface SessionOptions {
|
|
|
42
44
|
enabled?: boolean;
|
|
43
45
|
};
|
|
44
46
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* `
|
|
47
|
+
* The preview image. The session always decodes the original in WebAssembly
|
|
48
|
+
* and downscales it itself. `maxSide` is the longest side for the default
|
|
49
|
+
* renderer. Default 2048. A `renderer` passed in uses its own setting.
|
|
48
50
|
*/
|
|
49
|
-
|
|
50
|
-
endpoint: string;
|
|
51
|
-
fetch?: typeof fetch;
|
|
52
|
-
headers?: Record<string, string>;
|
|
53
|
-
/**
|
|
54
|
-
* Send the original to the endpoint's upload route instead of inside the
|
|
55
|
-
* request once it is larger than this many bytes. Default 4_000_000.
|
|
56
|
-
*
|
|
57
|
-
* A request body has a ceiling that has nothing to do with the image: a
|
|
58
|
-
* Lambda Function URL refuses anything over 6 MB, and an inline source
|
|
59
|
-
* travels base64-encoded, a third larger again. Above that the original has
|
|
60
|
-
* to reach the store another way.
|
|
61
|
-
*
|
|
62
|
-
* An endpoint without the route answers 404 and the original goes inline
|
|
63
|
-
* after all, which is what happened before this existed. Set
|
|
64
|
-
* `Number.POSITIVE_INFINITY` to never upload, or 0 to always.
|
|
65
|
-
*/
|
|
66
|
-
uploadOver?: number;
|
|
67
|
-
/** Defaults to `endpoint` with a trailing `/render` swapped for `/upload`, or `/upload` appended. */
|
|
68
|
-
uploadEndpoint?: string;
|
|
69
|
-
};
|
|
70
|
-
/** How to obtain the preview for images above the client limits. Default `auto`. */
|
|
71
|
-
proxy?: {
|
|
51
|
+
workingCopy?: {
|
|
72
52
|
maxSide?: number;
|
|
73
|
-
strategy?: 'auto' | 'wasm' | 'server';
|
|
74
53
|
};
|
|
75
54
|
/** Fonts and images referenced by the log. Defaults to the plugins' declarations with relative urls. */
|
|
76
55
|
assets?: AssetResolver;
|
|
@@ -114,16 +93,14 @@ export interface ExportOptions {
|
|
|
114
93
|
}
|
|
115
94
|
export interface DownloadOptions extends Partial<ExportOptions> {
|
|
116
95
|
filename?: string;
|
|
117
|
-
/** `auto` renders locally when the image is resident, otherwise on the server. */
|
|
118
|
-
via?: 'auto' | 'local' | 'server';
|
|
119
96
|
}
|
|
120
97
|
export interface EditorSession {
|
|
121
98
|
readonly registry: Registry;
|
|
122
99
|
/**
|
|
123
100
|
* Loads an image, optionally resuming a saved state. On failure the session
|
|
124
|
-
* stays on the previous image: the state
|
|
125
|
-
*
|
|
126
|
-
*
|
|
101
|
+
* stays on the previous image: the state and the renderer keep describing
|
|
102
|
+
* it. When a newer `load` starts before this one finishes, this one rejects
|
|
103
|
+
* with `ABORTED` and the newer one wins.
|
|
127
104
|
*/
|
|
128
105
|
load(source: LoadSource, options?: LoadOptions): Promise<SourceDescriptor>;
|
|
129
106
|
dispatch(op: Operation): void;
|
|
@@ -155,7 +132,7 @@ export interface EditorSession {
|
|
|
155
132
|
*/
|
|
156
133
|
setPreviewTransform(transform: ((log: EditLog) => EditLog) | null): void;
|
|
157
134
|
/**
|
|
158
|
-
* Renders a
|
|
135
|
+
* Renders a working-copy-sized image from the current log, transformed, and returns
|
|
159
136
|
* it without touching the stage, the state or the history. Tools use it to
|
|
160
137
|
* show what an edit the user has not made yet would look like: the filter
|
|
161
138
|
* tool renders its thumbnails from the log with the filter removed, so a
|
|
@@ -173,46 +150,19 @@ export interface EditorSession {
|
|
|
173
150
|
id?: string;
|
|
174
151
|
url?: string;
|
|
175
152
|
}): Promise<AssetDeclaration>;
|
|
153
|
+
/**
|
|
154
|
+
* Renders the full resolution in the browser. Throws `NOT_RESIDENT` when the
|
|
155
|
+
* image is above `maxClientMegapixels`: the host then renders the original
|
|
156
|
+
* elsewhere, from the log that `getEditLog()` returns.
|
|
157
|
+
*/
|
|
176
158
|
export(options: ExportOptions): Promise<ExportResult>;
|
|
159
|
+
/** Exports like `export` and hands the file to `saveFile`. */
|
|
177
160
|
download(options?: DownloadOptions): Promise<{
|
|
178
161
|
filename: string;
|
|
179
|
-
result: ExportResult
|
|
162
|
+
result: ExportResult;
|
|
180
163
|
}>;
|
|
181
|
-
/**
|
|
182
|
-
* Renders on the server from the original bytes (inline) or a host-provided
|
|
183
|
-
* source reference. With `destination: 's3'` the server stores the object and
|
|
184
|
-
* returns its key and presigned url; otherwise the bytes come back.
|
|
185
|
-
*/
|
|
186
|
-
requestServerRender(options: ServerRenderOptions): Promise<ServerRenderResult>;
|
|
187
164
|
dispose(): void;
|
|
188
165
|
}
|
|
189
|
-
export interface ServerRenderOptions extends ExportOptions {
|
|
190
|
-
/** Defaults to the loaded bytes sent inline. Hosts that uploaded the original pass its reference. */
|
|
191
|
-
source?: {
|
|
192
|
-
kind: 's3';
|
|
193
|
-
bucket?: string;
|
|
194
|
-
key: string;
|
|
195
|
-
} | {
|
|
196
|
-
kind: 'url';
|
|
197
|
-
url: string;
|
|
198
|
-
};
|
|
199
|
-
destination?: 's3' | 'response';
|
|
200
|
-
endpoint?: string;
|
|
201
|
-
}
|
|
202
|
-
export interface ServerRenderResult {
|
|
203
|
-
/** Present for `destination: 'response'`. */
|
|
204
|
-
bytes?: Uint8Array;
|
|
205
|
-
/** Present for `destination: 's3'`. */
|
|
206
|
-
url?: string | null;
|
|
207
|
-
objectKey?: string;
|
|
208
|
-
bucket?: string;
|
|
209
|
-
hash: string;
|
|
210
|
-
width: number;
|
|
211
|
-
height: number;
|
|
212
|
-
mimeType: OutputOptions['format'];
|
|
213
|
-
cached: boolean;
|
|
214
|
-
jobKey: string;
|
|
215
|
-
}
|
|
216
166
|
export declare function createEditorSession(options: SessionOptions): EditorSession;
|
|
217
167
|
/** Default `saveFile`: an `<a download>` click, with the share sheet as a fallback on iOS Safari. */
|
|
218
168
|
export declare function browserSaveFile(bytes: Uint8Array, filename: string, mimeType: string): Promise<void>;
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAA+B,MAAM,aAAa,CAAC;AAE9E,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -2,7 +2,6 @@ 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';
|
|
8
7
|
const hashMismatch = () => new SealpixelError('SOURCE_MISMATCH', 'the saved edit log belongs to a different image (hash differs)');
|
|
@@ -15,16 +14,15 @@ const EXT = {
|
|
|
15
14
|
export function createEditorSession(options) {
|
|
16
15
|
const registry = createRegistry(options.plugins);
|
|
17
16
|
const maxClientMegapixels = options.limits?.maxClientMegapixels ?? 16;
|
|
18
|
-
const maxClientBytes = options.limits?.maxClientBytes ??
|
|
17
|
+
const maxClientBytes = options.limits?.maxClientBytes ?? 50e6;
|
|
19
18
|
const renderer = options.renderer ??
|
|
20
19
|
new InlineRenderer({
|
|
21
20
|
plugins: options.plugins,
|
|
22
21
|
maxClientMegapixels,
|
|
23
|
-
|
|
22
|
+
workingCopyMaxSide: options.workingCopy?.maxSide ?? 2048,
|
|
24
23
|
});
|
|
25
24
|
// A renderer handed in by the host outlives this session: hosts reuse it across sessions.
|
|
26
25
|
const ownsRenderer = options.renderer === undefined;
|
|
27
|
-
const proxyStrategy = options.proxy?.strategy ?? 'auto';
|
|
28
26
|
const debounceMs = options.preview?.debounceMs ?? 80;
|
|
29
27
|
const previewEnabled = options.preview?.enabled ?? true;
|
|
30
28
|
const listeners = new Set();
|
|
@@ -47,9 +45,9 @@ export function createEditorSession(options) {
|
|
|
47
45
|
};
|
|
48
46
|
let previewTransform = null;
|
|
49
47
|
/**
|
|
50
|
-
* The image that `state.source` describes and the renderer holds
|
|
51
|
-
* original bytes
|
|
52
|
-
*
|
|
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`.
|
|
53
51
|
*/
|
|
54
52
|
let committed = null;
|
|
55
53
|
/** Increments on every `load`. A load that sees a newer one gives up. */
|
|
@@ -119,12 +117,12 @@ export function createEditorSession(options) {
|
|
|
119
117
|
const log = previewTransform ? previewTransform(base) : base;
|
|
120
118
|
try {
|
|
121
119
|
const [image, geometry, viewGeometry] = await Promise.all([
|
|
122
|
-
withAssets(() => renderer.render({ log, target: '
|
|
120
|
+
withAssets(() => renderer.render({ log, target: 'workingCopy', signal: controller.signal }), resolver, (id, bytes) => renderer.putAsset(id, bytes)),
|
|
123
121
|
// Geometry always describes the real output, even when a preview
|
|
124
122
|
// transform shows something else on the stage.
|
|
125
|
-
renderer.geometry({ log: base, target: '
|
|
123
|
+
renderer.geometry({ log: base, target: 'workingCopy' }),
|
|
126
124
|
// The stage needs the geometry of what it shows to keep the view steady.
|
|
127
|
-
previewTransform ? renderer.geometry({ log, target: '
|
|
125
|
+
previewTransform ? renderer.geometry({ log, target: 'workingCopy' }) : null,
|
|
128
126
|
]);
|
|
129
127
|
if (disposed || controller.signal.aborted || version !== state.version) {
|
|
130
128
|
// With previews disabled no later render clears `inflight`, so a stale
|
|
@@ -160,7 +158,7 @@ export function createEditorSession(options) {
|
|
|
160
158
|
const log = transform(hist.current(state.history));
|
|
161
159
|
return withAssets(() => renderer.render({
|
|
162
160
|
log,
|
|
163
|
-
target: '
|
|
161
|
+
target: 'workingCopy',
|
|
164
162
|
...(options?.signal ? { signal: options.signal } : {}),
|
|
165
163
|
}), resolver, (id, bytes) => renderer.putAsset(id, bytes));
|
|
166
164
|
}
|
|
@@ -182,117 +180,12 @@ export function createEditorSession(options) {
|
|
|
182
180
|
return { bytes: new Uint8Array(await source.arrayBuffer()), name };
|
|
183
181
|
}
|
|
184
182
|
/**
|
|
185
|
-
* Decodes
|
|
186
|
-
*
|
|
183
|
+
* Decodes the original in WebAssembly. The renderer keeps the full image
|
|
184
|
+
* only within `maxClientMegapixels`; the preview always uses the working copy.
|
|
187
185
|
*/
|
|
188
|
-
|
|
189
|
-
const megapixels = estimateMegapixels(bytes);
|
|
190
|
-
const useServer = proxyStrategy === 'server' ||
|
|
191
|
-
(proxyStrategy === 'auto' &&
|
|
192
|
-
megapixels !== null &&
|
|
193
|
-
megapixels > maxClientMegapixels &&
|
|
194
|
-
options.server !== undefined);
|
|
195
|
-
if (useServer && options.server) {
|
|
196
|
-
const source = await sourceFor(bytes, options.server.endpoint, upload);
|
|
197
|
-
const res = await serverFetch({
|
|
198
|
-
source,
|
|
199
|
-
mode: 'proxy',
|
|
200
|
-
proxyMaxSide: options.proxy?.maxSide ?? 2048,
|
|
201
|
-
sourceId: id,
|
|
202
|
-
// A named source has to be claimed by its hash; the bytes are right
|
|
203
|
-
// here, so this costs nothing and an inline source ignores it.
|
|
204
|
-
...(source.kind === 's3' ? { sourceHash: await webCryptoSha256(bytes) } : {}),
|
|
205
|
-
});
|
|
206
|
-
const descriptor = JSON.parse(res.headers.get('x-sealpixel-descriptor') ?? '{}');
|
|
207
|
-
const proxyPng = new Uint8Array(await res.arrayBuffer());
|
|
208
|
-
return renderer.loadProxyEncoded(proxyPng, { ...descriptor, id });
|
|
209
|
-
}
|
|
186
|
+
function loadInto(bytes, id) {
|
|
210
187
|
return renderer.load(bytes, id, { maxClientMegapixels });
|
|
211
188
|
}
|
|
212
|
-
/**
|
|
213
|
-
* Where the upload route lives, given the render endpoint. A trailing
|
|
214
|
-
* `/render` becomes `/upload`, because a host that names one route usually
|
|
215
|
-
* names the other beside it; anything else gets `/upload` appended, which is
|
|
216
|
-
* what a bare function url needs.
|
|
217
|
-
*/
|
|
218
|
-
function uploadEndpointFor(endpoint) {
|
|
219
|
-
if (options.server?.uploadEndpoint)
|
|
220
|
-
return options.server.uploadEndpoint;
|
|
221
|
-
return endpoint.endsWith('/render')
|
|
222
|
-
? `${endpoint.slice(0, -'/render'.length)}/upload`
|
|
223
|
-
: `${endpoint.replace(/\/$/, '')}/upload`;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Puts the original in the endpoint's store and remembers the reference, so a
|
|
227
|
-
* proxy request and the render that follows it upload once between them.
|
|
228
|
-
*
|
|
229
|
-
* Returns null when the endpoint has no upload route, which leaves the caller
|
|
230
|
-
* to send the original inline as before. Any other failure throws: sending
|
|
231
|
-
* megabytes inline after an upload failed only trades one error for a more
|
|
232
|
-
* confusing one.
|
|
233
|
-
*/
|
|
234
|
-
async function ensureUploaded(bytes, endpoint, upload) {
|
|
235
|
-
if (upload.source)
|
|
236
|
-
return upload.source;
|
|
237
|
-
const doFetch = options.server?.fetch ?? fetch;
|
|
238
|
-
let contentType = 'application/octet-stream';
|
|
239
|
-
try {
|
|
240
|
-
contentType = readImageSize(bytes).mimeType ?? contentType;
|
|
241
|
-
}
|
|
242
|
-
catch {
|
|
243
|
-
// Unrecognised header: let the route decide whether it takes this.
|
|
244
|
-
}
|
|
245
|
-
const ticketRes = await doFetch(uploadEndpointFor(endpoint), {
|
|
246
|
-
method: 'POST',
|
|
247
|
-
headers: { 'content-type': 'application/json', ...(options.server?.headers ?? {}) },
|
|
248
|
-
body: JSON.stringify({ contentType, bytes: bytes.byteLength }),
|
|
249
|
-
});
|
|
250
|
-
// No route here, or a store that cannot sign one.
|
|
251
|
-
if (ticketRes.status === 404 || ticketRes.status === 501)
|
|
252
|
-
return null;
|
|
253
|
-
if (!ticketRes.ok) {
|
|
254
|
-
const detail = (await ticketRes.json().catch(() => ({})));
|
|
255
|
-
throw new SealpixelError(detail.error ?? 'SERVER_ERROR', String(detail.message ?? `upload ticket refused with HTTP ${ticketRes.status}`));
|
|
256
|
-
}
|
|
257
|
-
const ticket = (await ticketRes.json());
|
|
258
|
-
const form = new FormData();
|
|
259
|
-
// The file goes last. A presigned POST policy ignores anything after it.
|
|
260
|
-
for (const [name, value] of Object.entries(ticket.fields))
|
|
261
|
-
form.append(name, value);
|
|
262
|
-
form.append('file', new Blob([bytes], { type: contentType }));
|
|
263
|
-
const put = await doFetch(ticket.url, { method: 'POST', body: form });
|
|
264
|
-
if (!put.ok)
|
|
265
|
-
throw new SealpixelError('SERVER_ERROR', `the store refused the upload with HTTP ${put.status}`);
|
|
266
|
-
upload.source = { kind: 's3', bucket: ticket.bucket, key: ticket.key };
|
|
267
|
-
return upload.source;
|
|
268
|
-
}
|
|
269
|
-
/** The source for a server call: the uploaded reference when it is worth one, else inline. */
|
|
270
|
-
async function sourceFor(bytes, endpoint, upload) {
|
|
271
|
-
const over = options.server?.uploadOver ?? 4_000_000;
|
|
272
|
-
if (bytes.byteLength > over) {
|
|
273
|
-
const uploaded = await ensureUploaded(bytes, endpoint, upload);
|
|
274
|
-
if (uploaded)
|
|
275
|
-
return uploaded;
|
|
276
|
-
}
|
|
277
|
-
return { kind: 'inline', base64: toBase64(bytes) };
|
|
278
|
-
}
|
|
279
|
-
async function serverFetch(body, endpoint = options.server?.endpoint) {
|
|
280
|
-
if (!endpoint)
|
|
281
|
-
throw new SealpixelError('NOT_CONFIGURED', 'no server endpoint configured');
|
|
282
|
-
const doFetch = options.server?.fetch ?? fetch;
|
|
283
|
-
const res = await doFetch(endpoint, {
|
|
284
|
-
method: 'POST',
|
|
285
|
-
headers: { 'content-type': 'application/json', ...(options.server?.headers ?? {}) },
|
|
286
|
-
body: JSON.stringify(body),
|
|
287
|
-
});
|
|
288
|
-
if (!res.ok) {
|
|
289
|
-
const detail = (await res
|
|
290
|
-
.json()
|
|
291
|
-
.catch(() => ({ error: 'SERVER_ERROR', message: `HTTP ${res.status}` })));
|
|
292
|
-
throw new SealpixelError(detail.error ?? 'SERVER_ERROR', String(detail.message ?? `HTTP ${res.status}`), detail.details);
|
|
293
|
-
}
|
|
294
|
-
return res;
|
|
295
|
-
}
|
|
296
189
|
function resolveSavedState(saved) {
|
|
297
190
|
const wrapped = saved;
|
|
298
191
|
const raw = wrapped && typeof wrapped === 'object' && 'log' in wrapped ? wrapped.log : saved;
|
|
@@ -316,7 +209,7 @@ export function createEditorSession(options) {
|
|
|
316
209
|
if (!committed)
|
|
317
210
|
return;
|
|
318
211
|
try {
|
|
319
|
-
await loadInto(committed.bytes, committed.id
|
|
212
|
+
await loadInto(committed.bytes, committed.id);
|
|
320
213
|
}
|
|
321
214
|
catch {
|
|
322
215
|
committed = null;
|
|
@@ -378,8 +271,7 @@ export function createEditorSession(options) {
|
|
|
378
271
|
return await exclusive(async () => {
|
|
379
272
|
if (superseded())
|
|
380
273
|
throw supersededError();
|
|
381
|
-
const
|
|
382
|
-
const loaded = await loadInto(bytes, id, upload);
|
|
274
|
+
const loaded = await loadInto(bytes, id);
|
|
383
275
|
// The renderer holds the new image now. Until the state commits to
|
|
384
276
|
// it, any failure puts the renderer back on the committed image.
|
|
385
277
|
try {
|
|
@@ -395,7 +287,7 @@ export function createEditorSession(options) {
|
|
|
395
287
|
ops: [],
|
|
396
288
|
});
|
|
397
289
|
const document = compile(hist.current(history), registry);
|
|
398
|
-
committed = { bytes, id
|
|
290
|
+
committed = { bytes, id };
|
|
399
291
|
set({
|
|
400
292
|
status: 'ready',
|
|
401
293
|
source: descriptor,
|
|
@@ -512,7 +404,7 @@ export function createEditorSession(options) {
|
|
|
512
404
|
async export(exportOptions) {
|
|
513
405
|
ensureReady();
|
|
514
406
|
if (!state.resident) {
|
|
515
|
-
throw new SealpixelError('NOT_RESIDENT',
|
|
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()`);
|
|
516
408
|
}
|
|
517
409
|
const log = state.history.log;
|
|
518
410
|
const upTo = exportOptions.upTo ?? state.history.index;
|
|
@@ -532,8 +424,6 @@ export function createEditorSession(options) {
|
|
|
532
424
|
async download(downloadOptions = {}) {
|
|
533
425
|
ensureReady();
|
|
534
426
|
const output = downloadOptions.output ?? { format: 'image/png' };
|
|
535
|
-
const via = downloadOptions.via ?? 'auto';
|
|
536
|
-
const useServer = via === 'server' || (via === 'auto' && !state.resident);
|
|
537
427
|
const exportOptions = {
|
|
538
428
|
output,
|
|
539
429
|
...(downloadOptions.embedEditLog === undefined
|
|
@@ -542,67 +432,12 @@ export function createEditorSession(options) {
|
|
|
542
432
|
...(downloadOptions.upTo === undefined ? {} : { upTo: downloadOptions.upTo }),
|
|
543
433
|
};
|
|
544
434
|
const save = options.saveFile ?? browserSaveFile;
|
|
545
|
-
if (useServer) {
|
|
546
|
-
const result = await session.requestServerRender({
|
|
547
|
-
...exportOptions,
|
|
548
|
-
destination: 'response',
|
|
549
|
-
});
|
|
550
|
-
const filename = downloadOptions.filename ??
|
|
551
|
-
`${state.source?.id ?? 'image'}-${result.hash.slice(0, 8)}.${EXT[output.format]}`;
|
|
552
|
-
await save(result.bytes, filename, result.mimeType);
|
|
553
|
-
return { filename, result };
|
|
554
|
-
}
|
|
555
435
|
const result = await session.export(exportOptions);
|
|
556
436
|
const filename = downloadOptions.filename ??
|
|
557
437
|
`${state.source?.id ?? 'image'}-${result.hash.slice(0, 8)}.${EXT[output.format]}`;
|
|
558
438
|
await save(result.bytes, filename, result.mimeType);
|
|
559
439
|
return { filename, result };
|
|
560
440
|
},
|
|
561
|
-
async requestServerRender(renderOptions) {
|
|
562
|
-
ensureReady();
|
|
563
|
-
const endpoint = renderOptions.endpoint ?? options.server?.endpoint;
|
|
564
|
-
if (!endpoint)
|
|
565
|
-
throw new SealpixelError('NOT_CONFIGURED', 'no server endpoint configured');
|
|
566
|
-
const source = renderOptions.source ??
|
|
567
|
-
(committed ? await sourceFor(committed.bytes, endpoint, committed.upload) : null);
|
|
568
|
-
if (!source)
|
|
569
|
-
throw new SealpixelError('NO_SOURCE', 'original bytes are not available; pass a source reference');
|
|
570
|
-
const destination = renderOptions.destination ?? 'response';
|
|
571
|
-
const body = {
|
|
572
|
-
source,
|
|
573
|
-
editLog: state.history.log,
|
|
574
|
-
output: renderOptions.output,
|
|
575
|
-
upTo: renderOptions.upTo ?? state.history.index,
|
|
576
|
-
...(renderOptions.embedEditLog ? { embedEditLog: true } : {}),
|
|
577
|
-
destination: { kind: destination },
|
|
578
|
-
};
|
|
579
|
-
const res = await serverFetch(body, endpoint);
|
|
580
|
-
if (destination === 's3') {
|
|
581
|
-
const job = (await res.json());
|
|
582
|
-
return {
|
|
583
|
-
url: job.url,
|
|
584
|
-
objectKey: job.objectKey,
|
|
585
|
-
bucket: job.bucket,
|
|
586
|
-
hash: job.hash,
|
|
587
|
-
width: job.width,
|
|
588
|
-
height: job.height,
|
|
589
|
-
mimeType: job.mimeType,
|
|
590
|
-
cached: job.cached,
|
|
591
|
-
jobKey: job.key,
|
|
592
|
-
};
|
|
593
|
-
}
|
|
594
|
-
const bytes = new Uint8Array(await res.arrayBuffer());
|
|
595
|
-
return {
|
|
596
|
-
bytes,
|
|
597
|
-
hash: res.headers.get('x-sealpixel-hash') ?? '',
|
|
598
|
-
width: state.preview?.geometry.logicalOut.width ?? 0,
|
|
599
|
-
height: state.preview?.geometry.logicalOut.height ?? 0,
|
|
600
|
-
mimeType: res.headers.get('content-type') ??
|
|
601
|
-
renderOptions.output.format,
|
|
602
|
-
cached: res.headers.get('x-sealpixel-cached') === 'true',
|
|
603
|
-
jobKey: res.headers.get('x-sealpixel-job') ?? '',
|
|
604
|
-
};
|
|
605
|
-
},
|
|
606
441
|
dispose() {
|
|
607
442
|
disposed = true;
|
|
608
443
|
if (timer)
|
|
@@ -648,21 +483,4 @@ export async function browserSaveFile(bytes, filename, mimeType) {
|
|
|
648
483
|
setTimeout(() => URL.revokeObjectURL(url), 10_000);
|
|
649
484
|
}
|
|
650
485
|
}
|
|
651
|
-
function estimateMegapixels(bytes) {
|
|
652
|
-
try {
|
|
653
|
-
const { width, height } = readImageSize(bytes);
|
|
654
|
-
return (width * height) / 1e6;
|
|
655
|
-
}
|
|
656
|
-
catch {
|
|
657
|
-
return null;
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
function toBase64(bytes) {
|
|
661
|
-
if (typeof Buffer !== 'undefined')
|
|
662
|
-
return Buffer.from(bytes).toString('base64');
|
|
663
|
-
let bin = '';
|
|
664
|
-
for (let i = 0; i < bytes.length; i += 0x8000)
|
|
665
|
-
bin += String.fromCharCode(...bytes.subarray(i, i + 0x8000));
|
|
666
|
-
return btoa(bin);
|
|
667
|
-
}
|
|
668
486
|
//# sourceMappingURL=session.js.map
|
package/dist/session.js.map
CHANGED
|
@@ -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
|
|
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. */
|
|
@@ -17,12 +17,12 @@ export type WorkerRequest = {
|
|
|
17
17
|
options?: RendererLoadOptions;
|
|
18
18
|
} | {
|
|
19
19
|
id: number;
|
|
20
|
-
type: '
|
|
21
|
-
|
|
20
|
+
type: 'loadWorkingCopy';
|
|
21
|
+
workingCopy: RgbaBuffer;
|
|
22
22
|
descriptor: SourceDescriptor;
|
|
23
23
|
} | {
|
|
24
24
|
id: number;
|
|
25
|
-
type: '
|
|
25
|
+
type: 'loadWorkingCopyEncoded';
|
|
26
26
|
bytes: Uint8Array;
|
|
27
27
|
descriptor: SourceDescriptor;
|
|
28
28
|
} | {
|
|
@@ -37,7 +37,7 @@ export type WorkerRequest = {
|
|
|
37
37
|
id: number;
|
|
38
38
|
type: 'geometry';
|
|
39
39
|
log: RenderRequest['log'];
|
|
40
|
-
target: '
|
|
40
|
+
target: 'workingCopy' | 'full';
|
|
41
41
|
upTo?: number;
|
|
42
42
|
} | {
|
|
43
43
|
id: number;
|
|
@@ -71,8 +71,8 @@ export type ResultOf = {
|
|
|
71
71
|
plugins: Record<string, number>;
|
|
72
72
|
};
|
|
73
73
|
load: LoadedSource;
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
loadWorkingCopy: LoadedSource;
|
|
75
|
+
loadWorkingCopyEncoded: LoadedSource;
|
|
76
76
|
render: RgbaBuffer;
|
|
77
77
|
export: ExportResult;
|
|
78
78
|
geometry: Geometry;
|