@mlightcad/data-model 1.14.3 → 1.14.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.
Files changed (49) hide show
  1. package/dist/data-model.cjs +15 -15
  2. package/lib/converter/worker/AcDbBaseWorker.d.ts +10 -1
  3. package/lib/converter/worker/AcDbBaseWorker.d.ts.map +1 -1
  4. package/lib/converter/worker/AcDbBaseWorker.js +26 -2
  5. package/lib/converter/worker/AcDbBaseWorker.js.map +1 -1
  6. package/lib/converter/worker/AcDbDwgConverterLicense.d.ts +24 -0
  7. package/lib/converter/worker/AcDbDwgConverterLicense.d.ts.map +1 -0
  8. package/lib/converter/worker/AcDbDwgConverterLicense.js +42 -0
  9. package/lib/converter/worker/AcDbDwgConverterLicense.js.map +1 -0
  10. package/lib/database/AcDbOpenDatabaseError.d.ts +27 -4
  11. package/lib/database/AcDbOpenDatabaseError.d.ts.map +1 -1
  12. package/lib/database/AcDbOpenDatabaseError.js +66 -4
  13. package/lib/database/AcDbOpenDatabaseError.js.map +1 -1
  14. package/lib/entity/AcDb2dPolyline.d.ts.map +1 -1
  15. package/lib/entity/AcDb2dPolyline.js +5 -0
  16. package/lib/entity/AcDb2dPolyline.js.map +1 -1
  17. package/lib/entity/AcDbAttributeDefinition.d.ts +7 -4
  18. package/lib/entity/AcDbAttributeDefinition.d.ts.map +1 -1
  19. package/lib/entity/AcDbAttributeDefinition.js +12 -5
  20. package/lib/entity/AcDbAttributeDefinition.js.map +1 -1
  21. package/lib/entity/AcDbOle2Frame.d.ts +10 -1
  22. package/lib/entity/AcDbOle2Frame.d.ts.map +1 -1
  23. package/lib/entity/AcDbOle2Frame.js +10 -1
  24. package/lib/entity/AcDbOle2Frame.js.map +1 -1
  25. package/lib/entity/AcDbPolyline.d.ts.map +1 -1
  26. package/lib/entity/AcDbPolyline.js +3 -0
  27. package/lib/entity/AcDbPolyline.js.map +1 -1
  28. package/lib/index.d.ts +2 -2
  29. package/lib/index.d.ts.map +1 -1
  30. package/lib/index.js +1 -1
  31. package/lib/index.js.map +1 -1
  32. package/lib/misc/AcDbOleImageExtractor.d.ts +11 -4
  33. package/lib/misc/AcDbOleImageExtractor.d.ts.map +1 -1
  34. package/lib/misc/AcDbOleImageExtractor.js +223 -39
  35. package/lib/misc/AcDbOleImageExtractor.js.map +1 -1
  36. package/lib/misc/AcDbOleMetafileDetect.d.ts +46 -0
  37. package/lib/misc/AcDbOleMetafileDetect.d.ts.map +1 -0
  38. package/lib/misc/AcDbOleMetafileDetect.js +226 -0
  39. package/lib/misc/AcDbOleMetafileDetect.js.map +1 -0
  40. package/lib/misc/AcDbOleMetafileRasterizer.d.ts +35 -0
  41. package/lib/misc/AcDbOleMetafileRasterizer.d.ts.map +1 -0
  42. package/lib/misc/AcDbOleMetafileRasterizer.js +243 -0
  43. package/lib/misc/AcDbOleMetafileRasterizer.js.map +1 -0
  44. package/lib/misc/index.d.ts +4 -0
  45. package/lib/misc/index.d.ts.map +1 -1
  46. package/lib/misc/index.js +3 -0
  47. package/lib/misc/index.js.map +1 -1
  48. package/package.json +5 -4
  49. package/LICENSE +0 -21
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Shared MIME types and byte-signature helpers for OLE metafile payloads.
3
+ */
4
+ var __values = (this && this.__values) || function(o) {
5
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
6
+ if (m) return m.call(o);
7
+ if (o && typeof o.length === "number") return {
8
+ next: function () {
9
+ if (o && i >= o.length) o = void 0;
10
+ return { value: o && o[i++], done: !o };
11
+ }
12
+ };
13
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14
+ };
15
+ /** MIME type used when an OLE presentation stores a Windows Metafile (WMF). */
16
+ export var ACDB_OLE_METAFILE_WMF_MIME = 'image/wmf';
17
+ /** MIME type used when an OLE presentation stores an Enhanced Metafile (EMF). */
18
+ export var ACDB_OLE_METAFILE_EMF_MIME = 'image/emf';
19
+ /** Aldus placeable WMF key (`0x9AC6CDD7`). */
20
+ var ALDUS_PLACEABLE_KEY = 0x9ac6cdd7;
21
+ /**
22
+ * Returns true when `mime` identifies a WMF/EMF blob produced by the OLE
23
+ * image extractor.
24
+ */
25
+ export function acdbIsOleMetafileMimeType(mime) {
26
+ return (mime === ACDB_OLE_METAFILE_WMF_MIME || mime === ACDB_OLE_METAFILE_EMF_MIME);
27
+ }
28
+ /**
29
+ * Detects a standard or Aldus-placeable WMF header at the start of `data`.
30
+ */
31
+ export function acdbLooksLikeWmf(data) {
32
+ if (data.length < 18) {
33
+ return false;
34
+ }
35
+ var view = new DataView(data.buffer, data.byteOffset, data.byteLength);
36
+ // Aldus placeable header (22 bytes) followed by standard WMF header.
37
+ if (data.length >= 40 && view.getUint32(0, true) === ALDUS_PLACEABLE_KEY) {
38
+ return isStandardWmfHeader(data.subarray(22));
39
+ }
40
+ return isStandardWmfHeader(data);
41
+ }
42
+ /**
43
+ * Detects an EMF (`EMR_HEADER` with the `" EMF"` signature) somewhere near the
44
+ * start of `data` (including after a short WMF / METAFILEPICT preamble).
45
+ */
46
+ export function acdbLooksLikeEmf(data) {
47
+ return findEmfHeaderOffset(data) >= 0;
48
+ }
49
+ /** `META_ESCAPE` record function (WMF). */
50
+ var META_ESCAPE = 0x0626;
51
+ /** `META_ESCAPE_ENHANCED_METAFILE` escape function. */
52
+ var META_ESCAPE_ENHANCED_METAFILE = 0x000f;
53
+ /** Comment identifier `0x43464D57` ("WMFC" as little-endian ASCII). */
54
+ var WMFC_COMMENT_IDENTIFIER = 0x43464d57;
55
+ /**
56
+ * Reassembles a contiguous EMF from a WMF that embeds it via
57
+ * `META_ESCAPE_ENHANCED_METAFILE` ("WMFC") records.
58
+ *
59
+ * Excel OLE `CF_ENHMETAFILE` presentations are frequently stored as such a
60
+ * WMF wrapper. Taking a contiguous `nBytes` slice starting at the first
61
+ * embedded `EMR_HEADER` pulls WMF escape framing into the EMF stream and
62
+ * corrupts later EMR records — converters then only replay the first ~screen
63
+ * of GDI text (e.g. 8 Excel rows) while the canvas stays mostly blank.
64
+ *
65
+ * @returns The concatenated EMF bytes, or `undefined` when no WMFC chunks are found.
66
+ * @see https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wmf/cfc88064-d86d-4b52-9374-3ce27d456179
67
+ */
68
+ export function acdbReassembleEmfFromWmfEscapes(data) {
69
+ var e_1, _a;
70
+ if (!acdbLooksLikeWmf(data)) {
71
+ return undefined;
72
+ }
73
+ var view = new DataView(data.buffer, data.byteOffset, data.byteLength);
74
+ var offset = 0;
75
+ if (view.getUint32(0, true) === ALDUS_PLACEABLE_KEY) {
76
+ offset = 22;
77
+ }
78
+ // Standard WMF header is `mtHeaderSize` words (typically 9 → 18 bytes).
79
+ if (offset + 18 > data.length) {
80
+ return undefined;
81
+ }
82
+ var headerSizeWords = view.getUint16(offset + 2, true);
83
+ if (headerSizeWords < 9) {
84
+ return undefined;
85
+ }
86
+ offset += headerSizeWords * 2;
87
+ var chunks = [];
88
+ var totalBytes = 0;
89
+ while (offset + 6 <= data.length) {
90
+ var recordSizeWords = view.getUint32(offset, true);
91
+ var recordSize = recordSizeWords * 2;
92
+ var recordFunction = view.getUint16(offset + 4, true);
93
+ if (recordSizeWords < 3 ||
94
+ recordSize < 6 ||
95
+ offset + recordSize > data.length) {
96
+ break;
97
+ }
98
+ if (recordFunction === META_ESCAPE && offset + 44 <= offset + recordSize) {
99
+ var escapeFunction = view.getUint16(offset + 6, true);
100
+ if (escapeFunction === META_ESCAPE_ENHANCED_METAFILE) {
101
+ var commentId = view.getUint32(offset + 10, true);
102
+ // CurrentRecordSize / EnhancedMetafileDataSize (must match per MS-WMF).
103
+ var currentRecordSize = view.getUint32(offset + 32, true);
104
+ var emfDataSize = view.getUint32(offset + 40, true);
105
+ var payloadSize = currentRecordSize > 0 && currentRecordSize === emfDataSize
106
+ ? currentRecordSize
107
+ : currentRecordSize > 0
108
+ ? currentRecordSize
109
+ : emfDataSize;
110
+ var dataStart = offset + 44;
111
+ if (commentId === WMFC_COMMENT_IDENTIFIER &&
112
+ payloadSize > 0 &&
113
+ dataStart + payloadSize <= offset + recordSize) {
114
+ chunks.push(data.subarray(dataStart, dataStart + payloadSize));
115
+ totalBytes += payloadSize;
116
+ }
117
+ }
118
+ }
119
+ // META_EOF
120
+ if (recordFunction === 0) {
121
+ break;
122
+ }
123
+ offset += recordSize;
124
+ }
125
+ if (chunks.length === 0 || totalBytes < 88) {
126
+ return undefined;
127
+ }
128
+ var emf = new Uint8Array(totalBytes);
129
+ var writeAt = 0;
130
+ try {
131
+ for (var chunks_1 = __values(chunks), chunks_1_1 = chunks_1.next(); !chunks_1_1.done; chunks_1_1 = chunks_1.next()) {
132
+ var chunk = chunks_1_1.value;
133
+ emf.set(chunk, writeAt);
134
+ writeAt += chunk.length;
135
+ }
136
+ }
137
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
138
+ finally {
139
+ try {
140
+ if (chunks_1_1 && !chunks_1_1.done && (_a = chunks_1.return)) _a.call(chunks_1);
141
+ }
142
+ finally { if (e_1) throw e_1.error; }
143
+ }
144
+ if (!isEmfHeaderAt(emf, 0)) {
145
+ return undefined;
146
+ }
147
+ return emf;
148
+ }
149
+ /**
150
+ * Locates the first plausible `EMR_HEADER` in `data`.
151
+ *
152
+ * @returns Byte offset of the header, or `-1` when none is found.
153
+ */
154
+ export function findEmfHeaderOffset(data) {
155
+ // Search a bounded prefix — Excel OLE streams may prepend a short WMF
156
+ // wrapper before the real EMF, but the header is near the start.
157
+ var limit = Math.min(data.length - 44, 4096);
158
+ for (var i = 0; i <= limit; i++) {
159
+ if (!isEmfHeaderAt(data, i))
160
+ continue;
161
+ return i;
162
+ }
163
+ return -1;
164
+ }
165
+ /**
166
+ * Returns true when `data[offset…]` is a plausible EMF header.
167
+ */
168
+ export function isEmfHeaderAt(data, offset) {
169
+ if (offset + 88 > data.length) {
170
+ return false;
171
+ }
172
+ var view = new DataView(data.buffer, data.byteOffset + offset, data.length - offset);
173
+ if (view.getUint32(0, true) !== 1) {
174
+ return false;
175
+ }
176
+ var headerSize = view.getUint32(4, true);
177
+ if (headerSize < 88 || offset + headerSize > data.length) {
178
+ return false;
179
+ }
180
+ // Signature " EMF" at offset 40 inside EMR_HEADER.
181
+ if (data[offset + 40] !== 0x20 ||
182
+ data[offset + 41] !== 0x45 ||
183
+ data[offset + 42] !== 0x4d ||
184
+ data[offset + 43] !== 0x46) {
185
+ return false;
186
+ }
187
+ var nBytes = view.getUint32(48, true);
188
+ var nRecords = view.getUint32(52, true);
189
+ if (nBytes < headerSize || offset + nBytes > data.length) {
190
+ return false;
191
+ }
192
+ if (nRecords < 2 || nRecords > 10000000) {
193
+ return false;
194
+ }
195
+ return true;
196
+ }
197
+ function isStandardWmfHeader(data) {
198
+ if (data.length < 18) {
199
+ return false;
200
+ }
201
+ var view = new DataView(data.buffer, data.byteOffset, data.byteLength);
202
+ var type = view.getUint16(0, true);
203
+ var headerSize = view.getUint16(2, true);
204
+ var version = view.getUint16(4, true);
205
+ var sizeWords = view.getUint32(6, true);
206
+ // type: 1 = memory metafile, 2 = disk metafile
207
+ if (type !== 1 && type !== 2) {
208
+ return false;
209
+ }
210
+ // headerSize is in WORDS; standard header is 9 words (18 bytes)
211
+ if (headerSize < 9 || headerSize > 100) {
212
+ return false;
213
+ }
214
+ // version: 0x0100 or 0x0300
215
+ if (version !== 0x0100 && version !== 0x0300) {
216
+ return false;
217
+ }
218
+ if (sizeWords < headerSize || sizeWords * 2 > data.length + 16) {
219
+ // Allow a little slack for truncated streams; still require a plausible size.
220
+ if (sizeWords < headerSize) {
221
+ return false;
222
+ }
223
+ }
224
+ return true;
225
+ }
226
+ //# sourceMappingURL=AcDbOleMetafileDetect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbOleMetafileDetect.js","sourceRoot":"","sources":["../../src/misc/AcDbOleMetafileDetect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Rasterizes Windows metafile blobs extracted from OLE frames (WMF / EMF)
3
+ * into browser-decodable PNG images via `emf-converter`.
4
+ *
5
+ * AutoCAD Excel OLE previews are typically stored as CF_ENHMETAFILE / WMF
6
+ * presentation streams. Browsers cannot decode those formats natively, so
7
+ * viewers must convert them to PNG (or similar) before texturing.
8
+ */
9
+ export interface AcDbOleMetafileRasterizeOptions {
10
+ /** Maximum output width in pixels. */
11
+ maxWidth?: number;
12
+ /** Maximum output height in pixels. */
13
+ maxHeight?: number;
14
+ /**
15
+ * DPI scale factor for higher-resolution output.
16
+ * Defaults to `1` for CAD overlays (sharp enough without huge textures).
17
+ */
18
+ dpiScale?: number;
19
+ /** Hard cap on canvas width/height. */
20
+ maxCanvasDimension?: number;
21
+ /** Optional Windows face-name → CSS font-family map. */
22
+ fontFamilyMap?: Record<string, string>;
23
+ }
24
+ /**
25
+ * Converts a WMF/EMF {@link Blob} (or raw bytes) to an `image/png` blob.
26
+ *
27
+ * @returns PNG blob, or `undefined` when conversion fails / canvas is unavailable.
28
+ */
29
+ export declare function acdbRasterizeOleMetafile(input: Blob | Uint8Array, options?: AcDbOleMetafileRasterizeOptions): Promise<Blob | undefined>;
30
+ /**
31
+ * True when `blob` looks like an OLE metafile that needs canvas rasterization
32
+ * before it can be used as a WebGL texture.
33
+ */
34
+ export declare function acdbOleBlobNeedsMetafileRasterization(blob: Blob): boolean;
35
+ //# sourceMappingURL=AcDbOleMetafileRasterizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbOleMetafileRasterizer.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbOleMetafileRasterizer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,+BAA+B;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uCAAuC;IACvC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,IAAI,GAAG,UAAU,EACxB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAuD3B;AAED;;;GAGG;AACH,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEzE"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Rasterizes Windows metafile blobs extracted from OLE frames (WMF / EMF)
3
+ * into browser-decodable PNG images via `emf-converter`.
4
+ *
5
+ * AutoCAD Excel OLE previews are typically stored as CF_ENHMETAFILE / WMF
6
+ * presentation streams. Browsers cannot decode those formats natively, so
7
+ * viewers must convert them to PNG (or similar) before texturing.
8
+ */
9
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
+ return new (P || (P = Promise))(function (resolve, reject) {
12
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
16
+ });
17
+ };
18
+ var __generator = (this && this.__generator) || function (thisArg, body) {
19
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
20
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
21
+ function verb(n) { return function (v) { return step([n, v]); }; }
22
+ function step(op) {
23
+ if (f) throw new TypeError("Generator is already executing.");
24
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
25
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
26
+ if (y = 0, t) op = [op[0] & 2, t.value];
27
+ switch (op[0]) {
28
+ case 0: case 1: t = op; break;
29
+ case 4: _.label++; return { value: op[1], done: false };
30
+ case 5: _.label++; y = op[1]; op = [0]; continue;
31
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
32
+ default:
33
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
34
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
35
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
36
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
37
+ if (t[2]) _.ops.pop();
38
+ _.trys.pop(); continue;
39
+ }
40
+ op = body.call(thisArg, _);
41
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
42
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
43
+ }
44
+ };
45
+ import { convertEmfToDataUrl, convertWmfToDataUrl } from 'emf-converter';
46
+ import { ACDB_OLE_METAFILE_EMF_MIME, ACDB_OLE_METAFILE_WMF_MIME, acdbIsOleMetafileMimeType, acdbLooksLikeEmf, acdbLooksLikeWmf } from './AcDbOleMetafileDetect';
47
+ /**
48
+ * Converts a WMF/EMF {@link Blob} (or raw bytes) to an `image/png` blob.
49
+ *
50
+ * @returns PNG blob, or `undefined` when conversion fails / canvas is unavailable.
51
+ */
52
+ export function acdbRasterizeOleMetafile(input_1) {
53
+ return __awaiter(this, arguments, void 0, function (input, options) {
54
+ var bytes, _a, _b, mime, convertOptions, buffer, tryEmfFirst, dataUrl;
55
+ var _c;
56
+ if (options === void 0) { options = {}; }
57
+ return __generator(this, function (_d) {
58
+ switch (_d.label) {
59
+ case 0:
60
+ if (!(input instanceof Uint8Array)) return [3 /*break*/, 1];
61
+ _a = input;
62
+ return [3 /*break*/, 3];
63
+ case 1:
64
+ _b = Uint8Array.bind;
65
+ return [4 /*yield*/, input.arrayBuffer()];
66
+ case 2:
67
+ _a = new (_b.apply(Uint8Array, [void 0, _d.sent()]))();
68
+ _d.label = 3;
69
+ case 3:
70
+ bytes = _a;
71
+ if (!bytes.length) {
72
+ return [2 /*return*/, undefined];
73
+ }
74
+ mime = input instanceof Blob && acdbIsOleMetafileMimeType(input.type)
75
+ ? input.type
76
+ : undefined;
77
+ convertOptions = {
78
+ maxWidth: options.maxWidth,
79
+ maxHeight: options.maxHeight,
80
+ dpiScale: (_c = options.dpiScale) !== null && _c !== void 0 ? _c : 1,
81
+ maxCanvasDimension: options.maxCanvasDimension,
82
+ fontFamilyMap: options.fontFamilyMap
83
+ };
84
+ buffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
85
+ tryEmfFirst = mime === ACDB_OLE_METAFILE_EMF_MIME ||
86
+ (mime == null && acdbLooksLikeEmf(bytes) && !acdbLooksLikeWmf(bytes));
87
+ dataUrl = null;
88
+ if (!tryEmfFirst) return [3 /*break*/, 7];
89
+ return [4 /*yield*/, convertEmfToDataUrl(buffer, convertOptions)];
90
+ case 4:
91
+ dataUrl = _d.sent();
92
+ if (!(!dataUrl && acdbLooksLikeWmf(bytes))) return [3 /*break*/, 6];
93
+ return [4 /*yield*/, convertWmfToDataUrl(buffer, convertOptions)];
94
+ case 5:
95
+ dataUrl = _d.sent();
96
+ _d.label = 6;
97
+ case 6: return [3 /*break*/, 11];
98
+ case 7:
99
+ if (!(mime === ACDB_OLE_METAFILE_WMF_MIME || acdbLooksLikeWmf(bytes))) return [3 /*break*/, 9];
100
+ return [4 /*yield*/, convertWmfToDataUrl(buffer, convertOptions)];
101
+ case 8:
102
+ dataUrl = _d.sent();
103
+ _d.label = 9;
104
+ case 9:
105
+ if (!(!dataUrl && acdbLooksLikeEmf(bytes))) return [3 /*break*/, 11];
106
+ return [4 /*yield*/, convertEmfToDataUrl(buffer, convertOptions)];
107
+ case 10:
108
+ dataUrl = _d.sent();
109
+ _d.label = 11;
110
+ case 11:
111
+ if (!dataUrl) {
112
+ return [2 /*return*/, undefined];
113
+ }
114
+ // Metafile canvases are often transparent; CAD model space is usually dark.
115
+ // Composite onto white so Excel table paper stays readable.
116
+ return [2 /*return*/, compositePngOntoWhite(dataUrl)];
117
+ }
118
+ });
119
+ });
120
+ }
121
+ /**
122
+ * True when `blob` looks like an OLE metafile that needs canvas rasterization
123
+ * before it can be used as a WebGL texture.
124
+ */
125
+ export function acdbOleBlobNeedsMetafileRasterization(blob) {
126
+ return acdbIsOleMetafileMimeType(blob.type);
127
+ }
128
+ function dataUrlToPngBlob(dataUrl) {
129
+ var comma = dataUrl.indexOf(',');
130
+ if (!dataUrl.startsWith('data:') || comma < 0) {
131
+ return undefined;
132
+ }
133
+ var meta = dataUrl.slice(5, comma); // after "data:"
134
+ var data = dataUrl.slice(comma + 1);
135
+ var parts = meta.split(';');
136
+ var mime = parts[0] || 'image/png';
137
+ var isBase64 = parts.includes('base64');
138
+ if (isBase64) {
139
+ var binary = atob(data);
140
+ var bytes = new Uint8Array(binary.length);
141
+ for (var i = 0; i < binary.length; i++) {
142
+ bytes[i] = binary.charCodeAt(i);
143
+ }
144
+ return new Blob([bytes], { type: mime });
145
+ }
146
+ var decoded = decodeURIComponent(data);
147
+ return new Blob([decoded], { type: mime });
148
+ }
149
+ /**
150
+ * Draws a PNG data-URL onto an opaque white canvas and re-exports PNG.
151
+ * Falls back to the original data-URL blob when no canvas API is available.
152
+ */
153
+ function compositePngOntoWhite(dataUrl) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ var canvasApi, image, width, height, canvas, ctx, htmlCanvas_1, _a;
156
+ return __generator(this, function (_b) {
157
+ switch (_b.label) {
158
+ case 0:
159
+ canvasApi = getCanvasFactory();
160
+ if (!canvasApi) {
161
+ return [2 /*return*/, dataUrlToPngBlob(dataUrl)];
162
+ }
163
+ _b.label = 1;
164
+ case 1:
165
+ _b.trys.push([1, 7, , 8]);
166
+ return [4 /*yield*/, canvasApi.decodeImage(dataUrl)];
167
+ case 2:
168
+ image = _b.sent();
169
+ width = Math.max(1, image.width);
170
+ height = Math.max(1, image.height);
171
+ canvas = canvasApi.createCanvas(width, height);
172
+ ctx = canvas.getContext('2d');
173
+ if (!ctx) {
174
+ return [2 /*return*/, dataUrlToPngBlob(dataUrl)];
175
+ }
176
+ ctx.fillStyle = '#ffffff';
177
+ ctx.fillRect(0, 0, width, height);
178
+ ctx.drawImage(image, 0, 0);
179
+ if (!(canvas instanceof OffscreenCanvas)) return [3 /*break*/, 4];
180
+ return [4 /*yield*/, canvas.convertToBlob({ type: 'image/png' })];
181
+ case 3: return [2 /*return*/, _b.sent()];
182
+ case 4:
183
+ htmlCanvas_1 = canvas;
184
+ if (!(typeof htmlCanvas_1.toBlob === 'function')) return [3 /*break*/, 6];
185
+ return [4 /*yield*/, new Promise(function (resolve) {
186
+ htmlCanvas_1.toBlob(function (blob) { return resolve(blob || undefined); }, 'image/png');
187
+ })];
188
+ case 5: return [2 /*return*/, _b.sent()];
189
+ case 6:
190
+ if (typeof htmlCanvas_1.toDataURL === 'function') {
191
+ return [2 /*return*/, dataUrlToPngBlob(htmlCanvas_1.toDataURL('image/png'))];
192
+ }
193
+ return [3 /*break*/, 8];
194
+ case 7:
195
+ _a = _b.sent();
196
+ return [3 /*break*/, 8];
197
+ case 8: return [2 /*return*/, dataUrlToPngBlob(dataUrl)];
198
+ }
199
+ });
200
+ });
201
+ }
202
+ function getCanvasFactory() {
203
+ var _this = this;
204
+ if (typeof OffscreenCanvas !== 'undefined') {
205
+ return {
206
+ createCanvas: function (w, h) { return new OffscreenCanvas(w, h); },
207
+ decodeImage: function (dataUrl) { return __awaiter(_this, void 0, void 0, function () {
208
+ var response, blob;
209
+ return __generator(this, function (_a) {
210
+ switch (_a.label) {
211
+ case 0: return [4 /*yield*/, fetch(dataUrl)];
212
+ case 1:
213
+ response = _a.sent();
214
+ return [4 /*yield*/, response.blob()];
215
+ case 2:
216
+ blob = _a.sent();
217
+ return [2 /*return*/, createImageBitmap(blob)];
218
+ }
219
+ });
220
+ }); }
221
+ };
222
+ }
223
+ if (typeof document !== 'undefined' && document.createElement) {
224
+ return {
225
+ createCanvas: function (w, h) {
226
+ var canvas = document.createElement('canvas');
227
+ canvas.width = w;
228
+ canvas.height = h;
229
+ return canvas;
230
+ },
231
+ decodeImage: function (dataUrl) {
232
+ return new Promise(function (resolve, reject) {
233
+ var image = new Image();
234
+ image.onload = function () { return resolve(image); };
235
+ image.onerror = function () { return reject(new Error('Failed to decode PNG')); };
236
+ image.src = dataUrl;
237
+ });
238
+ }
239
+ };
240
+ }
241
+ return undefined;
242
+ }
243
+ //# sourceMappingURL=AcDbOleMetafileRasterizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbOleMetafileRasterizer.js","sourceRoot":"","sources":["../../src/misc/AcDbOleMetafileRasterizer.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,10 @@ export { AcDbObjectIterator } from './AcDbObjectIterator';
16
16
  export { AcDbIntersect } from './AcDbIntersect';
