@ifc-lite/bcf 1.15.3 → 1.15.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @ifc-lite/bcf
2
2
 
3
- BIM Collaboration Format (BCF) support for IFClite. Implements BCF 2.1 and 3.0 specifications for issue tracking in BIM projects.
3
+ BCF (BIM Collaboration Format) support for IFClite. Reads and writes BCF 2.1 and 3.0 files — the issue-tracking format every BIM tool speaks (Revit, Archicad, Solibri, BIMcollab, etc.).
4
4
 
5
5
  ## Installation
6
6
 
@@ -8,34 +8,87 @@ BIM Collaboration Format (BCF) support for IFClite. Implements BCF 2.1 and 3.0 s
8
8
  npm install @ifc-lite/bcf
9
9
  ```
10
10
 
11
- ## Quick Start
11
+ ## Read a BCF file
12
12
 
13
13
  ```typescript
14
- import { readBCF, createBCFProject, createBCFTopic, addTopicToProject, writeBCF } from '@ifc-lite/bcf';
14
+ import { readBCF } from '@ifc-lite/bcf';
15
15
 
16
- // Read a BCF file
17
- const project = await readBCF(bcfBuffer);
16
+ const buffer = await fetch('coordination.bcf').then(r => r.arrayBuffer());
17
+ const project = await readBCF(buffer);
18
18
 
19
- // Or create a new project
20
- const newProject = createBCFProject({ name: 'My Review', version: '2.1' });
21
- const topic = createBCFTopic({ title: 'Missing fire rating', author: 'user@example.com' });
22
- addTopicToProject(newProject, topic);
19
+ console.log(`${project.topics.length} topics, version ${project.version}`);
23
20
 
