@enslo/sd-metadata 2.2.0 → 2.3.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/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.3.0] - 2026-05-30
9
+
10
+ ### Improved
11
+
12
+ - **ComfyUI metadata parsing** (#219): Improved accuracy and coverage for
13
+ non-standard workflow topologies and custom nodes (`ShowText|pysssss`,
14
+ `PromptStashSaver`). Several edge cases that previously caused parse failures
15
+ or incorrect results — including workflows with `NaN`-containing JSON, node
16
+ references in model fields, and workflow-only PNG files — are now handled
17
+ correctly.
18
+
19
+ ### Maintenance
20
+
21
+ - Add `index.d.ts.map` (declaration sourcemaps) to the published output (#216)
22
+ - Update development dependencies
23
+
8
24
  ## [2.2.0] - 2026-02-27
9
25
 
10
26
  ### Added
package/README.ja.md CHANGED
@@ -148,7 +148,7 @@ fileInput.addEventListener('change', async (e) => {
148
148
  // ==UserScript==
149
149
  // @name My Script
150
150
  // @namespace https://example.com
151
- // @require https://cdn.jsdelivr.net/npm/@enslo/sd-metadata@2.2.0/dist/index.global.js
151
+ // @require https://cdn.jsdelivr.net/npm/@enslo/sd-metadata@2.3.0/dist/index.global.js
152
152
  // ==/UserScript==
153
153
 
154
154
  const response = await fetch(imageUrl);
@@ -365,7 +365,8 @@ if (text) {
365
365
  **パラメータ:**
366
366
 
367
367
  - `input` - 画像ファイルデータ(PNG、JPEG、またはWebP)
368
- - `options` - オプションの読み込み設定(詳細は[型ドキュメント](./docs/types.ja.md)を参照)
368
+ - `options` - オプションの読み込み設定
369
+ - `strict?: boolean`(デフォルト: `false`)— `true` の場合、寸法(`width` / `height`)はメタデータからのみ取得します。`false` の場合、メタデータに寸法がなければ画像ヘッダーから取得します。
369
370
 
370
371
  **戻り値:**
371
372
 
package/README.md CHANGED
@@ -148,7 +148,7 @@ For userscripts (Tampermonkey, Violentmonkey, etc.), load the IIFE build via `@r
148
148
  // ==UserScript==
149
149
  // @name My Script
150
150
  // @namespace https://example.com
151
- // @require https://cdn.jsdelivr.net/npm/@enslo/sd-metadata@2.2.0/dist/index.global.js
151
+ // @require https://cdn.jsdelivr.net/npm/@enslo/sd-metadata@2.3.0/dist/index.global.js
152
152
  // ==/UserScript==
153
153
 
154
154
  const response = await fetch(imageUrl);
@@ -362,7 +362,8 @@ Reads and parses metadata from an image file.
362
362
  **Parameters:**
363
363
 
364
364
  - `input` - Image file data (PNG, JPEG, or WebP)
365
- - `options` - Optional read options (see [Type Documentation](./docs/types.md) for details)
365
+ - `options` - Optional read options
366
+ - `strict?: boolean` (default: `false`) — When `true`, dimensions (`width` / `height`) are taken strictly from metadata only. When `false`, missing dimensions are extracted from image headers.
366
367
 
367
368
  **Returns:**
368
369
 
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ //#region src/types.d.ts
1
2
  /**
2
3
  * PNG text chunk (tEXt or iTXt)
3
4
  */
@@ -6,68 +7,68 @@ type PngTextChunk = TExtChunk | ITXtChunk;
6
7
  * tEXt chunk (Latin-1 encoded text)
7
8
  */
8
9
  interface TExtChunk {
9
- type: 'tEXt';
10
- /** Chunk keyword (e.g., 'parameters', 'Comment') */
11
- keyword: string;
12
- /** Text content */
13
- text: string;
10
+ type: 'tEXt';
11
+ /** Chunk keyword (e.g., 'parameters', 'Comment') */
12
+ keyword: string;
13
+ /** Text content */
14
+ text: string;
14
15
  }
15
16
  /**
16
17
  * iTXt chunk (UTF-8 encoded international text)
17
18
  */
18
19
  interface ITXtChunk {
19
- type: 'iTXt';
20
- /** Chunk keyword */
21
- keyword: string;
22
- /** Compression flag (0=uncompressed, 1=compressed) */
23
- compressionFlag: number;
24
- /** Compression method (0=zlib/deflate) */
25
- compressionMethod: number;
26
- /** Language tag (BCP 47) */
27
- languageTag: string;
28
- /** Translated keyword */
29
- translatedKeyword: string;
30
- /** Text content */
31
- text: string;
20
+ type: 'iTXt';
21
+ /** Chunk keyword */
22
+ keyword: string;
23
+ /** Compression flag (0=uncompressed, 1=compressed) */
24
+ compressionFlag: number;
25
+ /** Compression method (0=zlib/deflate) */
26
+ compressionMethod: number;
27
+ /** Language tag (BCP 47) */
28
+ languageTag: string;
29
+ /** Translated keyword */
30
+ translatedKeyword: string;
31
+ /** Text content */
32
+ text: string;
32
33
  }
33
34
  /**
34
35
  * Source location of a metadata segment.
35
36
  * Used for round-tripping: reading and writing back to the correct location.
36
37
  */
37
38
  type MetadataSegmentSource = {
38
- type: 'exifUserComment';
39
+ type: 'exifUserComment';
39
40
  } | {
40
- type: 'exifImageDescription';
41
- prefix?: string;
41
+ type: 'exifImageDescription';
42
+ prefix?: string;
42
43
  } | {
43
- type: 'exifMake';
44
- prefix?: string;
44
+ type: 'exifMake';
45
+ prefix?: string;
45
46
  } | {
46
- type: 'jpegCom';
47
+ type: 'jpegCom';
47
48
  } | {
48
- type: 'xmpPacket';
49
+ type: 'xmpPacket';
49
50
  };
50
51
  /**
51
52
  * A single metadata segment with source tracking
52
53
  */
53
54
  interface MetadataSegment {
54
- /** Source location of this segment */
55
- source: MetadataSegmentSource;
56
- /** Raw data string */
57
- data: string;
55
+ /** Source location of this segment */
56
+ source: MetadataSegmentSource;
57
+ /** Raw data string */
58
+ data: string;
58
59
  }
59
60
  /**
60
61
  * Raw metadata for write-back (preserves original format)
61
62
  */
62
63
  type RawMetadata = {
63
- format: 'png';
64
- chunks: PngTextChunk[];
64
+ format: 'png';
65
+ chunks: PngTextChunk[];
65
66
  } | {
66
- format: 'jpeg';
67
- segments: MetadataSegment[];
67
+ format: 'jpeg';
68
+ segments: MetadataSegment[];
68
69
  } | {
69
- format: 'webp';
70
- segments: MetadataSegment[];
70
+ format: 'webp';
71
+ segments: MetadataSegment[];
71
72
  };
72
73
  /**
73
74
  * Known AI image generation software
@@ -77,46 +78,46 @@ type GenerationSoftware = 'novelai' | 'comfyui' | 'swarmui' | 'tensorart' | 'sta
77
78
  * Base metadata fields shared by all tools
78
79
  */
79
80
  interface BaseMetadata {
80
- /** Positive prompt */
81
- prompt: string;
82
- /** Negative prompt */
83
- negativePrompt: string;
84
- /** Model settings */
85
- model?: ModelSettings;
86
- /** Sampling settings */
87
- sampling?: SamplingSettings;
88
- /** Hires.fix settings (if applied) */
89
- hires?: HiresSettings;
90
- /** Upscale settings (if applied) */
91
- upscale?: UpscaleSettings;
92
- /** Image width */
93
- width: number;
94
- /** Image height */
95
- height: number;
81
+ /** Positive prompt */
82
+ prompt: string;
83
+ /** Negative prompt */
84
+ negativePrompt: string;
85
+ /** Model settings */
86
+ model?: ModelSettings;
87
+ /** Sampling settings */
88
+ sampling?: SamplingSettings;
89
+ /** Hires.fix settings (if applied) */
90
+ hires?: HiresSettings;
91
+ /** Upscale settings (if applied) */
92
+ upscale?: UpscaleSettings;
93
+ /** Image width */
94
+ width: number;
95
+ /** Image height */
96
+ height: number;
96
97
  }
97
98
  /**
98
99
  * NovelAI-specific metadata
99
100
  */
100
101
  interface NovelAIMetadata extends BaseMetadata {
101
- software: 'novelai';
102
- /** V4 character prompts (when using character placement) */
103
- characterPrompts?: CharacterPrompt[];
104
- /** Use character coordinates for placement */
105
- useCoords?: boolean;
106
- /** Use character order */
107
- useOrder?: boolean;
102
+ software: 'novelai';
103
+ /** V4 character prompts (when using character placement) */
104
+ characterPrompts?: CharacterPrompt[];
105
+ /** Use character coordinates for placement */
106
+ useCoords?: boolean;
107
+ /** Use character order */
108
+ useOrder?: boolean;
108
109
  }
109
110
  /**
110
111
  * Character prompt with position (NovelAI V4)
111
112
  */
112
113
  interface CharacterPrompt {
113
- /** Character-specific prompt */
114
- prompt: string;
115
- /** Character position (normalized 0-1) */
116
- center?: {
117
- x: number;
118
- y: number;
119
- };
114
+ /** Character-specific prompt */
115
+ prompt: string;
116
+ /** Character position (normalized 0-1) */
117
+ center?: {
118
+ x: number;
119
+ y: number;
120
+ };
120
121
  }
121
122
  /**
122
123
  * ComfyUI-format metadata (ComfyUI, TensorArt, Stability Matrix)
@@ -138,17 +139,16 @@ type ComfyNodeInputValue = string | number | boolean | ComfyNodeReference | Comf
138
139
  * ComfyUI node structure
139
140
  */
140
141
  interface ComfyNode {
141
- /** Node class type (e.g., "CheckpointLoaderSimple", "KSampler") */
142
- class_type: string;
143
- /** Node inputs */
144
- inputs: Record<string, ComfyNodeInputValue>;
145
- /** Node metadata (ComfyUI only) */
146
- _meta?: {
147
- /** Node title for display */
148
- title?: string;
149
- };
150
- /** Change detection hash (rare, for caching) */
151
- is_changed?: string[] | null;
142
+ /** Node class type (e.g., "CheckpointLoaderSimple", "KSampler") */
143
+ class_type: string;
144
+ /** Node inputs */
145
+ inputs: Record<string, ComfyNodeInputValue>;
146
+ /** Node metadata (ComfyUI only) */
147
+ _meta?: {
148
+ /** Node title for display */title?: string;
149
+ };
150
+ /** Change detection hash (rare, for caching) */
151
+ is_changed?: string[] | null;
152
152
  }
153
153
  /**
154
154
  * ComfyUI node graph
@@ -162,14 +162,14 @@ type ComfyNodeGraph = Record<string, ComfyNode>;
162
162
  * These tools always have nodes in all formats.
163
163
  */
164
164
  interface BasicComfyUIMetadata extends BaseMetadata {
165
- software: 'comfyui' | 'tensorart' | 'stability-matrix';
166
- /**
167
- * ComfyUI node graph (required)
168
- *
169
- * Always present in all image formats (PNG, JPEG, WebP).
170
- * Structure: Record<nodeId, ComfyNode> where ComfyNode contains inputs and class_type.
171
- */
172
- nodes: ComfyNodeGraph;
165
+ software: 'comfyui' | 'tensorart' | 'stability-matrix';
166
+ /**
167
+ * ComfyUI node graph (required)
168
+ *
169
+ * Always present in all image formats (PNG, JPEG, WebP).
170
+ * Structure: Record<nodeId, ComfyNode> where ComfyNode contains inputs and class_type.
171
+ */
172
+ nodes: ComfyNodeGraph;
173
173
  }
174
174
  /**
175
175
  * SwarmUI-specific metadata
@@ -177,14 +177,14 @@ interface BasicComfyUIMetadata extends BaseMetadata {
177
177
  * SwarmUI uses ComfyUI workflow format but nodes are only present in PNG.
178
178
  */
179
179
  interface SwarmUIMetadata extends BaseMetadata {
180
- software: 'swarmui';
181
- /**
182
- * ComfyUI node graph (optional for SwarmUI)
183
- *
184
- * Only present in PNG format. JPEG/WebP contain SwarmUI parameters only.
185
- * Structure: Record<nodeId, ComfyNode> where ComfyNode contains inputs and class_type.
186
- */
187
- nodes?: ComfyNodeGraph;
180
+ software: 'swarmui';
181
+ /**
182
+ * ComfyUI node graph (optional for SwarmUI)
183
+ *
184
+ * Only present in PNG format. JPEG/WebP contain SwarmUI parameters only.
185
+ * Structure: Record<nodeId, ComfyNode> where ComfyNode contains inputs and class_type.
186
+ */
187
+ nodes?: ComfyNodeGraph;
188
188
  }
189
189
  /**
190
190
  * ComfyUI-format metadata (union of BasicComfyUI and SwarmUI)
@@ -202,7 +202,7 @@ type ComfyUIMetadata = BasicComfyUIMetadata | SwarmUIMetadata;
202
202
  * NovelAI's character prompts or ComfyUI's node graphs.
203
203
  */
204
204
  interface StandardMetadata extends BaseMetadata {
205
- software: 'sd-webui' | 'sd-next' | 'forge' | 'forge-classic' | 'forge-neo' | 'reforge' | 'easy-reforge' | 'invokeai' | 'civitai' | 'hf-space' | 'easydiffusion' | 'fooocus' | 'ruined-fooocus' | 'draw-things';
205
+ software: 'sd-webui' | 'sd-next' | 'forge' | 'forge-classic' | 'forge-neo' | 'reforge' | 'easy-reforge' | 'invokeai' | 'civitai' | 'hf-space' | 'easydiffusion' | 'fooocus' | 'ruined-fooocus' | 'draw-things';
206
206
  }
207
207
  /**
208
208
  * Unified generation metadata (discriminated union)
@@ -230,60 +230,59 @@ type GenerationMetadata = NovelAIMetadata | ComfyUIMetadata | StandardMetadata;
230
230
  * prompts and extras for the settings line.
231
231
  */
232
232
  type EmbedMetadata = BaseMetadata & Pick<NovelAIMetadata, 'characterPrompts'> & {
233
- /** Additional key-value pairs for the settings line */
234
- extras?: Record<string, string | number>;
233
+ /** Additional key-value pairs for the settings line */extras?: Record<string, string | number>;
235
234
  };
236
235
  /**
237
236
  * Model settings
238
237
  */
239
238
  interface ModelSettings {
240
- /** Model name */
241
- name?: string;
242
- /** Model hash */
243
- hash?: string;
244
- /** VAE name */
245
- vae?: string;
239
+ /** Model name */
240
+ name?: string;
241
+ /** Model hash */
242
+ hash?: string;
243
+ /** VAE name */
244
+ vae?: string;
246
245
  }
247
246
  /**
248
247
  * Sampling settings
249
248
  */
250
249
  interface SamplingSettings {
251
- /** Sampler name */
252
- sampler?: string;
253
- /** Scheduler (sometimes included in sampler, sometimes separate) */
254
- scheduler?: string;
255
- /** Sampling steps */
256
- steps?: number;
257
- /** CFG scale */
258
- cfg?: number;
259
- /** Random seed */
260
- seed?: number;
261
- /** CLIP skip layers */
262
- clipSkip?: number;
263
- /** Denoising strength (ComfyUI only, typically 1.0 for txt2img) */
264
- denoise?: number;
250
+ /** Sampler name */
251
+ sampler?: string;
252
+ /** Scheduler (sometimes included in sampler, sometimes separate) */
253
+ scheduler?: string;
254
+ /** Sampling steps */
255
+ steps?: number;
256
+ /** CFG scale */
257
+ cfg?: number;
258
+ /** Random seed */
259
+ seed?: number;
260
+ /** CLIP skip layers */
261
+ clipSkip?: number;
262
+ /** Denoising strength (ComfyUI only, typically 1.0 for txt2img) */
263
+ denoise?: number;
265
264
  }
266
265
  /**
267
266
  * Hires.fix settings
268
267
  */
269
268
  interface HiresSettings {
270
- /** Upscale factor */
271
- scale?: number;
272
- /** Upscaler name */
273
- upscaler?: string;
274
- /** Hires steps */
275
- steps?: number;
276
- /** Hires denoising strength */
277
- denoise?: number;
269
+ /** Upscale factor */
270
+ scale?: number;
271
+ /** Upscaler name */
272
+ upscaler?: string;
273
+ /** Hires steps */
274
+ steps?: number;
275
+ /** Hires denoising strength */
276
+ denoise?: number;
278
277
  }
279
278
  /**
280
279
  * Upscale settings (post-generation)
281
280
  */
282
281
  interface UpscaleSettings {
283
- /** Upscaler name */
284
- upscaler?: string;
285
- /** Scale factor */
286
- scale?: number;
282
+ /** Upscaler name */
283
+ upscaler?: string;
284
+ /** Scale factor */
285
+ scale?: number;
287
286
  }
288
287
  /**
289
288
  * Parse result with 4-status design
@@ -294,47 +293,47 @@ interface UpscaleSettings {
294
293
  * - `invalid`: File is corrupted or not a valid image
295
294
  */
296
295
  type ParseResult = {
297
- status: 'success';
298
- metadata: GenerationMetadata;
299
- raw: RawMetadata;
296
+ status: 'success';
297
+ metadata: GenerationMetadata;
298
+ raw: RawMetadata;
300
299
  } | {
301
- status: 'empty';
300
+ status: 'empty';
302
301
  } | {
303
- status: 'unrecognized';
304
- raw: RawMetadata;
302
+ status: 'unrecognized';
303
+ raw: RawMetadata;
305
304
  } | {
306
- status: 'invalid';
307
- message?: string;
305
+ status: 'invalid';
306
+ message?: string;
308
307
  };
309
308
  /**
310
309
  * Options for the read function
311
310
  */
312
311
  interface ReadOptions {
313
- /**
314
- * When true, dimensions are taken strictly from metadata only.
315
- * When false (default), missing dimensions are extracted from image headers.
316
- * @default false
317
- */
318
- strict?: boolean;
312
+ /**
313
+ * When true, dimensions are taken strictly from metadata only.
314
+ * When false (default), missing dimensions are extracted from image headers.
315
+ * @default false
316
+ */
317
+ strict?: boolean;
319
318
  }
320
319
  /**
321
320
  * Warning types for write operations
322
321
  */
323
322
  type WriteWarning = {
324
- type: 'metadataDropped';
325
- reason: 'unrecognizedCrossFormat';
323
+ type: 'metadataDropped';
324
+ reason: 'unrecognizedCrossFormat';
326
325
  };
327
326
  /**
328
327
  * Error types for write operations
329
328
  */
330
329
  type WriteError = {
331
- type: 'unsupportedFormat';
330
+ type: 'unsupportedFormat';
332
331
  } | {
333
- type: 'conversionFailed';
334
- message: string;
332
+ type: 'conversionFailed';
333
+ message: string;
335
334
  } | {
336
- type: 'writeFailed';
337
- message: string;
335
+ type: 'writeFailed';
336
+ message: string;
338
337
  };
339
338
  /**
340
339
  * Result of the write operation
@@ -342,22 +341,15 @@ type WriteError = {
342
341
  * Success case may include a warning when metadata was intentionally dropped.
343
342
  */
344
343
  type WriteResult = {
345
- ok: true;
346
- value: Uint8Array;
347
- warning?: WriteWarning;
344
+ ok: true;
345
+ value: Uint8Array;
346
+ warning?: WriteWarning;
348
347
  } | {
349
- ok: false;
350
- error: WriteError;
348
+ ok: false;
349
+ error: WriteError;
351
350
  };
352
-
353
- /**
354
- * Embed API for sd-metadata
355
- *
356
- * Write user-created or parsed metadata in A1111 format to PNG, JPEG,
357
- * or WebP images. Accepts both EmbedMetadata (custom metadata composed
358
- * by the user) and GenerationMetadata (parsed output from AI tools).
359
- */
360
-
351
+ //#endregion
352
+ //#region src/api/embed.d.ts
361
353
  /**
362
354
  * Embed metadata into an image
363
355
  *
@@ -402,14 +394,8 @@ type WriteResult = {
402
394
  * ```
403
395
  */
404
396
  declare function embed(input: Uint8Array | ArrayBuffer, metadata: EmbedMetadata | GenerationMetadata): WriteResult;
405
-
406
- /**
407
- * Read API for sd-metadata
408
- *
409
- * Handles reading and parsing metadata from images.
410
- * Automatically detects image format and extracts embedded generation metadata.
411
- */
412
-
397
+ //#endregion
398
+ //#region src/api/read.d.ts
413
399
  /**
414
400
  * Read and parse metadata from an image
415
401
  *
@@ -421,14 +407,8 @@ declare function embed(input: Uint8Array | ArrayBuffer, metadata: EmbedMetadata
421
407
  * @returns Parse result containing metadata and raw data
422
408
  */
423
409
  declare function read(input: Uint8Array | ArrayBuffer, options?: ReadOptions): ParseResult;
424
-
425
- /**
426
- * Unified metadata stringification
427
- *
428
- * Builds A1111-format plain text from metadata and provides the stringify()
429
- * public API for converting any metadata type to a human-readable string.
430
- */
431
-
410
+ //#endregion
411
+ //#region src/api/stringify.d.ts
432
412
  /**
433
413
  * Build A1111-format text from EmbedMetadata
434
414
  *
@@ -488,14 +468,8 @@ declare function formatRaw(raw: RawMetadata): string;
488
468
  * ```
489
469
  */
490
470
  declare function stringify(input: ParseResult | EmbedMetadata | GenerationMetadata): string;
491
-
492
- /**
493
- * Write API for sd-metadata
494
- *
495
- * Handles writing metadata to images with automatic format conversion.
496
- * Supports PNG, JPEG, and WebP formats.
497
- */
498
-
471
+ //#endregion
472
+ //#region src/api/write.d.ts
499
473
  /**
500
474
  * Write metadata to an image
501
475
  *
@@ -508,7 +482,8 @@ declare function stringify(input: ParseResult | EmbedMetadata | GenerationMetada
508
482
  * @returns New image data with embedded metadata (or warning if metadata was dropped)
509
483
  */
510
484
  declare function write(input: Uint8Array | ArrayBuffer, metadata: ParseResult): WriteResult;
511
-
485
+ //#endregion
486
+ //#region src/constants.d.ts
512
487
  /**
513
488
  * Human-readable display labels for each generation software identifier.
514
489
  *
@@ -524,5 +499,6 @@ declare function write(input: Uint8Array | ArrayBuffer, metadata: ParseResult):
524
499
  * ```
525
500
  */
526
501
  declare const softwareLabels: Readonly<Record<GenerationSoftware, string>>;
527
-
528
- export { type BaseMetadata, type CharacterPrompt, type ComfyNode, type ComfyNodeGraph, type ComfyNodeInputValue, type ComfyNodeReference, type EmbedMetadata, type GenerationMetadata, type GenerationSoftware, type HiresSettings, type ITXtChunk, type MetadataSegment, type MetadataSegmentSource, type ModelSettings, type ParseResult, type PngTextChunk, type RawMetadata, type ReadOptions, type SamplingSettings, type TExtChunk, type UpscaleSettings, type WriteResult, type WriteWarning, embed, buildEmbedText as formatAsWebUI, formatRaw, read, softwareLabels, stringify, write, embed as writeAsWebUI };
502
+ //#endregion
503
+ export { type BaseMetadata, type CharacterPrompt, type ComfyNode, type ComfyNodeGraph, type ComfyNodeInputValue, type ComfyNodeReference, type EmbedMetadata, type GenerationMetadata, type GenerationSoftware, type HiresSettings, type ITXtChunk, type MetadataSegment, type MetadataSegmentSource, type ModelSettings, type ParseResult, type PngTextChunk, type RawMetadata, type ReadOptions, type SamplingSettings, type TExtChunk, type UpscaleSettings, type WriteResult, type WriteWarning, embed, embed as writeAsWebUI, buildEmbedText as formatAsWebUI, formatRaw, read, softwareLabels, stringify, write };
504
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types.ts","../src/api/embed.ts","../src/api/read.ts","../src/api/stringify.ts","../src/api/write.ts","../src/constants.ts"],"mappings":"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"}