@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
@@ -6,10 +6,16 @@
6
6
  * Compound File Binary (CFB) document. Embedded pictures (for example
7
7
  * "Paintbrush Picture") typically expose either:
8
8
  * - a `CONTENTS` stream containing a full BMP / PNG / JPEG file, or
9
- * - a `\2OlePres###` presentation stream with a CF_DIB / CF_BITMAP payload
9
+ * - a `\2OlePres###` presentation stream with a CF_DIB / CF_BITMAP /
10
+ * CF_ENHMETAFILE / CF_METAFILEPICT payload
10
11
  *
11
- * This extractor prefers CFB streams when present, then falls back to scanning
12
- * the raw buffer for common image signatures and packed DIBs.
12
+ * Excel OLE objects almost always ship a WMF/EMF presentation in
13
+ * `\2OlePres000`. Those metafile blobs use MIME types {@link
14
+ * ACDB_OLE_METAFILE_WMF_MIME} / {@link ACDB_OLE_METAFILE_EMF_MIME} and must be
15
+ * rasterized (see {@link acdbRasterizeOleMetafile}) before WebGL texturing.
16
+ *
17
+ * This extractor prefers OlePres streams when present, then other CFB image
18
+ * streams, then a raw-buffer signature scan.
13
19
  */
14
20
  var __values = (this && this.__values) || function(o) {
15
21
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
@@ -22,17 +28,21 @@ var __values = (this && this.__values) || function(o) {
22
28
  };
23
29
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
24
30
  };
31
+ import { ACDB_OLE_METAFILE_EMF_MIME, ACDB_OLE_METAFILE_WMF_MIME, acdbLooksLikeEmf, acdbLooksLikeWmf, acdbReassembleEmfFromWmfEscapes, findEmfHeaderOffset, isEmfHeaderAt } from './AcDbOleMetafileDetect';
25
32
  var CFB_SIGNATURE = [0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1];
26
33
  /** Standard clipboard format identifiers used in OLE presentation streams. */
27
34
  var CF_BITMAP = 2;
35
+ var CF_METAFILEPICT = 3;
28
36
  var CF_DIB = 8;
37
+ var CF_ENHMETAFILE = 14;
29
38
  var DIRECTORY_ENTRY_SIZE = 128;
30
39
  var MAX_STREAM_BYTES = 64 * 1024 * 1024;
31
40
  /**
32
41
  * Attempts to extract an image blob from OLE binary data.
33
42
  *
34
43
  * @param data - Raw OLE payload from {@link AcDbOleFrame.getOleObject}.
35
- * @returns A browser-decodable image blob, or `undefined` when no image is found.
44
+ * @returns A browser-decodable raster blob (`image/bmp|png|jpeg|gif`) or a
45
+ * metafile blob (`image/wmf|emf`), or `undefined` when nothing usable is found.
36
46
  */