24
- // Export (returns Blob)
25
- const blob = await writeBCF(newProject);
21
+ for (const topic of project.topics) {
22
+ console.log(`[${topic.priority}] ${topic.title}`);
23
+ console.log(` by ${topic.author}, status: ${topic.status}`);
24
+ console.log(` ${topic.comments.length} comments, ${topic.viewpoints.length} viewpoints`);
25
+ }
26
26
  ```
27
27
 
28
- ## Features
28
+ ## Create a BCF file
29
29
 
30
- - Read/write BCF 2.1 and 3.0 files
31
- - Topics, comments, and viewpoints
32
- - Camera state conversion (viewer <-> BCF format)
33
- - IFC GlobalId <-> UUID conversion utilities
34
- - Component visibility and selection in viewpoints
30
+ ```typescript
31
+ import { createBCFProject, createBCFTopic, addTopicToProject, writeBCF } from '@ifc-lite/bcf';
32
+
33
+ const project = createBCFProject({
34
+ name: 'Coordination Pass — Round 3',
35
+ version: '3.0',
36
+ });
37
+
38
+ const topic = createBCFTopic({
39
+ title: 'Missing fire rating on east-facade walls',
40
+ author: 'reviewer@example.com',
41
+ priority: 'High',
42
+ status: 'Open',
43
+ topicType: 'Issue',
44
+ description: 'Walls on grid F1–F6 have no Pset_WallCommon.FireRating set.',
45
+ });
46
+
47
+ addTopicToProject(project, topic);
48
+
49
+ const blob = await writeBCF(project);
50
+ const url = URL.createObjectURL(blob);
51
+ // download the .bcf file
52
+ ```
53
+
54
+ ## Add a viewpoint with selection
55
+
56
+ ```typescript
57
+ import { createViewpoint, addViewpointToTopic } from '@ifc-lite/bcf';
58
+
59
+ const viewpoint = createViewpoint({
60
+ camera: {
61
+ position: { x: 50, y: 30, z: 12 },
62
+ target: { x: 0, y: 0, z: 0 },
63
+ up: { x: 0, y: 0, z: 1 },
64
+ fov: 60,
65
+ },
66
+ // Highlight specific entities by their IFC GlobalId
67
+ selection: ['1abc2def3GhI4jKlM5nOpQ', '2bcd3efg4HiJ5kLmN6oPqR'],
68
+ // Hide unrelated context
69
+ visibility: { defaultVisibility: false, exceptions: ['1abc2def3GhI4jKlM5nOpQ'] },
70
+ });
71
+
72
+ addViewpointToTopic(topic, viewpoint);
73
+ ```
74
+
75
+ ## GlobalId ↔ UUID conversion
76
+
77
+ BCF identifies elements by IFC GlobalId (22-char base64). The package ships utilities for round-tripping with binary UUIDs:
78
+
79
+ ```typescript
80
+ import { ifcGuidToUuid, uuidToIfcGuid } from '@ifc-lite/bcf';
81
+
82
+ const uuid = ifcGuidToUuid('1abc2def3GhI4jKlM5nOpQ');
83
+ // → 'bd6f5b13-4c9d-4...'
84
+
85
+ const back = uuidToIfcGuid(uuid);
86
+ // → '1abc2def3GhI4jKlM5nOpQ'
87
+ ```
35
88
 
36
89
  ## API
37
90
 
38
- See the [BCF Guide](../../docs/guide/bcf.md) and [API Reference](../../docs/api/typescript.md#ifc-litebcf).
91
+ See the [BCF Guide](https://ltplus-ag.github.io/ifc-lite/guide/bcf/) and [API Reference](https://ltplus-ag.github.io/ifc-lite/api/typescript/#ifc-litebcf).
39
92
 
40
93
  ## License
41
94
 
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Features:
8
8
  * - Markers anchored to 3D objects — track correctly during orbit/pan/zoom
9
- * - Color-coded by priority / status
9
+ * - Color-coded by topic status
10
10
  * - Click, hover callbacks
11
11
  * - Continuous re-projection every frame via onCameraChange
12
12
  * - Connector lines from marker to projected anchor point
@@ -61,7 +61,7 @@ export declare class BCFOverlayRenderer {
61
61
  private createMarkerElement;
62
62
  private updateMarkerContent;
63
63
  private updateMarkerInnerHTML;
64
- private getPriorityColor;
64
+ private getStatusColor;
65
65
  private escapeHtml;
66
66
  private static stylesInjected;
67
67
  private injectStyles;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-renderer.d.ts","sourceRoot":"","sources":["../src/overlay-renderer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA8BtE,MAAM,WAAW,yBAAyB;IACxC,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGxB,aAAa,EAAE,WAAW,EAC1B,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,yBAAyB;IAmCrC,2CAA2C;IAC3C,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IA8BxC,4CAA4C;IAC5C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY/C,yCAAyC;IACzC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC,8BAA8B;IAC9B,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,8BAA8B;IAC9B,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IAOvE;;;;OAIG;IACH,eAAe,IAAI,IAAI;IAuFvB,8CAA8C;IAC9C,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IAEtC,OAAO,CAAC,YAAY;CA6HrB"}
1
+ {"version":3,"file":"overlay-renderer.d.ts","sourceRoot":"","sources":["../src/overlay-renderer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA8BtE,MAAM,WAAW,yBAAyB;IACxC,mEAAmE;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,iBAAiB,CAA0C;IACnE,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAS;gBAGxB,aAAa,EAAE,WAAW,EAC1B,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,yBAAyB;IAmCrC,2CAA2C;IAC3C,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IA8BxC,4CAA4C;IAC5C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAY/C,yCAAyC;IACzC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKlC,8BAA8B;IAC9B,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAOhE,8BAA8B;IAC9B,aAAa,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,MAAM,IAAI;IAOvE;;;;OAIG;IACH,eAAe,IAAI,IAAI;IAuFvB,8CAA8C;IAC9C,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IAEtC,OAAO,CAAC,YAAY;CA6HrB"}
@@ -8,12 +8,12 @@ const MARKER_CLASS = 'bcf-overlay-marker';
8
8
  const CONNECTOR_CLASS = 'bcf-overlay-connector';
9
9
  const ACTIVE_CLASS = 'bcf-overlay-active';
10
10
  const TOOLTIP_CLASS = 'bcf-overlay-tooltip';
11
- const PRIORITY_COLORS = {
12
- high: '#f7768e',
13
- critical: '#f7768e',
14
- medium: '#ff9e64',
15
- normal: '#ff9e64',
16
- low: '#9ece6a',
11
+ /** Pin and connector colors keyed by BCF topic status */
12
+ const STATUS_COLORS = {
13
+ open: '#f7768e',
14
+ 'in progress': '#e0af68',
15
+ resolved: '#9ece6a',
16
+ closed: '#565f89',
17
17
  };
18
18
  const STATUS_ICONS = {
19
19
  open: '●',
@@ -190,7 +190,7 @@ export class BCFOverlayRenderer {
190
190
  continue;
191
191
  }
192
192
  conn.style.display = '';
193
- const color = this.getPriorityColor(marker.priority);
193
+ const color = this.getStatusColor(marker.status);
194
194
  conn.setAttribute('x1', String(markerX));
195
195
  conn.setAttribute('y1', String(markerY));
196
196
  conn.setAttribute('x2', String(anchorScreen.x));
@@ -261,8 +261,9 @@ export class BCFOverlayRenderer {
261
261
  }
262
262
  }
263
263
  updateMarkerInnerHTML(el, marker) {
264
- const color = this.getPriorityColor(marker.priority);
264
+ const color = this.getStatusColor(marker.status);
265
265
  const statusIcon = STATUS_ICONS[marker.status.toLowerCase()] ?? '●';
266
+ const priorityLabel = marker.priority ? ` · ${marker.priority}` : '';
266
267
  el.innerHTML = `
