textmode.export.js 1.9.0-beta.1 → 1.9.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/README.md +1 -1
- package/dist/textmode.export.esm.js +1 -1
- package/dist/textmode.export.umd.js +1 -1
- package/dist/types/exporters/base/LayerTarget.d.ts +1 -3
- package/dist/types/exporters/gif/types.d.ts +0 -4
- package/dist/types/exporters/image/types.d.ts +0 -2
- package/dist/types/exporters/json/JSONExporter.d.ts +2 -1
- package/dist/types/exporters/json/index.d.ts +1 -2
- package/dist/types/exporters/json/types.d.ts +17 -202
- package/dist/types/exporters/svg/types.d.ts +1 -3
- package/dist/types/exporters/txt/types.d.ts +0 -2
- package/dist/types/exporters/video/types.d.ts +0 -20
- package/dist/types/exporters/zip/errors.d.ts +0 -1
- package/dist/types/exporters/zip/types.d.ts +0 -7
- package/dist/types/index.d.ts +1 -27
- package/dist/types/types.d.ts +7 -32
- package/package.json +11 -8
|
@@ -4,8 +4,6 @@ import type { TextmodeLayer } from 'textmode.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Shared option for exporters that read layer framebuffer data.
|
|
6
6
|
*
|
|
7
|
-
* @category Layer data export
|
|
8
|
-
*
|
|
9
7
|
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/LayerExportOptions | LayerExportOptions API reference}
|
|
10
8
|
*/
|
|
11
9
|
export interface LayerExportOptions {
|
|
@@ -48,4 +46,4 @@ export declare function getLayerTargetOptions(textmodifier: Textmodifier): Layer
|
|
|
48
46
|
export declare function createLayerTargetProvider(textmodifier: Textmodifier): LayerTargetProvider;
|
|
49
47
|
export declare function getLayerTargetId(textmodifier: Textmodifier, layer: TextmodeLayer): string;
|
|
50
48
|
export declare function resolveLayerExportTarget(textmodifier: Textmodifier, layer?: TextmodeLayer): ResolvedLayerExportTarget;
|
|
51
|
-
export declare function resolveLayerStackExportTargets(textmodifier: Textmodifier): ResolvedLayerStackExportTarget[];
|
|
49
|
+
export declare function resolveLayerStackExportTargets(textmodifier: Textmodifier, selectedLayers?: readonly TextmodeLayer[]): ResolvedLayerStackExportTarget[];
|
|
@@ -3,8 +3,6 @@ export type GIFRecordingState = 'idle' | 'recording' | 'encoding' | 'completed'
|
|
|
3
3
|
/**
|
|
4
4
|
* Progress information emitted while deterministic frames are captured and encoded as an animated GIF.
|
|
5
5
|
*
|
|
6
|
-
* @category GIF export
|
|
7
|
-
*
|
|
8
6
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress | GIFExportProgress API reference}
|
|
9
7
|
*/
|
|
10
8
|
export type GIFExportProgress = {
|
|
@@ -36,8 +34,6 @@ export type GIFExportProgress = {
|
|
|
36
34
|
/**
|
|
37
35
|
* Options for capturing deterministic textmode frames as an animated GIF.
|
|
38
36
|
*
|
|
39
|
-
* @category GIF export
|
|
40
|
-
*
|
|
41
37
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions | GIFExportOptions API reference}
|
|
42
38
|
*/
|
|
43
39
|
export type GIFExportOptions = {
|
|
@@ -8,8 +8,6 @@ export type ImageFormat = 'png' | 'jpg' | 'webp';
|
|
|
8
8
|
/**
|
|
9
9
|
* Options for exporting the textmode content to image format.
|
|
10
10
|
*
|
|
11
|
-
* @category Canvas capture
|
|
12
|
-
*
|
|
13
11
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions | ImageExportOptions API reference}
|
|
14
12
|
*/
|
|
15
13
|
export type ImageExportOptions = {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Textmodifier } from 'textmode.js';
|
|
2
|
-
import type { JSONExportOptions
|
|
2
|
+
import type { JSONExportOptions } from './types';
|
|
3
|
+
import type { TextmodeDocumentJSON } from '@textmode/document';
|
|
3
4
|
/**
|
|
4
5
|
* Main JSON exporter for the textmode.js library.
|
|
5
6
|
* Orchestrates structured selected-layer or layer-stack export and file download.
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export { JSONExporter } from './JSONExporter';
|
|
2
|
-
export {
|
|
3
|
-
export type { JSONDocumentFormat, JSONDocumentVersion, JSONCellCollection, JSONCellData, JSONCellTransform, JSONColorValue, JSONExportColorMode, JSONExportMetadata, JSONExportOptions, JSONExportTarget, JSONGenerationOptions, JSONLayerGrid, JSONObjectRowCell, JSONObjectRowsCellCollection, JSONRGBAColor, TextmodeAllDocumentJSON, TextmodeDocumentJSON, TextmodeDocumentLayer, TextmodeSelectedDocumentJSON, TextmodeSelectedDocumentLayer, } from './types';
|
|
2
|
+
export type { JSONExportTarget, JSONExportColorMode, JSONExportOptions } from './types';
|
|
@@ -1,225 +1,42 @@
|
|
|
1
1
|
import type { LayerExportOptions } from '../base';
|
|
2
|
+
import type { TextmodeDocumentCellTransform, TextmodeDocumentRGBAColor } from '@textmode/document';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* @category JSON document data
|
|
4
|
+
* Layer selection for export; never serialized into the document.
|
|
6
5
|
*
|
|
7
6
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportTarget | JSONExportTarget API reference}
|
|
8
7
|
*/
|
|
9
8
|
export type JSONExportTarget = 'selected' | 'all';
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentFormat | JSONDocumentFormat API reference}
|
|
14
|
-
*/
|
|
15
|
-
export type JSONDocumentFormat = 'textmode.document';
|
|
16
|
-
/**
|
|
17
|
-
* Canonical JSON document format version.
|
|
18
|
-
*
|
|
19
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentVersion | JSONDocumentVersion API reference}
|
|
20
|
-
*/
|
|
21
|
-
export type JSONDocumentVersion = '2.0.0';
|
|
22
|
-
/**
|
|
23
|
-
* Supported JSON color output modes.
|
|
24
|
-
*
|
|
25
|
-
* @category JSON document data
|
|
10
|
+
* Color representation written by the JSON exporter: hexadecimal strings or
|
|
11
|
+
* RGBA channel objects.
|
|
26
12
|
*
|
|
27
13
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportColorMode | JSONExportColorMode API reference}
|
|
28
14
|
*/
|
|
29
15
|
export type JSONExportColorMode = 'hex' | 'rgba';
|
|
30
16
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONRGBAColor | JSONRGBAColor API reference}
|
|
34
|
-
*/
|
|
35
|
-
export interface JSONRGBAColor {
|
|
36
|
-
r: number;
|
|
37
|
-
g: number;
|
|
38
|
-
b: number;
|
|
39
|
-
a: number;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Color value used in the exported JSON document.
|
|
43
|
-
*
|
|
44
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONColorValue | JSONColorValue API reference}
|
|
45
|
-
*/
|
|
46
|
-
export type JSONColorValue = string | JSONRGBAColor;
|
|
47
|
-
/**
|
|
48
|
-
* Cell transform data for JSON exports.
|
|
49
|
-
*
|
|
50
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONCellTransform | JSONCellTransform API reference}
|
|
51
|
-
*/
|
|
52
|
-
export interface JSONCellTransform {
|
|
53
|
-
invert: boolean;
|
|
54
|
-
flipX: boolean;
|
|
55
|
-
flipY: boolean;
|
|
56
|
-
rotation: number;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Rich per-cell representation for readable JSON exports.
|
|
60
|
-
*
|
|
61
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowCell | JSONObjectRowCell API reference}
|
|
62
|
-
*/
|
|
63
|
-
export interface JSONObjectRowCell {
|
|
64
|
-
x: number;
|
|
65
|
-
y: number;
|
|
66
|
-
character: string;
|
|
67
|
-
foreground: JSONColorValue;
|
|
68
|
-
background: JSONColorValue;
|
|
69
|
-
transform: JSONCellTransform;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Row-based cell encoding.
|
|
73
|
-
*
|
|
74
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowsCellCollection | JSONObjectRowsCellCollection API reference}
|
|
75
|
-
*/
|
|
76
|
-
export interface JSONObjectRowsCellCollection {
|
|
77
|
-
encoding: 'object-rows-v1';
|
|
78
|
-
rows: JSONObjectRowCell[][];
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Supported JSON cell collection variants.
|
|
82
|
-
*
|
|
83
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONCellCollection | JSONCellCollection API reference}
|
|
84
|
-
*/
|
|
85
|
-
export type JSONCellCollection = JSONObjectRowsCellCollection;
|
|
86
|
-
/**
|
|
87
|
-
* Grid dimensions exported for a layer.
|
|
88
|
-
*
|
|
89
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONLayerGrid | JSONLayerGrid API reference}
|
|
90
|
-
*/
|
|
91
|
-
export interface JSONLayerGrid {
|
|
92
|
-
cols: number;
|
|
93
|
-
rows: number;
|
|
94
|
-
cellWidth: number;
|
|
95
|
-
cellHeight: number;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Optional export metadata.
|
|
99
|
-
*
|
|
100
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONExportMetadata | JSONExportMetadata API reference}
|
|
101
|
-
*/
|
|
102
|
-
export interface JSONExportMetadata {
|
|
103
|
-
createdAt: string;
|
|
104
|
-
generator: {
|
|
105
|
-
name: 'textmode.export.js';
|
|
106
|
-
version: string;
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Selected-layer entry in a JSON document export.
|
|
111
|
-
*
|
|
112
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentLayer | TextmodeSelectedDocumentLayer API reference}
|
|
113
|
-
*/
|
|
114
|
-
export interface TextmodeSelectedDocumentLayer {
|
|
115
|
-
id: string;
|
|
116
|
-
cells: JSONCellCollection;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Selected-layer document exported by the JSON exporter.
|
|
120
|
-
*
|
|
121
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentJSON | TextmodeSelectedDocumentJSON API reference}
|
|
122
|
-
*/
|
|
123
|
-
export interface TextmodeSelectedDocumentJSON {
|
|
124
|
-
format: JSONDocumentFormat;
|
|
125
|
-
formatVersion: JSONDocumentVersion;
|
|
126
|
-
target: 'selected';
|
|
127
|
-
metadata?: JSONExportMetadata;
|
|
128
|
-
canvas: {
|
|
129
|
-
width: number;
|
|
130
|
-
height: number;
|
|
131
|
-
};
|
|
132
|
-
grid: JSONLayerGrid;
|
|
133
|
-
layer: TextmodeSelectedDocumentLayer;
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Single layer entry in an all-layers JSON export.
|
|
137
|
-
*
|
|
138
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeDocumentLayer | TextmodeDocumentLayer API reference}
|
|
139
|
-
*/
|
|
140
|
-
export interface TextmodeDocumentLayer {
|
|
141
|
-
id: string;
|
|
142
|
-
visible: boolean;
|
|
143
|
-
opacity: number;
|
|
144
|
-
blendMode: string;
|
|
145
|
-
offsetX: number;
|
|
146
|
-
offsetY: number;
|
|
147
|
-
rotationZ: number;
|
|
148
|
-
grid: JSONLayerGrid;
|
|
149
|
-
cells: JSONCellCollection;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Layer stack document exported by the JSON exporter.
|
|
153
|
-
*
|
|
154
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeAllDocumentJSON | TextmodeAllDocumentJSON API reference}
|
|
155
|
-
*/
|
|
156
|
-
export interface TextmodeAllDocumentJSON {
|
|
157
|
-
format: JSONDocumentFormat;
|
|
158
|
-
formatVersion: JSONDocumentVersion;
|
|
159
|
-
target: 'all';
|
|
160
|
-
metadata?: JSONExportMetadata;
|
|
161
|
-
canvas: {
|
|
162
|
-
width: number;
|
|
163
|
-
height: number;
|
|
164
|
-
};
|
|
165
|
-
layers: TextmodeDocumentLayer[];
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* JSON document exported by the JSON exporter.
|
|
169
|
-
*
|
|
170
|
-
* @category JSON document data
|
|
171
|
-
*
|
|
172
|
-
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TextmodeDocumentJSON | TextmodeDocumentJSON API reference}
|
|
173
|
-
*/
|
|
174
|
-
export type TextmodeDocumentJSON = TextmodeSelectedDocumentJSON | TextmodeAllDocumentJSON;
|
|
175
|
-
/**
|
|
176
|
-
* Options for exporting the textmode content to JSON format.
|
|
177
|
-
*
|
|
178
|
-
* @category JSON document data
|
|
17
|
+
* Options for exporting textmode content to JSON.
|
|
179
18
|
*
|
|
180
19
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportOptions | JSONExportOptions API reference}
|
|
181
20
|
*/
|
|
182
21
|
export type JSONExportOptions = LayerExportOptions & {
|
|
183
22
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
* Use `'selected'` to export one layer, or `'all'` to export the base layer and every user-created layer.
|
|
187
|
-
*
|
|
188
|
-
* Defaults to `'selected'`.
|
|
23
|
+
* Export one selected layer or the complete layer stack.
|
|
24
|
+
* Defaults to `selected`.
|
|
189
25
|
*/
|
|
190
26
|
target?: JSONExportTarget;
|
|
191
|
-
/**
|
|
192
|
-
* The filename to save the JSON file as.
|
|
193
|
-
*
|
|
194
|
-
* If not provided, a default filename is used.
|
|
195
|
-
*/
|
|
27
|
+
/** Filename used by the download helper. A default name is used when omitted. */
|
|
196
28
|
filename?: string;
|
|
197
29
|
/**
|
|
198
|
-
* Pretty-print the
|
|
199
|
-
*
|
|
200
|
-
* When set to `true`, output uses two-space indentation.
|
|
201
|
-
* When set to a number, that value is used as indentation width.
|
|
202
|
-
* When `false`, the output is minified.
|
|
203
|
-
*
|
|
204
|
-
* Defaults to `true`.
|
|
30
|
+
* Pretty-print with two spaces when `true`, use the given indentation width
|
|
31
|
+
* when numeric, or produce compact JSON when `false`. Defaults to `true`.
|
|
205
32
|
*/
|
|
206
33
|
pretty?: boolean | number;
|
|
207
|
-
/**
|
|
208
|
-
* Color representation used for foreground and background values.
|
|
209
|
-
*
|
|
210
|
-
* Defaults to `'hex'`.
|
|
211
|
-
*/
|
|
34
|
+
/** Foreground and background color representation. Defaults to `hex`. */
|
|
212
35
|
colorMode?: JSONExportColorMode;
|
|
213
|
-
/**
|
|
214
|
-
* Whether to include export metadata such as timestamp and generator details.
|
|
215
|
-
*
|
|
216
|
-
* Defaults to `true`.
|
|
217
|
-
*/
|
|
36
|
+
/** Include the creation timestamp and generator metadata. Defaults to `true`. */
|
|
218
37
|
includeMetadata?: boolean;
|
|
219
38
|
};
|
|
220
|
-
/**
|
|
221
|
-
* Internal options used by JSON generation (with all defaults applied).
|
|
222
|
-
*/
|
|
39
|
+
/** Internal JSON generation options after defaults have been applied. */
|
|
223
40
|
export interface JSONGenerationOptions {
|
|
224
41
|
target: JSONExportTarget;
|
|
225
42
|
pretty: boolean | number;
|
|
@@ -228,14 +45,12 @@ export interface JSONGenerationOptions {
|
|
|
228
45
|
filename?: string;
|
|
229
46
|
layer?: LayerExportOptions['layer'];
|
|
230
47
|
}
|
|
231
|
-
/**
|
|
232
|
-
* Internal extracted cell data used while building the JSON document.
|
|
233
|
-
*/
|
|
48
|
+
/** Internal framebuffer cell data used while building a document. */
|
|
234
49
|
export interface JSONCellData {
|
|
235
50
|
x: number;
|
|
236
51
|
y: number;
|
|
237
52
|
character: string;
|
|
238
|
-
foreground:
|
|
239
|
-
background:
|
|
240
|
-
transform:
|
|
53
|
+
foreground: TextmodeDocumentRGBAColor;
|
|
54
|
+
background: TextmodeDocumentRGBAColor;
|
|
55
|
+
transform: TextmodeDocumentCellTransform;
|
|
241
56
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LayerExportOptions } from '../base';
|
|
1
|
+
import type { LayerExportOptions } from '../base/LayerTarget';
|
|
2
2
|
/**
|
|
3
3
|
* RGBA color representation.
|
|
4
4
|
*/
|
|
@@ -54,8 +54,6 @@ export interface FramebufferData {
|
|
|
54
54
|
/**
|
|
55
55
|
* Options for exporting the textmode content to SVG format.
|
|
56
56
|
*
|
|
57
|
-
* @category Layer data export
|
|
58
|
-
*
|
|
59
57
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/SVGExportOptions | SVGExportOptions API reference}
|
|
60
58
|
*/
|
|
61
59
|
export type SVGExportOptions = LayerExportOptions & {
|
|
@@ -2,8 +2,6 @@ import type { LayerExportOptions } from '../base';
|
|
|
2
2
|
/**
|
|
3
3
|
* Options for exporting the textmode content to TXT format.
|
|
4
4
|
*
|
|
5
|
-
* @category Layer data export
|
|
6
|
-
*
|
|
7
5
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TXTExportOptions | TXTExportOptions API reference}
|
|
8
6
|
*/
|
|
9
7
|
export type TXTExportOptions = LayerExportOptions & {
|
|
@@ -2,8 +2,6 @@ import type { FrameSequenceDriverLike, FrameSequenceRenderOptions, PrepareExport
|
|
|
2
2
|
/**
|
|
3
3
|
* High-level lifecycle state reported while a video export is captured, encoded, or completed.
|
|
4
4
|
*
|
|
5
|
-
* @category Video export
|
|
6
|
-
*
|
|
7
5
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoRecordingState | VideoRecordingState API reference}
|
|
8
6
|
*/
|
|
9
7
|
export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
@@ -14,8 +12,6 @@ export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed
|
|
|
14
12
|
* for buffered output. `rendering`, `encoding`, and `draining` remain available for compatibility with older progress
|
|
15
13
|
* producers.
|
|
16
14
|
*
|
|
17
|
-
* @category Video export
|
|
18
|
-
*
|
|
19
15
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportPhase | VideoExportPhase API reference}
|
|
20
16
|
*/
|
|
21
17
|
export type VideoExportPhase = 'probing' | 'rendering' | 'capturing' | 'encoding' | 'draining' | 'writing' | 'finalizing';
|
|
@@ -26,8 +22,6 @@ export type VideoCodec = 'vp8' | 'vp9' | 'avc' | (string & {});
|
|
|
26
22
|
* Higher levels generally preserve more detail and produce larger, content-dependent files. Mediabunny may use
|
|
27
23
|
* quantizer-based encoding or a codec-adjusted bitrate, depending on codec and browser support.
|
|
28
24
|
*
|
|
29
|
-
* @category Video export
|
|
30
|
-
*
|
|
31
25
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoQualityLevel | VideoQualityLevel API reference}
|
|
32
26
|
*/
|
|
33
27
|
export type VideoQualityLevel = 'very-low' | 'low' | 'medium' | 'high' | 'very-high';
|
|
@@ -49,8 +43,6 @@ export type VideoQualityLevel = 'very-low' | 'low' | 'medium' | 'high' | 'very-h
|
|
|
49
43
|
* await t.saveVideo({ quality: { bitrate: 8_000_000, bitrateMode: 'constant' } });
|
|
50
44
|
* ```
|
|
51
45
|
*
|
|
52
|
-
* @category Video export
|
|
53
|
-
*
|
|
54
46
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoQuality | VideoQuality API reference}
|
|
55
47
|
*/
|
|
56
48
|
export type VideoQuality = VideoQualityLevel | {
|
|
@@ -66,8 +58,6 @@ export type VideoQuality = VideoQualityLevel | {
|
|
|
66
58
|
*
|
|
67
59
|
* This setting does not affect `toVideoBlob()`, which always returns an in-memory `Blob`.
|
|
68
60
|
*
|
|
69
|
-
* @category Video export
|
|
70
|
-
*
|
|
71
61
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoSaveDestination | VideoSaveDestination API reference}
|
|
72
62
|
*/
|
|
73
63
|
export type VideoSaveDestination = 'download' | 'file-system';
|
|
@@ -77,8 +67,6 @@ export type VideoSaveDestination = 'download' | 'file-system';
|
|
|
77
67
|
* MP4 uses AVC/H.264 and requires even coded dimensions. WebM selects VP9 when available and falls back to VP8; it
|
|
78
68
|
* is the only format that can be requested with transparency.
|
|
79
69
|
*
|
|
80
|
-
* @category Video export
|
|
81
|
-
*
|
|
82
70
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportFormat | VideoExportFormat API reference}
|
|
83
71
|
*/
|
|
84
72
|
export type VideoExportFormat = 'webm' | 'mp4';
|
|
@@ -92,8 +80,6 @@ export type VideoExportFormat = 'webm' | 'mp4';
|
|
|
92
80
|
*
|
|
93
81
|
* If omitted for an explicit target bitrate, Mediabunny uses `'variable'`.
|
|
94
82
|
*
|
|
95
|
-
* @category Video export
|
|
96
|
-
*
|
|
97
83
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoBitrateMode | VideoBitrateMode API reference}
|
|
98
84
|
*/
|
|
99
85
|
export type VideoBitrateMode = 'variable' | 'constant';
|
|
@@ -106,8 +92,6 @@ export type VideoBitrateMode = 'variable' | 'constant';
|
|
|
106
92
|
* availability and output characteristics vary by device.
|
|
107
93
|
* - `'prefer-software'`: prefer CPU encoding, often more consistent across machines, but usually slower.
|
|
108
94
|
*
|
|
109
|
-
* @category Video export
|
|
110
|
-
*
|
|
111
95
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoHardwareAcceleration | VideoHardwareAcceleration API reference}
|
|
112
96
|
*/
|
|
113
97
|
export type VideoHardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software';
|
|
@@ -115,8 +99,6 @@ export type VideoExportErrorCode = 'VIDEO_EXPORT_UNSUPPORTED' | 'VIDEO_CODEC_UNS
|
|
|
115
99
|
/**
|
|
116
100
|
* Progress information emitted while a deterministic video is probed, captured, and written.
|
|
117
101
|
*
|
|
118
|
-
* @category Video export
|
|
119
|
-
*
|
|
120
102
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress | VideoExportProgress API reference}
|
|
121
103
|
*/
|
|
122
104
|
export type VideoExportProgress = {
|
|
@@ -192,8 +174,6 @@ export type VideoExportProgress = {
|
|
|
192
174
|
/**
|
|
193
175
|
* Options for capturing deterministic textmode frames as MP4 or WebM video.
|
|
194
176
|
*
|
|
195
|
-
* @category Video export
|
|
196
|
-
*
|
|
197
177
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions | VideoExportOptions API reference}
|
|
198
178
|
*/
|
|
199
179
|
export type VideoExportOptions = {
|
|
@@ -2,7 +2,6 @@ import type { ZIPExportErrorCode } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Error raised by ZIP frame-sequence validation, capture, or archive creation.
|
|
4
4
|
*
|
|
5
|
-
* @category ZIP frame-sequence export
|
|
6
5
|
* @see {@link https://code.textmode.art/api/textmode.export.js/classes/ZIPExportError | ZIPExportError API reference}
|
|
7
6
|
*/
|
|
8
7
|
export declare class ZIPExportError extends Error {
|
|
@@ -6,28 +6,24 @@ import type { TXTExportOptions } from '../txt';
|
|
|
6
6
|
/**
|
|
7
7
|
* File format used for every frame in a ZIP frame-sequence export.
|
|
8
8
|
*
|
|
9
|
-
* @category ZIP frame-sequence export
|
|
10
9
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPFrameFormat | ZIPFrameFormat API reference}
|
|
11
10
|
*/
|
|
12
11
|
export type ZIPFrameFormat = 'png' | 'jpg' | 'webp' | 'svg' | 'json' | 'txt';
|
|
13
12
|
/**
|
|
14
13
|
* Lifecycle state reported by a ZIP frame-sequence export.
|
|
15
14
|
*
|
|
16
|
-
* @category ZIP frame-sequence export
|
|
17
15
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportState | ZIPExportState API reference}
|
|
18
16
|
*/
|
|
19
17
|
export type ZIPExportState = 'capturing' | 'finalizing' | 'completed' | 'error';
|
|
20
18
|
/**
|
|
21
19
|
* Machine-readable ZIP export failure category.
|
|
22
20
|
*
|
|
23
|
-
* @category ZIP frame-sequence export
|
|
24
21
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportErrorCode | ZIPExportErrorCode API reference}
|
|
25
22
|
*/
|
|
26
23
|
export type ZIPExportErrorCode = 'ZIP_EXPORT_INVALID_OPTIONS' | 'ZIP_EXPORT_ENCODING_UNSUPPORTED' | 'ZIP_EXPORT_TOO_LARGE' | 'ZIP_EXPORT_ABORTED' | 'ZIP_EXPORT_TIMEOUT' | 'ZIP_EXPORT_BUSY' | 'ZIP_EXPORT_DISPOSED' | 'ZIP_EXPORT_FAILED';
|
|
27
24
|
/**
|
|
28
25
|
* Progress information emitted while ZIP frames are captured and archived.
|
|
29
26
|
*
|
|
30
|
-
* @category ZIP frame-sequence export
|
|
31
27
|
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPExportProgress | ZIPExportProgress API reference}
|
|
32
28
|
*/
|
|
33
29
|
export interface ZIPExportProgress {
|
|
@@ -65,7 +61,6 @@ export interface ZIPExportProgress {
|
|
|
65
61
|
/**
|
|
66
62
|
* Options shared by all ZIP frame formats.
|
|
67
63
|
*
|
|
68
|
-
* @category ZIP frame-sequence export
|
|
69
64
|
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPCaptureOptions | ZIPCaptureOptions API reference}
|
|
70
65
|
*/
|
|
71
66
|
export interface ZIPCaptureOptions {
|
|
@@ -109,7 +104,6 @@ export interface ZIPCaptureOptions {
|
|
|
109
104
|
/**
|
|
110
105
|
* Format-specific options forwarded to each existing still exporter.
|
|
111
106
|
*
|
|
112
|
-
* @category ZIP frame-sequence export
|
|
113
107
|
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ZIPFrameOptionsMap | ZIPFrameOptionsMap API reference}
|
|
114
108
|
*/
|
|
115
109
|
export interface ZIPFrameOptionsMap {
|
|
@@ -123,7 +117,6 @@ export interface ZIPFrameOptionsMap {
|
|
|
123
117
|
/**
|
|
124
118
|
* Discriminated options for a deterministic ZIP frame-sequence export.
|
|
125
119
|
*
|
|
126
|
-
* @category ZIP frame-sequence export
|
|
127
120
|
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ZIPExportOptions | ZIPExportOptions API reference}
|
|
128
121
|
*/
|
|
129
122
|
export type ZIPExportOptions = {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -15,30 +15,6 @@
|
|
|
15
15
|
* or use the built-in export overlay. For recipes and format trade-offs, read
|
|
16
16
|
* the [Exporting guide](/docs/exporting).
|
|
17
17
|
*
|
|
18
|
-
* @categoryDescription Workflow
|
|
19
|
-
* Install the plugin and use the export helpers added to a textmode.js sketch.
|
|
20
|
-
*
|
|
21
|
-
* @categoryDescription Canvas capture
|
|
22
|
-
* Export a still image from the rendered canvas.
|
|
23
|
-
*
|
|
24
|
-
* @categoryDescription GIF export
|
|
25
|
-
* Capture deterministic frames and encode an animated GIF.
|
|
26
|
-
*
|
|
27
|
-
* @categoryDescription Video export
|
|
28
|
-
* Capture deterministic frames and encode MP4 or WebM video with Mediabunny.
|
|
29
|
-
*
|
|
30
|
-
* @categoryDescription ZIP frame-sequence export
|
|
31
|
-
* Capture deterministic PNG, JPEG, WebP, SVG, JSON, or TXT frames in a code-only ZIP archive.
|
|
32
|
-
*
|
|
33
|
-
* @categoryDescription Layer data export
|
|
34
|
-
* Export selected-layer text or vector data as TXT or SVG.
|
|
35
|
-
*
|
|
36
|
-
* @categoryDescription JSON document data
|
|
37
|
-
* Export selected-layer or full-stack document data as JSON.
|
|
38
|
-
*
|
|
39
|
-
* @categoryDescription Overlay
|
|
40
|
-
* Configure and control the built-in export overlay.
|
|
41
|
-
*
|
|
42
18
|
* @showCategories
|
|
43
19
|
*/
|
|
44
20
|
import type { TextmodePlugin } from 'textmode.js';
|
|
@@ -48,7 +24,7 @@ export type { TextmodeExportAPI, ExportOverlayController } from './types';
|
|
|
48
24
|
export type { ImageExportOptions } from './exporters/image';
|
|
49
25
|
export type { SVGExportOptions } from './exporters/svg';
|
|
50
26
|
export type { TXTExportOptions } from './exporters/txt';
|
|
51
|
-
export type { JSONExportColorMode, JSONExportOptions
|
|
27
|
+
export type { JSONExportTarget, JSONExportColorMode, JSONExportOptions } from './exporters/json';
|
|
52
28
|
export type { GIFExportOptions, GIFExportProgress } from './exporters/gif';
|
|
53
29
|
export { ZIPExportError } from './exporters/zip';
|
|
54
30
|
export type { ZIPCaptureOptions, ZIPExportErrorCode, ZIPExportOptions, ZIPExportProgress, ZIPExportState, ZIPFrameFormat, ZIPFrameOptionsMap, } from './exporters/zip';
|
|
@@ -57,8 +33,6 @@ export type { LayerExportOptions } from './exporters/base';
|
|
|
57
33
|
/**
|
|
58
34
|
* Default export plugin instance for the standard textmode.js workflow.
|
|
59
35
|
*
|
|
60
|
-
* @category Workflow
|
|
61
|
-
*
|
|
62
36
|
* @see {@link https://code.textmode.art/api/textmode.export.js/variables/ExportPlugin | ExportPlugin API reference}
|
|
63
37
|
*/
|
|
64
38
|
export declare const ExportPlugin: TextmodePlugin;
|