37
47
  export function acdbExtractOleImageBlob(data) {
38
48
  if (!(data === null || data === void 0 ? void 0 : data.length)) {
@@ -66,31 +76,9 @@ function extractImageFromCfb(data) {
66
76
  catch (_d) {
67
77
  return undefined;
68
78
  }
69
- var preferredNames = [
70
- 'CONTENTS',
71
- 'Package',
72
- 'Ole10Native',
73
- '\x01Ole10Native'
74
- ];
75
- try {
76
- for (var preferredNames_1 = __values(preferredNames), preferredNames_1_1 = preferredNames_1.next(); !preferredNames_1_1.done; preferredNames_1_1 = preferredNames_1.next()) {
77
- var name_1 = preferredNames_1_1.value;
78
- var stream = file.readStream(name_1);
79
- if (!(stream === null || stream === void 0 ? void 0 : stream.length))
80
- continue;
81
- var blob = extractImageFromRawBytes(stream);
82
- if (blob)
83
- return blob;
84
- }
85
- }
86
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
87
- finally {
88
- try {
89
- if (preferredNames_1_1 && !preferredNames_1_1.done && (_a = preferredNames_1.return)) _a.call(preferredNames_1);
90
- }
91
- finally { if (e_1) throw e_1.error; }
92
- }
93
79
  try {
80
+ // Prefer OlePres first — Excel/Office OLE display pictures live here as
81
+ // WMF/EMF. Checking Package beforehand only wastes work (xlsx zip).
94
82
  for (var _e = __values(file.entries()), _f = _e.next(); !_f.done; _f = _e.next()) {
95
83
  var entry = _f.value;
96
84
  if (entry.type !== 'stream')
@@ -109,15 +97,39 @@ function extractImageFromCfb(data) {
109
97
  return fromRaw;
110
98
  }
111
99
  }
100
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
101
+ finally {
102
+ try {
103
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
104
+ }
105
+ finally { if (e_1) throw e_1.error; }
106
+ }
107
+ var preferredNames = [
108
+ 'CONTENTS',
109
+ 'Ole10Native',
110
+ '\x01Ole10Native',
111
+ 'Package'
112
+ ];
113
+ try {
114
+ for (var preferredNames_1 = __values(preferredNames), preferredNames_1_1 = preferredNames_1.next(); !preferredNames_1_1.done; preferredNames_1_1 = preferredNames_1.next()) {
115
+ var name_1 = preferredNames_1_1.value;
116
+ var stream = file.readStream(name_1);
117
+ if (!(stream === null || stream === void 0 ? void 0 : stream.length))
118
+ continue;
119
+ var blob = extractImageFromRawBytes(stream);
120
+ if (blob)
121
+ return blob;
122
+ }
123
+ }
112
124
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
113
125
  finally {
114
126
  try {
115
- if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
127
+ if (preferredNames_1_1 && !preferredNames_1_1.done && (_b = preferredNames_1.return)) _b.call(preferredNames_1);
116
128
  }
117
129
  finally { if (e_2) throw e_2.error; }
118
130
  }
119
131
  try {
120
- // Last resort: scan every stream for embedded image bytes.
132
+ // Last resort: scan every stream for embedded image / metafile bytes.
121
133
  for (var _g = __values(file.entries()), _h = _g.next(); !_h.done; _h = _g.next()) {
122
134
  var entry = _h.value;
123
135
  if (entry.type !== 'stream')
@@ -141,10 +153,10 @@ function extractImageFromCfb(data) {
141
153
  }
142
154
  /**
143
155
  * Parses an OLE presentation stream (`\2OlePres000`, …) and extracts a DIB /
144
- * bitmap when the clipboard format is CF_DIB or CF_BITMAP.
156
+ * bitmap / WMF / EMF presentation picture.
145
157
  *
146
158
  * @param stream - Bytes of a `\2OlePres###` (or similarly named) stream.
147
- * @returns A BMP image blob for CF_DIB / CF_BITMAP payloads, or `undefined`.
159
+ * @returns A raster or metafile blob, or `undefined`.
148
160
  *
149
161
  * @see https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-oleds/78ab0f5c-ad1b-41b4-bb5e-1eea2cd13a6c
150
162
  */
@@ -162,8 +174,11 @@ function extractImageFromOlePresentation(stream) {
162
174
  offset += 4;
163
175
  }
164
176
  else if (markerOrLength === 0xfffffffe) {
165
- // Unicode clipboard format name — skip string and try raw scan later.
166
- return undefined;
177
+ // Unicode clipboard format name — skip string length + UTF-16 chars.
178
+ if (offset + 4 > stream.length)
179
+ return undefined;
180
+ var nameBytes = view.getUint32(offset, true);
181
+ offset += 4 + nameBytes;
167
182
  }
168
183
  else if (markerOrLength > 0 && markerOrLength < 0xffff) {
169
184
  // ANSI clipboard format name
@@ -190,22 +205,191 @@ function extractImageFromOlePresentation(stream) {
190
205
  return undefined;
191
206
  }
192
207
  var presentationData = stream.subarray(offset, offset + dataSize);
208
+ return extractPresentationPicture(presentationData, clipboardFormat);
209
+ }
210
+ /**
211
+ * Interprets OlePres picture bytes using the declared clipboard format, with
212
+ * content sniffing as a fallback (Excel often labels WMF data as
213
+ * CF_ENHMETAFILE).
214
+ */
215
+ function extractPresentationPicture(presentationData, clipboardFormat) {
193
216
  if (clipboardFormat === CF_DIB) {
194
- return dibToBmpBlob(presentationData);
217
+ var dib = dibToBmpBlob(presentationData);
218
+ if (dib)
219
+ return dib;
195
220
  }
196
221
  if (clipboardFormat === CF_BITMAP) {
197
- return extractImageFromRawBytes(presentationData);
222
+ var raster = extractRasterImageFromRawBytes(presentationData);
223
+ if (raster)
224
+ return raster;
225
+ }
226
+ if (clipboardFormat === CF_ENHMETAFILE ||
227
+ clipboardFormat === CF_METAFILEPICT) {
228
+ var metafile_1 = extractMetafileFromPresentationData(presentationData, clipboardFormat);
229
+ if (metafile_1)
230
+ return metafile_1;
231
+ }
232
+ // Content sniffing: Excel CF_ENHMETAFILE streams frequently contain a full
233
+ // WMF (and only a broken/partial embedded EMF fragment).
234
+ var metafile = extractMetafileFromPresentationData(presentationData);
235
+ if (metafile)
236
+ return metafile;
237
+ return extractRasterImageFromRawBytes(presentationData);
238
+ }
239
+ /**
240
+ * Pulls a WMF or EMF blob out of OlePres picture bytes.
241
+ *
242
+ * Preference order:
243
+ * 1. EMF reassembled from WMF `META_ESCAPE_ENHANCED_METAFILE` ("WMFC") chunks
244
+ * — required for Excel OLE; a raw `nBytes` slice through the wrapper is
245
+ * corrupt and only paints the first few rows.
246
+ * 2. Standalone EMF (`EMR_HEADER`), including best-effort `nBytes` slices for
247
+ * dual-mode EMF+ streams that fail a strict EMR walk
248
+ * 3. Complete WMF (standard or Aldus placeable) when it walks to `META_EOF`
249
+ * 4. Best-effort WMF slice from a plausible header
250
+ */
251
+ function extractMetafileFromPresentationData(data, clipboardFormat) {
252
+ // CF_METAFILEPICT: optional 12-byte METAFILEPICT (mm, xExt, yExt) before WMF.
253
+ var wmfCandidate = data;
254
+ if (clipboardFormat === CF_METAFILEPICT && data.length > 30) {
255
+ var maybeWmf = data.subarray(12);
256
+ if (acdbLooksLikeWmf(maybeWmf)) {
257
+ wmfCandidate = maybeWmf;
258
+ }
259
+ }
260
+ // Excel CF_ENHMETAFILE is often a WMF that shards the real EMF across WMFC
261
+ // escape records. Reassemble before any contiguous EMF header slice.
262
+ if (acdbLooksLikeWmf(wmfCandidate)) {
263
+ var reassembled = acdbReassembleEmfFromWmfEscapes(wmfCandidate);
264
+ if (reassembled) {
265
+ return new Blob([copyBytes(reassembled)], {
266
+ type: ACDB_OLE_METAFILE_EMF_MIME
267
+ });
268
+ }
269
+ }
270
+ var emfOffset = findEmfHeaderOffset(data);
271
+ if (emfOffset >= 0 && isEmfHeaderAt(data, emfOffset)) {
272
+ var validated = sliceValidatedEmf(data, emfOffset);
273
+ if (validated) {
274
+ return new Blob([copyBytes(validated)], {
275
+ type: ACDB_OLE_METAFILE_EMF_MIME
276
+ });
277
+ }
278
+ // Dual-mode Excel EMF+ streams often fail a strict EMR walk after the
279
+ // first EMF+ comment block, but still convert correctly when the bytes
280
+ // are a true contiguous EMF (not a WMF-wrapped shard stream).
281
+ var view = new DataView(data.buffer, data.byteOffset + emfOffset, data.length - emfOffset);
282
+ var nBytes = view.getUint32(48, true);
283
+ if (nBytes > 88 && emfOffset + nBytes <= data.length) {
284
+ return new Blob([copyBytes(data.subarray(emfOffset, emfOffset + nBytes))], {
285
+ type: ACDB_OLE_METAFILE_EMF_MIME
286
+ });
287
+ }
288
+ }
289
+ if (acdbLooksLikeWmf(wmfCandidate)) {
290
+ var wmf = sliceValidatedWmf(wmfCandidate);
291
+ if (wmf) {
292
+ return new Blob([copyBytes(wmf)], { type: ACDB_OLE_METAFILE_WMF_MIME });
293
+ }
294
+ return new Blob([copyBytes(wmfCandidate)], {
295
+ type: ACDB_OLE_METAFILE_WMF_MIME
296
+ });
198
297
  }
199
- return extractImageFromRawBytes(presentationData);
298
+ return undefined;
299
+ }
300
+ /** Copies a view into a standalone buffer so Blob construction is unambiguous. */
301
+ function copyBytes(data) {
302
+ var copy = new Uint8Array(data.length);
303
+ copy.set(data);
304
+ return copy;
200
305
  }
201
306
  /**
202
- * Scans a byte buffer for common image file signatures (BMP, PNG, JPEG, GIF)
203
- * and packed DIB structures.
307
+ * Returns an EMF byte slice that successfully walks from `EMR_HEADER` to
308
+ * `EMR_EOF`, or `undefined` when the record stream is corrupt.
309
+ */
310
+ function sliceValidatedEmf(data, start) {
311
+ if (!isEmfHeaderAt(data, start)) {
312
+ return undefined;
313
+ }
314
+ var view = new DataView(data.buffer, data.byteOffset + start, data.length - start);
315
+ var nBytes = view.getUint32(48, true);
316
+ var nRecords = view.getUint32(52, true);
317
+ var offset = 0;
318
+ for (var r = 0; r < nRecords; r++) {
319
+ if (offset + 8 > nBytes) {
320
+ return undefined;
321
+ }
322
+ var type = view.getUint32(offset, true);
323
+ var size = view.getUint32(offset + 4, true);
324
+ if (size < 8 || offset + size > nBytes) {
325
+ return undefined;
326
+ }
327
+ offset += size;
328
+ if (type === 14) {
329
+ // EMR_EOF
330
+ return data.subarray(start, start + offset);
331
+ }
332
+ }
333
+ return undefined;
334
+ }
335
+ /**
336
+ * Returns a WMF byte slice that walks from the header to `META_EOF`, or
337
+ * `undefined` when the record stream is corrupt.
338
+ */
339
+ function sliceValidatedWmf(data) {
340
+ var headerOffset = 0;
341
+ var view = new DataView(data.buffer, data.byteOffset, data.byteLength);
342
+ if (data.length >= 40 && view.getUint32(0, true) === 0x9ac6cdd7) {
343
+ headerOffset = 22;
344
+ }
345
+ if (!acdbLooksLikeWmf(data.subarray(headerOffset))) {
346
+ return undefined;
347
+ }
348
+ var headerView = new DataView(data.buffer, data.byteOffset + headerOffset, data.length - headerOffset);
349
+ var headerSizeWords = headerView.getUint16(2, true);
350
+ var sizeWords = headerView.getUint32(6, true);
351
+ var expectedBytes = headerOffset + sizeWords * 2;
352
+ if (expectedBytes > data.length) {
353
+ return undefined;
354
+ }
355
+ var offset = headerOffset + headerSizeWords * 2;
356
+ var end = expectedBytes;
357
+ var records = 0;
358
+ while (offset + 6 <= end && records < 500000) {
359
+ var recordSizeWords = view.getUint32(offset, true);
360
+ var func = view.getUint16(offset + 4, true);
361
+ if (recordSizeWords < 3 || offset + recordSizeWords * 2 > end) {
362
+ return undefined;
363
+ }
364
+ offset += recordSizeWords * 2;
365
+ records++;
366
+ if (func === 0) {
367
+ // META_EOF
368
+ return data.subarray(0, offset);
369
+ }
370
+ }
371
+ return undefined;
372
+ }
373
+ /**
374
+ * Scans a byte buffer for common image file signatures (BMP, PNG, JPEG, GIF),
375
+ * packed DIBs, and WMF/EMF metafiles.
204
376
  *
205
377
  * @param data - Arbitrary bytes that may contain an embedded image.
206
378
  * @returns The first recognized image blob, or `undefined` if none is found.
207
379
  */
208
380
  function extractImageFromRawBytes(data) {
381
+ var raster = extractRasterImageFromRawBytes(data);
382
+ if (raster)
383
+ return raster;
384
+ if (acdbLooksLikeEmf(data) || acdbLooksLikeWmf(data)) {
385
+ return extractMetafileFromPresentationData(data);
386
+ }
387
+ return undefined;
388
+ }
389
+ /**
390
+ * Scans for BMP / PNG / JPEG / GIF / packed DIB only (no metafiles).
391
+ */
392
+ function extractRasterImageFromRawBytes(data) {
209
393
  var bmp = findBmpBlob(data);
210
394
  if (bmp)
211
395
  return bmp;
@@ -1 +1 @@
1
- {"version":3,"file":"AcDbOleImageExtractor.js","sourceRoot":"","sources":["../../src/misc/AcDbOleImageExtractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcDbOleImageExtractor.js","sourceRoot":"","sources":["../../src/misc/AcDbOleImageExtractor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Shared MIME types and byte-signature helpers for OLE metafile payloads.
3
+ */
4
+ /** MIME type used when an OLE presentation stores a Windows Metafile (WMF). */
5
+ export declare const ACDB_OLE_METAFILE_WMF_MIME = "image/wmf";
6
+ /** MIME type used when an OLE presentation stores an Enhanced Metafile (EMF). */
7
+ export declare const ACDB_OLE_METAFILE_EMF_MIME = "image/emf";
8
+ /**
9
+ * Returns true when `mime` identifies a WMF/EMF blob produced by the OLE
10
+ * image extractor.
11
+ */
12
+ export declare function acdbIsOleMetafileMimeType(mime?: string | null): boolean;
13
+ /**
14
+ * Detects a standard or Aldus-placeable WMF header at the start of `data`.
15
+ */
16
+ export declare function acdbLooksLikeWmf(data: Uint8Array): boolean;
17
+ /**
18
+ * Detects an EMF (`EMR_HEADER` with the `" EMF"` signature) somewhere near the
19
+ * start of `data` (including after a short WMF / METAFILEPICT preamble).
20
+ */
21
+ export declare function acdbLooksLikeEmf(data: Uint8Array): boolean;
22
+ /**
23
+ * Reassembles a contiguous EMF from a WMF that embeds it via
24
+ * `META_ESCAPE_ENHANCED_METAFILE` ("WMFC") records.
25
+ *
26
+ * Excel OLE `CF_ENHMETAFILE` presentations are frequently stored as such a
27
+ * WMF wrapper. Taking a contiguous `nBytes` slice starting at the first
28
+ * embedded `EMR_HEADER` pulls WMF escape framing into the EMF stream and
29
+ * corrupts later EMR records — converters then only replay the first ~screen
30
+ * of GDI text (e.g. 8 Excel rows) while the canvas stays mostly blank.
31
+ *
32
+ * @returns The concatenated EMF bytes, or `undefined` when no WMFC chunks are found.
33
+ * @see https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-wmf/cfc88064-d86d-4b52-9374-3ce27d456179
34
+ */
35
+ export declare function acdbReassembleEmfFromWmfEscapes(data: Uint8Array): Uint8Array | undefined;
36
+ /**
37
+ * Locates the first plausible `EMR_HEADER` in `data`.
38
+ *
39
+ * @returns Byte offset of the header, or `-1` when none is found.
40
+ */
41
+ export declare function findEmfHeaderOffset(data: Uint8Array): number;
42
+ /**
43
+ * Returns true when `data[offset…]` is a plausible EMF header.
44
+ */
45
+ export declare function isEmfHeaderAt(data: Uint8Array, offset: number): boolean;
46
+ //# sourceMappingURL=AcDbOleMetafileDetect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AcDbOleMetafileDetect.d.ts","sourceRoot":"","sources":["../../src/misc/AcDbOleMetafileDetect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,cAAc,CAAA;AAErD,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,cAAc,CAAA;AAKrD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAIvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAY1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAE1D;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,GACf,UAAU,GAAG,SAAS,CAiFxB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAS5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAkCvE"}