@ifc-lite/export 2.9.4 → 3.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.
Files changed (72) hide show
  1. package/dist/csv-cell.d.ts +101 -0
  2. package/dist/csv-cell.d.ts.map +1 -0
  3. package/dist/csv-cell.js +90 -0
  4. package/dist/csv-cell.js.map +1 -0
  5. package/dist/demesh-session.d.ts.map +1 -1
  6. package/dist/demesh-session.js +2 -1
  7. package/dist/demesh-session.js.map +1 -1
  8. package/dist/effective-index.js +1 -1
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +9 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/lod1-generator.d.ts +0 -2
  14. package/dist/lod1-generator.d.ts.map +1 -1
  15. package/dist/lod1-generator.js +1 -1
  16. package/dist/lod1-generator.js.map +1 -1
  17. package/dist/merged-exporter.d.ts.map +1 -1
  18. package/dist/merged-exporter.js +23 -41
  19. package/dist/merged-exporter.js.map +1 -1
  20. package/dist/reference-collector.js +1 -1
  21. package/dist/step-attribute-mutations.d.ts +91 -0
  22. package/dist/step-attribute-mutations.d.ts.map +1 -0
  23. package/dist/step-attribute-mutations.js +302 -0
  24. package/dist/step-attribute-mutations.js.map +1 -0
  25. package/dist/step-collection.d.ts +55 -0
  26. package/dist/step-collection.d.ts.map +1 -0
  27. package/dist/step-collection.js +125 -0
  28. package/dist/step-collection.js.map +1 -0
  29. package/dist/step-export-contexts.d.ts +63 -0
  30. package/dist/step-export-contexts.d.ts.map +1 -0
  31. package/dist/step-export-contexts.js +51 -0
  32. package/dist/step-export-contexts.js.map +1 -0
  33. package/dist/step-export-types.d.ts +262 -0
  34. package/dist/step-export-types.d.ts.map +1 -0
  35. package/dist/step-export-types.js +22 -0
  36. package/dist/step-export-types.js.map +1 -0
  37. package/dist/step-exporter.d.ts +20 -351
  38. package/dist/step-exporter.d.ts.map +1 -1
  39. package/dist/step-exporter.js +73 -1257
  40. package/dist/step-exporter.js.map +1 -1
  41. package/dist/step-geometry-types.d.ts +19 -0
  42. package/dist/step-geometry-types.d.ts.map +1 -0
  43. package/dist/step-geometry-types.js +57 -0
  44. package/dist/step-geometry-types.js.map +1 -0
  45. package/dist/step-header.d.ts +43 -0
  46. package/dist/step-header.d.ts.map +1 -0
  47. package/dist/step-header.js +70 -0
  48. package/dist/step-header.js.map +1 -0
  49. package/dist/step-omission-predicates.d.ts +51 -0
  50. package/dist/step-omission-predicates.d.ts.map +1 -0
  51. package/dist/step-omission-predicates.js +268 -0
  52. package/dist/step-omission-predicates.js.map +1 -0
  53. package/dist/step-overlay-entities.d.ts +64 -0
  54. package/dist/step-overlay-entities.d.ts.map +1 -0
  55. package/dist/step-overlay-entities.js +119 -0
  56. package/dist/step-overlay-entities.js.map +1 -0
  57. package/dist/step-pass-builder.d.ts +44 -0
  58. package/dist/step-pass-builder.d.ts.map +1 -0
  59. package/dist/step-pass-builder.js +249 -0
  60. package/dist/step-pass-builder.js.map +1 -0
  61. package/dist/step-property-sets.d.ts +7 -5
  62. package/dist/step-property-sets.d.ts.map +1 -1
  63. package/dist/step-property-sets.js.map +1 -1
  64. package/dist/step-serialization.d.ts +16 -1
  65. package/dist/step-serialization.d.ts.map +1 -1
  66. package/dist/step-serialization.js +50 -3
  67. package/dist/step-serialization.js.map +1 -1
  68. package/dist/step-source-iteration.d.ts +95 -0
  69. package/dist/step-source-iteration.d.ts.map +1 -0
  70. package/dist/step-source-iteration.js +178 -0
  71. package/dist/step-source-iteration.js.map +1 -0
  72. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The entity types a STEP export treats as geometry.
