@ifc-lite/bcf 3.0.0 → 4.0.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/dist/writer.js CHANGED
@@ -8,10 +8,12 @@
8
8
  */
9
9
  import JSZip from 'jszip';
10
10
  import { requireCameraChoice, writeOrthogonalCamera, writePerspectiveCamera, } from './writer-camera.js';
11
- import { xsdDouble, xsdInt, xsdPointElement } from './numeric.js';
11
+ import { writeLine, writeClippingPlane, writeBitmap, writeHeader, writeBimSnippet, writeDocumentReference, } from './writer-markup-elements.js';
12
+ import { xsdInt } from './numeric.js';
12
13
  import { escapeXml } from './xml-text.js';
13
14
  import { XML_WHITESPACE_ONLY, xsdDateTime, xsdOptionalDateTime, xsdRequiredString, } from './xsd-required-string.js';
14
- import { generateUuid, uuidFromSeed } from '@ifc-lite/encoding';
15
+ import { generateUuid } from '@ifc-lite/encoding';
16
+ import { viewpointFileName } from './writer-viewpoint-filename.js';
15
17
  /**
16
18
  * Write a BCFProject to a .bcfzip file
17
19
  *
@@ -152,11 +154,21 @@ async function writeTopicFolder(zip, topic, version, usedFolderNames) {
152
154
  // the same way topic folders are disambiguated above.
153
155
  const usedViewpointNames = new Set();
154
156
  const viewpointBaseNames = topic.viewpoints.map((vp) => sanitizeZipComponent(vp.guid, usedViewpointNames, 'viewpoint'));
157
+ // Derive the actual archive file names ONCE, so viewpointXml (markup) and
158
+ // writeViewpointFiles (archive entry) can never disagree (#3612).
159
+ const viewpointFileNames = viewpointBaseNames.map((baseName, i) => viewpointFileName(baseName, i));
160
+ // Resolve each viewpoint's snapshot ONCE, before markup.bcf is written, so
161
+ // the `<Snapshot>` reference and the archive entry it names are driven off
162
+ // the SAME decode attempt and can never disagree (#3962): previously the
163
+ // reference was written based on `viewpoint.snapshot`/`snapshotData`'s mere
164
+ // presence, and the actual file write -- which could fail decoding a
165
+ // malformed `data:` URL -- happened later, independently.
166
+ const snapshotBytes = topic.viewpoints.map((vp) => resolveSnapshotBytes(vp));
155
167
  // Write markup.bcf
156
- writeMarkupFile(zip, folderName, topic, version, viewpointBaseNames);
168
+ writeMarkupFile(zip, folderName, topic, version, viewpointFileNames, snapshotBytes);
157
169
  // Write viewpoints
158
170
  for (let i = 0; i < topic.viewpoints.length; i++) {
159
- await writeViewpointFiles(zip, folderName, topic.viewpoints[i], viewpointBaseNames[i], version);
171
+ await writeViewpointFiles(zip, folderName, topic.viewpoints[i], viewpointFileNames[i], version, snapshotBytes[i]);
160
172
  }
161
173
  }
162
174
  /**
@@ -172,8 +184,44 @@ function snapshotExt(viewpoint) {
172
184
  }
173
185
  return 'png';
174
186
  }
187
+ /**
188
+ * Resolve a viewpoint's snapshot to the exact bytes/string that will be
189
+ * written to the archive, or `undefined` when there is nothing writable --
190
+ * computed once, up front, so both the markup `<Snapshot>` reference and the
191
+ * zip entry are driven off this single result and can never disagree (#3962).
192
+ *
193
+ * A malformed `data:` URL still only drops that one viewpoint's snapshot
194
+ * rather than aborting the whole export, matching this file's existing
195
+ * "skip the one bad piece, keep going" policy -- but unlike before, the
196
+ * warning below now corresponds to an omitted markup reference too, not just
197
+ * an omitted file.
198
+ */
199
+ function resolveSnapshotBytes(viewpoint) {
200
+ if (viewpoint.snapshotData) {
201
+ return viewpoint.snapshotData;
202
+ }
203
+ if (viewpoint.snapshot && viewpoint.snapshot.startsWith('data:')) {
204
+ const base64Data = viewpoint.snapshot.split(',')[1];
205
+ if (!base64Data)
206
+ return undefined;
207
+ try {
208
+ const binaryString = atob(base64Data);
209
+ const bytes = new Uint8Array(binaryString.length);
210
+ for (let i = 0; i < binaryString.length; i++) {
211
+ bytes[i] = binaryString.charCodeAt(i);
212
+ }
213
+ return bytes;
214
+ }
215
+ catch (e) {
216
+ console.warn(`[BCF] Skipping malformed snapshot data URL for viewpoint "${viewpoint.guid}": ` +
217
+ `omitting both its <Snapshot> markup reference and its archive entry`, e);
218
+ return undefined;
219
+ }
220
+ }
221
+ return undefined;
222
+ }
175
223
  /** Write markup.bcf -- buildingSMART standard format. */