17
17
  export { ACDB_OLE2FRAME_GEOMETRY_HEADER_SIZE, acdbParseOle2FrameGeometryHeader } from './AcDbOle2FrameGeometry';
18
18
  export type { AcDbOle2FrameGeometryHeader } from './AcDbOle2FrameGeometry';
19
+ export { acdbExtractOleImageBlob } from './AcDbOleImageExtractor';
20
+ export { ACDB_OLE_METAFILE_EMF_MIME, ACDB_OLE_METAFILE_WMF_MIME, acdbIsOleMetafileMimeType, acdbLooksLikeEmf, acdbLooksLikeWmf, acdbReassembleEmfFromWmfEscapes } from './AcDbOleMetafileDetect';
21
+ export { acdbOleBlobNeedsMetafileRasterization, acdbRasterizeOleMetafile } from './AcDbOleMetafileRasterizer';
22
+ export type { AcDbOleMetafileRasterizeOptions } from './AcDbOleMetafileRasterizer';
19
23
  export { AcDbOsnapMode, acdbHasOsnapMode, acdbMaskToOsnapModes, acdbOsnapModesToMask, acdbToggleOsnapMode } from './AcDbOsnapMode';
20
24
  export { AcDbUnitsValue } from './AcDbUnitsValue';
21
25
  export { AcDbPatParser, AcDbPatSvgRenderer, AcDbPredefinedAcadIsoPat, AcDbPredefinedAcadPat } from './pat';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAC1E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,OAAO,CAAA;AACd,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AACzF,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,6BAA6B,EAC7B,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACtB,MAAM,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"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"}