267
268
  <div class="bcf-marker-pin" style="--marker-color:${color};">
268
269
  <span class="bcf-marker-index">${marker.index}</span>
@@ -273,13 +274,13 @@ export class BCFOverlayRenderer {
273
274
  <span class="bcf-tooltip-title">${this.escapeHtml(marker.title)}</span>
274
275
  </div>
275
276
  <div class="bcf-tooltip-meta">
276
- ${this.escapeHtml(marker.status)}${marker.commentCount > 0 ? ` · ${marker.commentCount} comment${marker.commentCount !== 1 ? 's' : ''}` : ''}
277
+ ${this.escapeHtml(marker.status)}${priorityLabel}${marker.commentCount > 0 ? ` · ${marker.commentCount} comment${marker.commentCount !== 1 ? 's' : ''}` : ''}
277
278
  </div>
278
279
  </div>
279
280
  `;
280
281
  }
281
- getPriorityColor(priority) {
282
- return PRIORITY_COLORS[priority.toLowerCase()] ?? '#7aa2f7';
282
+ getStatusColor(status) {
283
+ return STATUS_COLORS[status.toLowerCase()] ?? '#7aa2f7';
283
284
  }
284
285
  escapeHtml(text) {
285
286
  const div = document.createElement('div');
@@ -331,7 +332,7 @@ export class BCFOverlayRenderer {
331
332
 
332
333
  .${ACTIVE_CLASS} .bcf-marker-pin {
333
334
  transform: rotate(-45deg) scale(1.25);
334
- box-shadow: 0 0 0 4px rgba(122,162,247,0.35), 0 4px 16px rgba(0,0,0,0.4);
335
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--marker-color, #7aa2f7) 35%, transparent), 0 4px 16px rgba(0,0,0,0.4);
335
336
  animation: bcf-pulse 1.8s ease-in-out infinite;
336
337
  }
337
338
 
@@ -409,8 +410,8 @@ export class BCFOverlayRenderer {
409
410
 
410
411
  /* Pulse animation for active marker */
411
412
  @keyframes bcf-pulse {
412
- 0%, 100% { box-shadow: 0 0 0 4px rgba(122,162,247,0.35), 0 4px 16px rgba(0,0,0,0.4); }
413
- 50% { box-shadow: 0 0 0 8px rgba(122,162,247,0.1), 0 4px 16px rgba(0,0,0,0.4); }
413
+ 0%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--marker-color, #7aa2f7) 35%, transparent), 0 4px 16px rgba(0,0,0,0.4); }
414
+ 50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--marker-color, #7aa2f7) 10%, transparent), 0 4px 16px rgba(0,0,0,0.4); }
414
415
  }
415
416
  `;
416
417
  document.head.appendChild(style);
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-renderer.js","sourceRoot":"","sources":["../src/overlay-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay-renderer.js","sourceRoot":"","sources":["../src/overlay-renderer.ts"],"names":[],"mappings":"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"}
package/dist/writer.js CHANGED
@@ -74,6 +74,19 @@ async function writeTopicFolder(zip, topic) {
74
74
  await writeViewpointFiles(folder, viewpoint, isDefault);
75
75
  }
76
76
  }
