@mlightcad/mtext-renderer 0.13.3 → 0.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2550 -2532
- package/dist/index.umd.cjs +8 -8
- package/dist/mtext-renderer-worker.js +14301 -8735
- package/lib/font/baseTextShape.d.ts +5 -0
- package/lib/font/charGeometryCache.d.ts +3 -3
- package/lib/font/meshFont.d.ts +7 -0
- package/lib/font/meshGlyphGeometry.d.ts +10 -0
- package/lib/font/meshTextShape.d.ts +5 -0
- package/lib/font/shxFont.d.ts +14 -2
- package/lib/font/shxLayoutAdvance.d.ts +14 -0
- package/lib/font/shxTextShape.d.ts +1 -1
- package/lib/font/threeFont.d.ts +15 -38
- package/lib/renderer/mtextProcessor.d.ts +33 -13
- package/lib/renderer/shxSymbolControlCodes.d.ts +8 -0
- package/lib/renderer/types.d.ts +12 -0
- package/package.json +6 -5
|
@@ -14,6 +14,11 @@ export declare abstract class BaseTextShape extends THREE.Shape {
|
|
|
14
14
|
* @returns A THREE.js BufferGeometry representing the text shape
|
|
15
15
|
*/
|
|
16
16
|
abstract toGeometry(): THREE.BufferGeometry;
|
|
17
|
+
/**
|
|
18
|
+
* Converts the text shape to line-segment geometry (no filled triangulation).
|
|
19
|
+
* Mesh fonts sample glyph contours; SHX fonts reuse {@link toGeometry}.
|
|
20
|
+
*/
|
|
21
|
+
toStrokeGeometry(): THREE.BufferGeometry;
|
|
17
22
|
/**
|
|
18
23
|
* Uniform XY scale applied to {@link toGeometry} when placing the glyph.
|
|
19
24
|
*
|
|
@@ -16,7 +16,7 @@ export declare class CharGeometryCache {
|
|
|
16
16
|
* @returns True if the geometry of the specified character code exists in the cache.
|
|
17
17
|
* Otherwise, returns false.
|
|
18
18
|
*/
|
|
19
|
-
hasGeometry(code: number, size: number): boolean;
|
|
19
|
+
hasGeometry(code: number, size: number, variant?: string): boolean;
|
|
20
20
|
/**
|
|
21
21
|
* Get the geometry for a single character from cache if available.
|
|
22
22
|
* The cache key includes both character codeand size.
|
|
@@ -25,14 +25,14 @@ export declare class CharGeometryCache {
|
|
|
25
25
|
* @returns The geometry for a single character from cache if avaiable.
|
|
26
26
|
* Return undefined if the character not found in cache.
|
|
27
27
|
*/
|
|
28
|
-
getGeometry(code: number, size: number): THREE.BufferGeometry | undefined;
|
|
28
|
+
getGeometry(code: number, size: number, variant?: string): THREE.BufferGeometry | undefined;
|
|
29
29
|
/**
|
|
30
30
|
* Set the geometry to cache for a single character.
|
|
31
31
|
* @param char The character to set geometry for.
|
|
32
32
|
* @param size The font size.
|
|
33
33
|
* @param geometry The geometry to set.
|
|
34
34
|
*/
|
|
35
|
-
setGeometry(code: number, size: number, geometry: THREE.BufferGeometry): void;
|
|
35
|
+
setGeometry(code: number, size: number, geometry: THREE.BufferGeometry, variant?: string): void;
|
|
36
36
|
/**
|
|
37
37
|
* Estimates memory used by cached BufferGeometry attribute/index buffers.
|
|
38
38
|
*/
|
package/lib/font/meshFont.d.ts
CHANGED
|
@@ -122,6 +122,13 @@ export declare class MeshFont extends BaseFont {
|
|
|
122
122
|
* @returns Array of shapes representing the text
|
|
123
123
|
*/
|
|
124
124
|
generateShapes(text: string, size: number): import('three').Shape[];
|
|
125
|
+
/**
|
|
126
|
+
* Generates line-segment geometry for a text string (glyph contours only).
|
|
127
|
+
* @param text - The text to generate strokes for
|
|
128
|
+
* @param size - The size of the text
|
|
129
|
+
* @returns Indexed line-pair BufferGeometry suitable for LineSegments
|
|
130
|
+
*/
|
|
131
|
+
generateStrokeGeometry(text: string, size: number): import('three').BufferGeometry<import('three').NormalBufferAttributes, import('three').BufferGeometryEventMap>;
|
|
125
132
|
/**
|
|
126
133
|
* Gets the shape data for a specific character at a given size.
|
|
127
134
|
* @param char - The character to get the shape for
|
|
@@ -12,6 +12,16 @@ export declare const MESH_GLYPH_USER_DATA_KEY = "isMeshGlyph";
|
|
|
12
12
|
* Placement scales by {@link MeshTextShape.geometryScale} (= requested size).
|
|
13
13
|
*/
|
|
14
14
|
export declare const MESH_GLYPH_CACHE_SIZE = 1;
|
|
15
|
+
/**
|
|
16
|
+
* {@link CharGeometryCache} variant for contour line-segment glyphs.
|
|
17
|
+
* Fill geometry uses the default `'fill'` variant so the two caches do not collide.
|
|
18
|
+
*/
|
|
19
|
+
export declare const MESH_GLYPH_STROKE_CACHE_VARIANT = "stroke";
|
|
20
|
+
/**
|
|
21
|
+
* Curve samples per path segment when triangulating or stroking mesh glyphs.
|
|
22
|
+
* Matches {@link THREE.ShapeGeometry}’s `curveSegments` argument.
|
|
23
|
+
*/
|
|
24
|
+
export declare const MESH_GLYPH_CURVE_SEGMENTS = 4;
|
|
15
25
|
/**
|
|
16
26
|
* Returns true when `geometry` is a mesh-font glyph (filled outline),
|
|
17
27
|
* including geometries baked down to a plain {@link THREE.BufferGeometry}.
|
|
@@ -27,6 +27,11 @@ export declare class MeshTextShape extends BaseTextShape {
|
|
|
27
27
|
* @returns A THREE.js BufferGeometry representing the text shape
|
|
28
28
|
*/
|
|
29
29
|
toGeometry(): THREE.BufferGeometry;
|
|
30
|
+
/**
|
|
31
|
+
* Samples glyph contours into line segments without triangulating.
|
|
32
|
+
* Cached separately from {@link toGeometry} at {@link MESH_GLYPH_CACHE_SIZE}.
|
|
33
|
+
*/
|
|
34
|
+
toStrokeGeometry(): THREE.BufferGeometry;
|
|
30
35
|
/** @inheritdoc */
|
|
31
36
|
hasStrokeGeometry(): boolean;
|
|
32
37
|
/**
|
package/lib/font/shxFont.d.ts
CHANGED
|
@@ -51,8 +51,20 @@ export declare class ShxFont extends BaseFont {
|
|
|
51
51
|
*/
|
|
52
52
|
generateShapes(text: string, size: number): ShxTextShape[];
|
|
53
53
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
54
|
+
* Scale factor that converts AutoCAD's `TEXT.height` (cap-height) into the
|
|
55
|
+
* em-box size expected by {@link getCharShape} / `shx-parser`.
|
|
56
|
+
*
|
|
57
|
+
* SHX glyphs are defined with `baseUp` units of cap-height and `height` units
|
|
58
|
+
* of total em-box (`baseUp + baseDown`). AutoCAD's DXF group 40 is the
|
|
59
|
+
* cap-height, so the correct scale is `size / baseUp`. The parser still
|
|
60
|
+
* divides by `content.height`; returning `height / baseUp` here makes the
|
|
61
|
+
* effective scale `size / baseUp` (cad-viewer#724).
|
|
62
|
+
*
|
|
63
|
+
* Validated against Autodesk stock metrics: `gbenor` 60/48, `tssdeng` 33/26,
|
|
64
|
+
* `romans`/`complex` 28/21. Extended BIGFONT faces often set `baseUp == height`,
|
|
65
|
+
* so the factor stays `1` and CJK cell size is unchanged.
|
|
66
|
+
*
|
|
67
|
+
* @returns `height / baseUp` when both are positive; otherwise `1`.
|
|
56
68
|
*/
|
|
57
69
|
getScaleFactor(): number;
|
|
58
70
|
/**
|
|
@@ -17,5 +17,19 @@ export declare class ShxPenAdvanceStrategy extends ShxAdvanceWidthStrategy {
|
|
|
17
17
|
/** Store the resolved advance so a later default-strategy pass does not recompute it. */
|
|
18
18
|
markAlignedAdvanceExplicit(_shape: ShxShape): boolean;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Horizontal advance for BIGFONT (CJK) glyphs.
|
|
22
|
+
*
|
|
23
|
+
* AutoCAD advances double-byte BIGFONT text by the font cell width. Falling back
|
|
24
|
+
* to ink width (as western SHX sometimes needs) shifts wrap points and drifts
|
|
25
|
+
* mixed Latin/CJK runs (cad-viewer#724). Prefer the pen when the shape encodes
|
|
26
|
+
* an explicit advance; otherwise use the full cell.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ShxBigfontAdvanceStrategy extends ShxAdvanceWidthStrategy {
|
|
29
|
+
resolve(shape: ShxShape, cellWidth: number): number;
|
|
30
|
+
markAlignedAdvanceExplicit(_shape: ShxShape): boolean;
|
|
31
|
+
}
|
|
20
32
|
/** Shared strategy passed to `ShxFont.getLayoutCharShape` and {@link resolveAdvanceWidth}. */
|
|
21
33
|
export declare const shxPenAdvanceStrategy: ShxPenAdvanceStrategy;
|
|
34
|
+
/** Shared BIGFONT strategy — cell width instead of ink-width fallback. */
|
|
35
|
+
export declare const shxBigfontAdvanceStrategy: ShxBigfontAdvanceStrategy;
|
|
@@ -38,7 +38,7 @@ export declare class ShxTextShape extends BaseTextShape {
|
|
|
38
38
|
* Converts the text shape to a THREE.js geometry.
|
|
39
39
|
* @returns A BufferGeometry representing the text shape.
|
|
40
40
|
*/
|
|
41
|
-
toGeometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes>;
|
|
41
|
+
toGeometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
|
|
42
42
|
/** @inheritdoc */
|
|
43
43
|
hasStrokeGeometry(): boolean;
|
|
44
44
|
/**
|
package/lib/font/threeFont.d.ts
CHANGED
|
@@ -1,50 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BufferGeometry } from 'three';
|
|
2
2
|
import { Font } from 'three/examples/jsm/loaders/FontLoader.js';
|
|
3
3
|
type Direction = 'ltr' | 'rtl' | 'tb';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Font used for mesh glyphs.
|
|
6
|
+
*
|
|
7
|
+
* Filled outlines come from {@link Font.generateShapes}, which delegates to
|
|
8
|
+
* `ShapePath.toShapes()`. That path correctly classifies holes for fonts such
|
|
9
|
+
* as SimSun (面, 限, 用, 色, 8) starting with three.js r185 (0.185.1).
|
|
10
|
+
*
|
|
11
|
+
* Stroke geometry is still built here: it only needs sampled contours, not
|
|
12
|
+
* hole classification.
|
|
7
13
|
*/
|
|
8
14
|
export declare class ThreeFont extends Font {
|
|
9
15
|
/**
|
|
10
|
-
*
|
|
16
|
+
* Samples glyph contours into line-segment geometry without hole detection
|
|
17
|
+
* or triangulation.
|
|
11
18
|
*
|
|
12
|
-
*
|
|
13
|
-
* 1. Split the input text into individual characters.
|
|
14
|
-
* 2. For each character:
|
|
15
|
-
* a. Retrieve the glyph data from the font.
|
|
16
|
-
* b. Convert the glyph outline commands into a ShapePath.
|
|
17
|
-
* - 'm' → moveTo
|
|
18
|
-
* - 'l' → lineTo
|
|
19
|
-
* - 'q' → quadraticCurveTo
|
|
20
|
-
* - 'b' → cubic bezierCurveTo
|
|
21
|
-
* c. Apply scaling to match the requested font size.
|
|
22
|
-
* d. Apply offsets for proper placement (supports multiple lines and directions).
|
|
23
|
-
* 3. Handle text direction:
|
|
24
|
-
* - 'ltr': left-to-right
|
|
25
|
-
* - 'rtl': right-to-left (characters reversed)
|
|
26
|
-
* - 'tb': top-to-bottom (vertical layout)
|
|
27
|
-
* 4. Collect all ShapePaths for the text.
|
|
28
|
-
* 5. Convert each ShapePath into one or more Shape objects:
|
|
29
|
-
* a. Sample points along each subPath to approximate geometry.
|
|
30
|
-
* b. Determine which subPaths are outer contours and which are holes:
|
|
31
|
-
* - For each subPath, check if it is fully contained inside another polygon.
|
|
32
|
-
* - Assign the smallest containing polygon as its parent.
|
|
33
|
-
* c. Compute the relative depth of each subPath to handle nested holes.
|
|
34
|
-
* d. Reverse curves if necessary to maintain correct clockwise/counterclockwise winding:
|
|
35
|
-
* - Outer contours: CCW
|
|
36
|
-
* - Holes: CW
|
|
37
|
-
* e. Build Shape objects with holes properly assigned.
|
|
38
|
-
* 6. Return the final array of Shape objects ready for geometry creation.
|
|
39
|
-
*
|
|
40
|
-
* This algorithm ensures that complex characters with multiple independent contours
|
|
41
|
-
* (including intersecting subpaths or holes) are rendered correctly.
|
|
42
|
-
*
|
|
43
|
-
* @param text - input string to convert to shapes
|
|
19
|
+
* @param text - input string to convert to strokes
|
|
44
20
|
* @param size - font size in units (default 100)
|
|
45
21
|
* @param direction - text direction ('ltr', 'rtl', 'tb')
|
|
46
|
-
* @
|
|
22
|
+
* @param curveSegments - samples per curve (same meaning as ShapeGeometry)
|
|
23
|
+
* @returns a BufferGeometry of indexed line pairs suitable for LineSegments
|
|
47
24
|
*/
|
|
48
|
-
|
|
25
|
+
generateStrokeGeometry(text: string, size?: number, direction?: Direction, curveSegments?: number): BufferGeometry;
|
|
49
26
|
}
|
|
50
27
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangedProperties, MTextParagraphAlignment, MTextToken } from '@mlightcad/mtext-parser';
|
|
2
2
|
import { FontManager } from '../font';
|
|
3
3
|
import { StyleManager } from './styleManager';
|
|
4
|
-
import { ColorSettings, LineLayout, MTextFlowDirection, MTextLineSpacingStyle, TextStyle } from './types';
|
|
4
|
+
import { ColorSettings, LineLayout, MeshFontRenderMode, MTextFlowDirection, MTextLineSpacingStyle, TextStyle } from './types';
|
|
5
5
|
import * as THREE from 'three';
|
|
6
6
|
/**
|
|
7
7
|
* Options for formatting MText.
|
|
@@ -53,6 +53,10 @@ export interface MTextFormatOptions {
|
|
|
53
53
|
* Whether to collect per-character bounding boxes for picking.
|
|
54
54
|
*/
|
|
55
55
|
collectCharBoxes?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* How TrueType/OTF (mesh) glyphs are drawn. Default is `'mesh'`.
|
|
58
|
+
*/
|
|
59
|
+
meshFontRenderMode?: MeshFontRenderMode;
|
|
56
60
|
}
|
|
57
61
|
/**
|
|
58
62
|
* Converts parsed MText tokens into positioned THREE.js geometry.
|
|
@@ -131,8 +135,9 @@ export declare class MTextProcessor {
|
|
|
131
135
|
private _currentRightMargin;
|
|
132
136
|
/**
|
|
133
137
|
* When true, {@link processChar} will not soft-wrap even if the pen is past the
|
|
134
|
-
* defined width. Used
|
|
135
|
-
*
|
|
138
|
+
* defined width. Used for Latin/ASCII word tokens (AutoCAD does not hyphenate
|
|
139
|
+
* them) and for a short Latin run that AutoCAD keeps on the current line with
|
|
140
|
+
* a slight overhang after CJK.
|
|
136
141
|
*/
|
|
137
142
|
private _suppressSoftWrap;
|
|
138
143
|
/**
|
|
@@ -367,12 +372,12 @@ export declare class MTextProcessor {
|
|
|
367
372
|
*/
|
|
368
373
|
private applyParagraphChange;
|
|
369
374
|
/**
|
|
370
|
-
*
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
*
|
|
375
|
-
*
|
|
375
|
+
* Start a new paragraph by flushing the current line and applying the
|
|
376
|
+
* persisted first-line indent.
|
|
377
|
+
*
|
|
378
|
+
* AutoCAD keeps `\p` paragraph properties (alignment, indent, margins)
|
|
379
|
+
* until the next `\p` command. `\P` only ends the current paragraph.
|
|
380
|
+
*
|
|
376
381
|
* @param geometries Current text geometries to process
|
|
377
382
|
* @param lineGeometries Current line geometries to process
|
|
378
383
|
* @param meshCharBoxes Mesh char boxes to flush with the current line
|
|
@@ -405,6 +410,11 @@ export declare class MTextProcessor {
|
|
|
405
410
|
* @returns Horizontal advance width after width factor and oblique skew.
|
|
406
411
|
*/
|
|
407
412
|
private buildShapeGeometry;
|
|
413
|
+
/**
|
|
414
|
+
* Filled mesh glyphs or sampled contour strokes, depending on
|
|
415
|
+
* {@link MTextFormatOptions.meshFontRenderMode}.
|
|
416
|
+
*/
|
|
417
|
+
private getGlyphGeometry;
|
|
408
418
|
/**
|
|
409
419
|
* Builds the world transform for one glyph (width factor, oblique, bold, translate).
|
|
410
420
|
*
|
|
@@ -472,9 +482,11 @@ export declare class MTextProcessor {
|
|
|
472
482
|
*
|
|
473
483
|
* - CJK / non-Latin: no whole-word wrap — {@link processChar} breaks between
|
|
474
484
|
* characters when the next glyph would not fit in the defined width.
|
|
475
|
-
* - Latin/ASCII:
|
|
476
|
-
*
|
|
477
|
-
*
|
|
485
|
+
* - Latin/ASCII: wrap only at word boundaries (spaces). AutoCAD/GstarCAD do
|
|
486
|
+
* not hyphenate: a token wider than the column stays on one visual line and
|
|
487
|
+
* overflows the box (e.g. part numbers like `1157*25*1.5`). A short run that
|
|
488
|
+
* only slightly overshoots after CJK (e.g. `秘密-FJP-898E-G`) may stay on
|
|
489
|
+
* the current line with a small overhang.
|
|
478
490
|
*
|
|
479
491
|
* @param word Character sequence for a single word token.
|
|
480
492
|
* @param geometries Mesh geometry accumulator for the active style segment.
|
|
@@ -545,7 +557,8 @@ export declare class MTextProcessor {
|
|
|
545
557
|
*
|
|
546
558
|
* Missing glyphs are treated as spaces. Soft wrap is decided before placement:
|
|
547
559
|
* if the glyph's advance would not fit in the remaining defined width, break
|
|
548
|
-
* first (CJK may break between any two characters).
|
|
560
|
+
* first (CJK may break between any two characters). Latin/ASCII word tokens
|
|
561
|
+
* suppress this so they overflow instead of hyphenating. The first glyph on an
|
|
549
562
|
* empty line is always placed even when wider than the box.
|
|
550
563
|
*
|
|
551
564
|
* @param char Character to render.
|
|
@@ -584,6 +597,13 @@ export declare class MTextProcessor {
|
|
|
584
597
|
* @returns `true` when the shape should be drawn instead of replaced with the not-found glyph.
|
|
585
598
|
*/
|
|
586
599
|
private shapeHasStrokeGeometry;
|
|
600
|
+
/**
|
|
601
|
+
* Tries GDT / symbol SHX fonts for a percent-control-code symbol.
|
|
602
|
+
*
|
|
603
|
+
* @param data Parser percent-symbol payload.
|
|
604
|
+
* @returns A symbol-font shape when one is available; otherwise `undefined`.
|
|
605
|
+
*/
|
|
606
|
+
private trySymbolFontPercentShape;
|
|
587
607
|
/**
|
|
588
608
|
* Resolves the best available shape for a percent-control-code symbol.
|
|
589
609
|
*
|
|
@@ -19,3 +19,11 @@ export declare const AUTOCAD_PERCENT_SYMBOL_CONTROL_CODES: Readonly<Record<AutoC
|
|
|
19
19
|
* Returns ordered font code points to try for a parser-emitted percent symbol.
|
|
20
20
|
*/
|
|
21
21
|
export declare function getPercentSymbolLookupCodes(data: PercentSymbolData): readonly number[];
|
|
22
|
+
/**
|
|
23
|
+
* Maps a literal Unicode dimension symbol to a named AutoCAD percent-symbol
|
|
24
|
+
* token when converters have already expanded `%%c` / `%%d` / `%%p`.
|
|
25
|
+
*
|
|
26
|
+
* @returns Named percent-symbol data, or `undefined` when `char` is not a
|
|
27
|
+
* known dimension-symbol substitute.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getLiteralPercentSymbolData(char: string): PercentSymbolData | undefined;
|
package/lib/renderer/types.d.ts
CHANGED
|
@@ -165,6 +165,12 @@ export interface ColorSettings {
|
|
|
165
165
|
* Create default color settings (ByLayer + white fallback).
|
|
166
166
|
*/
|
|
167
167
|
export declare const createDefaultColorSettings: () => ColorSettings;
|
|
168
|
+
/**
|
|
169
|
+
* How TrueType/OTF (mesh) glyphs are converted to drawable geometry.
|
|
170
|
+
* - `mesh`: triangulate filled outlines (default)
|
|
171
|
+
* - `line`: sample glyph contours as line segments (no triangulation)
|
|
172
|
+
*/
|
|
173
|
+
export type MeshFontRenderMode = 'mesh' | 'line';
|
|
168
174
|
/**
|
|
169
175
|
* Represents the data structure for multiline text (MText) entities.
|
|
170
176
|
* Contains all necessary properties to define the appearance and positioning of text.
|
|
@@ -201,6 +207,12 @@ export interface MTextData {
|
|
|
201
207
|
widthFactor?: number;
|
|
202
208
|
/** Whether to collect per-character bounding boxes for picking. Default is true */
|
|
203
209
|
collectCharBoxes?: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* How TrueType/OTF (mesh) glyphs are drawn.
|
|
212
|
+
* `mesh` triangulates filled outlines (default).
|
|
213
|
+
* `line` draws sampled contours only, skipping triangulation.
|
|
214
|
+
*/
|
|
215
|
+
meshFontRenderMode?: MeshFontRenderMode;
|
|
204
216
|
}
|
|
205
217
|
/**
|
|
206
218
|
* Describes one AutoCAD SHAPE entity for rendering.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mlightcad/mtext-renderer",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.5",
|
|
4
4
|
"description": "AutoCAD MText renderer based on Three.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "MLight Lee <mlight.lee@outlook.com>",
|
|
@@ -49,14 +49,15 @@
|
|
|
49
49
|
"opentype.js": "^2.0.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@mlightcad/mtext-parser": "^1.5.
|
|
52
|
+
"@mlightcad/mtext-parser": "^1.5.5",
|
|
53
53
|
"@types/opentype.js": "^1.3.10",
|
|
54
|
-
"@types/three": "^0.
|
|
54
|
+
"@types/three": "^0.186.0",
|
|
55
|
+
"three": "^0.186.1",
|
|
55
56
|
"vitest": "^3.2.4"
|
|
56
57
|
},
|
|
57
58
|
"peerDependencies": {
|
|
58
|
-
"@mlightcad/mtext-parser": "^1.5.
|
|
59
|
-
"three": "
|
|
59
|
+
"@mlightcad/mtext-parser": "^1.5.5",
|
|
60
|
+
"three": ">=0.185.1"
|
|
60
61
|
},
|
|
61
62
|
"scripts": {
|
|
62
63
|
"build": "tsc && vite build -c vite.config.main.ts && vite build -c vite.config.worker.ts",
|