@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.
- 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 +6 -6
- package/dist/generated/plan.d.ts.map +1 -1
- package/dist/history.d.ts +2 -0
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +5 -1
- package/dist/history.js.map +1 -1
- package/dist/image-size.d.ts +4 -2
- package/dist/image-size.d.ts.map +1 -1
- package/dist/image-size.js +5 -3
- package/dist/image-size.js.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/registry.d.ts.map +1 -1
- package/dist/registry.js +10 -1
- package/dist/registry.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 +24 -67
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +137 -238
- 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/renderer-core.js
CHANGED
|
@@ -10,7 +10,7 @@ export class RendererCore {
|
|
|
10
10
|
registry;
|
|
11
11
|
options;
|
|
12
12
|
full = null;
|
|
13
|
-
|
|
13
|
+
workingCopy = null;
|
|
14
14
|
descriptor = null;
|
|
15
15
|
cache = new Map();
|
|
16
16
|
constructor(wasm, options) {
|
|
@@ -27,7 +27,7 @@ export class RendererCore {
|
|
|
27
27
|
info() {
|
|
28
28
|
return { coreVersion: this.wasm.version(), plugins: this.registry.pluginVersions() };
|
|
29
29
|
}
|
|
30
|
-
/** Decodes `bytes`, derives the descriptor and
|
|
30
|
+
/** Decodes `bytes`, derives the descriptor and working copy, and drops the full image when too large. */
|
|
31
31
|
load(bytes, id, loadOptions = {}) {
|
|
32
32
|
const decoded = this.wasm.decode(bytes);
|
|
33
33
|
const hash = this.wasm.sha256Hex(bytes);
|
|
@@ -41,24 +41,32 @@ export class RendererCore {
|
|
|
41
41
|
const megapixels = (decoded.width * decoded.height) / 1e6;
|
|
42
42
|
const maxClientMegapixels = loadOptions.maxClientMegapixels ?? this.options.maxClientMegapixels;
|
|
43
43
|
const resident = megapixels <= maxClientMegapixels;
|
|
44
|
-
const
|
|
44
|
+
const workingCopy = this.wasm.resizeWorkingCopy(decoded, this.options.workingCopyMaxSide);
|
|
45
45
|
this.full = resident ? decoded : null;
|
|
46
|
-
this.
|
|
46
|
+
this.workingCopy = workingCopy;
|
|
47
47
|
this.descriptor = descriptor;
|
|
48
48
|
this.cache.clear();
|
|
49
|
-
return {
|
|
49
|
+
return {
|
|
50
|
+
descriptor,
|
|
51
|
+
resident,
|
|
52
|
+
workingCopy: { ...workingCopy, data: new Uint8Array(workingCopy.data) },
|
|
53
|
+
};
|
|
50
54
|
}
|
|
51
|
-
/** Decodes an encoded
|
|
52
|
-
|
|
53
|
-
return this.
|
|
55
|
+
/** Decodes an encoded working copy (for example one the host built elsewhere) and uses it as the preview source. */
|
|
56
|
+
loadWorkingCopyEncoded(bytes, descriptor) {
|
|
57
|
+
return this.loadWorkingCopy(this.wasm.decode(bytes), descriptor);
|
|
54
58
|
}
|
|
55
|
-
/** Accepts pixels decoded elsewhere
|
|
56
|
-
|
|
59
|
+
/** Accepts pixels decoded elsewhere, for example by a native decoder. Never resident. */
|
|
60
|
+
loadWorkingCopy(workingCopy, descriptor) {
|
|
57
61
|
this.full = null;
|
|
58
|
-
this.
|
|
62
|
+
this.workingCopy = workingCopy;
|
|
59
63
|
this.descriptor = descriptor;
|
|
60
64
|
this.cache.clear();
|
|
61
|
-
return {
|
|
65
|
+
return {
|
|
66
|
+
descriptor,
|
|
67
|
+
resident: false,
|
|
68
|
+
workingCopy: { ...workingCopy, data: new Uint8Array(workingCopy.data) },
|
|
69
|
+
};
|
|
62
70
|
}
|
|
63
71
|
hasSource() {
|
|
64
72
|
return this.descriptor !== null;
|
|
@@ -68,17 +76,17 @@ export class RendererCore {
|
|
|
68
76
|
}
|
|
69
77
|
unload() {
|
|
70
78
|
this.full = null;
|
|
71
|
-
this.
|
|
79
|
+
this.workingCopy = null;
|
|
72
80
|
this.descriptor = null;
|
|
73
81
|
this.cache.clear();
|
|
74
82
|
}
|
|
75
83
|
/** Renders the log. Preview renders are split per stage and cached by prefix. */
|
|
76
84
|
async render(req) {
|
|
77
85
|
const { descriptor } = this.require();
|
|
78
|
-
const image = req.target === 'full' ? this.full : this.
|
|
86
|
+
const image = req.target === 'full' ? this.full : this.workingCopy;
|
|
79
87
|
if (!image) {
|
|
80
88
|
throw new SealpixelError('SOURCE_MISMATCH', req.target === 'full'
|
|
81
|
-
? 'full-resolution pixels are not resident;
|
|
89
|
+
? 'full-resolution pixels are not resident; render the original outside the browser'
|
|
82
90
|
: 'no source loaded');
|
|
83
91
|
}
|
|
84
92
|
const mode = req.target === 'full' ? 'truth' : 'preview';
|
|
@@ -114,7 +122,7 @@ export class RendererCore {
|
|
|
114
122
|
}
|
|
115
123
|
geometry(log, target, upTo) {
|
|
116
124
|
const { descriptor } = this.require();
|
|
117
|
-
const image = (target === 'full' ? this.full : this.
|
|
125
|
+
const image = (target === 'full' ? this.full : this.workingCopy) ?? this.workingCopy;
|
|
118
126
|
if (!image)
|
|
119
127
|
throw new SealpixelError('SOURCE_MISMATCH', 'no source loaded');
|
|
120
128
|
const logical = { width: descriptor.width, height: descriptor.height };
|
|
@@ -129,7 +137,7 @@ export class RendererCore {
|
|
|
129
137
|
const plan = {
|
|
130
138
|
version: PLAN_VERSION,
|
|
131
139
|
source: logical,
|
|
132
|
-
|
|
140
|
+
bufferScale: image.width / logical.width,
|
|
133
141
|
stages: toCoreStages(core),
|
|
134
142
|
};
|
|
135
143
|
return JSON.parse(this.wasm.resolveGeometry(JSON.stringify(plan), image.width, image.height));
|
|
@@ -157,7 +165,7 @@ export class RendererCore {
|
|
|
157
165
|
const plan = {
|
|
158
166
|
version: PLAN_VERSION,
|
|
159
167
|
source: currentLogical,
|
|
160
|
-
|
|
168
|
+
bufferScale: current.width / currentLogical.width,
|
|
161
169
|
stages: toCoreStages([stage]),
|
|
162
170
|
};
|
|
163
171
|
const planJson = JSON.stringify(plan);
|
|
@@ -203,7 +211,7 @@ export class RendererCore {
|
|
|
203
211
|
const plan = {
|
|
204
212
|
version: PLAN_VERSION,
|
|
205
213
|
source: logicalIn,
|
|
206
|
-
|
|
214
|
+
bufferScale: 1,
|
|
207
215
|
stages: toCoreStages([stage]),
|
|
208
216
|
};
|
|
209
217
|
const g = JSON.parse(this.wasm.resolveGeometry(JSON.stringify(plan), logicalIn.width, logicalIn.height));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer-core.js","sourceRoot":"","sources":["../src/renderer-core.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAsB,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAiB,YAAY,EAAmB,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAiB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiD3C,MAAM,OAAO,YAAY;IASZ;IARF,QAAQ,CAAW;IACX,OAAO,CAAsB;IACtC,IAAI,GAAsB,IAAI,CAAC;IAC/B,
|
|
1
|
+
{"version":3,"file":"renderer-core.js","sourceRoot":"","sources":["../src/renderer-core.ts"],"names":[],"mappings":"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"}
|
package/dist/renderer.d.ts
CHANGED
|
@@ -12,13 +12,13 @@ export interface Renderer {
|
|
|
12
12
|
plugins: Record<string, number>;
|
|
13
13
|
}>;
|
|
14
14
|
load(bytes: Uint8Array, id: string, options?: RendererLoadOptions): Promise<LoadedSource>;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
loadWorkingCopy(workingCopy: RgbaBuffer, descriptor: SourceDescriptor): Promise<LoadedSource>;
|
|
16
|
+
loadWorkingCopyEncoded(bytes: Uint8Array, descriptor: SourceDescriptor): Promise<LoadedSource>;
|
|
17
17
|
render(req: RenderRequest): Promise<RgbaBuffer>;
|
|
18
18
|
export(req: ExportRequest): Promise<ExportResult>;
|
|
19
19
|
geometry(req: {
|
|
20
20
|
log: RenderRequest['log'];
|
|
21
|
-
target: '
|
|
21
|
+
target: 'workingCopy' | 'full';
|
|
22
22
|
upTo?: number;
|
|
23
23
|
}): Promise<Geometry>;
|
|
24
24
|
unload(): Promise<void>;
|
package/dist/renderer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1F,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;IAC1E,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1F,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9F,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/F,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,QAAQ,CAAC,GAAG,EAAE;QACZ,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
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,15 +93,20 @@ 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;
|
|
99
|
+
/**
|
|
100
|
+
* Loads an image, optionally resuming a saved state. On failure the session
|
|
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.
|
|
104
|
+
*/
|
|
122
105
|
load(source: LoadSource, options?: LoadOptions): Promise<SourceDescriptor>;
|
|
123
106
|
dispatch(op: Operation): void;
|
|
124
107
|
undo(): void;
|
|
125
108
|
redo(): void;
|
|
109
|
+
/** Moves to `index`, clamped to the log. A non-finite index, such as `NaN`, changes nothing. */
|
|
126
110
|
timeTravel(index: number): void;
|
|
127
111
|
canUndo(): boolean;
|
|
128
112
|
canRedo(): boolean;
|
|
@@ -148,7 +132,7 @@ export interface EditorSession {
|
|
|
148
132
|
*/
|
|
149
133
|
setPreviewTransform(transform: ((log: EditLog) => EditLog) | null): void;
|
|
150
134
|
/**
|
|
151
|
-
* Renders a
|
|
135
|
+
* Renders a working-copy-sized image from the current log, transformed, and returns
|
|
152
136
|
* it without touching the stage, the state or the history. Tools use it to
|
|
153
137
|
* show what an edit the user has not made yet would look like: the filter
|
|
154
138
|
* tool renders its thumbnails from the log with the filter removed, so a
|
|
@@ -166,46 +150,19 @@ export interface EditorSession {
|
|
|
166
150
|
id?: string;
|
|
167
151
|
url?: string;
|
|
168
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
|
+
*/
|
|
169
158
|
export(options: ExportOptions): Promise<ExportResult>;
|
|
159
|
+
/** Exports like `export` and hands the file to `saveFile`. */
|
|
170
160
|
download(options?: DownloadOptions): Promise<{
|
|
171
161
|
filename: string;
|
|
172
|
-
result: ExportResult
|
|
162
|
+
result: ExportResult;
|
|
173
163
|
}>;
|
|
174
|
-
/**
|
|
175
|
-
* Renders on the server from the original bytes (inline) or a host-provided
|
|
176
|
-
* source reference. With `destination: 's3'` the server stores the object and
|
|
177
|
-
* returns its key and presigned url; otherwise the bytes come back.
|
|
178
|
-
*/
|
|
179
|
-
requestServerRender(options: ServerRenderOptions): Promise<ServerRenderResult>;
|
|
180
164
|
dispose(): void;
|
|
181
165
|
}
|
|
182
|
-
export interface ServerRenderOptions extends ExportOptions {
|
|
183
|
-
/** Defaults to the loaded bytes sent inline. Hosts that uploaded the original pass its reference. */
|
|
184
|
-
source?: {
|
|
185
|
-
kind: 's3';
|
|
186
|
-
bucket?: string;
|
|
187
|
-
key: string;
|
|
188
|
-
} | {
|
|
189
|
-
kind: 'url';
|
|
190
|
-
url: string;
|
|
191
|
-
};
|
|
192
|
-
destination?: 's3' | 'response';
|
|
193
|
-
endpoint?: string;
|
|
194
|
-
}
|
|
195
|
-
export interface ServerRenderResult {
|
|
196
|
-
/** Present for `destination: 'response'`. */
|
|
197
|
-
bytes?: Uint8Array;
|
|
198
|
-
/** Present for `destination: 's3'`. */
|
|
199
|
-
url?: string | null;
|
|
200
|
-
objectKey?: string;
|
|
201
|
-
bucket?: string;
|
|
202
|
-
hash: string;
|
|
203
|
-
width: number;
|
|
204
|
-
height: number;
|
|
205
|
-
mimeType: OutputOptions['format'];
|
|
206
|
-
cached: boolean;
|
|
207
|
-
jobKey: string;
|
|
208
|
-
}
|
|
209
166
|
export declare function createEditorSession(options: SessionOptions): EditorSession;
|
|
210
167
|
/** Default `saveFile`: an `<a download>` click, with the share sheet as a fallback on iOS Safari. */
|
|
211
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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"}
|