textmode.export.js 1.5.1 → 1.5.2
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 +2 -2
- package/dist/types/augmentations/index.d.ts +5 -0
- package/dist/types/augmentations/index.d.ts.map +1 -0
- package/dist/types/augmentations/textmode.d.ts +9 -0
- package/dist/types/augmentations/textmode.d.ts.map +1 -0
- package/dist/types/augmentations/textmode.test.d.ts +2 -0
- package/dist/types/augmentations/textmode.test.d.ts.map +1 -0
- package/dist/types/exporters/base/LayerTarget.d.ts +4 -0
- package/dist/types/exporters/base/LayerTarget.d.ts.map +1 -1
- package/dist/types/exporters/gif/types.d.ts +24 -0
- package/dist/types/exporters/gif/types.d.ts.map +1 -1
- package/dist/types/exporters/image/types.d.ts +8 -0
- package/dist/types/exporters/image/types.d.ts.map +1 -1
- package/dist/types/exporters/json/types.d.ts +36 -0
- package/dist/types/exporters/json/types.d.ts.map +1 -1
- package/dist/types/exporters/svg/types.d.ts +2 -0
- package/dist/types/exporters/svg/types.d.ts.map +1 -1
- package/dist/types/exporters/txt/types.d.ts +2 -0
- package/dist/types/exporters/txt/types.d.ts.map +1 -1
- package/dist/types/exporters/video/types.d.ts +60 -0
- package/dist/types/exporters/video/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +40 -0
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
- JSON document data (`.json`)
|
|
14
14
|
- Image files (`.png`, `.jpg`, `.webp`)
|
|
15
15
|
- Animated image files (`.gif`)
|
|
16
|
-
- Video files (`.webm`)
|
|
16
|
+
- Video files (`.webm`, `.mp4`)
|
|
17
17
|
- Scalable vector graphics (`.svg`)
|
|
18
18
|
|
|
19
19
|
Besides exporting programatically, `textmode.export.js` also provides an overlay UI for users to easily export their creations.
|
|
@@ -166,6 +166,6 @@ Now that you have `textmode.export.js` set up, you can explore the following res
|
|
|
166
166
|
|
|
167
167
|
## Acknowledgements
|
|
168
168
|
|
|
169
|
-
`textmode.export.js` packages [`
|
|
169
|
+
`textmode.export.js` packages [`mediabunny`](https://github.com/Vanilagy/mediabunny) by [**Vanilagy**](https://github.com/Vanilagy) to provide WebM and MP4 video export support via WebCodecs. `mediabunny` is distributed under the [**MPL-2.0**](https://www.mozilla.org/en-US/MPL/2.0/) license.
|
|
170
170
|
|
|
171
171
|
Animated GIF export relies on [`gifenc`](https://github.com/mattdesl/gifenc) by [**Matt DesLauriers**](https://github.com/mattdesl), available under the [**MIT License**](https://opensource.org/licenses/MIT).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/augmentations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textmode.d.ts","sourceRoot":"","sources":["../../../src/augmentations/textmode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,QAAQ,aAAa,CAAC;IAC5B,UAAU,YAAa,SAAQ,iBAAiB;KAAG;CACnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textmode.test.d.ts","sourceRoot":"","sources":["../../../src/augmentations/textmode.test.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,CAAC"}
|
|
@@ -3,12 +3,16 @@ import type { TextmodeFont, TextmodeTileset } from 'textmode.js';
|
|
|
3
3
|
import type { TextmodeLayer } from 'textmode.js';
|
|
4
4
|
/**
|
|
5
5
|
* Shared option for exporters that read layer framebuffer data.
|
|
6
|
+
*
|
|
7
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/LayerExportOptions | LayerExportOptions API reference}
|
|
6
8
|
*/
|
|
7
9
|
export interface LayerExportOptions {
|
|
8
10
|
/**
|
|
9
11
|
* Layer to export.
|
|
10
12
|
*
|
|
11
13
|
* Defaults to `textmodifier.layers.base`.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/LayerExportOptions#layer | LayerExportOptions.layer API reference}
|
|
12
16
|
*/
|
|
13
17
|
layer?: TextmodeLayer;
|
|
14
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayerTarget.d.ts","sourceRoot":"","sources":["../../../../src/exporters/base/LayerTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"LayerTarget.d.ts","sourceRoot":"","sources":["../../../../src/exporters/base/LayerTarget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,YAAY,GAAG,eAAe,CAAC;IACrC,eAAe,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,8BAA+B,SAAQ,yBAAyB;IAChF,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,IAAI,iBAAiB,EAAE,CAAC;IAClC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACpD,YAAY,IAAI,MAAM,CAAC;CACvB;AAQD,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB,EAAE,CAWrF;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,YAAY,GAAG,mBAAmB,CAMzF;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAWzF;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,yBAAyB,CAmBrH;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,YAAY,GAAG,8BAA8B,EAAE,CAwB3G"}
|
|
@@ -1,39 +1,57 @@
|
|
|
1
1
|
export type GIFRecordingState = 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
2
2
|
/**
|
|
3
3
|
* Progress information emitted during the GIF export process.
|
|
4
|
+
*
|
|
5
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress | GIFExportProgress API reference}
|
|
4
6
|
*/
|
|
5
7
|
export type GIFExportProgress = {
|
|
6
8
|
/**
|
|
7
9
|
* Current state of the recording process.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress#state | GIFExportProgress.state API reference}
|
|
8
12
|
*/
|
|
9
13
|
state: 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
10
14
|
/**
|
|
11
15
|
* Number of frames that have been recorded so far.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress#frameindex | GIFExportProgress.frameIndex API reference}
|
|
12
18
|
*/
|
|
13
19
|
frameIndex?: number;
|
|
14
20
|
/**
|
|
15
21
|
* Total number of frames planned for the recording.
|
|
22
|
+
*
|
|
23
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress#totalframes | GIFExportProgress.totalFrames API reference}
|
|
16
24
|
*/
|
|
17
25
|
totalFrames?: number;
|
|
18
26
|
/**
|
|
19
27
|
* Optional status message for UI consumption.
|
|
28
|
+
*
|
|
29
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportProgress#message | GIFExportProgress.message API reference}
|
|
20
30
|
*/
|
|
21
31
|
message?: string;
|
|
22
32
|
};
|
|
23
33
|
/**
|
|
24
34
|
* Options for exporting the textmode content to GIF format.
|
|
35
|
+
*
|
|
36
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions | GIFExportOptions API reference}
|
|
25
37
|
*/
|
|
26
38
|
export type GIFExportOptions = {
|
|
27
39
|
/**
|
|
28
40
|
* Target filename without extension. Defaults to an auto-generated value.
|
|
41
|
+
*
|
|
42
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#filename | GIFExportOptions.filename API reference}
|
|
29
43
|
*/
|
|
30
44
|
filename?: string;
|
|
31
45
|
/**
|
|
32
46
|
* Desired total number of frames to capture. Defaults to `300`.
|
|
47
|
+
*
|
|
48
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#framecount | GIFExportOptions.frameCount API reference}
|
|
33
49
|
*/
|
|
34
50
|
frameCount?: number;
|
|
35
51
|
/**
|
|
36
52
|
* Target frame rate for the export, in frames per second. Defaults to `60`.
|
|
53
|
+
*
|
|
54
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#framerate | GIFExportOptions.frameRate API reference}
|
|
37
55
|
*/
|
|
38
56
|
frameRate?: number;
|
|
39
57
|
/**
|
|
@@ -42,14 +60,20 @@ export type GIFExportOptions = {
|
|
|
42
60
|
* `1.0` = original size, `2.0` = double size, `0.5` = half size.
|
|
43
61
|
*
|
|
44
62
|
* Defaults to `1.0`.
|
|
63
|
+
*
|
|
64
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#scale | GIFExportOptions.scale API reference}
|
|
45
65
|
*/
|
|
46
66
|
scale?: number;
|
|
47
67
|
/**
|
|
48
68
|
* GIF loop count. 0 = loop forever. Defaults to `0`.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#repeat | GIFExportOptions.repeat API reference}
|
|
49
71
|
*/
|
|
50
72
|
repeat?: number;
|
|
51
73
|
/**
|
|
52
74
|
* Progress callback invoked throughout the recording lifecycle.
|
|
75
|
+
*
|
|
76
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/GIFExportOptions#onprogress | GIFExportOptions.onProgress API reference}
|
|
53
77
|
*/
|
|
54
78
|
onProgress?: (progress: GIFExportProgress) => void;
|
|
55
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/gif/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE1F
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/gif/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE1F;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B;;;;OAIG;IACH,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IACjE;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -7,14 +7,20 @@
|
|
|
7
7
|
export type ImageFormat = 'png' | 'jpg' | 'webp';
|
|
8
8
|
/**
|
|
9
9
|
* Options for exporting the textmode content to image format.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions | ImageExportOptions API reference}
|
|
10
12
|
*/
|
|
11
13
|
export type ImageExportOptions = {
|
|
12
14
|
/**
|
|
13
15
|
* Target filename without extension. Defaults to an auto-generated value.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions#filename | ImageExportOptions.filename API reference}
|
|
14
18
|
*/
|
|
15
19
|
filename?: string;
|
|
16
20
|
/**
|
|
17
21
|
* The image format to export *(`'png'`, `'jpg'`, or `'webp'`)*. Defaults to `'png'`.
|
|
22
|
+
*
|
|
23
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions#format | ImageExportOptions.format API reference}
|
|
18
24
|
*/
|
|
19
25
|
format?: 'png' | 'jpg' | 'webp';
|
|
20
26
|
/**
|
|
@@ -23,6 +29,8 @@ export type ImageExportOptions = {
|
|
|
23
29
|
* `1.0` = original size, `2.0` = double size, `0.5` = half size.
|
|
24
30
|
*
|
|
25
31
|
* Defaults to `1.0`.
|
|
32
|
+
*
|
|
33
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/ImageExportOptions#scale | ImageExportOptions.scale API reference}
|
|
26
34
|
*/
|
|
27
35
|
scale?: number;
|
|
28
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/image/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/image/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAEhC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI/C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI/C,CAAC"}
|
|
@@ -1,22 +1,32 @@
|
|
|
1
1
|
import type { LayerExportOptions } from '../base';
|
|
2
2
|
/**
|
|
3
3
|
* Target scope for JSON export.
|
|
4
|
+
*
|
|
5
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportTarget | JSONExportTarget API reference}
|
|
4
6
|
*/
|
|
5
7
|
export type JSONExportTarget = 'selected' | 'all';
|
|
6
8
|
/**
|
|
7
9
|
* Canonical JSON document format identifier.
|
|
10
|
+
*
|
|
11
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentFormat | JSONDocumentFormat API reference}
|
|
8
12
|
*/
|
|
9
13
|
export type JSONDocumentFormat = 'textmode.document';
|
|
10
14
|
/**
|
|
11
15
|
* Canonical JSON document format version.
|
|
16
|
+
*
|
|
17
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONDocumentVersion | JSONDocumentVersion API reference}
|
|
12
18
|
*/
|
|
13
19
|
export type JSONDocumentVersion = '2.0.0';
|
|
14
20
|
/**
|
|
15
21
|
* Supported JSON color output modes.
|
|
22
|
+
*
|
|
23
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportColorMode | JSONExportColorMode API reference}
|
|
16
24
|
*/
|
|
17
25
|
export type JSONExportColorMode = 'hex' | 'rgba';
|
|
18
26
|
/**
|
|
19
27
|
* RGBA color representation used in JSON exports.
|
|
28
|
+
*
|
|
29
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONRGBAColor | JSONRGBAColor API reference}
|
|
20
30
|
*/
|
|
21
31
|
export interface JSONRGBAColor {
|
|
22
32
|
r: number;
|
|
@@ -26,10 +36,14 @@ export interface JSONRGBAColor {
|
|
|
26
36
|
}
|
|
27
37
|
/**
|
|
28
38
|
* Color value used in the exported JSON document.
|
|
39
|
+
*
|
|
40
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONColorValue | JSONColorValue API reference}
|
|
29
41
|
*/
|
|
30
42
|
export type JSONColorValue = string | JSONRGBAColor;
|
|
31
43
|
/**
|
|
32
44
|
* Cell transform data for JSON exports.
|
|
45
|
+
*
|
|
46
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONCellTransform | JSONCellTransform API reference}
|
|
33
47
|
*/
|
|
34
48
|
export interface JSONCellTransform {
|
|
35
49
|
invert: boolean;
|
|
@@ -39,6 +53,8 @@ export interface JSONCellTransform {
|
|
|
39
53
|
}
|
|
40
54
|
/**
|
|
41
55
|
* Rich per-cell representation for readable JSON exports.
|
|
56
|
+
*
|
|
57
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowCell | JSONObjectRowCell API reference}
|
|
42
58
|
*/
|
|
43
59
|
export interface JSONObjectRowCell {
|
|
44
60
|
x: number;
|
|
@@ -50,6 +66,8 @@ export interface JSONObjectRowCell {
|
|
|
50
66
|
}
|
|
51
67
|
/**
|
|
52
68
|
* Row-based cell encoding.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONObjectRowsCellCollection | JSONObjectRowsCellCollection API reference}
|
|
53
71
|
*/
|
|
54
72
|
export interface JSONObjectRowsCellCollection {
|
|
55
73
|
encoding: 'object-rows-v1';
|
|
@@ -57,10 +75,14 @@ export interface JSONObjectRowsCellCollection {
|
|
|
57
75
|
}
|
|
58
76
|
/**
|
|
59
77
|
* Supported JSON cell collection variants.
|
|
78
|
+
*
|
|
79
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONCellCollection | JSONCellCollection API reference}
|
|
60
80
|
*/
|
|
61
81
|
export type JSONCellCollection = JSONObjectRowsCellCollection;
|
|
62
82
|
/**
|
|
63
83
|
* Grid dimensions exported for a layer.
|
|
84
|
+
*
|
|
85
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONLayerGrid | JSONLayerGrid API reference}
|
|
64
86
|
*/
|
|
65
87
|
export interface JSONLayerGrid {
|
|
66
88
|
cols: number;
|
|
@@ -70,6 +92,8 @@ export interface JSONLayerGrid {
|
|
|
70
92
|
}
|
|
71
93
|
/**
|
|
72
94
|
* Optional export metadata.
|
|
95
|
+
*
|
|
96
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/JSONExportMetadata | JSONExportMetadata API reference}
|
|
73
97
|
*/
|
|
74
98
|
export interface JSONExportMetadata {
|
|
75
99
|
createdAt: string;
|
|
@@ -80,6 +104,8 @@ export interface JSONExportMetadata {
|
|
|
80
104
|
}
|
|
81
105
|
/**
|
|
82
106
|
* Selected-layer entry in a JSON document export.
|
|
107
|
+
*
|
|
108
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentLayer | TextmodeSelectedDocumentLayer API reference}
|
|
83
109
|
*/
|
|
84
110
|
export interface TextmodeSelectedDocumentLayer {
|
|
85
111
|
id: string;
|
|
@@ -87,6 +113,8 @@ export interface TextmodeSelectedDocumentLayer {
|
|
|
87
113
|
}
|
|
88
114
|
/**
|
|
89
115
|
* Selected-layer document exported by the JSON exporter.
|
|
116
|
+
*
|
|
117
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeSelectedDocumentJSON | TextmodeSelectedDocumentJSON API reference}
|
|
90
118
|
*/
|
|
91
119
|
export interface TextmodeSelectedDocumentJSON {
|
|
92
120
|
format: JSONDocumentFormat;
|
|
@@ -102,6 +130,8 @@ export interface TextmodeSelectedDocumentJSON {
|
|
|
102
130
|
}
|
|
103
131
|
/**
|
|
104
132
|
* Single layer entry in an all-layers JSON export.
|
|
133
|
+
*
|
|
134
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeDocumentLayer | TextmodeDocumentLayer API reference}
|
|
105
135
|
*/
|
|
106
136
|
export interface TextmodeDocumentLayer {
|
|
107
137
|
id: string;
|
|
@@ -116,6 +146,8 @@ export interface TextmodeDocumentLayer {
|
|
|
116
146
|
}
|
|
117
147
|
/**
|
|
118
148
|
* Layer stack document exported by the JSON exporter.
|
|
149
|
+
*
|
|
150
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeAllDocumentJSON | TextmodeAllDocumentJSON API reference}
|
|
119
151
|
*/
|
|
120
152
|
export interface TextmodeAllDocumentJSON {
|
|
121
153
|
format: JSONDocumentFormat;
|
|
@@ -130,10 +162,14 @@ export interface TextmodeAllDocumentJSON {
|
|
|
130
162
|
}
|
|
131
163
|
/**
|
|
132
164
|
* JSON document exported by the JSON exporter.
|
|
165
|
+
*
|
|
166
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TextmodeDocumentJSON | TextmodeDocumentJSON API reference}
|
|
133
167
|
*/
|
|
134
168
|
export type TextmodeDocumentJSON = TextmodeSelectedDocumentJSON | TextmodeAllDocumentJSON;
|
|
135
169
|
/**
|
|
136
170
|
* Options for exporting the textmode content to JSON format.
|
|
171
|
+
*
|
|
172
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/JSONExportOptions | JSONExportOptions API reference}
|
|
137
173
|
*/
|
|
138
174
|
export type JSONExportOptions = LayerExportOptions & {
|
|
139
175
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/json/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,8 @@ export interface FramebufferData {
|
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
55
|
* Options for exporting the textmode content to SVG format.
|
|
56
|
+
*
|
|
57
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/SVGExportOptions | SVGExportOptions API reference}
|
|
56
58
|
*/
|
|
57
59
|
export type SVGExportOptions = LayerExportOptions & {
|
|
58
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,UAAU,CAAC;IAC5B,kBAAkB,EAAE,UAAU,CAAC;IAC/B,oBAAoB,EAAE,UAAU,CAAC;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/svg/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,IAAI,CAAC;IACnB,cAAc,EAAE,IAAI,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,eAAe,EAAE,UAAU,CAAC;IAC5B,kBAAkB,EAAE,UAAU,CAAC;IAC/B,oBAAoB,EAAE,UAAU,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IACnD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAE7B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB,cAAc,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,KAAK,IAAI,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,2BAA2B,EAAE,OAAO,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACpC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { LayerExportOptions } from '../base';
|
|
2
2
|
/**
|
|
3
3
|
* Options for exporting the textmode content to TXT format.
|
|
4
|
+
*
|
|
5
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/TXTExportOptions | TXTExportOptions API reference}
|
|
4
6
|
*/
|
|
5
7
|
export type TXTExportOptions = LayerExportOptions & {
|
|
6
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/txt/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG;IACnD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lifecycle state reported while a video export is being prepared, recorded, encoded, or completed.
|
|
3
|
+
*
|
|
4
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoRecordingState | VideoRecordingState API reference}
|
|
3
5
|
*/
|
|
4
6
|
export type VideoRecordingState = 'idle' | 'recording' | 'encoding' | 'completed' | 'error';
|
|
5
7
|
/**
|
|
6
8
|
* More granular phase information for progress UIs that need to distinguish setup, rendering, and finalization.
|
|
7
9
|
*
|
|
8
10
|
* `rendering` is retained for 1.5.x compatibility. Current deterministic video capture emits `capturing`.
|
|
11
|
+
*
|
|
12
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportPhase | VideoExportPhase API reference}
|
|
9
13
|
*/
|
|
10
14
|
export type VideoExportPhase = 'probing' | 'rendering' | 'capturing' | 'encoding' | 'draining' | 'finalizing';
|
|
11
15
|
export type VideoCodec = 'vp8' | 'vp9' | 'avc' | (string & {});
|
|
@@ -14,10 +18,14 @@ export type VideoCodec = 'vp8' | 'vp9' | 'avc' | (string & {});
|
|
|
14
18
|
*
|
|
15
19
|
* Higher presets produce larger files with more detail. For exact control, pass a numeric
|
|
16
20
|
* `bitrate` value in bits per second instead.
|
|
21
|
+
*
|
|
22
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoBitratePreset | VideoBitratePreset API reference}
|
|
17
23
|
*/
|
|
18
24
|
export type VideoBitratePreset = 'low' | 'medium' | 'high';
|
|
19
25
|
/**
|
|
20
26
|
* Video container format written by `saveVideo`.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportFormat | VideoExportFormat API reference}
|
|
21
29
|
*/
|
|
22
30
|
export type VideoExportFormat = 'webm' | 'mp4';
|
|
23
31
|
/**
|
|
@@ -27,6 +35,8 @@ export type VideoExportFormat = 'webm' | 'mp4';
|
|
|
27
35
|
* This is usually the best default for generative animations.
|
|
28
36
|
* - `'constant'`: asks the encoder to keep the bitrate steadier throughout the export. This can make file size
|
|
29
37
|
* more predictable, but may waste bits on simple frames or reduce detail on complex frames.
|
|
38
|
+
*
|
|
39
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoBitrateMode | VideoBitrateMode API reference}
|
|
30
40
|
*/
|
|
31
41
|
export type VideoBitrateMode = 'variable' | 'constant';
|
|
32
42
|
/**
|
|
@@ -35,6 +45,8 @@ export type VideoBitrateMode = 'variable' | 'constant';
|
|
|
35
45
|
* - `'quality'`: prioritizes complete, stable export output. Mediabunny notes that this mode prevents dropped frames.
|
|
36
46
|
* - `'realtime'`: prioritizes low-latency encoding. It is intended for live streams and may drop frames when overloaded,
|
|
37
47
|
* so it is usually not recommended for frame-perfect exports.
|
|
48
|
+
*
|
|
49
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoLatencyMode | VideoLatencyMode API reference}
|
|
38
50
|
*/
|
|
39
51
|
export type VideoLatencyMode = 'quality' | 'realtime';
|
|
40
52
|
/**
|
|
@@ -45,60 +57,88 @@ export type VideoLatencyMode = 'quality' | 'realtime';
|
|
|
45
57
|
* - `'prefer-hardware'`: prefer GPU/ASIC encoding when available, often faster and more power-efficient, but codec
|
|
46
58
|
* availability and output characteristics vary by device.
|
|
47
59
|
* - `'prefer-software'`: prefer CPU encoding, often more consistent across machines, but usually slower.
|
|
60
|
+
*
|
|
61
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoHardwareAcceleration | VideoHardwareAcceleration API reference}
|
|
48
62
|
*/
|
|
49
63
|
export type VideoHardwareAcceleration = 'no-preference' | 'prefer-hardware' | 'prefer-software';
|
|
50
64
|
export type VideoExportErrorCode = 'VIDEO_EXPORT_UNSUPPORTED' | 'VIDEO_CODEC_UNSUPPORTED' | 'VIDEO_EXPORT_ABORTED' | 'VIDEO_EXPORT_TIMEOUT' | 'VIDEO_EXPORT_FAILED' | 'VIDEO_TRANSPARENCY_UNSUPPORTED';
|
|
51
65
|
/**
|
|
52
66
|
* Progress information emitted during the video export process.
|
|
67
|
+
*
|
|
68
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress | VideoExportProgress API reference}
|
|
53
69
|
*/
|
|
54
70
|
export type VideoExportProgress = {
|
|
55
71
|
/**
|
|
56
72
|
* Current state of the recording process.
|
|
73
|
+
*
|
|
74
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#state | VideoExportProgress.state API reference}
|
|
57
75
|
*/
|
|
58
76
|
state: VideoRecordingState;
|
|
59
77
|
/**
|
|
60
78
|
* Current export phase for newer progress UIs.
|
|
79
|
+
*
|
|
80
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#phase | VideoExportProgress.phase API reference}
|
|
61
81
|
*/
|
|
62
82
|
phase?: VideoExportPhase;
|
|
63
83
|
/**
|
|
64
84
|
* Number of frames that have been recorded so far.
|
|
85
|
+
*
|
|
86
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#frameindex | VideoExportProgress.frameIndex API reference}
|
|
65
87
|
*/
|
|
66
88
|
frameIndex?: number;
|
|
67
89
|
/**
|
|
68
90
|
* Alias for {@link frameIndex}. Prefer this field in new code.
|
|
91
|
+
*
|
|
92
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#frame | VideoExportProgress.frame API reference}
|
|
69
93
|
*/
|
|
70
94
|
frame?: number;
|
|
71
95
|
/**
|
|
72
96
|
* Total number of frames planned for the recording.
|
|
97
|
+
*
|
|
98
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#totalframes | VideoExportProgress.totalFrames API reference}
|
|
73
99
|
*/
|
|
74
100
|
totalFrames?: number;
|
|
75
101
|
/**
|
|
76
102
|
* Export completion ratio between `0` and `1`.
|
|
103
|
+
*
|
|
104
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#progress | VideoExportProgress.progress API reference}
|
|
77
105
|
*/
|
|
78
106
|
progress?: number;
|
|
79
107
|
/**
|
|
80
108
|
* Optional status message for UI consumption.
|
|
109
|
+
*
|
|
110
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportProgress#message | VideoExportProgress.message API reference}
|
|
81
111
|
*/
|
|
82
112
|
message?: string;
|
|
83
113
|
};
|
|
84
114
|
/**
|
|
85
115
|
* Options for exporting the textmode content to video format.
|
|
116
|
+
*
|
|
117
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions | VideoExportOptions API reference}
|
|
86
118
|
*/
|
|
87
119
|
export type VideoExportOptions = {
|
|
88
120
|
/**
|
|
89
121
|
* Target filename without extension. Defaults to an auto-generated value.
|
|
122
|
+
*
|
|
123
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#filename | VideoExportOptions.filename API reference}
|
|
90
124
|
*/
|
|
91
125
|
filename?: string;
|
|
92
126
|
/**
|
|
93
127
|
* Video container format. Defaults to `'mp4'`.
|
|
128
|
+
*
|
|
129
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#format | VideoExportOptions.format API reference}
|
|
94
130
|
*/
|
|
95
131
|
format?: VideoExportFormat;
|
|
96
132
|
/**
|
|
97
133
|
* Desired total number of frames to capture. Defaults to `300`.
|
|
134
|
+
*
|
|
135
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#framecount | VideoExportOptions.frameCount API reference}
|
|
98
136
|
*/
|
|
99
137
|
frameCount?: number;
|
|
100
138
|
/**
|
|
101
139
|
* Target frame rate for the export, in frames per second. Defaults to `60`.
|
|
140
|
+
*
|
|
141
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#framerate | VideoExportOptions.frameRate API reference}
|
|
102
142
|
*/
|
|
103
143
|
frameRate?: number;
|
|
104
144
|
/**
|
|
@@ -107,6 +147,8 @@ export type VideoExportOptions = {
|
|
|
107
147
|
* Bitrate controls how much encoded data is available per second of video. Higher values can preserve more detail
|
|
108
148
|
* in noisy or fast-changing sketches, but create larger files. Presets are resolved from the export dimensions and
|
|
109
149
|
* frame rate; numeric values are passed directly to the encoder.
|
|
150
|
+
*
|
|
151
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#bitrate | VideoExportOptions.bitrate API reference}
|
|
110
152
|
*/
|
|
111
153
|
bitrate?: number | VideoBitratePreset;
|
|
112
154
|
/**
|
|
@@ -114,6 +156,8 @@ export type VideoExportOptions = {
|
|
|
114
156
|
*
|
|
115
157
|
* Use `'variable'` for most exports so simple frames can compress efficiently and complex frames can receive more
|
|
116
158
|
* bits. Use `'constant'` only when a steadier data rate is more important than compression efficiency.
|
|
159
|
+
*
|
|
160
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#bitratemode | VideoExportOptions.bitrateMode API reference}
|
|
117
161
|
*/
|
|
118
162
|
bitrateMode?: VideoBitrateMode;
|
|
119
163
|
/**
|
|
@@ -121,6 +165,8 @@ export type VideoExportOptions = {
|
|
|
121
165
|
*
|
|
122
166
|
* Use `'quality'` for deterministic exports; it prioritizes completed output and avoids dropped frames. Use
|
|
123
167
|
* `'realtime'` only for low-latency use cases where dropped frames are acceptable.
|
|
168
|
+
*
|
|
169
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#latencymode | VideoExportOptions.latencyMode API reference}
|
|
124
170
|
*/
|
|
125
171
|
latencyMode?: VideoLatencyMode;
|
|
126
172
|
/**
|
|
@@ -128,6 +174,8 @@ export type VideoExportOptions = {
|
|
|
128
174
|
*
|
|
129
175
|
* Browsers may ignore this hint. `'prefer-hardware'` can be faster on supported devices; `'prefer-software'` can be
|
|
130
176
|
* more predictable but slower. `'no-preference'` lets the browser choose.
|
|
177
|
+
*
|
|
178
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#hardwareacceleration | VideoExportOptions.hardwareAcceleration API reference}
|
|
131
179
|
*/
|
|
132
180
|
hardwareAcceleration?: VideoHardwareAcceleration;
|
|
133
181
|
/**
|
|
@@ -136,26 +184,38 @@ export type VideoExportOptions = {
|
|
|
136
184
|
* Key frames are independently decodable frames used for seeking and recovery. Shorter intervals improve seeking
|
|
137
185
|
* responsiveness but increase file size. Longer intervals can shrink files but make seeking less precise.
|
|
138
186
|
* Use `0` to request every frame as a key frame.
|
|
187
|
+
*
|
|
188
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#keyframeinterval | VideoExportOptions.keyFrameInterval API reference}
|
|
139
189
|
*/
|
|
140
190
|
keyFrameInterval?: number;
|
|
141
191
|
/**
|
|
142
192
|
* Pixel density used during export. Defaults to `1` so video dimensions match the live canvas.
|
|
193
|
+
*
|
|
194
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#pixeldensity | VideoExportOptions.pixelDensity API reference}
|
|
143
195
|
*/
|
|
144
196
|
pixelDensity?: number;
|
|
145
197
|
/**
|
|
146
198
|
* Abort signal for cancelling an in-progress export.
|
|
199
|
+
*
|
|
200
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#signal | VideoExportOptions.signal API reference}
|
|
147
201
|
*/
|
|
148
202
|
signal?: AbortSignal;
|
|
149
203
|
/**
|
|
150
204
|
* When true, attempts to preserve alpha data in WebM recordings. MP4 exports reject this option.
|
|
205
|
+
*
|
|
206
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#transparent | VideoExportOptions.transparent API reference}
|
|
151
207
|
*/
|
|
152
208
|
transparent?: boolean;
|
|
153
209
|
/**
|
|
154
210
|
* Progress callback invoked throughout the recording lifecycle.
|
|
211
|
+
*
|
|
212
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#onprogress | VideoExportOptions.onProgress API reference}
|
|
155
213
|
*/
|
|
156
214
|
onProgress?: (progress: VideoExportProgress) => void;
|
|
157
215
|
/**
|
|
158
216
|
* Enables verbose logging. Defaults to `false`.
|
|
217
|
+
*
|
|
218
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/type-aliases/VideoExportOptions#debuglogging | VideoExportOptions.debugLogging API reference}
|
|
159
219
|
*/
|
|
160
220
|
debugLogging?: boolean;
|
|
161
221
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/exporters/video/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
* @module textmode.export.js
|
|
27
27
|
*/
|
|
28
28
|
import type { TextmodePlugin } from 'textmode.js';
|
|
29
|
+
import './augmentations';
|
|
29
30
|
import type { TextmodeExportPluginOptions } from './types';
|
|
30
31
|
export type { TextmodeExportAPI, TextmodeExportPluginOptions, ExportOverlayController } from './types';
|
|
31
32
|
export type { ImageExportOptions } from './exporters/image';
|
|
@@ -44,6 +45,8 @@ export type { LayerExportOptions } from './exporters/base';
|
|
|
44
45
|
*
|
|
45
46
|
* @example
|
|
46
47
|
* {@includeCode ../examples/ExportPlugin/init/sketch.js}
|
|
48
|
+
*
|
|
49
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/variables/ExportPlugin | ExportPlugin API reference}
|
|
47
50
|
*/
|
|
48
51
|
export declare const ExportPlugin: TextmodePlugin;
|
|
49
52
|
/**
|
|
@@ -65,6 +68,8 @@ export declare const ExportPlugin: TextmodePlugin;
|
|
|
65
68
|
*
|
|
66
69
|
* @param options Plugin options
|
|
67
70
|
* @returns A textmode.js plugin instance.
|
|
71
|
+
*
|
|
72
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/functions/createTextmodeExportPlugin | createTextmodeExportPlugin API reference}
|
|
68
73
|
*/
|
|
69
74
|
export declare const createTextmodeExportPlugin: (options?: TextmodeExportPluginOptions) => TextmodePlugin;
|
|
70
75
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAC;AACzE,OAAO,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAqB,2BAA2B,EAA2B,MAAM,SAAS,CAAC;AAIvG,YAAY,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvG,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EACX,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,4BAA4B,EAC5B,aAAa,EACb,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,6BAA6B,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,YAAY,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO3D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,EAAE,cAqL1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,0BAA0B,GAAI,UAAS,2BAAgC,KAAG,cAkBtF,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,cAAc,CAAC;QAC9B,0BAA0B,CAAC,EAAE,OAAO,0BAA0B,CAAC;KAC/D;CACD"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ import type { VideoExportOptions } from './exporters/video';
|
|
|
6
6
|
import type { JSONExportOptions, TextmodeDocumentJSON } from './exporters/json';
|
|
7
7
|
/**
|
|
8
8
|
* Controller for managing the export overlay UI visibility at runtime.
|
|
9
|
+
*
|
|
10
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController | ExportOverlayController API reference}
|
|
9
11
|
*/
|
|
10
12
|
export interface ExportOverlayController {
|
|
11
13
|
/**
|
|
@@ -15,6 +17,8 @@ export interface ExportOverlayController {
|
|
|
15
17
|
* ```ts
|
|
16
18
|
* t.exportOverlay.show();
|
|
17
19
|
* ```
|
|
20
|
+
*
|
|
21
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/show | ExportOverlayController.show API reference}
|
|
18
22
|
*/
|
|
19
23
|
show(): void;
|
|
20
24
|
/**
|
|
@@ -24,6 +28,8 @@ export interface ExportOverlayController {
|
|
|
24
28
|
* ```ts
|
|
25
29
|
* t.exportOverlay.hide();
|
|
26
30
|
* ```
|
|
31
|
+
*
|
|
32
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/hide | ExportOverlayController.hide API reference}
|
|
27
33
|
*/
|
|
28
34
|
hide(): void;
|
|
29
35
|
/**
|
|
@@ -33,6 +39,8 @@ export interface ExportOverlayController {
|
|
|
33
39
|
* ```ts
|
|
34
40
|
* t.exportOverlay.toggle();
|
|
35
41
|
* ```
|
|
42
|
+
*
|
|
43
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/toggle | ExportOverlayController.toggle API reference}
|
|
36
44
|
*/
|
|
37
45
|
toggle(): void;
|
|
38
46
|
/**
|
|
@@ -42,6 +50,8 @@ export interface ExportOverlayController {
|
|
|
42
50
|
* ```ts
|
|
43
51
|
* const visible = t.exportOverlay.isVisible();
|
|
44
52
|
* ```
|
|
53
|
+
*
|
|
54
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/ExportOverlayController/methods/isVisible | ExportOverlayController.isVisible API reference}
|
|
45
55
|
*/
|
|
46
56
|
isVisible(): boolean;
|
|
47
57
|
}
|
|
@@ -50,10 +60,14 @@ export interface ExportOverlayController {
|
|
|
50
60
|
*
|
|
51
61
|
* @example
|
|
52
62
|
* {@includeCode ../examples/ExportPlugin/layerTargets/sketch.js}
|
|
63
|
+
*
|
|
64
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI | TextmodeExportAPI API reference}
|
|
53
65
|
*/
|
|
54
66
|
export interface TextmodeExportAPI {
|
|
55
67
|
/**
|
|
56
68
|
* Controller for managing the export overlay UI visibility at runtime.
|
|
69
|
+
*
|
|
70
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI#exportoverlay | TextmodeExportAPI.exportOverlay API reference}
|
|
57
71
|
*/
|
|
58
72
|
exportOverlay: ExportOverlayController;
|
|
59
73
|
/**
|
|
@@ -65,6 +79,8 @@ export interface TextmodeExportAPI {
|
|
|
65
79
|
* ```ts
|
|
66
80
|
* await t.saveCanvas({ format: 'png', filename: 'frame-001' });
|
|
67
81
|
* ```
|
|
82
|
+
*
|
|
83
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveCanvas | TextmodeExportAPI.saveCanvas API reference}
|
|
68
84
|
*/
|
|
69
85
|
saveCanvas(options?: ImageExportOptions): Promise<void>;
|
|
70
86
|
/**
|
|
@@ -76,6 +92,8 @@ export interface TextmodeExportAPI {
|
|
|
76
92
|
* ```ts
|
|
77
93
|
* await t.copyCanvas({ format: 'png' });
|
|
78
94
|
* ```
|
|
95
|
+
*
|
|
96
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/copyCanvas | TextmodeExportAPI.copyCanvas API reference}
|
|
79
97
|
*/
|
|
80
98
|
copyCanvas(options?: ImageExportOptions): Promise<void>;
|
|
81
99
|
/**
|
|
@@ -87,6 +105,8 @@ export interface TextmodeExportAPI {
|
|
|
87
105
|
* ```ts
|
|
88
106
|
* t.saveSVG({ filename: 'poster', layer: t.layers.base, includeBackgroundRectangles: true });
|
|
89
107
|
* ```
|
|
108
|
+
*
|
|
109
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveSVG | TextmodeExportAPI.saveSVG API reference}
|
|
90
110
|
*/
|
|
91
111
|
saveSVG(options?: SVGExportOptions): void;
|
|
92
112
|
/**
|
|
@@ -98,6 +118,8 @@ export interface TextmodeExportAPI {
|
|
|
98
118
|
* ```ts
|
|
99
119
|
* t.saveStrings({ filename: 'frame', layer: t.layers.base, preserveTrailingSpaces: true });
|
|
100
120
|
* ```
|
|
121
|
+
*
|
|
122
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveStrings | TextmodeExportAPI.saveStrings API reference}
|
|
101
123
|
*/
|
|
102
124
|
saveStrings(options?: TXTExportOptions): void;
|
|
103
125
|
/**
|
|
@@ -110,6 +132,8 @@ export interface TextmodeExportAPI {
|
|
|
110
132
|
* ```ts
|
|
111
133
|
* const svg = t.toSVG({ layer: t.layers.base, drawMode: 'stroke', strokeWidth: 1.5 });
|
|
112
134
|
* ```
|
|
135
|
+
*
|
|
136
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toSVG | TextmodeExportAPI.toSVG API reference}
|
|
113
137
|
*/
|
|
114
138
|
toSVG(options?: SVGExportOptions): string;
|
|
115
139
|
/**
|
|
@@ -122,6 +146,8 @@ export interface TextmodeExportAPI {
|
|
|
122
146
|
* ```ts
|
|
123
147
|
* const text = t.toString({ layer: t.layers.base, preserveTrailingSpaces: false });
|
|
124
148
|
* ```
|
|
149
|
+
*
|
|
150
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toString | TextmodeExportAPI.toString API reference}
|
|
125
151
|
*/
|
|
126
152
|
toString(options?: TXTExportOptions): string;
|
|
127
153
|
/**
|
|
@@ -135,6 +161,8 @@ export interface TextmodeExportAPI {
|
|
|
135
161
|
* const layer = t.toJSON({ layer: t.layers.base, colorMode: 'hex', includeMetadata: true });
|
|
136
162
|
* const stack = t.toJSON({ target: 'all' });
|
|
137
163
|
* ```
|
|
164
|
+
*
|
|
165
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toJSON | TextmodeExportAPI.toJSON API reference}
|
|
138
166
|
*/
|
|
139
167
|
toJSON(options?: JSONExportOptions): TextmodeDocumentJSON;
|
|
140
168
|
/**
|
|
@@ -148,6 +176,8 @@ export interface TextmodeExportAPI {
|
|
|
148
176
|
* const json = t.toJSONString({ layer: t.layers.base, pretty: false, colorMode: 'hex' });
|
|
149
177
|
* const stackJson = t.toJSONString({ target: 'all' });
|
|
150
178
|
* ```
|
|
179
|
+
*
|
|
180
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/toJSONString | TextmodeExportAPI.toJSONString API reference}
|
|
151
181
|
*/
|
|
152
182
|
toJSONString(options?: JSONExportOptions): string;
|
|
153
183
|
/**
|
|
@@ -160,6 +190,8 @@ export interface TextmodeExportAPI {
|
|
|
160
190
|
* t.saveJSON({ filename: 'frame', layer: t.layers.base, pretty: true });
|
|
161
191
|
* t.saveJSON({ filename: 'stack', target: 'all' });
|
|
162
192
|
* ```
|
|
193
|
+
*
|
|
194
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveJSON | TextmodeExportAPI.saveJSON API reference}
|
|
163
195
|
*/
|
|
164
196
|
saveJSON(options?: JSONExportOptions): void;
|
|
165
197
|
/**
|
|
@@ -171,6 +203,8 @@ export interface TextmodeExportAPI {
|
|
|
171
203
|
* ```ts
|
|
172
204
|
* await t.saveGIF({ frameCount: 120, frameRate: 30, filename: 'loop' });
|
|
173
205
|
* ```
|
|
206
|
+
*
|
|
207
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveGIF | TextmodeExportAPI.saveGIF API reference}
|
|
174
208
|
*/
|
|
175
209
|
saveGIF(options?: GIFExportOptions): Promise<void>;
|
|
176
210
|
/**
|
|
@@ -191,6 +225,8 @@ export interface TextmodeExportAPI {
|
|
|
191
225
|
* filename: 'capture',
|
|
192
226
|
* });
|
|
193
227
|
* ```
|
|
228
|
+
*
|
|
229
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportAPI/methods/saveVideo | TextmodeExportAPI.saveVideo API reference}
|
|
194
230
|
*/
|
|
195
231
|
saveVideo(options?: VideoExportOptions): Promise<void>;
|
|
196
232
|
}
|
|
@@ -200,6 +236,8 @@ export interface TextmodeExportAPI {
|
|
|
200
236
|
* @deprecated This interface is only used by the deprecated `createTextmodeExportPlugin` function.
|
|
201
237
|
* Use {@link ExportPlugin} directly instead, and control overlay visibility at runtime via
|
|
202
238
|
* {@link ExportOverlayController}.
|
|
239
|
+
*
|
|
240
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportPluginOptions | TextmodeExportPluginOptions API reference}
|
|
203
241
|
*/
|
|
204
242
|
export interface TextmodeExportPluginOptions {
|
|
205
243
|
/**
|
|
@@ -207,6 +245,8 @@ export interface TextmodeExportPluginOptions {
|
|
|
207
245
|
* Defaults to `true`.
|
|
208
246
|
*
|
|
209
247
|
* @deprecated Use runtime overlay controls instead: `textmodifier.exportOverlay.show()` / `.hide()`
|
|
248
|
+
*
|
|
249
|
+
* @see {@link https://code.textmode.art/api/textmode.export.js/interfaces/TextmodeExportPluginOptions#overlay | TextmodeExportPluginOptions.overlay API reference}
|
|
210
250
|
*/
|
|
211
251
|
overlay?: boolean;
|
|
212
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;;;;;;;;OASG;IACH,SAAS,IAAI,OAAO,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,aAAa,EAAE,uBAAuB,CAAC;IAEvC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExD;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE1C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAE9C;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAE7C;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IAE1D;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAC;IAElD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "textmode.export.js",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.2",
|
|
4
4
|
"description": "Export plugin for textmode.js - Save your creations as images, GIFs, videos, SVG, JSON, and plain text.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/textmode.export.umd.js",
|
|
@@ -26,7 +26,9 @@
|
|
|
26
26
|
"build:types": "tsc",
|
|
27
27
|
"build": "npm run build:bundle && npm run build:types",
|
|
28
28
|
"check": "npm run check:format && npm run lint && npm run lint:md && npm run check:types && npm run check:api-docs && npm run test && npm run build",
|
|
29
|
+
"docs:links:add": "node ./scripts/add-api-doc-links.mjs",
|
|
29
30
|
"check:api-docs": "node ./scripts/check-public-api-docs.mjs",
|
|
31
|
+
"check:examples": "node ./scripts/check-examples.mjs",
|
|
30
32
|
"dev:docs": "typedoc --watch",
|
|
31
33
|
"build:docs": "typedoc",
|
|
32
34
|
"preview": "vite preview",
|