77
+ /**
78
+ * Derive the snapshot file extension from the viewpoint's data-URL prefix.
79
+ *
80
+ * `snapshotData` carries no MIME type, so it defaults to PNG. Only the
81
+ * `data:image/...` snapshot URL can be reliably format-detected.
82
+ */
83
+ function snapshotExt(viewpoint) {
84
+ const match = viewpoint.snapshot?.match(/^data:image\/(png|jpe?g)/i);
85
+ if (match) {
86
+ return match[1].toLowerCase().startsWith('jp') ? 'jpg' : 'png';
87
+ }
88
+ return 'png';
89
+ }
77
90
  /**
78
91
  * Write markup.bcf file
79
92
  * Uses buildingSMART standard format
@@ -81,7 +94,7 @@ async function writeTopicFolder(zip, topic) {
81
94
  function writeMarkupFile(folder, topic) {
82
95
  let content = `<?xml version="1.0" encoding="UTF-8"?>
83
96
  <Markup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
84
- <Topic Guid="${topic.guid}"${topic.topicType ? ` TopicType="${escapeXml(topic.topicType)}"` : ''}${topic.topicStatus ? ` TopicStatus="${escapeXml(topic.topicStatus)}"` : ''}>
97
+ <Topic Guid="${escapeXml(topic.guid)}"${topic.topicType ? ` TopicType="${escapeXml(topic.topicType)}"` : ''}${topic.topicStatus ? ` TopicStatus="${escapeXml(topic.topicStatus)}"` : ''}>
85
98
  <Title>${escapeXml(topic.title)}</Title>`;
86
99
  if (topic.description) {
87
100
  content += `\n <Description>${escapeXml(topic.description)}</Description>`;
@@ -92,16 +105,16 @@ function writeMarkupFile(folder, topic) {
92
105
  if (topic.index !== undefined) {
93
106
  content += `\n <Index>${topic.index}</Index>`;
94
107
  }
95
- content += `\n <CreationDate>${topic.creationDate}</CreationDate>`;
108
+ content += `\n <CreationDate>${escapeXml(topic.creationDate)}</CreationDate>`;
96
109
  content += `\n <CreationAuthor>${escapeXml(topic.creationAuthor)}</CreationAuthor>`;
97
110
  if (topic.modifiedDate) {
98
- content += `\n <ModifiedDate>${topic.modifiedDate}</ModifiedDate>`;
111
+ content += `\n <ModifiedDate>${escapeXml(topic.modifiedDate)}</ModifiedDate>`;
99
112
  // BCF spec requires ModifiedAuthor when ModifiedDate is present
100
113
  const modifiedAuthor = topic.modifiedAuthor || topic.creationAuthor;
101
114
  content += `\n <ModifiedAuthor>${escapeXml(modifiedAuthor)}</ModifiedAuthor>`;
102
115
  }
103
116
  if (topic.dueDate) {
104
- content += `\n <DueDate>${topic.dueDate}</DueDate>`;
117
+ content += `\n <DueDate>${escapeXml(topic.dueDate)}</DueDate>`;
105
118
  }
106
119
  if (topic.assignedTo) {
107
120
  content += `\n <AssignedTo>${escapeXml(topic.assignedTo)}</AssignedTo>`;
@@ -116,7 +129,7 @@ function writeMarkupFile(folder, topic) {
116
129
  }
117
130
  if (topic.relatedTopics && topic.relatedTopics.length > 0) {
118
131
  for (const relatedGuid of topic.relatedTopics) {
119
- content += `\n <RelatedTopic Guid="${relatedGuid}"/>`;
132
+ content += `\n <RelatedTopic Guid="${escapeXml(relatedGuid)}"/>`;
120
133
  }
121
134
  }
122
135
  content += `\n </Topic>`;
@@ -125,8 +138,8 @@ function writeMarkupFile(folder, topic) {
125
138
  const viewpoint = topic.viewpoints[i];
126
139
  // Use standard buildingSMART naming convention: Viewpoint_<guid>.bcfv
127
140
  const filename = `Viewpoint_${viewpoint.guid}.bcfv`;
128
- const snapshotName = `Snapshot_${viewpoint.guid}.png`;
129
- content += `\n <Viewpoints Guid="${viewpoint.guid}">`;
141
+ const snapshotName = `Snapshot_${viewpoint.guid}.${snapshotExt(viewpoint)}`;
142
+ content += `\n <Viewpoints Guid="${escapeXml(viewpoint.guid)}">`;
130
143
  content += `\n <Viewpoint>${filename}</Viewpoint>`;
131
144
  if (viewpoint.snapshot || viewpoint.snapshotData) {
132
145
  content += `\n <Snapshot>${snapshotName}</Snapshot>`;
@@ -135,15 +148,15 @@ function writeMarkupFile(folder, topic) {
135
148
  }
136
149
  // Write comments
137
150
  for (const comment of topic.comments) {
138
- content += `\n <Comment Guid="${comment.guid}">`;
139
- content += `\n <Date>${comment.date}</Date>`;
151
+ content += `\n <Comment Guid="${escapeXml(comment.guid)}">`;
152
+ content += `\n <Date>${escapeXml(comment.date)}</Date>`;
140
153
  content += `\n <Author>${escapeXml(comment.author)}</Author>`;
141
154
  content += `\n <Comment>${escapeXml(comment.comment)}</Comment>`;
142
155
  if (comment.viewpointGuid) {
143
- content += `\n <Viewpoint Guid="${comment.viewpointGuid}"/>`;
156
+ content += `\n <Viewpoint Guid="${escapeXml(comment.viewpointGuid)}"/>`;
144
157
  }
145
158
  if (comment.modifiedDate) {
146
- content += `\n <ModifiedDate>${comment.modifiedDate}</ModifiedDate>`;
159
+ content += `\n <ModifiedDate>${escapeXml(comment.modifiedDate)}</ModifiedDate>`;
147
160
  }
148
161
  if (comment.modifiedAuthor) {
149
162
  content += `\n <ModifiedAuthor>${escapeXml(comment.modifiedAuthor)}</ModifiedAuthor>`;
@@ -159,10 +172,10 @@ function writeMarkupFile(folder, topic) {
159
172
  async function writeViewpointFiles(folder, viewpoint, _isDefault) {
160
173
  // Use standard buildingSMART naming convention: Viewpoint_<guid>.bcfv
161
174
  const filename = `Viewpoint_${viewpoint.guid}.bcfv`;
162
- const snapshotName = `Snapshot_${viewpoint.guid}.png`;
175
+ const snapshotName = `Snapshot_${viewpoint.guid}.${snapshotExt(viewpoint)}`;
163
176
  // Write viewpoint XML - use buildingSMART standard format
164
177
  let content = `<?xml version="1.0" encoding="UTF-8"?>
165
- <VisualizationInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="${viewpoint.guid}">`;
178
+ <VisualizationInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="${escapeXml(viewpoint.guid)}">`;
166
179
  // Write components
167
180
  if (viewpoint.components) {
168
181
  content += writeComponents(viewpoint.components);
@@ -208,12 +221,20 @@ async function writeViewpointFiles(folder, viewpoint, _isDefault) {
208
221
  else if (viewpoint.snapshot && viewpoint.snapshot.startsWith('data:')) {
209
222
  // Convert data URL to binary
210
223
  const base64Data = viewpoint.snapshot.split(',')[1];
211
- const binaryString = atob(base64Data);
212
- const bytes = new Uint8Array(binaryString.length);
213
- for (let i = 0; i < binaryString.length; i++) {
214
- bytes[i] = binaryString.charCodeAt(i);
224
+ if (base64Data) {
225
+ try {
226
+ const binaryString = atob(base64Data);
227
+ const bytes = new Uint8Array(binaryString.length);
228
+ for (let i = 0; i < binaryString.length; i++) {
229
+ bytes[i] = binaryString.charCodeAt(i);
230
+ }
231
+ folder.file(snapshotName, bytes);
232
+ }
233
+ catch (e) {
234
+ // Skip a single malformed snapshot data URL rather than aborting the export
235
+ console.warn('[BCF] Skipping malformed snapshot data URL:', e);
236
+ }
215
237
  }
216
- folder.file(snapshotName, bytes);
217
238
  }
218
239
  }
219
240
  /**
@@ -298,7 +319,7 @@ function writeComponent(component, indent = ' ') {
298
319
  const hasChildren = component.originatingSystem || component.authoringToolId;
299
320
  let content = `\n${indent}<Component`;
300
321
  if (component.ifcGuid) {
301
- content += ` IfcGuid="${component.ifcGuid}"`;
322
+ content += ` IfcGuid="${escapeXml(component.ifcGuid)}"`;
302
323
  }
303
324
  if (hasChildren) {
304
325
  content += `>`;
@@ -319,7 +340,7 @@ function writeComponent(component, indent = ' ') {
319
340
  * Write coloring entry XML
320
341
  */