package/lib/misc/index.js CHANGED
@@ -12,6 +12,9 @@ export { acdbEstimateDatabaseMemory, acdbFormatMemoryEstimate } from './AcDbMemo
12
12
  export { AcDbObjectIterator } from './AcDbObjectIterator';
13
13
  export { AcDbIntersect } from './AcDbIntersect';
14
14
  export { ACDB_OLE2FRAME_GEOMETRY_HEADER_SIZE, acdbParseOle2FrameGeometryHeader } from './AcDbOle2FrameGeometry';
15
+ export { acdbExtractOleImageBlob } from './AcDbOleImageExtractor';
16
+ export { ACDB_OLE_METAFILE_EMF_MIME, ACDB_OLE_METAFILE_WMF_MIME, acdbIsOleMetafileMimeType, acdbLooksLikeEmf, acdbLooksLikeWmf, acdbReassembleEmfFromWmfEscapes } from './AcDbOleMetafileDetect';
17
+ export { acdbOleBlobNeedsMetafileRasterization, acdbRasterizeOleMetafile } from './AcDbOleMetafileRasterizer';
15
18
  export { AcDbOsnapMode, acdbHasOsnapMode, acdbMaskToOsnapModes, acdbOsnapModesToMask, acdbToggleOsnapMode } from './AcDbOsnapMode';