3
+ *
4
+ * Split out of `StepExporter` for #2475. It was a private method only by
5
+ * habit: it reads nothing off the instance, so every consumer already
6
+ * received it as an injected callback rather than calling it through an
7
+ * exporter. Moving it changes no call site -- the three inside
8
+ * `step-exporter.ts` stop wrapping it in an arrow, and that is all.
9
+ *
10
+ * The set is the definition, not a cache of one. `includegeometry-header-count.test.ts`
11
+ * and `retype-geometry-boundary.test.ts` pin what belongs in it, and
12
+ * `reference-collector.ts` documents the one place a type in this set is
13
+ * still reachable when geometry is excluded.
14
+ */
15
+ /**
16
+ * Check if an entity type is a geometry-related type
17
+ */
18
+ export declare function isGeometryEntity(type: string): boolean;
19
+ //# sourceMappingURL=step-geometry-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-geometry-types.d.ts","sourceRoot":"","sources":["../src/step-geometry-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmCtD"}
@@ -0,0 +1,57 @@
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 entity types a STEP export treats as geometry.
6
+ *
7
+ * Split out of `StepExporter` for #2475. It was a private method only by
8
+ * habit: it reads nothing off the instance, so every consumer already
9
+ * received it as an injected callback rather than calling it through an
10
+ * exporter. Moving it changes no call site -- the three inside
11
+ * `step-exporter.ts` stop wrapping it in an arrow, and that is all.
12
+ *
13
+ * The set is the definition, not a cache of one. `includegeometry-header-count.test.ts`
14
+ * and `retype-geometry-boundary.test.ts` pin what belongs in it, and
15
+ * `reference-collector.ts` documents the one place a type in this set is
16
+ * still reachable when geometry is excluded.
17
+ */
18
+ /**
19
+ * Check if an entity type is a geometry-related type
20
+ */
21
+ export function isGeometryEntity(type) {
22
+ const geometryTypes = new Set([
23
+ 'IFCCARTESIANPOINT',
24
+ 'IFCDIRECTION',
25
+ 'IFCAXIS2PLACEMENT2D',
26
+ 'IFCAXIS2PLACEMENT3D',
27
+ 'IFCLOCALPLACEMENT',
28
+ 'IFCSHAPEREPRESENTATION',
29
+ 'IFCPRODUCTDEFINITIONSHAPE',
30
+ 'IFCGEOMETRICREPRESENTATIONCONTEXT',
31
+ 'IFCGEOMETRICREPRESENTATIONSUBCONTEXT',
32
+ 'IFCEXTRUDEDAREASOLID',
33
+ 'IFCFACETEDBREP',
34
+ 'IFCPOLYLOOP',
35
+ 'IFCFACE',
36
+ 'IFCFACEOUTERBOUND',
37
+ 'IFCCLOSEDSHELL',
38
+ 'IFCRECTANGLEPROFILEDEF',
39
+ 'IFCCIRCLEPROFILEDEF',
40
+ 'IFCARBITRARYCLOSEDPROFILEDEF',
41
+ 'IFCPOLYLINE',
42
+ 'IFCTRIMMEDCURVE',
43
+ 'IFCBSPLINECURVE',
44
+ 'IFCBSPLINESURFACE',
45
+ 'IFCTRIANGULATEDFACESET',
46
+ 'IFCPOLYGONALFACE',
47
+ 'IFCINDEXEDPOLYGONALFACE',
48
+ 'IFCPOLYGONALFACESET',
49
+ 'IFCSTYLEDITEM',
50
+ 'IFCPRESENTATIONSTYLEASSIGNMENT',
51
+ 'IFCSURFACESTYLE',
52
+ 'IFCSURFACESTYLERENDERING',
53
+ 'IFCCOLOURRGB',
54
+ ]);
55
+ return geometryTypes.has(type);
56
+ }
57
+ //# sourceMappingURL=step-geometry-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-geometry-types.js","sourceRoot":"","sources":["../src/step-geometry-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;QAC5B,mBAAmB;QACnB,cAAc;QACd,qBAAqB;QACrB,qBAAqB;QACrB,mBAAmB;QACnB,wBAAwB;QACxB,2BAA2B;QAC3B,mCAAmC;QACnC,sCAAsC;QACtC,sBAAsB;QACtB,gBAAgB;QAChB,aAAa;QACb,SAAS;QACT,mBAAmB;QACnB,gBAAgB;QAChB,wBAAwB;QACxB,qBAAqB;QACrB,8BAA8B;QAC9B,aAAa;QACb,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,wBAAwB;QACxB,kBAAkB;QAClB,yBAAyB;QACzB,qBAAqB;QACrB,eAAe;QACf,gCAAgC;QAChC,iBAAiB;QACjB,0BAA0B;QAC1B,cAAc;KACf,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The header/assembly tail of `StepExporter.export()` (#2475, the last seam
3
+ * this issue names): building the FILE_DESCRIPTION/HEADER text and turning
4
+ * the finished `ExportPass.entities` into the returned `StepExportResult`.
5
+ *
6
+ * Both functions here are pure — neither reads `this.dataStore`,
7
+ * `this.mutationView`, nor any of `ExportPass`'s three adversarial-review
8
+ * predicates (`isOmittedFromOutput`, `mayNameOmittedRefs`,
9
+ * `hasAnyUnreadableSourceRef`). Those stay in `step-exporter.ts`: their last
10
+ * reader is `writeOverlayCreatedEntities`, several statements before this
11
+ * tail begins, and nothing here reads them back. That is the same test
12
+ * `step-collection.ts` applied when it left them in place (#2475 collection
13
+ * step) — moving them here would relocate a dependency, not remove one.
14
+ *
15
+ * `buildStepHeader` is `pass.buildHeader`'s body, unchanged: `export()`
16
+ * still builds the closure (it needs to close over the per-call `options`
17
+ * and the two call sites still read `pass.buildHeader`), but the closure
18
+ * now just forwards here instead of carrying the logic itself.
19
+ *
20
+ * `assembleExportResult` is the true final phase from the original
21
+ * decomposition table (settle the ledger, build the header, assemble): it is
22
+ * NOT used by the earlier `deltaOnly`-empty-export early return, which
23
+ * hand-builds its own (shorter) `StepExportResult` because it skips
24
+ * `assembleStepBytes` entirely — see the comment at that call site in
25
+ * `step-exporter.ts`.
26
+ */
27
+ import type { IfcSourceHeader } from '@ifc-lite/parser';
28
+ import type { ExportPass, StepExportOptions, StepExportResult } from './step-exporter.js';
29
+ /**
30
+ * Build the STEP HEADER section text. `modifications` is read last, at each
31
+ * call site, once the real count is known — see the two callers in
32
+ * `step-exporter.ts` (the `deltaOnly`-empty early return, and
33
+ * {@link assembleExportResult} below) — so the provenance item it appends
34
+ * reflects what this export actually wrote, not a guess made at setup time.
35
+ */
36
+ export declare function buildStepHeader(options: StepExportOptions, sourceHeader: IfcSourceHeader | undefined, schemaToken: string, modifications: number): string;
37
+ /**
38
+ * Settle the delta ledger, build the header against the settled count, and
39
+ * assemble the finished bytes. The header is built last so its provenance
40
+ * item reflects the real count — see {@link buildStepHeader}.
41
+ */
42
+ export declare function assembleExportResult(pass: ExportPass): StepExportResult;
43
+ //# sourceMappingURL=step-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-header.d.ts","sourceRoot":"","sources":["../src/step-header.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1F;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,eAAe,GAAG,SAAS,EACzC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,MAAM,CA+BR;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAwBvE"}
@@ -0,0 +1,70 @@
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
+ import { generateHeader } from '@ifc-lite/parser';
5
+ import { assembleStepBytes } from './step-file-assembly.js';
6
+ /**
7
+ * Build the STEP HEADER section text. `modifications` is read last, at each
8
+ * call site, once the real count is known — see the two callers in
9
+ * `step-exporter.ts` (the `deltaOnly`-empty early return, and
10
+ * {@link assembleExportResult} below) — so the provenance item it appends
11
+ * reflects what this export actually wrote, not a guess made at setup time.
12
+ */
13
+ export function buildStepHeader(options, sourceHeader, schemaToken, modifications) {
14
+ // FILE_DESCRIPTION items: an explicit option wins, else the source items
15
+ // verbatim, else the generic default.
16
+ const description = options.description !== undefined
17
+ ? [options.description]
18
+ : sourceHeader && sourceHeader.description.length > 0
19
+ ? [...sourceHeader.description]
20
+ : ['Exported from ifc-lite'];
21
+ // Honest provenance: never claim untouched source output. Append (never
22
+ // overwrite) one item when ifc-lite actually changed the file.
23
+ if (modifications > 0) {
24
+ description.push(`Re-exported by ifc-lite, ${modifications} modification${modifications === 1 ? '' : 's'}`);
25
+ }
26
+ return generateHeader({
27
+ schema: schemaToken,
28
+ description,
29
+ implementationLevel: sourceHeader?.implementationLevel,
30
+ author: options.author ?? sourceHeader?.author,
31
+ organization: options.organization ?? sourceHeader?.organization,
32
+ // preprocessor_version = the tool that WROTE this file (ifc-lite);
33
+ // originating_system keeps the source authoring tool so it isn't erased.
34
+ preprocessorVersion: options.application ?? 'ifc-lite',
35
+ originatingSystem: sourceHeader?.originatingSystem,
36
+ authorization: sourceHeader?.authorization,
37
+ application: options.application ?? 'ifc-lite',
38
+ filename: options.filename ?? 'export.ifc',
39
+ timeStamp: options.timeStamp,
40
+ });
41
+ }
42
+ /**
43
+ * Settle the delta ledger, build the header against the settled count, and
44
+ * assemble the finished bytes. The header is built last so its provenance
45
+ * item reflects the real count — see {@link buildStepHeader}.
46
+ */
47
+ export function assembleExportResult(pass) {
48
+ // Settle the count against what the passes above actually wrote, and say
49
+ // out loud every KIND of edit a delta could not carry, per host. Silence
50
+ // was the other half of #2462: `deltaOnly` skips the source-iteration pass,
51
+ // so an in-place edit to a source entity is not in the file and never was —
52
+ // the header merely used to claim otherwise.
53
+ const { modifiedEntityCount, warnings: deltaWarnings } = pass.modifications.settle();
54
+ pass.warnings.push(...deltaWarnings);
55
+ // Assemble final file as Uint8Array chunks to avoid V8 string length limit.
56
+ // The header is built last so its provenance item reflects the real count.
57
+ const header = pass.buildHeader(pass.newEntityCount + modifiedEntityCount);
58
+ const content = assembleStepBytes(header, pass.entities);
59
+ return {
60
+ content,
61
+ stats: {
62
+ entityCount: pass.entities.length,
63
+ newEntityCount: pass.newEntityCount,
64
+ modifiedEntityCount,
65
+ fileSize: content.byteLength,
66
+ warnings: pass.warnings,
67
+ },
68
+ };
69
+ }
70
+ //# sourceMappingURL=step-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-header.js","sourceRoot":"","sources":["../src/step-header.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA8B/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,YAAyC,EACzC,WAAmB,EACnB,aAAqB;IAErB,yEAAyE;IACzE,sCAAsC;IACtC,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,SAAS;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;QACvB,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YACnD,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC;YAC/B,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;IACnC,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CACd,4BAA4B,aAAa,gBAAgB,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;QACpB,MAAM,EAAE,WAAW;QACnB,WAAW;QACX,mBAAmB,EAAE,YAAY,EAAE,mBAAmB;QACtD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,MAAM;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY,EAAE,YAAY;QAChE,mEAAmE;QACnE,yEAAyE;QACzE,mBAAmB,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;QACtD,iBAAiB,EAAE,YAAY,EAAE,iBAAiB;QAClD,aAAa,EAAE,YAAY,EAAE,aAAa;QAC1C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,UAAU;QAC9C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,YAAY;QAC1C,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAgB;IACnD,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,6CAA6C;IAC7C,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACrF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAErC,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzD,OAAO;QACL,OAAO;QACP,KAAK,EAAE;YACL,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,mBAAmB;YACnB,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Which ids a STEP export may still NAME, once it has decided which ids it is
3
+ * writing.
4
+ *
5
+ * Split out of `step-exporter.ts` for #2475, verbatim apart from the two
6
+ * changes noted below. It runs immediately after `collectModifications` and
7
+ * before the output passes, and that position is not incidental: everything
8
+ * here reads what the collection phase produced -- `pass.modifiedEntities`,
9
+ * `pass.newGeorefLines`, `pass.allowedEntityIds`, `pass.overlayActive` -- and
10
+ * everything the output passes do with omitted references reads what this
11
+ * returns. Calling it earlier gives answers computed from an unpopulated pass.
12
+ *
13
+ * Why not in `step-collection.ts`: that module produces the values these
14
+ * predicates consume and never reads them back, so putting them there would
15
+ * relocate a dependency rather than remove one. That argument was always about
16
+ * `step-collection.ts` specifically, not about these predicates being welded
17
+ * to `export()`.
18
+ *
19
+ * TWO CHANGES FROM THE ORIGINAL, both forced by it becoming a function:
20
+ *
21
+ * 1. The deltaOnly empty short-circuit used to `return` out of `export()`.
22
+ * A free function cannot, so it returns a tagged `'short-circuit'` result
23
+ * the caller returns instead. That rewrite is safe by measurement, not by
24
+ * argument: disabling the branch entirely leaves the suite green and the
25
+ * emitted bytes and stats identical, because for a model with no edits the
26
+ * ordinary path arrives at the same place. See
27
+ * `delta-empty-shortcircuit.test.ts`, which pins the contract and says
28
+ * outright that it does not pin the branch.
29
+ * 2. `this.mutationView` arrives as a parameter.
30
+ */
31
+ import type { MutablePropertyView } from '@ifc-lite/mutations';
32
+ import type { ExportPass, StepExportOptions, StepExportResult } from './step-export-types.js';
33
+ /**
34
+ * Either the export is already over, or here are the two things the output
35
+ * passes need from it.
36
+ *
37
+ * A tagged union rather than an optional field, so a caller cannot read
38
+ * `isOmittedFromOutput` off a short-circuited result and get `undefined`
39
+ * without the compiler saying so.
40
+ */
41
+ export type OmissionEvaluation = {
42
+ readonly kind: 'short-circuit';
43
+ readonly result: StepExportResult;
44
+ } | {
45
+ readonly kind: 'continue';
46
+ readonly isOmittedFromOutput: (id: number) => boolean;
47
+ /** A boolean, not a predicate: the precondition both filter sites gate on. */
48
+ readonly mayNameOmittedRefs: boolean;
49
+ };
50
+ export declare function evaluateOmissionPredicates(pass: ExportPass, options: StepExportOptions, applyMutations: boolean, excludeGeometry: boolean, mutationView: MutablePropertyView | null): OmissionEvaluation;
51
+ //# sourceMappingURL=step-omission-predicates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-omission-predicates.d.ts","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GACrE;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,8EAA8E;IAC9E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;CACtC,CAAC;AAEN,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,OAAO,EACxB,YAAY,EAAE,mBAAmB,GAAG,IAAI,GACvC,kBAAkB,CA+QpB"}
@@ -0,0 +1,268 @@
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 evaluateOmissionPredicates(pass, options, applyMutations, excludeGeometry, mutationView) {
5
+ /**
6
+ * "Does this model hold a record whose bytes this export cannot read?" —
7
+ * the one disjunct of {@link mayNameOmittedRefs} that is not already a
8
+ * value in hand, so it is a function and called last, behind `||`.
9
+ *
10
+ * Scans the EFFECTIVE index, and that is a requirement rather than an
11
+ * implementation detail: it has to cover the id space
12
+ * `isOmittedFromOutput` answers over, and an unreadable record can live in
13
+ * `deferredEntityIndex` — the secondary index `getCompleteEntityIndex`
14
+ * exists to merge — and nowhere in `entityIndex.byId`. Scanning `byId`,
15
+ * the obvious cheaper source, was measured to leave the gate false and
16
+ * ship the dangling ref; `relationship-filter-gate.test.ts` pins the
17
+ * merged scan behaviourally so that shortcut cannot come back as an
18
+ * optimisation.
19
+ *
20
+ * Reads the ref ITERATION yields — what the source-iteration pass's own
21
+ * skip reads — rather than re-asking `effective.get(id)` per id as
22
+ * `willBeEmitted` does, which on the largest files would cost a binary
23
+ * search and an allocation per entity and defeat the point of the gate.
24
+ * Every index here keeps the two in step by construction:
25
+ * `CompactEntityIndex` serves `get`, `has` and iteration from one pair of
26
+ * `Uint32Array`s, a `Map` trivially agrees, the merged deferred view is
27
+ * `byId.get ?? deferred.get` over `yield* byId; yield* deferred`, and
28
+ * `OverlayIndex` filters both by one tombstone set. An index whose `has`
29
+ * accepted an id its iteration never yields would defeat this — and would
30
+ * equally defeat the source-iteration pass's skip, so that file is broken
31
+ * either way; nothing in the repo builds one.
32
+ *
33
+ * Not short-circuited on `overlayActive`: an overlay-created record carries
34
+ * `(OVERLAY_BYTE_OFFSET, 0)` and so counts as unreadable here, which would
35
+ * make this always answer true once an overlay exists. Harmless —
36
+ * `overlayActive` is an earlier disjunct, so this never runs then — and
37
+ * correct if it ever did.
38
+ *
39
+ * ## Why a standalone pass rather than a value off the index
40
+ *
41
+ * Measured: 12.0 ms of a 470 ms export at 714,485 entities (2.55%), one
42
+ * call, whole index walked because a well-formed model gives it nothing to
43
+ * short-circuit on. The cheaper shape was prototyped and is 13x faster —
44
+ * `min(byteLength)` and `max(byteOffset + byteLength)` over
45
+ * `CompactEntityIndex`'s own `Uint32Array`s answer "is every ref readable
46
+ * within `extent`" exactly and allocation-free in 0.74 ms — and was not
47
+ * taken, because 11 ms does not buy what it costs.
48
+ *
49
+ * It could only stand in FRONT of this loop, never replace it:
50
+ * `EntityByIdIndex` is a structural type and plain `Map`s satisfy it
51
+ * (`synthetic-data-store.ts` builds one), so the walk stays for those. That
52
+ * makes it a second implementation of one predicate across a package
53
+ * boundary — the defect class #2637, #2668 and this gate are all instances
54
+ * of. And storing it at construction is the invariant
55
+ * `source-ref-bounds.ts` exists to delete: `CompactEntityIndex` is built by
56
+ * its builder, by `compactEntityIndexFromColumns` in the transport, and by
57
+ * embedders, so a value one producer writes is a value the next can skip,
58
+ * whereas testing the ref where it is READ cannot be bypassed. If 2.5% ever
59
+ * has to go, the safe shape is a memoized derivation the index computes
60
+ * from its own arrays on demand — not a field set at build time.
61
+ */
62
+ const hasAnyUnreadableSourceRef = () => {
63
+ for (const [, ref] of pass.effective) {
64
+ if (!pass.isReadableSourceRef(ref))
65
+ return true;
66
+ }
67
+ return false;
68
+ };
69
+ // If delta only, only export modified entities. Overlay-created entities
70
+ // also count — without this, `createEntity()`-only edits would silently
71
+ // drop out of delta exports.
72
+ const overlayNewEntityCount = (mutationView
73
+ && applyMutations
74
+ && typeof mutationView.getNewEntities === 'function') ? mutationView.getNewEntities().length : 0;
75
+ // Georef-only deltas (newGeorefLines populated but no entity changes) must
76
+ // still produce a non-empty DATA section.
77
+ if (
78
+ // `=== true`, matching `step-pass-builder.ts`'s two reads of the same
79
+ // option. A plain-JS caller passing `deltaOnly: 1` would otherwise have
80
+ // this module call the export a delta while the predicates there call it
81
+ // a full export -- the same divergence this file argues against for
82
+ // `visibleOnly` a few paragraphs down.
83
+ options.deltaOnly === true
84
+ && pass.modifiedEntities.size === 0
85
+ && overlayNewEntityCount === 0
86
+ && pass.newGeorefLines.length === 0) {
87
+ const emptyContent = new TextEncoder().encode(pass.buildHeader(0) + 'DATA;\nENDSEC;\nEND-ISO-10303-21;\n');
88
+ return {
89
+ kind: 'short-circuit',
90
+ result: {
91
+ content: emptyContent,
92
+ stats: {
93
+ entityCount: 0,
94
+ newEntityCount: 0,
95
+ modifiedEntityCount: 0,
96
+ fileSize: emptyContent.byteLength,
97
+ warnings: pass.warnings,
98
+ },
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * "May a line this export writes name `#id`?" — the single predicate both
104
+ * relationship-line filter sites consume, derived from `willBeEmitted`
105
+ * rather than from a second list kept in step with it by hand.
106
+ *
107
+ * DERIVED, not identical, and the gaps are named below rather than glossed:
108
+ * a scope qualifier for ids the file never had, and `deltaOnly`, where
109
+ * `willBeEmitted` answers `true` for a source record whose line this export
110
+ * does not write at all (the source-iteration pass is skipped wholesale in
111
+ * that mode). Nor does this make the CLOSURE WALK agree with either: the
112
+ * walk keeps `isRefExcludedDuringClosureWalk` and diverges from this
113
+ * predicate for an unreadable source ref — see the note on that predicate,
114
+ * and the "walk and output predicates diverge" test.
115
+ *
116
+ * The hand-kept second list is the bug this replaces. `willBeEmitted` recognises
117
+ * seven reasons a line never lands — outside the closure, hidden product,
118
+ * tombstoned, never existed, unreadable source ref (#2491), geometry
119
+ * excluded by options, and the `deltaOnly` carve-out — while the filter
120
+ * used to consume `(hiddenProductIds !== null && hiddenProductIds.has(id))
121
+ * || effective.isDeleted(id)`, which answered for two: hidden product, and
122
+ * tombstoned. Notably NOT "never existed" — that one is deliberately out of
123
+ * scope for the filter even now, for the reason under the qualifier heading
124
+ * below. The gap was live: on a PLAIN full export, with no `visibleOnly`,
125
+ * no deletions and no overlay, an unreadable ref made the source-iteration
126
+ * pass skip an entity's line while an `IFCREL*` naming it shipped verbatim,
127
+ * dangling.
128
+ *
129
+ * Deriving the filter from `willBeEmitted` is also what fixed the
130
+ * `mayNameExcludedRefs` gate that stands in front of both call sites. That
131
+ * gate used to be a SECOND, shorter enumeration of the same reasons
132
+ * (hidden products exist, or an overlay is active) and answered `false` for
133
+ * exactly the unreadable-ref export above, so the filter never ran at all.
134
+ * It is now {@link mayNameOmittedRefs} — see there for why a gate is kept
135
+ * at all (running the filter on every `IFCREL*` line costs +13% of a
136
+ * 714k-entity export) and for the enumeration it has to cover.
137
+ *
138
+ * ## The one qualifier on top of `willBeEmitted`
139
+ *
140
+ * `willBeEmitted` answers NO for an id neither the file nor the session
141
+ * ever had, which is right for its own job — nothing GENERATED may name an
142
+ * id that does not exist. It is the wrong answer for rewriting a SOURCE
143
+ * line, and the difference is whose bug it is. A `#999` already sitting in
144
+ * a relationship's `OwnerHistory` slot in the input file is a dangling ref
145
+ * this export did not create and cannot repair; `filterHiddenRefsFromRelationshipLine`
146
+ * withholds a whole relationship when an excluded id is in a bare scalar,
147
+ * so treating it as an exclusion would DELETE a visible element's pset over
148
+ * somebody else's corrupt file. That is the harm #2637 was about, and
149
+ * `step-exporter.test.ts` states the position out loud: a pre-existing
150
+ * dangling ref is out of scope and ships as it arrived.
151
+ *
152
+ * So the filter asks the narrower question: is `#id` an entity this model
153
+ * HAS, that this export is nonetheless not writing? `effective.has` is
154
+ * false for a tombstone, hence the explicit `isDeleted` arm — deleting an
155
+ * entity IS this session's doing and must be filtered.
156
+ *
157
+ * This is a scope qualifier, not a second enumeration of omission reasons:
158
+ * an eighth reason added to `willBeEmitted` still reaches the filter with
159
+ * no edit here.
160
+ *
161
+ * ## What the filter can and cannot reach
162
+ *
163
+ * Only `IFCREL*` lines. A `#N` named from a product's `Representation` or
164
+ * `ObjectPlacement` slot is not touched, so `includeGeometry:false` — a
165
+ * reason `willBeEmitted` does answer for — produces the same dangling refs
166
+ * with this predicate as without it. Measured on `tests/models/AB22.ifc`:
167
+ * 80 dangling refs before and after, output byte-identical but for the
168
+ * header timestamp.
169
+ *
170
+ * ## Withholding is not free
171
+ *
172
+ * When the omitted id sits in a single-valued slot, or is a set's only
173
+ * member, `filterHiddenRefsFromRelationshipLine` withholds the WHOLE
174
+ * relationship — so an entity that relationship also named loses the
175
+ * association, on a plain full export with no options set. That is why the
176
+ * call sites push {@link relationshipWithheldWarning}.
177
+ *
178
+ * See `unreadable-ref-dangling.test.ts` for the reproduction. #2637 is the
179
+ * prior instance of this class, which took seven rounds because the same
180
+ * decision was recomputed per call site.
181
+ */
182
+ const isOmittedFromOutput = (id) => (pass.effective.has(id) || pass.effective.isDeleted(id)) && !pass.willBeEmitted(id);
183
+ /**
184
+ * "Can ANY id be omitted from this export at all?" — the precondition both
185
+ * `IFCREL*` filter sites are gated on, so the common export pays nothing.
186
+ *
187
+ * ## Why a gate exists
188
+ *
189
+ * Running `filterHiddenRefsFromRelationshipLine` on every `IFCREL*` line
190
+ * costs a re-parse of that line's attribute list, and a large model is
191
+ * mostly relationships. Measured on `tests/models/ara3d/schependomlaan.ifc`
192
+ * (714,485 entities, 21 interleaved reps in randomised order): 463 ms
193
+ * median with this gate false versus 523 ms filtering unconditionally,
194
+ * **+13%**. That is a real price paid on every export to protect a state
195
+ * most exports are not in. With the gate, the same export is 475 ms, +2.7%,
196
+ * all of it the fourth disjunct's one pass.
197
+ *
198
+ * ## Why THIS gate, and not the one that shipped before
199
+ *
200
+ * The gate this replaces was a second, hand-kept enumeration of "reasons an
201
+ * entity might be excluded", and it went stale exactly as such lists do: it
202
+ * named hidden products and the overlay and knew nothing about an unreadable
203
+ * source ref, so the bug this branch fixes reached the output with the
204
+ * filter switched off. A cheap gate is safe only as an OVER-APPROXIMATION of
205
+ * `isOmittedFromOutput` that can be checked against `willBeEmitted` branch
206
+ * by branch — so every branch is listed, with the disjunct that covers it:
207
+ *
208
+ * | `willBeEmitted` answers NO at | covered by |
209
+ * |----------------------------------------------|-------------------------------|
210
+ * | `allowedEntityIds !== null && !has(id)` | `allowedEntityIds !== null` |
211
+ * | `!ref`, because the overlay tombstoned `id` | `overlayActive` |
212
+ * | overlay-created, geometry excluded | `overlayActive` |
213
+ * | `!isReadableSourceRef(ref)` | `hasAnyUnreadableSourceRef()` |
214
+ * | source-backed, geometry excluded | `excludeGeometry` |
215
+ * | `!ref`, because `id` never existed | out of scope (below) |
216
+ * | `!ref` while `has(id)` is TRUE | nothing (below) |
217
+ *
218
+ * "Never existed" needs no disjunct: `isOmittedFromOutput`'s own
219
+ * `(has || isDeleted)` qualifier already drops it, deliberately — a
220
+ * pre-existing dangling ref in somebody else's file is not this export's to
221
+ * repair (see that predicate's note).
222
+ *
223
+ * The last row is a real hole and is stated rather than hidden: an index
224
+ * that answers `has(id)` for an id its iteration never yields makes
225
+ * `isOmittedFromOutput` true with no disjunct true. It needs an index whose
226
+ * `has`, `get` and iteration disagree, which nothing in the repo builds and
227
+ * which would already break the source-iteration pass's own skip — see
228
+ * {@link hasAnyUnreadableSourceRef}, which rests on the same agreement.
229
+ *
230
+ * Three of the four disjuncts are reads of values this export already
231
+ * computed. Only the fourth costs anything, and it short-circuits: `||`
232
+ * evaluates it solely when the other three are false, i.e. only for an
233
+ * export that has nothing else to filter for.
234
+ *
235
+ * ## The two spellings that are deliberately NOT the obvious ones
236
+ *
237
+ * `allowedEntityIds !== null`, not `options.visibleOnly === true`. Not the
238
+ * same test: the closure is built under `if (options.visibleOnly &&
239
+ * ctx.dataStore.source)` in `step-collection.ts` — quoted rather than cited
240
+ * by line, because the line moved by three in the very commit that added
241
+ * this reference — which is TRUTHY rather than `=== true`, and which
242
+ * is a SECOND read of the caller's object. A plain-JS caller of this
243
+ * published package passing `visibleOnly: 1` — or a `get visibleOnly()` that
244
+ * answers `true` once — built the closure while the gate read false and
245
+ * shipped a relationship naming an entity outside it. Executed, not
246
+ * reasoned: 192 of an 800-case sweep over `visibleOnly`/`hidden`/`isolated`
247
+ * combinations shipped a dangling ref against the `=== true` spelling, 0
248
+ * against this one. Reading the state the walk PRODUCED cannot disagree with
249
+ * the walk, whatever `options` says afterwards.
250
+ *
251
+ * It is also wider than the `hiddenProductIds.size > 0` the old gate used: a
252
+ * closure exists whenever `visibleOnly` was requested, even with nothing
253
+ * hidden, and can exclude an entity the roots simply never reach. No fixture
254
+ * has produced that case, so the widening is defensive — but a gate that is
255
+ * true too often costs speed on a rare path, while one that is false too
256
+ * rarely ships a corrupt file, and this one costs nothing.
257
+ *
258
+ * `overlayActive` and `excludeGeometry` are the SAME consts the effective
259
+ * index and `isGeometryExcluded` are built from — one read of `options` per
260
+ * question, shared — so those two cannot disagree with the predicate either.
261
+ */
262
+ const mayNameOmittedRefs = pass.allowedEntityIds !== null
263
+ || pass.overlayActive
264
+ || excludeGeometry
265
+ || hasAnyUnreadableSourceRef();
266
+ return { kind: 'continue', isOmittedFromOutput, mayNameOmittedRefs };
267
+ }
268
+ //# sourceMappingURL=step-omission-predicates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-omission-predicates.js","sourceRoot":"","sources":["../src/step-omission-predicates.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqD/D,MAAM,UAAU,0BAA0B,CACxC,IAAgB,EAChB,OAA0B,EAC1B,cAAuB,EACvB,eAAwB,EACxB,YAAwC;IAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwDG;IACH,MAAM,yBAAyB,GAAG,GAAY,EAAE;QAC9C,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,yEAAyE;IACzE,wEAAwE;IACxE,6BAA6B;IAC7B,MAAM,qBAAqB,GAAG,CAC5B,YAAY;WACT,cAAc;WACd,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,CACrD,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,2EAA2E;IAC3E,0CAA0C;IAC1C;IACE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,oEAAoE;IACpE,uCAAuC;IACvC,OAAO,CAAC,SAAS,KAAK,IAAI;WACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;WAChC,qBAAqB,KAAK,CAAC;WAC3B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EACnC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,qCAAqC,CAAC,CAAC;QAC3G,OAAO;YACL,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE;gBACN,OAAO,EAAE,YAAY;gBACrB,KAAK,EAAE;oBACL,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,CAAC;oBACjB,mBAAmB,EAAE,CAAC;oBACtB,QAAQ,EAAE,YAAY,CAAC,UAAU;oBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+EG;IACH,MAAM,mBAAmB,GAAG,CAAC,EAAU,EAAW,EAAE,CAClD,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8EG;IACH,MAAM,kBAAkB,GACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI;WAC3B,IAAI,CAAC,aAAa;WAClB,eAAe;WACf,yBAAyB,EAAE,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;AACvE,CAAC"}