176
- function writeMarkupFile(zip, folderName, topic, version, viewpointBaseNames) {
224
+ function writeMarkupFile(zip, folderName, topic, version, viewpointFileNames, snapshotBytes) {
177
225
  // BCF 3.0's markup.xsd tightens `Topic/@TopicType` and `Topic/@TopicStatus`
178
226
  // from optional (2.1) to `use="required"`. Omitting the attribute -
179
227
  // which is what 2.1 output does when the value is unset - produces
@@ -328,17 +376,18 @@ function writeMarkupFile(zip, folderName, topic, version, viewpointBaseNames) {
328
376
  const viewpointEntryTag = version === '3.0' ? 'ViewPoint' : 'Viewpoints';
329
377
  const viewpointXml = (indent) => topic.viewpoints
330
378
  .map((viewpoint, i) => {
331
- // Use standard buildingSMART naming convention: Viewpoint_<guid>.bcfv,
332
- // but the file name component is the sanitized base name (zip-slip
333
- // guard) -- the SAME one writeViewpointFiles uses for the actual entry,
334
- // so the markup reference and the archive agree. The real GUID is still
335
- // written verbatim as the Guid attribute below.
336
- const baseName = viewpointBaseNames[i];
337
- const filename = `Viewpoint_${baseName}.bcfv`;
338
- const snapshotName = `Snapshot_${baseName}.${snapshotExt(viewpoint)}`;
379
+ // Shared viewpointFileName() result (#3612) -- the SAME one
380
+ // writeViewpointFiles uses, so the two can never disagree. The real
381
+ // GUID is still written verbatim as the Guid attribute below.
382
+ const filename = viewpointFileNames[i].viewpointFile;
383
+ const snapshotName = `${viewpointFileNames[i].snapshotBase}.${snapshotExt(viewpoint)}`;
339
384
  let v = `\n${indent}<${viewpointEntryTag} Guid="${escapeXml(viewpoint.guid)}">`;
340
385
  v += `\n${indent} <Viewpoint>${filename}</Viewpoint>`;
341
- if (viewpoint.snapshot || viewpoint.snapshotData) {
386
+ // Driven off the ALREADY-resolved snapshot bytes (see
387
+ // writeTopicFolder), not off `viewpoint.snapshot`/`snapshotData`'s
388
+ // mere presence -- so this reference is only emitted when the entry
389
+ // it names is actually going into the archive (#3962).
390
+ if (snapshotBytes[i] !== undefined) {
342
391
  v += `\n${indent} <Snapshot>${snapshotName}</Snapshot>`;
343
392
  }
344
393
  v += `\n${indent}</${viewpointEntryTag}>`;
@@ -374,13 +423,11 @@ function writeMarkupFile(zip, folderName, topic, version, viewpointBaseNames) {
374
423
  /**
375
424
  * Write viewpoint files (bcfv and snapshot)
376
425
  */
377
- async function writeViewpointFiles(zip, folderName, viewpoint, baseName, version) {
378
- // Use standard buildingSMART naming convention: Viewpoint_<guid>.bcfv, but
379
- // the file name component is the sanitized base name (zip-slip guard) --
380
- // the SAME one the caller wrote into the markup <Viewpoint> reference, so
381
- // the archive entry and the markup agree. See sanitizeZipComponent.
382
- const filename = `Viewpoint_${baseName}.bcfv`;
383
- const snapshotName = `Snapshot_${baseName}.${snapshotExt(viewpoint)}`;
426
+ async function writeViewpointFiles(zip, folderName, viewpoint, fileNames, version, snapshot) {
427
+ // Shared viewpointFileName() result (#3612) -- the SAME one the caller
428
+ // wrote into the markup reference, so the two can never disagree.
429
+ const filename = fileNames.viewpointFile;
430
+ const snapshotName = `${fileNames.snapshotBase}.${snapshotExt(viewpoint)}`;
384
431
  // Write viewpoint XML - use buildingSMART standard format
385
432
  let content = `<?xml version="1.0" encoding="UTF-8"?>
386
433
  <VisualizationInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="${escapeXml(viewpoint.guid)}">`;
@@ -441,27 +488,12 @@ async function writeViewpointFiles(zip, folderName, viewpoint, baseName, version
441
488
  }
442
489
  content += `\n</VisualizationInfo>`;
443
490
  zip.file(`${folderName}/${filename}`, content, { createFolders: false });
444
- // Write snapshot
445
- if (viewpoint.snapshotData) {
446
- zip.file(`${folderName}/${snapshotName}`, viewpoint.snapshotData, { createFolders: false });
447
- }
448
- else if (viewpoint.snapshot && viewpoint.snapshot.startsWith('data:')) {
449
- // Convert data URL to binary
450
- const base64Data = viewpoint.snapshot.split(',')[1];
451
- if (base64Data) {
452
- try {
453
- const binaryString = atob(base64Data);
454
- const bytes = new Uint8Array(binaryString.length);
455
- for (let i = 0; i < binaryString.length; i++) {
456
- bytes[i] = binaryString.charCodeAt(i);
457
- }
458
- zip.file(`${folderName}/${snapshotName}`, bytes, { createFolders: false });
459
- }
460
- catch (e) {
461
- // Skip a single malformed snapshot data URL rather than aborting the export
462
- console.warn('[BCF] Skipping malformed snapshot data URL:', e);
463
- }
464
- }
491
+ // Write the snapshot the caller already resolved (see writeTopicFolder /
492
+ // resolveSnapshotBytes) -- this function no longer decodes the `data:` URL
493
+ // itself, so it can never write a file that the markup reference (written
494
+ // earlier, off the same resolution) disagrees with (#3962).
495
+ if (snapshot !== undefined) {
496
+ zip.file(`${folderName}/${snapshotName}`, snapshot, { createFolders: false });
465
497
  }
466
498
  }
467
499
  /**
@@ -599,175 +631,4 @@ function writeColoringEntry(coloring, version) {
599
631
  content += `\n </Color>`;
600
632
  return content;
601
633
  }
602
- /**
603
- * Write line XML
604
- */
605
- function writeLine(line, where) {
606
- return `\n <Line>${xsdPointElement('StartPoint', line.startPoint, ' ', where)}${xsdPointElement('EndPoint', line.endPoint, ' ', where)}
607
- </Line>`;
608
- }
609
- /**
610
- * Write clipping plane XML
611
- */
612
- function writeClippingPlane(plane, where) {
613
- return `\n <ClippingPlane>${xsdPointElement('Location', plane.location, ' ', where)}${xsdPointElement('Direction', plane.direction, ' ', where)}
614
- </ClippingPlane>`;
615
- }
616
- /**
617
- * Write bitmap XML
618
- *
619
- * Two more shape differences beyond the `<Bitmaps>` wrapper (see the call
620
- * site in {@link writeViewpointFiles}), both against v2_1/visinfo.xsd vs
621
- * v3_0/visinfo.xsd:
622
- * - The format element's name changes: 2.1 nests it as `<Bitmap>` (same tag
623
- * name as the outer per-entry element -- `<Bitmap><Bitmap>PNG</Bitmap>...`);
624
- * 3.0 renamed it `<Format>`.
625
- * - The `BitmapFormat` enum's case changes: 2.1 is uppercase (`PNG`, `JPG`);
626
- * 3.0's simpleType only accepts lowercase (`png`, `jpg`) -- validation
627
- * fails with "The value 'PNG' is not an element of the set {'png','jpg'}"
628
- * otherwise. `BCFBitmap.format` stays typed `'PNG' | 'JPG'`; we only
629
- * lowercase it on the wire for 3.0.
630
- */
631
- function writeBitmap(bitmap, version, where) {
632
- const formatTag = version === '3.0' ? 'Format' : 'Bitmap';
633
- const formatValue = version === '3.0' ? bitmap.format.toLowerCase() : bitmap.format;
634
- return `\n <Bitmap>
635
- <${formatTag}>${formatValue}</${formatTag}>
636
- <Reference>${escapeXml(bitmap.reference)}</Reference>${xsdPointElement('Location', bitmap.location, ' ', where)}${xsdPointElement('Normal', bitmap.normal, ' ', where)}${xsdPointElement('Up', bitmap.up, ' ', where)}
637
- <Height>${xsdDouble(bitmap.height, 'Bitmap/Height', where)}</Height>
638
- </Bitmap>`;
639
- }
640
- /**
641
- * Write the markup `<Header>` block (source IFC files).
642
- *
643
- * The container differs by BCF version: 2.1 nests `<File>` directly under
644
- * `<Header>`, while 3.0 wraps them in a `<Files>` element. The `<File>` shape
645
- * (IfcProject / IfcSpatialStructureElement / isExternal attributes; Filename,
646
- * Date, Reference children) is identical across both.
647
- */
648
- function writeHeader(files, version) {
649
- const fileIndent = version === '3.0' ? ' ' : ' ';
650
- const fileXml = files.map((f) => writeHeaderFile(f, fileIndent, version)).join('');
651
- if (version === '3.0') {
652
- return `\n <Header>\n <Files>${fileXml}\n </Files>\n </Header>`;
653
- }
654
- return `\n <Header>${fileXml}\n </Header>`;
655
- }
656
- /** Write a single `<File>` entry inside the markup `<Header>`. */
657
- function writeHeaderFile(file, indent, version) {
658
- // isExternal defaults to true (an unresolved reference is treated as external).
659
- const isExternal = file.isExternal ?? true;
660
- // BCF 2.1 spells the attribute `isExternal`; 3.0 renamed it `IsExternal`.
661
- const isExternalAttr = version === '3.0' ? 'IsExternal' : 'isExternal';
662
- let attrs = '';
663
- if (file.ifcProject) {
664
- attrs += ` IfcProject="${escapeXml(file.ifcProject)}"`;
665
- }
666
- if (file.ifcSpatialStructureElement) {
667
- attrs += ` IfcSpatialStructureElement="${escapeXml(file.ifcSpatialStructureElement)}"`;
668
- }
669
- attrs += ` ${isExternalAttr}="${isExternal}"`;
670
- let content = `\n${indent}<File${attrs}>`;
671
- if (file.filename) {
672
- content += `\n${indent} <Filename>${escapeXml(file.filename)}</Filename>`;
673
- }
674
- const fileDate = xsdOptionalDateTime(file.date);
675
- if (fileDate) {
676
- content += `\n${indent} <Date>${fileDate}</Date>`;
677
- }
678
- if (file.reference) {
679
- content += `\n${indent} <Reference>${escapeXml(file.reference)}</Reference>`;
680
- }
681
- content += `\n${indent}</File>`;
682
- return content;
683
- }
684
- /**
685
- * Write BimSnippet XML
686
- *
687
- * BCF 2.1 spells the attribute `isExternal`; 3.0 renamed it `IsExternal`
688
- * (buildingSMART/BCF-XML markup.xsd, BimSnippet's IsExternal attribute) —
689
- * same rename as the Header `<File>` attribute in {@link writeHeaderFile}.
690
- */
691
- function writeBimSnippet(snippet, version) {
692
- // Caller guarantees referenceSchema is present (see writeMarkupFile); both
693
- // Reference and ReferenceSchema are required by the BCF schema.
694
- const isExternalAttr = version === '3.0' ? 'IsExternal' : 'isExternal';
695
- let content = `\n <BimSnippet SnippetType="${escapeXml(snippet.snippetType)}" ${isExternalAttr}="${snippet.isExternal}">`;
696
- content += `\n <Reference>${escapeXml(snippet.reference)}</Reference>`;
697
- content += `\n <ReferenceSchema>${escapeXml(snippet.referenceSchema ?? '')}</ReferenceSchema>`;
698
- content += `\n </BimSnippet>`;
699
- return content;
700
- }
701
- /**
702
- * Write DocumentReference XML
703
- *
704
- * BCF 2.1 and 3.0 diverge structurally here, not just by attribute casing:
705
- * 2.1 has `<ReferencedDocument>` (a string, plus an `isExternal` flag on
706
- * whether it's a URL); 3.0 replaced both with `<DocumentGuid>` (a reference
707
- * into project.bcfp's Documents) or `<Url>`, and dropped `isExternal`
708
- * entirely (buildingSMART/BCF-XML markup.xsd, release_3_0 DocumentReference).
709
- * `documentGuid`/`url` are preferred when present; `referencedDocument` is
710
- * the 2.1-shaped fallback so 2.1-authored data written as 3.0 still emits
711
- * something.
712
- */
713
- function writeDocumentReference(docRef, version, topicGuid, index) {
714
- // 2.1's markup.xsd declares `Guid` with no `use`, so it is optional there;
715
- // 3.0's `DocumentReferenceAttributes` declares it `use="required"`, so
716
- // omitting it made every 3.0 topic carrying a guid-less document reference
717
- // write an invalid `markup.bcf` -- and markup.bcf IS the issue, so a viewer
718
- // that rejects it drops the topic whole (#3612). Mint one rather than
719
- // refuse: this guid names only itself (nothing in the archive refers to a
720
- // DocumentReference the way `RelatedTopic` refers to a topic), so a
721
- // generated value loses nothing. Refusal is reserved for values that assert
722
- // something only the caller knows -- `AspectRatio`, `TopicType` -- and would
723
- // fail the whole export over a field 2.1 says is optional. 2.1 keeps the
724
- // attribute absent: fabricating an identifier there buys no schema
725
- // conformance at all, and would put an identifier the caller never chose
726
- // into the file a user downloads.
727
- //
728
- // DERIVED, not random. `generateUuid()` here would make two exports of one
729
- // unchanged project differ in bytes -- and differ again on every subsequent
730
- // write, because nothing kept the value. `uuidFromSeed` is the same
731
- // generator `@ifc-lite/clash` anchors its topic guids with, so the guid is a
732
- // pure function of the topic, the document pointed at, and the position
733
- // within the topic; all three are in the seed because two references under
734
- // one topic can name the same document, and one document can appear under
735
- // two topics. `docKey` names the document in the SAME precedence the 3.0
736
- // body below uses -- seeding from the url alone left every `documentGuid`
737
- // reference on the empty string, so its guid ignored the document entirely
738
- // and two references naming different documents could collide. The result
739
- // is written back onto `docRef` so the in-memory project agrees with the
740
- // file rather than reporting no guid at all.
741
- const docKey = docRef.documentGuid ?? docRef.url ?? docRef.referencedDocument ?? '';
742
- const guid = version === '3.0'
743
- ? docRef.guid || uuidFromSeed(`${topicGuid}|${docKey}|${index}`)
744
- : docRef.guid;
745
- if (version === '3.0' && !docRef.guid)
746
- docRef.guid = guid;
747
- const guidAttr = guid ? ` Guid="${escapeXml(guid)}"` : '';
748
- if (version === '3.0') {
749
- let content = `\n <DocumentReference${guidAttr}>`;
750
- if (docRef.documentGuid) {
751
- content += `\n <DocumentGuid>${escapeXml(docRef.documentGuid)}</DocumentGuid>`;
752
- }
753
- else {
754
- const url = docRef.url ?? docRef.referencedDocument;
755
- if (url) {
756
- content += `\n <Url>${escapeXml(url)}</Url>`;
757
- }
758
- }
759
- if (docRef.description) {
760
- content += `\n <Description>${escapeXml(docRef.description)}</Description>`;
761
- }
762
- content += `\n </DocumentReference>`;
763
- return content;
764
- }
765
- let content = `\n <DocumentReference${guidAttr} isExternal="${docRef.isExternal ?? false}">`;
766
- content += `\n <ReferencedDocument>${escapeXml(docRef.referencedDocument ?? docRef.url ?? '')}</ReferencedDocument>`;
767
- if (docRef.description) {
768
- content += `\n <Description>${escapeXml(docRef.description)}</Description>`;
769
- }
770
- content += `\n </DocumentReference>`;
771
- return content;
772
- }
773
634
  //# sourceMappingURL=writer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/bcf",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "BIM Collaboration Format (BCF) support for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",