16
19
  export { AcDbUnitsValue } from './AcDbUnitsValue';
17
20
  export { AcDbPatParser, AcDbPatSvgRenderer, AcDbPredefinedAcadIsoPat, AcDbPredefinedAcadPat } from './pat';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,+BAA+B,EAC/B,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAM9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EACL,mCAAmC,EACnC,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,OAAO,CAAA;AACd,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,gCAAgC,EAChC,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,wBAAwB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/misc/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mlightcad/data-model",
3
- "version": "1.14.3",
3
+ "version": "1.14.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
@@ -35,10 +35,11 @@
35
35
  "require": "./dist/data-model.cjs"
36
36
  },
37
37
  "dependencies": {
38
+ "emf-converter": "2.0.2",
38
39
  "uid": "^2.0.2",
39
- "@mlightcad/graphic-interface": "3.14.3",
40
- "@mlightcad/common": "1.14.3",
41
- "@mlightcad/geometry-engine": "3.14.3"
40
+ "@mlightcad/common": "1.14.5",
41
+ "@mlightcad/geometry-engine": "3.14.5",
42
+ "@mlightcad/graphic-interface": "3.14.5"
42
43
  },
43
44
  "scripts": {
44
45
  "analyze": "pnpm run analyze:lib",
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 mlightcad
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.