321
342
  function writeColoringEntry(coloring) {
322
- let content = `\n <Color Color="${coloring.color}">`;
343
+ let content = `\n <Color Color="${escapeXml(coloring.color)}">`;
323
344
  for (const component of coloring.components) {
324
345
  content += writeComponent(component, ' ');
325
346
  }
@@ -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":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAkB1B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAmB;IAChD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IAExB,qBAAqB;IACrB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,gCAAgC;IAChC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACtC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,eAAe;IACf,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,oBAAoB;IACpB,OAAO,GAAG,CAAC,aAAa,CAAC;QACvB,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,SAAS;QACtB,kBAAkB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;KACjC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAU,EAAE,OAAsB;IAC1D,MAAM,OAAO,GAAG;yHACuG,OAAO;qBAC3G,OAAO;WACjB,CAAC;IAEV,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAU,EAAE,OAAmB;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,EAAE,CAAC;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,MAAM,OAAO,GAAG;;wBAEM,SAAS,KAAK,WAAW;;oBAE7B,CAAC;IAEnB,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,GAAU,EAAE,KAAe;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,mBAAmB;IACnB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAE/B,mBAAmB;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,SAAuB;IAC1C,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACrE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAa,EAAE,KAAe;IACrD,IAAI,OAAO,GAAG;;iBAEC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;aAC5K,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;IAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,OAAO,IAAI,sBAAsB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAChF,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,mBAAmB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,gBAAgB,KAAK,CAAC,KAAK,UAAU,CAAC;IACnD,CAAC;IAED,OAAO,IAAI,uBAAuB,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;IACjF,OAAO,IAAI,yBAAyB,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;IAEvF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,IAAI,uBAAuB,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACjF,gEAAgE;QAChE,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC;QACpE,OAAO,IAAI,yBAAyB,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC;IACnF,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,kBAAkB,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,qBAAqB,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC;IAC7E,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,gBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;IAC9D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,IAAI,iBAAiB,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAC9C,OAAO,IAAI,6BAA6B,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,cAAc,CAAC;IAE1B,6BAA6B;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtC,sEAAsE;QACtE,MAAM,QAAQ,GAAG,aAAa,SAAS,CAAC,IAAI,OAAO,CAAC;QACpD,MAAM,YAAY,GAAG,YAAY,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAE5E,OAAO,IAAI,yBAAyB,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAClE,OAAO,IAAI,oBAAoB,QAAQ,cAAc,CAAC;QACtD,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YACjD,OAAO,IAAI,mBAAmB,YAAY,aAAa,CAAC;QAC1D,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC;IACjC,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,IAAI,sBAAsB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7D,OAAO,IAAI,eAAe,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3D,OAAO,IAAI,iBAAiB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;QACjE,OAAO,IAAI,kBAAkB,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACpE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,IAAI,0BAA0B,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC7E,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,IAAI,uBAAuB,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC;QACrF,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,OAAO,IAAI,yBAAyB,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAC3F,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,aAAa,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAa,EACb,SAAuB,EACvB,UAAmB;IAEnB,sEAAsE;IACtE,MAAM,QAAQ,GAAG,aAAa,SAAS,CAAC,IAAI,OAAO,CAAC;IACpD,MAAM,YAAY,GAAG,YAAY,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAE5E,0DAA0D;IAC1D,IAAI,OAAO,GAAG;8HAC8G,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAE1J,mBAAmB;IACnB,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,2BAA2B;IAC3B,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC/B,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;IACd,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,aAAa,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,IAAI,cAAc,CAAC;IAC5B,CAAC;IAED,wBAAwB;IACxB,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;IACrC,CAAC;IAED,gBAAgB;IAChB,IAAI,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,IAAI,eAAe,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,wBAAwB,CAAC;IAEpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/B,iBAAiB;IACjB,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxE,6BAA6B;QAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,4EAA4E;gBAC5E,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,UAAyB;IAChD,IAAI,OAAO,GAAG,kBAAkB,CAAC;IAEjC,qDAAqD;IACrD,IAAI,UAAU,CAAC,UAAU,EAAE,cAAc,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC;QACnD,OAAO,IAAI,uBAAuB,CAAC;QACnC,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,IAAI,mBAAmB,KAAK,CAAC,aAAa,GAAG,CAAC;QACvD,CAAC;QACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,IAAI,4BAA4B,KAAK,CAAC,sBAAsB,GAAG,CAAC;QACzE,CAAC;QACD,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,IAAI,qBAAqB,KAAK,CAAC,eAAe,GAAG,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,oDAAoD;IACpD,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,mBAAmB,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC7C,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,oBAAoB,CAAC;IAClC,CAAC;IAED,2CAA2C;IAC3C,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAElD,oBAAoB;IACpB,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,kBAAkB,CAAC;QAC9B,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,mBAAmB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,mBAAmB,CAAC;IAC/B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,UAAqC;IAC5D,yDAAyD;IACzD,MAAM,UAAU,GAAG,UAAU,EAAE,iBAAiB,IAAI,IAAI,CAAC;IAEzD,IAAI,OAAO,GAAG,wCAAwC,UAAU,IAAI,CAAC;IAErE,IAAI,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,uBAAuB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,qBAAqB,CAAC;IACjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,SAAuB,EAAE,MAAM,GAAG,QAAQ;IAChE,MAAM,WAAW,GAAG,SAAS,CAAC,iBAAiB,IAAI,SAAS,CAAC,eAAe,CAAC;IAE7E,IAAI,OAAO,GAAG,KAAK,MAAM,YAAY,CAAC;IAEtC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,aAAa,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;IAC1D,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,GAAG,CAAC;QACf,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,MAAM,wBAAwB,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;QAC7G,CAAC;QACD,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,IAAI,KAAK,MAAM,sBAAsB,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,oBAAoB,CAAC;QACvG,CAAC;QACD,OAAO,IAAI,KAAK,MAAM,cAAc,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAAqB;IAC/C,IAAI,OAAO,GAAG,yBAAyB,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACrE,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC5C,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,kBAAkB,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,MAA4B;IAC1D,OAAO;;WAEE,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;;mBAEf,MAAM,CAAC,WAAW;uBACd,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,MAA2B;IACxD,OAAO;;WAEE,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;WACxB,MAAM,CAAC,eAAe,CAAC,CAAC;;;WAGxB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;WACvB,MAAM,CAAC,cAAc,CAAC,CAAC;;wBAEV,MAAM,CAAC,gBAAgB;sBACzB,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAa;IAC9B,OAAO;;aAEI,IAAI,CAAC,UAAU,CAAC,CAAC;aACjB,IAAI,CAAC,UAAU,CAAC,CAAC;aACjB,IAAI,CAAC,UAAU,CAAC,CAAC;;;aAGjB,IAAI,CAAC,QAAQ,CAAC,CAAC;aACf,IAAI,CAAC,QAAQ,CAAC,CAAC;aACf,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAEhB,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAuB;IACjD,OAAO;;aAEI,KAAK,CAAC,QAAQ,CAAC,CAAC;aAChB,KAAK,CAAC,QAAQ,CAAC,CAAC;aAChB,KAAK,CAAC,QAAQ,CAAC,CAAC;;;aAGhB,KAAK,CAAC,SAAS,CAAC,CAAC;aACjB,KAAK,CAAC,SAAS,CAAC,CAAC;aACjB,KAAK,CAAC,SAAS,CAAC,CAAC;;qBAET,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,MAAiB;IACpC,OAAO;gBACO,MAAM,CAAC,MAAM;mBACV,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;;aAEjC,MAAM,CAAC,QAAQ,CAAC,CAAC;aACjB,MAAM,CAAC,QAAQ,CAAC,CAAC;aACjB,MAAM,CAAC,QAAQ,CAAC,CAAC;;;aAGjB,MAAM,CAAC,MAAM,CAAC,CAAC;aACf,MAAM,CAAC,MAAM,CAAC,CAAC;aACf,MAAM,CAAC,MAAM,CAAC,CAAC;;;aAGf,MAAM,CAAC,EAAE,CAAC,CAAC;aACX,MAAM,CAAC,EAAE,CAAC,CAAC;aACX,MAAM,CAAC,EAAE,CAAC,CAAC;;gBAER,MAAM,CAAC,MAAM;cACf,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/bcf",
3
- "version": "1.15.3",
3
+ "version": "1.15.5",
4
4
  "description": "BIM Collaboration Format (BCF) support for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,18 +16,18 @@
16
16
  "@ifc-lite/encoding": "^1.14.6"
17
17
  },
18
18
  "devDependencies": {
19
- "typescript": "^5.3.0",
20
- "vitest": "^1.6.0"
19
+ "typescript": "^6.0.3",
20
+ "vitest": "^4.1.0"
21
21
  },
22
22
  "license": "MPL-2.0",
23
23
  "author": "Louis True",
24
24
  "repository": {
25
25
  "type": "git",
26
- "url": "https://github.com/louistrue/ifc-lite.git",
26
+ "url": "https://github.com/LTplus-AG/ifc-lite.git",
27
27
  "directory": "packages/bcf"
28
28
  },
29
- "homepage": "https://louistrue.github.io/ifc-lite/",
30
- "bugs": "https://github.com/louistrue/ifc-lite/issues",
29
+ "homepage": "https://ltplus-ag.github.io/ifc-lite/",
30
+ "bugs": "https://github.com/LTplus-AG/ifc-lite/issues",
31
31
  "keywords": [
32
32
  "ifc",
33
33
  "bim",