@ifc-lite/bcf 4.1.0 → 5.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/README.md CHANGED
@@ -100,7 +100,7 @@ const back = uuidToIfcGuid(uuid);
100
100
  ## Also included
101
101
 
102
102
  - `createBCFFromIDSReport` - turn an IDS validation report into a BCF file, one topic per failing spec
103
- - `computeMarkerPositions` + `BCFOverlayRenderer` - viewer-agnostic 3D topic markers for any renderer
103
+ - `computeMarkerPositions` - viewer-agnostic 3D topic marker positions for any renderer to draw
104
104
  - Camera round-trip helpers (`cameraToPerspective`, `orthogonalToCamera`, ...) and section-plane conversion
105
105
 
106
106
  ## API
package/dist/index.d.ts CHANGED
@@ -16,8 +16,6 @@ export { cameraToPerspective, cameraToOrthogonal, perspectiveToCamera, orthogona
16
16
  export { translateViewpoint, viewpointFromWorld } from './viewpoint-frame.js';
17
17
  export type { OverlayPoint3D, OverlayBBox, BCFMarker3D, BCFOverlayProjection, EntityBoundsLookup, ComputeMarkersOptions, } from './overlay.js';
18
18
  export { computeMarkerPositions } from './overlay.js';
19
- export type { BCFOverlayRendererOptions } from './overlay-renderer.js';
20
- export { BCFOverlayRenderer } from './overlay-renderer.js';
21
19
  export type { IDSReportInput, IDSSpecResultInput, IDSEntityResultInput, IDSRequirementResultInput, IDSBCFExportOptions, EntityBoundsInput, } from './ids-reporter.js';
22
20
  export { createBCFFromIDSReport } from './ids-reporter.js';
23
21
  import type { BCFProject, BCFTopic, BCFComment, BCFViewpoint } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,7 +10,6 @@ export { writeBCF } from './writer.js';
10
10
  export { cameraToPerspective, cameraToOrthogonal, perspectiveToCamera, orthogonalToCamera, sectionPlaneToClippingPlane, clippingPlaneToSectionPlane, createViewpoint, extractViewpointState, } from './viewpoint.js';
11
11
  export { translateViewpoint, viewpointFromWorld } from './viewpoint-frame.js';
12
12
  export { computeMarkerPositions } from './overlay.js';
13
- export { BCFOverlayRenderer } from './overlay-renderer.js';
14
13
  export { createBCFFromIDSReport } from './ids-reporter.js';
15
14
  import { generateUuid } from '@ifc-lite/encoding';
16
15
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type JSZip from 'jszip';
2
+ import type { ReportWarning } from './reader-warning.js';
3
+ export declare function isMacOsxShadowPath(path: string): boolean;
4
+ /**
5
+ * Rewrite backslash-separated entry names to `/`, in place, before anything
6
+ * reads the archive (#5188). The ZIP spec mandates `/`, but Windows-originated
7
+ * writers have emitted `\`, and JSZip keeps such a name verbatim (it strips a
8
+ * leading `./`, not this). Every lookup in the reader (`zip.file()`, the
9
+ * archive-root and topic-folder matches, the viewpoint and snapshot scans)
10
+ * then misses the entry, and the archive reads as an empty project. Fixing the
11
+ * names once fixes every lookup, instead of teaching each call site about both
12
+ * separators. The writer stays strict: it only ever emits `/`.
13
+ */
14
+ export declare function normalizeEntrySeparators(zip: JSZip, warn: ReportWarning): JSZip;
15
+ /**
16
+ * Look up an archive entry, accepting a case variant when the exact name is
17
+ * absent. Topic markup is matched case-insensitively, so the archive metadata
18
+ * (`bcf.version`, `project.bcfp`) must be too: JSZip's `file(name)` is
19
+ * case-sensitive, and a root accepted by a case-insensitive match would
20
+ * otherwise be read back under a name that does not exist.
21
+ */
22
+ export declare function findArchiveEntry(zip: JSZip, path: string): JSZip.JSZipObject | null;
23
+ /** Resolve the common folder added when a project directory is zipped whole. */
24
+ export declare function resolveArchiveRoot(zip: JSZip): string;
25
+ /** Map each topic folder to the exact markup entry that matched it. */
26
+ export declare function discoverTopicMarkupPaths(zip: JSZip, root: string, warn: ReportWarning): Map<string, string>;
27
+ //# sourceMappingURL=reader-archive-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader-archive-root.d.ts","sourceRoot":"","sources":["../src/reader-archive-root.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,GAAG,KAAK,CAc/E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,GAAG,IAAI,CASnF;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAcrD;AAED,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB3G"}
@@ -0,0 +1,91 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export function isMacOsxShadowPath(path) {
5
+ return /(?:^|\/)__MACOSX(?:\/|$)/i.test(path);
6
+ }
7
+ /**
8
+ * Rewrite backslash-separated entry names to `/`, in place, before anything
9
+ * reads the archive (#5188). The ZIP spec mandates `/`, but Windows-originated
10
+ * writers have emitted `\`, and JSZip keeps such a name verbatim (it strips a
11
+ * leading `./`, not this). Every lookup in the reader (`zip.file()`, the
12
+ * archive-root and topic-folder matches, the viewpoint and snapshot scans)
13
+ * then misses the entry, and the archive reads as an empty project. Fixing the
14
+ * names once fixes every lookup, instead of teaching each call site about both
15
+ * separators. The writer stays strict: it only ever emits `/`.
16
+ */
17
+ export function normalizeEntrySeparators(zip, warn) {
18
+ for (const name of Object.keys(zip.files)) {
19
+ if (!name.includes('\\'))
20
+ continue;
21
+ const entry = zip.files[name];
22
+ const normalized = name.replace(/\\/g, '/');
23
+ delete zip.files[name];
24
+ if (zip.files[normalized]) {
25
+ warn(`Archive entry "${name}" duplicates "${normalized}" once its backslashes are read as folder separators; keeping "${normalized}"`);
26
+ continue;
27
+ }
28
+ entry.name = normalized;
29
+ zip.files[normalized] = entry;
30
+ }
31
+ return zip;
32
+ }
33
+ /**
34
+ * Look up an archive entry, accepting a case variant when the exact name is
35
+ * absent. Topic markup is matched case-insensitively, so the archive metadata
36
+ * (`bcf.version`, `project.bcfp`) must be too: JSZip's `file(name)` is
37
+ * case-sensitive, and a root accepted by a case-insensitive match would
38
+ * otherwise be read back under a name that does not exist.
39
+ */
40
+ export function findArchiveEntry(zip, path) {
41
+ const exact = zip.file(path);
42
+ if (exact)
43
+ return exact;
44
+ const wanted = path.toLowerCase();
45
+ let match = null;
46
+ zip.forEach((entryPath, entry) => {
47
+ if (!match && !entry.dir && entryPath.toLowerCase() === wanted)
48
+ match = entry;
49
+ });
50
+ return match;
51
+ }
52
+ /** Resolve the common folder added when a project directory is zipped whole. */
53
+ export function resolveArchiveRoot(zip) {
54
+ if (findArchiveEntry(zip, 'bcf.version'))
55
+ return '';
56
+ const candidates = [];
57
+ zip.forEach((path) => {
58
+ const match = path.match(/^(.+\/)bcf\.version$/i);
59
+ if (match && !isMacOsxShadowPath(match[1]))
60
+ candidates.push(match[1]);
61
+ });
62
+ if (candidates.length !== 1) {
63
+ throw new Error(candidates.length === 0
64
+ ? 'Invalid BCF file: missing bcf.version'
65
+ : 'Invalid BCF file: ambiguous bcf.version files');
66
+ }
67
+ return candidates[0];
68
+ }
69
+ /** Map each topic folder to the exact markup entry that matched it. */
70
+ export function discoverTopicMarkupPaths(zip, root, warn) {
71
+ const topicFolders = new Map();
72
+ zip.forEach((relativePath) => {
73
+ const match = relativePath.match(/^(.+)\/markup\.bcf$/i);
74
+ if (match && match[1].startsWith(root) && !isMacOsxShadowPath(match[1])) {
75
+ if (topicFolders.has(match[1])) {
76
+ warn(`Multiple markup.bcf entries in ${match[1]}: keeping the first one read`);
77
+ }
78
+ else {
79
+ topicFolders.set(match[1], relativePath);
80
+ }
81
+ }
82
+ else if (/(?:^|\/)markup\.bcf$/i.test(relativePath) && !isMacOsxShadowPath(relativePath)) {
83
+ // A markup.bcf no topic folder can claim (at the archive root, or beside
84
+ // bcf.version rather than in a topic folder under it). Its topic is not
85
+ // read, and that must be reported, not look like an empty project (#5188).
86
+ warn(`markup.bcf entry "${relativePath}" is not inside a topic folder under the archive root "${root || '/'}"; its topic was not read`);
87
+ }
88
+ });
89
+ return topicFolders;
90
+ }
91
+ //# sourceMappingURL=reader-archive-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader-archive-root.js","sourceRoot":"","sources":["../src/reader-archive-root.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type ReportWarning = (message: string, error?: unknown) => void;
2
+ export declare function createWarningReporter(onWarning?: (message: string, kind: 'skipped' | 'version') => void): ReportWarning;
3
+ export declare function reportVersionWarning(message: string, onWarning?: (message: string, kind: 'skipped' | 'version') => void): void;
4
+ //# sourceMappingURL=reader-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader-warning.d.ts","sourceRoot":"","sources":["../src/reader-warning.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,GAAG,aAAa,CAMvH;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,GAAG,IAAI,CAG9H"}
@@ -0,0 +1,17 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export function createWarningReporter(onWarning) {
5
+ return (message, error) => {
6
+ if (error === undefined)
7
+ console.warn(message);
8
+ else
9
+ console.warn(message, error);
10
+ onWarning?.(message, 'skipped');
11
+ };
12
+ }
13
+ export function reportVersionWarning(message, onWarning) {
14
+ console.warn(message);
15
+ onWarning?.(message, 'version');
16
+ }
17
+ //# sourceMappingURL=reader-warning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader-warning.js","sourceRoot":"","sources":["../src/reader-warning.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,MAAM,UAAU,qBAAqB,CAAC,SAAkE;IACtG,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACxB,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;YAC1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,SAAkE;IACtH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAClC,CAAC"}
package/dist/reader.d.ts CHANGED
@@ -3,12 +3,13 @@ import type { BCFProject } from './types.js';
3
3
  * Parse a BCF file (.bcfzip) into a BCFProject
4
4
  *
5
5
  * @param file - BCF file as File, Blob, or ArrayBuffer
6
- * @param limits - Optional overrides of the anti-zip-bomb resource caps
6
+ * @param limits - Optional resource caps and callback for skipped archive items
7
7
  * @returns Parsed BCF project
8
8
  */
9
9
  export declare function readBCF(file: File | Blob | ArrayBuffer | Uint8Array, limits?: {
10
10
  maxArchiveBytes?: number;
11
11
  maxEntries?: number;
12
12
  maxExpandedBytes?: number;
13
+ onWarning?: (message: string, kind: 'skipped' | 'version') => void;
13
14
  }): Promise<BCFProject>;
14
15
  //# sourceMappingURL=reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AAyIpB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GACpF,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AA2IpB;;;;;;GAMG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,EAC5C,MAAM,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAA;CAAE,GACxJ,OAAO,CAAC,UAAU,CAAC,CA8CrB"}
package/dist/reader.js CHANGED
@@ -9,6 +9,8 @@
9
9
  import JSZip from 'jszip';
10
10
  import { extractElement, unescapeXml, parseLabels, parseXsBoolean } from './xml-text.js';
11
11
  import { parseViewpointContent } from './reader-viewpoint-content.js';
12
+ import { discoverTopicMarkupPaths, findArchiveEntry, normalizeEntrySeparators, resolveArchiveRoot } from './reader-archive-root.js';
13
+ import { createWarningReporter, reportVersionWarning } from './reader-warning.js';
12
14
  /**
13
15
  * Resource caps guarding against a malicious (zip-bomb) .bcfzip: a tiny
14
16
  * compressed archive that expands to gigabytes, or one with a pathological
@@ -107,7 +109,7 @@ function assertArchiveWithinLimits(zip, maxEntries, maxExpandedBytes) {
107
109
  * Parse a BCF file (.bcfzip) into a BCFProject
108
110
  *
109
111
  * @param file - BCF file as File, Blob, or ArrayBuffer
110
- * @param limits - Optional overrides of the anti-zip-bomb resource caps
112
+ * @param limits - Optional resource caps and callback for skipped archive items
111
113
  * @returns Parsed BCF project
112
114
  */
113
115
  export async function readBCF(file, limits) {
@@ -129,15 +131,17 @@ export async function readBCF(file, limits) {
129
131
  if (rawRecords > maxEntries) {
130
132
  throw new BCFResourceLimitError(`BCF archive rejected: ${rawRecords} raw records exceeds cap ${maxEntries}`);
131
133
  }
132
- const zip = await JSZip.loadAsync(bytes);
134
+ const warn = createWarningReporter(limits?.onWarning);
135
+ const zip = normalizeEntrySeparators(await JSZip.loadAsync(bytes), warn);
133
136
  assertArchiveWithinLimits(zip, maxEntries, maxExpandedBytes);
134
137
  const budget = { used: 0, limit: maxExpandedBytes };
138
+ const root = resolveArchiveRoot(zip);
135
139
  // Read version file
136
- const version = await readVersionFile(zip, budget);
140
+ const version = await readVersionFile(zip, budget, root, limits?.onWarning);
137
141
  // Read project file (optional)
138
- const { projectId, name, extensions } = await readProjectFile(zip, budget);
142
+ const { projectId, name, extensions } = await readProjectFile(zip, budget, root);
139
143
  // Read topics
140
- const topics = await readTopics(zip, budget, version.versionId);
144
+ const topics = await readTopics(zip, budget, version.versionId, root, warn);
141
145
  return {
142
146
  version: version.versionId,
143
147
  projectId,
@@ -149,8 +153,8 @@ export async function readBCF(file, limits) {
149
153
  /**
150
154
  * Read bcf.version file
151
155
  */
152
- async function readVersionFile(zip, budget) {
153
- const versionFile = zip.file('bcf.version');
156
+ async function readVersionFile(zip, budget, root, onWarning) {
157
+ const versionFile = findArchiveEntry(zip, `${root}bcf.version`);
154
158
  if (!versionFile) {
155
159
  throw new Error('Invalid BCF file: missing bcf.version');
156
160
  }
@@ -161,7 +165,7 @@ async function readVersionFile(zip, budget) {
161
165
  }
162
166
  const versionId = versionMatch[1];
163
167
  if (versionId !== '2.1' && versionId !== '3.0') {
164
- console.warn(`Unsupported BCF version: ${versionId}, treating as 2.1`);
168
+ reportVersionWarning(`Unsupported BCF version: ${versionId}, treating as 2.1`, onWarning);
165
169
  }
166
170
  return {
167
171
  versionId: versionId === '3.0' ? '3.0' : '2.1',
@@ -171,8 +175,8 @@ async function readVersionFile(zip, budget) {
171
175
  /**
172
176
  * Read project.bcfp file (optional)
173
177
  */
174
- async function readProjectFile(zip, budget) {
175
- const projectFile = zip.file('project.bcfp');
178
+ async function readProjectFile(zip, budget, root) {
179
+ const projectFile = findArchiveEntry(zip, `${root}project.bcfp`);
176
180
  if (!projectFile) {
177
181
  return {};
178
182
  }
@@ -191,30 +195,25 @@ async function readProjectFile(zip, budget) {
191
195
  /**
192
196
  * Read all topics from the BCF archive
193
197
  */
194
- async function readTopics(zip, budget, versionId) {
198
+ async function readTopics(zip, budget, versionId, root, warn) {
195
199
  const topics = new Map();
196
- // Find all topic folders (folders with markup.bcf)
197
- const topicFolders = new Set();
198
- zip.forEach((relativePath) => {
199
- const match = relativePath.match(/^([^/]+)\/markup\.bcf$/i);
200
- if (match) {
201
- topicFolders.add(match[1]);
202
- }
203
- });
200
+ // Match at any depth so zipped project folders are read. Deduplicate on
201
+ // parsed Guid below when two folders refer to the same topic (#3960).
202
+ const topicFolders = discoverTopicMarkupPaths(zip, root, warn);
204
203
  // Parse each topic
205
- for (const topicGuid of topicFolders) {
204
+ for (const [topicGuid, markupPath] of topicFolders) {
206
205
  try {
207
- const topic = await readTopic(zip, topicGuid, budget, versionId);
206
+ const topic = await readTopic(zip, topicGuid, markupPath, budget, versionId, warn);
208
207
  if (topic) {
209
208
  // A second topic folder whose internal Topic/@Guid collides with one
210
209
  // already parsed must not silently overwrite it in the map -- that
211
210
  // would drop a whole topic with no signal the caller could ever act
212
- // on (#3960). Keep the first occurrence (folder set iteration order
211
+ // on (#3960). Keep the first occurrence (folder map iteration order
213
212
  // is insertion order, so this is deterministic) and warn, the same
214
213
  // way every other "skip this piece, keep going" decision in this
215
214
  // function is already reported.
216
215
  if (topics.has(topic.guid)) {
217
- console.warn(`Duplicate topic Guid ${topic.guid}: folder "${topicGuid}" collides with an ` +
216
+ warn(`Duplicate topic Guid ${topic.guid}: folder "${topicGuid}" collides with an ` +
218
217
  `already-read topic folder and is being dropped. Keeping the first one read.`);
219
218
  continue;
220
219
  }
@@ -224,7 +223,7 @@ async function readTopics(zip, budget, versionId) {
224
223
  catch (error) {
225
224
  if (error instanceof BCFResourceLimitError)
226
225
  throw error;
227
- console.warn(`Failed to parse topic ${topicGuid}:`, error);
226
+ warn(`Failed to parse topic ${topicGuid}:`, error);
228
227
  }
229
228
  }
230
229
  return topics;
@@ -232,8 +231,8 @@ async function readTopics(zip, budget, versionId) {
232
231
  /**
233
232
  * Read a single topic from the BCF archive
234
233
  */
235
- async function readTopic(zip, topicFolder, budget, versionId) {
236
- const markupFile = zip.file(`${topicFolder}/markup.bcf`);
234
+ async function readTopic(zip, topicFolder, markupPath, budget, versionId, warn) {
235
+ const markupFile = zip.file(markupPath);
237
236
  if (!markupFile) {
238
237
  return null;
239
238
  }
@@ -243,13 +242,13 @@ async function readTopic(zip, topicFolder, budget, versionId) {
243
242
  // that orders attributes differently from our own writer still parses.
244
243
  const topicMatch = markupContent.match(/<Topic\b([^>]*)>([\s\S]*?)<\/Topic>/);
245
244
  if (!topicMatch) {
246
- console.warn(`Invalid markup.bcf in ${topicFolder}: missing Topic element`);
245
+ warn(`Invalid markup.bcf in ${topicFolder}: missing Topic element`);
247
246
  return null;
248
247
  }
249
248
  const topicAttrs = topicMatch[1];
250
249
  const guid = extractAttr(topicAttrs, 'Guid');
251
250
  if (!guid) {
252
- console.warn(`Invalid markup.bcf in ${topicFolder}: Topic element missing Guid`);
251
+ warn(`Invalid markup.bcf in ${topicFolder}: could not read Topic Guid attribute`);
253
252
  return null;
254
253
  }
255
254
  const topicContent = topicMatch[2];
@@ -289,7 +288,7 @@ async function readTopic(zip, topicFolder, budget, versionId) {
289
288
  // Parse comments
290
289
  const comments = parseComments(markupContent);
291
290
  // Parse viewpoints
292
- const viewpoints = await parseViewpoints(zip, topicFolder, markupContent, budget, versionId);
291
+ const viewpoints = await parseViewpoints(zip, topicFolder, markupContent, budget, versionId, warn);
293
292
  return {
294
293
  guid,
295
294
  title,
@@ -494,7 +493,7 @@ function parseComments(markupContent) {
494
493
  /**
495
494
  * Parse viewpoints from the BCF archive
496
495
  */
497
- async function parseViewpoints(zip, topicFolder, markupContent, budget, versionId) {
496
+ async function parseViewpoints(zip, topicFolder, markupContent, budget, versionId, warn) {
498
497
  const viewpoints = [];
499
498
  // Parse viewpoint references from markup.bcf to get snapshot filenames.
500
499
  // The markup element is plural -- <Viewpoints Guid="xxx"><Viewpoint>file.bcfv</Viewpoint>
@@ -559,10 +558,11 @@ async function parseViewpoints(zip, topicFolder, markupContent, budget, versionI
559
558
  viewpointInfoMap.set(guid, {});
560
559
  }
561
560
  }
562
- // Find viewpoint files directly in the folder
561
+ // Find viewpoint files; extension matched case-insensitively like the
562
+ // topic-folder regex's `/i` above -- `viewpoint.BCFV` was silently lost.
563
563
  const viewpointFiles = [];
564
564
  zip.forEach((relativePath) => {
565
- if (relativePath.startsWith(`${topicFolder}/`) && relativePath.endsWith('.bcfv')) {
565
+ if (relativePath.startsWith(`${topicFolder}/`) && relativePath.toLowerCase().endsWith('.bcfv')) {
566
566
  viewpointFiles.push(relativePath);
567
567
  }
568
568
  });
@@ -590,7 +590,7 @@ async function parseViewpoints(zip, topicFolder, markupContent, budget, versionI
590
590
  }
591
591
  // Fallback: try common naming patterns
592
592
  if (!snapshotFile) {
593
- const viewpointBaseName = viewpointPath.replace('.bcfv', '');
593
+ const viewpointBaseName = viewpointPath.replace(/\.bcfv$/i, '');
594
594
  // Handle different naming conventions:
595
595
  // 1. Viewpoint_<guid>.bcfv -> Snapshot_<guid>.png (buildingSMART standard)
596
596
  // 2. <guid>_viewpoint.bcfv -> <guid>_snapshot.png (alternative pattern)
@@ -633,7 +633,7 @@ async function parseViewpoints(zip, topicFolder, markupContent, budget, versionI
633
633
  catch (error) {
634
634
  if (error instanceof BCFResourceLimitError)
635
635
  throw error;
636
- console.warn(`Failed to parse viewpoint ${viewpointPath}:`, error);
636
+ warn(`Failed to parse viewpoint ${viewpointPath}:`, error);
637
637
  }
638
638
  }
639
639
  // If no viewpoint files found, check for default snapshot
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class BcfArchive {
2
+ private readonly entries;
3
+ /** Add (or replace) a file entry. Strings are encoded as UTF-8. */
4
+ file(path: string, content: string | Uint8Array): void;
5
+ /**
6
+ * Pack every entry with DEFLATE (level 6) into a .bcfzip Blob.
7
+ *
8
+ * zipSync, not fflate's async `zip`: the async form starts one worker per
9
+ * entry over 160 kB with no cap (a clash export can have hundreds of
10
+ * snapshots), and in the browser it waits forever if a strict CSP blocks
11
+ * its blob: worker. The sync pass costs about what JSZip did (about 0.5 s
12
+ * for 50 MB of incompressible snapshots) but does not yield while it runs.
13
+ */
14
+ toBlob(): Blob;
15
+ }
16
+ //# sourceMappingURL=writer-archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer-archive.d.ts","sourceRoot":"","sources":["../src/writer-archive.ts"],"names":[],"mappings":"AAqBA,qBAAa,UAAU;IAIrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEzD,mEAAmE;IACnE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAItD;;;;;;;;OAQG;IACH,MAAM,IAAI,IAAI;CAGf"}
@@ -0,0 +1,41 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * The .bcfzip container the writer fills (#3612).
6
+ *
7
+ * The archive is built with fflate rather than JSZip. JSZip's ZipFileWorker
8
+ * hardcodes "version needed to extract" to 1.0 (0x000A) in every local and
9
+ * central directory header, whatever the compression method, and has no
10
+ * option to change it. Every entry here is DEFLATE (method 8), which the ZIP
11
+ * APPNOTE (6.3.3, section 4.4.3) says needs 2.0, so JSZip's archives were out
12
+ * of spec. fflate writes 2.0 (0x0014) in both headers.
13
+ *
14
+ * Only flat paths such as `<guid>/markup.bcf` are added, so fflate writes file
15
+ * entries only and never a `<guid>/` directory entry (the BCF spec describes
16
+ * only files).
17
+ */
18
+ import { strToU8, zipSync } from 'fflate';
19
+ export class BcfArchive {
20
+ // A Map keeps insertion order. fflate takes a plain object, and every key
21
+ // here contains '.' or '/', so none is an integer-like key that an object
22
+ // would reorder.
23
+ entries = new Map();
24
+ /** Add (or replace) a file entry. Strings are encoded as UTF-8. */
25
+ file(path, content) {
26
+ this.entries.set(path, typeof content === 'string' ? strToU8(content) : content);
27
+ }
28
+ /**
29
+ * Pack every entry with DEFLATE (level 6) into a .bcfzip Blob.
30
+ *
31
+ * zipSync, not fflate's async `zip`: the async form starts one worker per
32
+ * entry over 160 kB with no cap (a clash export can have hundreds of
33
+ * snapshots), and in the browser it waits forever if a strict CSP blocks
34
+ * its blob: worker. The sync pass costs about what JSZip did (about 0.5 s
35
+ * for 50 MB of incompressible snapshots) but does not yield while it runs.
36
+ */
37
+ toBlob() {
38
+ return new Blob([zipSync(Object.fromEntries(this.entries), { level: 6 })], { type: 'application/zip' });
39
+ }
40
+ }
41
+ //# sourceMappingURL=writer-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer-archive.js","sourceRoot":"","sources":["../src/writer-archive.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,OAAO,UAAU;IACrB,0EAA0E;IAC1E,0EAA0E;IAC1E,iBAAiB;IACA,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAEzD,mEAAmE;IACnE,IAAI,CAAC,IAAY,EAAE,OAA4B;QAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,OAAO,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1G,CAAC;CACF"}
package/dist/writer.d.ts CHANGED
@@ -1,3 +1,8 @@
1
+ /**
2
+ * BCF file writer
3
+ *
4
+ * Creates .bcfzip files from BCFProject structure
5
+ */
1
6
  import type { BCFProject } from './types.js';
2
7
  /**
3
8
  * Write a BCFProject to a .bcfzip file
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AAyBpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBjE"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EASX,MAAM,YAAY,CAAC;AA0BpB;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjE"}