@ifc-lite/export 4.4.0 → 4.7.2
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 +5 -5
- package/dist/appearance-dependencies.d.ts.map +1 -1
- package/dist/appearance-dependencies.js +1 -0
- package/dist/appearance-dependencies.js.map +1 -1
- package/dist/attribute-real-slots.d.ts.map +1 -1
- package/dist/attribute-real-slots.js +7 -1
- package/dist/attribute-real-slots.js.map +1 -1
- package/dist/attribute-slot-types.d.ts +8 -2
- package/dist/attribute-slot-types.d.ts.map +1 -1
- package/dist/attribute-slot-types.js +12 -8
- package/dist/attribute-slot-types.js.map +1 -1
- package/dist/demesh-prune.d.ts.map +1 -1
- package/dist/demesh-prune.js +1 -0
- package/dist/demesh-prune.js.map +1 -1
- package/dist/demesh-writer.d.ts.map +1 -1
- package/dist/demesh-writer.js +1 -0
- package/dist/demesh-writer.js.map +1 -1
- package/dist/effective-appearance-record.d.ts.map +1 -1
- package/dist/effective-appearance-record.js +10 -17
- package/dist/effective-appearance-record.js.map +1 -1
- package/dist/effective-index.d.ts.map +1 -1
- package/dist/effective-index.js +2 -0
- package/dist/effective-index.js.map +1 -1
- package/dist/effective-source-record.d.ts +25 -0
- package/dist/effective-source-record.d.ts.map +1 -1
- package/dist/effective-source-record.js +45 -0
- package/dist/effective-source-record.js.map +1 -1
- package/dist/entity-iteration.d.ts.map +1 -1
- package/dist/entity-iteration.js +1 -0
- package/dist/entity-iteration.js.map +1 -1
- package/dist/entity-type-sets.js +2 -2
- package/dist/entity-type-sets.js.map +1 -1
- package/dist/generated/ifc4-required-slots.d.ts +17 -0
- package/dist/generated/ifc4-required-slots.d.ts.map +1 -0
- package/dist/generated/ifc4-required-slots.js +619 -0
- package/dist/generated/ifc4-required-slots.js.map +1 -0
- package/dist/georef-closure.d.ts.map +1 -1
- package/dist/georef-closure.js +5 -0
- package/dist/georef-closure.js.map +1 -1
- package/dist/ifc5-effective-rows.d.ts +16 -0
- package/dist/ifc5-effective-rows.d.ts.map +1 -0
- package/dist/ifc5-effective-rows.js +90 -0
- package/dist/ifc5-effective-rows.js.map +1 -0
- package/dist/ifc5-export-helpers.d.ts +19 -0
- package/dist/ifc5-export-helpers.d.ts.map +1 -1
- package/dist/ifc5-export-helpers.js +16 -0
- package/dist/ifc5-export-helpers.js.map +1 -1
- package/dist/ifc5-exporter.d.ts +9 -11
- package/dist/ifc5-exporter.d.ts.map +1 -1
- package/dist/ifc5-exporter.js +38 -95
- package/dist/ifc5-exporter.js.map +1 -1
- package/dist/ifc5-pset-properties.d.ts +61 -0
- package/dist/ifc5-pset-properties.d.ts.map +1 -0
- package/dist/ifc5-pset-properties.js +100 -0
- package/dist/ifc5-pset-properties.js.map +1 -0
- package/dist/ifc5-tree-scope.js +3 -0
- package/dist/ifc5-tree-scope.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lod0-generator.d.ts.map +1 -1
- package/dist/lod0-generator.js +2 -0
- package/dist/lod0-generator.js.map +1 -1
- package/dist/merged-context.d.ts.map +1 -1
- package/dist/merged-context.js +3 -0
- package/dist/merged-context.js.map +1 -1
- package/dist/merged-exporter.d.ts +3 -17
- package/dist/merged-exporter.d.ts.map +1 -1
- package/dist/merged-exporter.js +50 -46
- package/dist/merged-exporter.js.map +1 -1
- package/dist/merged-header.d.ts +11 -0
- package/dist/merged-header.d.ts.map +1 -0
- package/dist/merged-header.js +23 -0
- package/dist/merged-header.js.map +1 -0
- package/dist/nonrel-positional-ref-narrowing.d.ts +3 -0
- package/dist/nonrel-positional-ref-narrowing.d.ts.map +1 -0
- package/dist/nonrel-positional-ref-narrowing.js +194 -0
- package/dist/nonrel-positional-ref-narrowing.js.map +1 -0
- package/dist/nonrel-ref-list-types.d.ts +13 -0
- package/dist/nonrel-ref-list-types.d.ts.map +1 -0
- package/dist/nonrel-ref-list-types.js +162 -0
- package/dist/nonrel-ref-list-types.js.map +1 -0
- package/dist/parquet-created-entity-rows.d.ts +20 -0
- package/dist/parquet-created-entity-rows.d.ts.map +1 -0
- package/dist/parquet-created-entity-rows.js +40 -0
- package/dist/parquet-created-entity-rows.js.map +1 -0
- package/dist/parquet-exporter-ondemand.d.ts +3 -2
- package/dist/parquet-exporter-ondemand.d.ts.map +1 -1
- package/dist/parquet-exporter-ondemand.js +15 -6
- package/dist/parquet-exporter-ondemand.js.map +1 -1
- package/dist/parquet-exporter.d.ts +5 -12
- package/dist/parquet-exporter.d.ts.map +1 -1
- package/dist/parquet-exporter.js +35 -62
- package/dist/parquet-exporter.js.map +1 -1
- package/dist/parquet-relationship-rows.d.ts +11 -0
- package/dist/parquet-relationship-rows.d.ts.map +1 -0
- package/dist/parquet-relationship-rows.js +57 -0
- package/dist/parquet-relationship-rows.js.map +1 -0
- package/dist/reference-collector.d.ts +17 -1
- package/dist/reference-collector.d.ts.map +1 -1
- package/dist/reference-collector.js +30 -1
- package/dist/reference-collector.js.map +1 -1
- package/dist/registry-entity-names.d.ts +3 -0
- package/dist/registry-entity-names.d.ts.map +1 -0
- package/dist/registry-entity-names.js +38 -0
- package/dist/registry-entity-names.js.map +1 -0
- package/dist/relationship-slot-bounds.d.ts +14 -0
- package/dist/relationship-slot-bounds.d.ts.map +1 -0
- package/dist/relationship-slot-bounds.js +64 -0
- package/dist/relationship-slot-bounds.js.map +1 -0
- package/dist/retype.d.ts.map +1 -1
- package/dist/retype.js +5 -2
- package/dist/retype.js.map +1 -1
- package/dist/schema-conversion-loss-report.d.ts +97 -0
- package/dist/schema-conversion-loss-report.d.ts.map +1 -0
- package/dist/schema-conversion-loss-report.js +116 -0
- package/dist/schema-conversion-loss-report.js.map +1 -0
- package/dist/schema-converter-attr-remap.d.ts +8 -0
- package/dist/schema-converter-attr-remap.d.ts.map +1 -1
- package/dist/schema-converter-attr-remap.js +14 -1
- package/dist/schema-converter-attr-remap.js.map +1 -1
- package/dist/schema-converter-enums.d.ts +27 -0
- package/dist/schema-converter-enums.d.ts.map +1 -0
- package/dist/schema-converter-enums.js +117 -0
- package/dist/schema-converter-enums.js.map +1 -0
- package/dist/schema-converter-ifc4-slots.d.ts +36 -0
- package/dist/schema-converter-ifc4-slots.d.ts.map +1 -0
- package/dist/schema-converter-ifc4-slots.js +70 -0
- package/dist/schema-converter-ifc4-slots.js.map +1 -0
- package/dist/schema-converter.d.ts +41 -19
- package/dist/schema-converter.d.ts.map +1 -1
- package/dist/schema-converter.js +73 -42
- package/dist/schema-converter.js.map +1 -1
- package/dist/schema-enum-policy.d.ts +48 -0
- package/dist/schema-enum-policy.d.ts.map +1 -0
- package/dist/schema-enum-policy.js +26 -0
- package/dist/schema-enum-policy.js.map +1 -0
- package/dist/schema-untranslatable.d.ts +84 -2
- package/dist/schema-untranslatable.d.ts.map +1 -1
- package/dist/schema-untranslatable.js +98 -3
- package/dist/schema-untranslatable.js.map +1 -1
- package/dist/step-collection.js +1 -1
- package/dist/step-collection.js.map +1 -1
- package/dist/step-export-types.d.ts +13 -3
- package/dist/step-export-types.d.ts.map +1 -1
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +4 -2
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-georeferencing.js +2 -0
- package/dist/step-georeferencing.js.map +1 -1
- package/dist/step-header.d.ts.map +1 -1
- package/dist/step-header.js +1 -0
- package/dist/step-header.js.map +1 -1
- package/dist/step-map-unit.d.ts.map +1 -1
- package/dist/step-map-unit.js +4 -0
- package/dist/step-map-unit.js.map +1 -1
- package/dist/step-overlay-entities.d.ts.map +1 -1
- package/dist/step-overlay-entities.js +5 -1
- package/dist/step-overlay-entities.js.map +1 -1
- package/dist/step-pass-builder.d.ts.map +1 -1
- package/dist/step-pass-builder.js +8 -1
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-generators.d.ts.map +1 -1
- package/dist/step-property-set-generators.js +17 -0
- package/dist/step-property-set-generators.js.map +1 -1
- package/dist/step-property-set-index.d.ts +4 -10
- package/dist/step-property-set-index.d.ts.map +1 -1
- package/dist/step-property-set-index.js +52 -8
- package/dist/step-property-set-index.js.map +1 -1
- package/dist/step-property-set-readers.d.ts.map +1 -1
- package/dist/step-property-set-readers.js +4 -0
- package/dist/step-property-set-readers.js.map +1 -1
- package/dist/step-ref-scan.d.ts +6 -0
- package/dist/step-ref-scan.d.ts.map +1 -0
- package/dist/step-ref-scan.js +52 -0
- package/dist/step-ref-scan.js.map +1 -0
- package/dist/step-serialization.d.ts.map +1 -1
- package/dist/step-serialization.js +18 -2
- package/dist/step-serialization.js.map +1 -1
- package/dist/step-shared-atom-retention.d.ts +5 -0
- package/dist/step-shared-atom-retention.d.ts.map +1 -0
- package/dist/step-shared-atom-retention.js +60 -0
- package/dist/step-shared-atom-retention.js.map +1 -0
- package/dist/step-source-iteration.d.ts +1 -1
- package/dist/step-source-iteration.d.ts.map +1 -1
- package/dist/step-source-iteration.js +50 -45
- package/dist/step-source-iteration.js.map +1 -1
- package/dist/style-closure.d.ts.map +1 -1
- package/dist/style-closure.js +11 -0
- package/dist/style-closure.js.map +1 -1
- package/dist/subset-entity-reader.d.ts.map +1 -1
- package/dist/subset-entity-reader.js +3 -2
- package/dist/subset-entity-reader.js.map +1 -1
- package/dist/subset-roots.js +2 -2
- package/dist/subset-roots.js.map +1 -1
- package/package.json +10 -10
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { asSourceBytes, STEP_TRIVIA } from '@ifc-lite/parser';
|
|
5
5
|
import { readStepSlots, splitTopLevelListItems } from './step-argument-parser.js';
|
|
6
|
+
import { readRelationshipSlotLowerBound } from './relationship-slot-bounds.js';
|
|
6
7
|
// Schema-derived type-set machinery (INFRASTRUCTURE_TYPES, PRODUCT_TYPES,
|
|
7
8
|
// collectDescendantNames) lives in `entity-type-sets.ts` — shared with
|
|
8
9
|
// `subset-roots.ts`, which derives IFC_ROOT_TYPES the same way. Re-exported
|
|
@@ -470,8 +471,23 @@ export function collectReferencedEntityIds(rootIds, source, entityIndex, exclude
|
|
|
470
471
|
* this exact dangling-ref shape (#2398): a relationship that still names an
|
|
471
472
|
* entity the session deleted ships the same `#N` with no `#N=` line, on a
|
|
472
473
|
* path with no `visibleOnly` involved at all.
|
|
474
|
+
*
|
|
475
|
+
* `schemaVersion` is optional and, when given, holds a narrowed list to its
|
|
476
|
+
* OWN declared lower bound (`relationship-slot-bounds.ts`, reading the line's
|
|
477
|
+
* own `record.type` against the version-correct schema registry) before
|
|
478
|
+
* accepting the narrowing — see that file's doc for why: an `IFCREL*` line's
|
|
479
|
+
* own list attributes are never declared above `[1:?]` in any of the three
|
|
480
|
+
* schemas this repo ships (checked across all `IfcRel*` entities), so every
|
|
481
|
+
* EXISTING caller that omits it keeps its exact prior behaviour. A
|
|
482
|
+
* `STYLE_RESCUE_TYPES` line CAN carry a higher bound —
|
|
483
|
+
* `IfcTextureMap.Vertices` is `LIST [3:?]` — so callers on that path (#5262)
|
|
484
|
+
* pass it. When narrowing would still drop a slot below its own bound, the
|
|
485
|
+
* slot is left exactly as the source wrote it, the excluded ref(s) still
|
|
486
|
+
* dangling: the same "narrow reach only, never a new invalid shape" choice
|
|
487
|
+
* `narrowNonRelPositionalRefLists` already makes for the sibling
|
|
488
|
+
* non-relationship rule (#5181).
|
|
473
489
|
*/
|
|
474
|
-
export function filterHiddenRefsFromRelationshipLine(line, isExcluded) {
|
|
490
|
+
export function filterHiddenRefsFromRelationshipLine(line, isExcluded, schemaVersion) {
|
|
475
491
|
const record = readStepSlots(line);
|
|
476
492
|
// This helper is also the output gate for relationship/source-style lines.
|
|
477
493
|
// Once a line identifies itself as a STEP entity, refusing its slot layout
|
|
@@ -498,6 +514,19 @@ export function filterHiddenRefsFromRelationshipLine(line, isExcluded) {
|
|
|
498
514
|
if (survivors.length !== items.length) {
|
|
499
515
|
if (survivors.length === 0)
|
|
500
516
|
return null;
|
|
517
|
+
if (schemaVersion !== undefined) {
|
|
518
|
+
const lowerBound = readRelationshipSlotLowerBound(entityType, index, schemaVersion);
|
|
519
|
+
if (lowerBound !== undefined && survivors.length < lowerBound) {
|
|
520
|
+
// Narrowing would still leave this slot below its OWN declared
|
|
521
|
+
// lower bound (#5262) — e.g. `IfcTextureMap.Vertices`,
|
|
522
|
+
// `LIST [3:?]`: 2 survivors is a DIFFERENT invalid file than the
|
|
523
|
+
// dangling ref it would replace. Leave it exactly as the source
|
|
524
|
+
// wrote it; the excluded ref stays dangling, the pre-existing
|
|
525
|
+
// defect class this whole gate only narrows the REACH of.
|
|
526
|
+
nextAttrs.push(rawAttr);
|
|
527
|
+
continue;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
501
530
|
changed = true;
|
|
502
531
|
nextAttrs.push(`${leading}(${survivors.join(',')})${trailing}`);
|
|
503
532
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-collector.js","sourceRoot":"","sources":["../src/reference-collector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reference-collector.js","sourceRoot":"","sources":["../src/reference-collector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-entity-names.d.ts","sourceRoot":"","sources":["../src/registry-entity-names.ts"],"names":[],"mappings":"AAuCA,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAA+B,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
* STEP type token (`IFCTEXTUREMAP`) -> the generated schema registry's own
|
|
6
|
+
* PascalCase entity name (`IfcTextureMap`), derived once from all three
|
|
7
|
+
* runtime registries `@ifc-lite/parser` carries (IFC2X3/IFC4/IFC4X3), for a
|
|
8
|
+
* caller that already knows which STEP type a source line names and needs
|
|
9
|
+
* to read that entity's OWN declaration back out of the version-correct
|
|
10
|
+
* registry (`getSchemaRegistryForVersion(version).entities[name]`, whose
|
|
11
|
+
* keys are PascalCase, not the upper-case token a STEP line carries).
|
|
12
|
+
*
|
|
13
|
+
* Not the same map `nonrel-ref-list-types.ts` derives: that one is scoped
|
|
14
|
+
* to the types that QUALIFY for its own narrowing rule (an entity gets a
|
|
15
|
+
* registry-name entry there only if it has a qualifying aggregate
|
|
16
|
+
* attribute). This one has no qualifying condition — every concrete AND
|
|
17
|
+
* abstract entity name across the three registries — because a caller here
|
|
18
|
+
* is not asking "does this type qualify for some rule", only "what is this
|
|
19
|
+
* STEP token's registry key". Deriving it independently, rather than
|
|
20
|
+
* reusing `nonrel-ref-list-types.ts`'s narrower map, means a type that
|
|
21
|
+
* later stops qualifying for THAT file's rule (a schema revision, a
|
|
22
|
+
* tightened gate) cannot silently disappear from THIS lookup too.
|
|
23
|
+
*/
|
|
24
|
+
import { getSchemaRegistryForVersion } from '@ifc-lite/parser';
|
|
25
|
+
const REGISTRY_VERSIONS = ['IFC2X3', 'IFC4', 'IFC4X3'];
|
|
26
|
+
function deriveEntityRegistryNames() {
|
|
27
|
+
const names = new Map();
|
|
28
|
+
for (const version of REGISTRY_VERSIONS) {
|
|
29
|
+
const registry = getSchemaRegistryForVersion(version);
|
|
30
|
+
for (const entity of Object.values(registry.entities)) {
|
|
31
|
+
names.set(entity.name.toUpperCase(), entity.name);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return names;
|
|
35
|
+
}
|
|
36
|
+
/** STEP type token -> registry PascalCase entity name, across IFC2X3/IFC4/IFC4X3. */
|
|
37
|
+
export const ENTITY_REGISTRY_NAMES = deriveEntityRegistryNames();
|
|
38
|
+
//# sourceMappingURL=registry-entity-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry-entity-names.js","sourceRoot":"","sources":["../src/registry-entity-names.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,2BAA2B,EAAkC,MAAM,kBAAkB,CAAC;AAE/F,MAAM,iBAAiB,GAAyC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7F,SAAS,yBAAyB;IAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAgC,yBAAyB,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IfcSchemaVersion } from './schema-converter.js';
|
|
2
|
+
/**
|
|
3
|
+
* The declared lower bound of the aggregate attribute at `slotIndex` of
|
|
4
|
+
* `entityType`, as `schemaVersion`'s generated registry declares it.
|
|
5
|
+
*
|
|
6
|
+
* `undefined` when it cannot be read (an entity/schema version this file
|
|
7
|
+
* does not cover, a slot index the registry has no attribute for, a slot
|
|
8
|
+
* that is not an aggregate at all, or an aggregate with no declared bound)
|
|
9
|
+
* — the caller's safe default is to apply its EXISTING narrowing rule
|
|
10
|
+
* unmodified, since this reader only ever adds a constraint on top of that
|
|
11
|
+
* rule, never replaces it.
|
|
12
|
+
*/
|
|
13
|
+
export declare function readRelationshipSlotLowerBound(entityType: string, slotIndex: number, schemaVersion: IfcSchemaVersion): number | undefined;
|
|
14
|
+
//# sourceMappingURL=relationship-slot-bounds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-slot-bounds.d.ts","sourceRoot":"","sources":["../src/relationship-slot-bounds.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM9D;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,gBAAgB,GAC9B,MAAM,GAAG,SAAS,CASpB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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 per-slot lower-bound reader `filterHiddenRefsFromRelationshipLine`
|
|
6
|
+
* (`reference-collector.ts`) uses to hold a narrowed `STYLE_RESCUE_TYPES`
|
|
7
|
+
* list to its OWN declared cardinality — the same defect shape
|
|
8
|
+
* `nonrel-positional-ref-narrowing.ts`'s `readAggregateSlot` already fixed
|
|
9
|
+
* for non-relationship lines (#5181), closed here for the rescued-style /
|
|
10
|
+
* texture-map path (#5262).
|
|
11
|
+
*
|
|
12
|
+
* `IfcTextureMap.Vertices` is `LIST [3:?] OF IfcTextureVertex`.
|
|
13
|
+
* `filterHiddenRefsFromRelationshipLine`'s list-narrowing assumed a `[1:?]`
|
|
14
|
+
* lower bound: dropping one excluded vertex out of three narrowed a valid
|
|
15
|
+
* 3-vertex list to a 2-vertex one — syntactically well-formed STEP, but a
|
|
16
|
+
* DIFFERENT invalid file than the dangling `#N` it replaced, since the
|
|
17
|
+
* schema requires at least three.
|
|
18
|
+
*
|
|
19
|
+
* Split into its own file rather than folded into `reference-collector.ts`,
|
|
20
|
+
* which that file's own header already documents as sitting at its
|
|
21
|
+
* recorded module-size budget, and rather than reusing
|
|
22
|
+
* `nonrel-positional-ref-narrowing.ts`'s `readAggregateSlot`, whose lookup
|
|
23
|
+
* is keyed off `NONREL_REF_LIST_REGISTRY_NAMES` — a map scoped to the types
|
|
24
|
+
* that qualify for THAT file's own narrowing rule. `STYLE_RESCUE_TYPES` is
|
|
25
|
+
* a different, independently-defined type set (`style-closure.ts`), so this
|
|
26
|
+
* reads the general `ENTITY_REGISTRY_NAMES` map (`registry-entity-names.ts`)
|
|
27
|
+
* instead of borrowing a gate built for an unrelated rule.
|
|
28
|
+
*
|
|
29
|
+
* Reads the declaration from the generated schema registry
|
|
30
|
+
* (`@ifc-lite/parser`'s `getSchemaRegistryForVersion`, keyed by the SOURCE
|
|
31
|
+
* line's own schema version) rather than a hand-written table, so the
|
|
32
|
+
* answer can never drift from the schema it describes.
|
|
33
|
+
*/
|
|
34
|
+
import { getSchemaRegistryForVersion } from '@ifc-lite/parser';
|
|
35
|
+
import { ENTITY_REGISTRY_NAMES } from './registry-entity-names.js';
|
|
36
|
+
function isRegistryVersion(version) {
|
|
37
|
+
return version === 'IFC2X3' || version === 'IFC4' || version === 'IFC4X3';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The declared lower bound of the aggregate attribute at `slotIndex` of
|
|
41
|
+
* `entityType`, as `schemaVersion`'s generated registry declares it.
|
|
42
|
+
*
|
|
43
|
+
* `undefined` when it cannot be read (an entity/schema version this file
|
|
44
|
+
* does not cover, a slot index the registry has no attribute for, a slot
|
|
45
|
+
* that is not an aggregate at all, or an aggregate with no declared bound)
|
|
46
|
+
* — the caller's safe default is to apply its EXISTING narrowing rule
|
|
47
|
+
* unmodified, since this reader only ever adds a constraint on top of that
|
|
48
|
+
* rule, never replaces it.
|
|
49
|
+
*/
|
|
50
|
+
export function readRelationshipSlotLowerBound(entityType, slotIndex, schemaVersion) {
|
|
51
|
+
if (!isRegistryVersion(schemaVersion))
|
|
52
|
+
return undefined;
|
|
53
|
+
const registryName = ENTITY_REGISTRY_NAMES.get(entityType);
|
|
54
|
+
if (registryName === undefined)
|
|
55
|
+
return undefined;
|
|
56
|
+
const attr = getSchemaRegistryForVersion(schemaVersion).entities[registryName]?.allAttributes?.[slotIndex];
|
|
57
|
+
if (attr === undefined || !(attr.isList || attr.isSet))
|
|
58
|
+
return undefined;
|
|
59
|
+
const lowerBound = attr.arrayBounds?.[0];
|
|
60
|
+
if (lowerBound === undefined || !Number.isFinite(lowerBound))
|
|
61
|
+
return undefined;
|
|
62
|
+
return lowerBound;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=relationship-slot-bounds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relationship-slot-bounds.js","sourceRoot":"","sources":["../src/relationship-slot-bounds.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,EAAE,2BAA2B,EAAkC,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,SAAS,iBAAiB,CAAC,OAAyB;IAClD,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAkB,EAClB,SAAiB,EACjB,aAA+B;IAE/B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;QAAE,OAAO,SAAS,CAAC;IACxD,MAAM,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,MAAM,IAAI,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3G,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/E,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
package/dist/retype.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retype.d.ts","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"retype.d.ts","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAuD9D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gFAAgF;IAChF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,gBAAgB,CA+ClB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,GACvB,MAAM,CA+BR"}
|
package/dist/retype.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* identity and only the keyword (and optionally PredefinedType) changes — the
|
|
25
25
|
* raw argument tokens are preserved byte-for-byte.
|
|
26
26
|
*/
|
|
27
|
-
import { ENTITIES_IFC2X3,
|
|
27
|
+
import { ENTITIES_IFC2X3, ENTITIES_IFC4_EXPRESS, ENTITIES_IFC4X3 } from '@ifc-lite/data';
|
|
28
28
|
import { escapeStepString } from './step-serialization.js';
|
|
29
29
|
import { splitTopLevelStepArguments } from './step-argument-parser.js';
|
|
30
30
|
function buildSchemaMap(list) {
|
|
@@ -39,7 +39,10 @@ function buildSchemaMap(list) {
|
|
|
39
39
|
}
|
|
40
40
|
const SCHEMA_MAPS = {
|
|
41
41
|
IFC2X3: buildSchemaMap(ENTITIES_IFC2X3),
|
|
42
|
-
|
|
42
|
+
// Not the raw `ENTITIES_IFC4`: retyping into one of its phantom IFC4
|
|
43
|
+
// entities wrote a class IFC4 lacks, and into `IfcCartesianPointList3D`
|
|
44
|
+
// appended a `TagList` IFC4 never had (#5204).
|
|
45
|
+
IFC4: buildSchemaMap(ENTITIES_IFC4_EXPRESS),
|
|
43
46
|
IFC4X3: buildSchemaMap(ENTITIES_IFC4X3),
|
|
44
47
|
// IFC5 isn't STEP; never reached for retype, but keep the lookup total.
|
|
45
48
|
IFC5: buildSchemaMap(ENTITIES_IFC4X3),
|
package/dist/retype.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retype.js","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"retype.js","sourceRoot":"","sources":["../src/retype.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A per-TYPE preview of what a schema conversion will do to the entities a
|
|
3
|
+
* store actually contains, computed WITHOUT running the export.
|
|
4
|
+
*
|
|
5
|
+
* `schema-converter.ts`'s `convertStepLine` already makes every one of these
|
|
6
|
+
* decisions per RECORD, but only as a side effect of producing bytes (or, for
|
|
7
|
+
* a non-rooted type with no target representation, throwing —
|
|
8
|
+
* `resolveUnrepresentedEntity`'s documented, intentional behaviour for e.g.
|
|
9
|
+
* `IFCTRIANGULATEDFACESET` into IFC2X3: there is no valid IFC2X3 substitute
|
|
10
|
+
* for a representation item, so guessing one would ship a differently-broken
|
|
11
|
+
* file). Before this module, a caller's only way to learn what a conversion
|
|
12
|
+
* would do — or that it cannot complete at all — was to attempt the full
|
|
13
|
+
* export and either inspect `stats.warnings` after the fact or catch the
|
|
14
|
+
* exception with no indication of what ELSE in the file has the same
|
|
15
|
+
* problem, since the export aborts on the FIRST record it cannot represent.
|
|
16
|
+
*
|
|
17
|
+
* `IfcDataStore.entityIndex.byType` already gives every distinct type
|
|
18
|
+
* present with its express ids, and `classifyEntityTypeConversion`'s
|
|
19
|
+
* decision depends only on the TYPE (the generated attribute tables are
|
|
20
|
+
* positional-name lists, not per-instance data) — so a complete, honest loss
|
|
21
|
+
* report is one pass over the distinct types, not the whole file (#4206: the
|
|
22
|
+
* "the loss report ... names each attribute it could not carry" bar).
|
|
23
|
+
*/
|
|
24
|
+
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
25
|
+
import { type IfcSchemaVersion } from './schema-converter.js';
|
|
26
|
+
/** How one entity TYPE's data survives a schema conversion. */
|
|
27
|
+
export type EntityConversionKind =
|
|
28
|
+
/** Same type, same attribute list: nothing lost. */
|
|
29
|
+
'identity'
|
|
30
|
+
/** Different type name (or the same name, source-schema attrs trimmed/padded),
|
|
31
|
+
* every source attribute has a same-named home in the target. */
|
|
32
|
+
| 'renamed'
|
|
33
|
+
/** Reconciled with SOME loss. Usually at least one source attribute has no
|
|
34
|
+
* home in the target schema's shape for this type (see
|
|
35
|
+
* `droppedAttributes`) — but a same-named type whose attribute lists are
|
|
36
|
+
* reordered rather than appended/removed (neither a strict prefix of the
|
|
37
|
+
* other, and not in `BY_NAME_ATTR_REMAP_TYPES`) is also `lossy` with an
|
|
38
|
+
* EMPTY `droppedAttributes`: every name still exists in the target, but
|
|
39
|
+
* `convertRecord` leaves the positional values untouched under the new
|
|
40
|
+
* shape, so they land in the wrong slots rather than disappearing. */
|
|
41
|
+
| 'lossy'
|
|
42
|
+
/** No representation at all in the target schema. The type IS an IfcRoot
|
|
43
|
+
* subtype, so every instance becomes a generic IFCPROXY: its own semantic
|
|
44
|
+
* type, GlobalId and every attribute are gone. */
|
|
45
|
+
| 'proxied'
|
|
46
|
+
/** No representation at all, and NOT an IfcRoot subtype (a resource type or
|
|
47
|
+
* representation item referenced positionally by other entities). Cannot
|
|
48
|
+
* become a proxy (an IfcProduct is not a valid substitute) and cannot be
|
|
49
|
+
* dropped (referencing entities would dangle) — converting a record of
|
|
50
|
+
* this type throws. */
|
|
51
|
+
| 'blocked';
|
|
52
|
+
export interface EntityConversionInfo {
|
|
53
|
+
targetType: string;
|
|
54
|
+
kind: EntityConversionKind;
|
|
55
|
+
/** Source-schema attribute names with no same-named slot in the target
|
|
56
|
+
* type. Populated for `lossy`, `proxied` (every attribute) and `blocked`
|
|
57
|
+
* (every attribute — the record cannot be written at all). */
|
|
58
|
+
droppedAttributes: readonly string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Classify what converting entities of `entityType` from `fromSchema` to
|
|
62
|
+
* `toSchema` will do, mirroring `schema-converter.ts`'s `convertRecord`
|
|
63
|
+
* decision tree exactly (same helpers, same order) without needing a STEP
|
|
64
|
+
* line to run it on.
|
|
65
|
+
*/
|
|
66
|
+
export declare function classifyEntityTypeConversion(entityType: string, fromSchema: IfcSchemaVersion, toSchema: IfcSchemaVersion): EntityConversionInfo;
|
|
67
|
+
/** One distinct type's outcome, with the express ids of every instance the
|
|
68
|
+
* store holds — the caller supplies these for the report to name. */
|
|
69
|
+
export interface ConversionLossEntry extends EntityConversionInfo {
|
|
70
|
+
sourceType: string;
|
|
71
|
+
count: number;
|
|
72
|
+
expressIds: readonly number[];
|
|
73
|
+
}
|
|
74
|
+
export interface ConversionLossReport {
|
|
75
|
+
fromSchema: IfcSchemaVersion;
|
|
76
|
+
toSchema: IfcSchemaVersion;
|
|
77
|
+
/** Every non-identity, non-plain-`renamed` entry: `lossy`, `proxied` and
|
|
78
|
+
* `blocked` types the store actually contains at least one instance of. */
|
|
79
|
+
entries: readonly ConversionLossEntry[];
|
|
80
|
+
/** True when a full-fidelity export exists (no `blocked` entries) but at
|
|
81
|
+
* least one type is `lossy` or `proxied`. */
|
|
82
|
+
hasLoss: boolean;
|
|
83
|
+
/** True when the store contains a type `exportToStep(store, {schema:
|
|
84
|
+
* toSchema})` cannot write at all — the export will throw. */
|
|
85
|
+
hasBlocking: boolean;
|
|
86
|
+
/** Human-readable lines, one per entry, naming the type, how many
|
|
87
|
+
* instances, their express ids and which attributes do not survive. */
|
|
88
|
+
describe(): string[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A complete, per-type loss report for converting every entity `store`
|
|
92
|
+
* contains from `fromSchema` to `toSchema` — no export attempted, so this
|
|
93
|
+
* never throws and always covers the whole file, not just the first record a
|
|
94
|
+
* full export would have aborted on.
|
|
95
|
+
*/
|
|
96
|
+
export declare function analyzeConversionLoss(store: Pick<IfcDataStore, 'entityIndex'>, fromSchema: IfcSchemaVersion, toSchema: IfcSchemaVersion): ConversionLossReport;
|
|
97
|
+
//# sourceMappingURL=schema-conversion-loss-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-conversion-loss-report.d.ts","sourceRoot":"","sources":["../src/schema-conversion-loss-report.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAI/B,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB;AAC9B,oDAAoD;AAClD,UAAU;AACZ;kEACkE;GAChE,SAAS;AACX;;;;;;;uEAOuE;GACrE,OAAO;AACT;;mDAEmD;GACjD,SAAS;AACX;;;;wBAIwB;GACtB,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,oBAAoB,CAAC;IAC3B;;mEAE+D;IAC/D,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,oBAAoB,CA4DtB;AAED;sEACsE;AACtE,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;gFAC4E;IAC5E,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACxC;kDAC8C;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB;mEAC+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB;4EACwE;IACxE,QAAQ,IAAI,MAAM,EAAE,CAAC;CACtB;AAyBD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EACxC,UAAU,EAAE,gBAAgB,EAC5B,QAAQ,EAAE,gBAAgB,GACzB,oBAAoB,CAqBtB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
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 { convertEntityType, attrNameTable, isStrictAttrPrefix, shouldSkipEntity, } from './schema-converter.js';
|
|
5
|
+
import { BY_NAME_ATTR_REMAP_TYPES } from './schema-converter-attr-remap.js';
|
|
6
|
+
import { isRootedEntityType } from './schema-untranslatable.js';
|
|
7
|
+
/**
|
|
8
|
+
* Classify what converting entities of `entityType` from `fromSchema` to
|
|
9
|
+
* `toSchema` will do, mirroring `schema-converter.ts`'s `convertRecord`
|
|
10
|
+
* decision tree exactly (same helpers, same order) without needing a STEP
|
|
11
|
+
* line to run it on.
|
|
12
|
+
*/
|
|
13
|
+
export function classifyEntityTypeConversion(entityType, fromSchema, toSchema) {
|
|
14
|
+
const upper = entityType.toUpperCase();
|
|
15
|
+
if (fromSchema === toSchema)
|
|
16
|
+
return { targetType: upper, kind: 'identity', droppedAttributes: [] };
|
|
17
|
+
const newType = convertEntityType(upper, fromSchema, toSchema);
|
|
18
|
+
const srcAttrs = attrNameTable(fromSchema)?.get(upper);
|
|
19
|
+
if (shouldSkipEntity(newType, toSchema)) {
|
|
20
|
+
// Same "every attribute is gone" reasoning as the other proxied branch
|
|
21
|
+
// below — an IFCPROXY carries none of the source type's own attributes.
|
|
22
|
+
// `srcAttrs` is undefined only for a source schema with no generated
|
|
23
|
+
// table (IFC5); there is nothing to name in that case either.
|
|
24
|
+
return { targetType: 'IFCPROXY', kind: 'proxied', droppedAttributes: srcAttrs ?? [] };
|
|
25
|
+
}
|
|
26
|
+
const targetTable = attrNameTable(toSchema);
|
|
27
|
+
const tgtAttrs = targetTable?.get(newType);
|
|
28
|
+
if (srcAttrs && targetTable && !tgtAttrs) {
|
|
29
|
+
return isRootedEntityType(upper)
|
|
30
|
+
? { targetType: 'IFCPROXY', kind: 'proxied', droppedAttributes: srcAttrs }
|
|
31
|
+
: { targetType: newType, kind: 'blocked', droppedAttributes: srcAttrs };
|
|
32
|
+
}
|
|
33
|
+
if (!srcAttrs || !tgtAttrs) {
|
|
34
|
+
// Unknown to one of the tables (IFC5 has none) — the per-line converter
|
|
35
|
+
// passes such lines through unexamined; nothing to report either way.
|
|
36
|
+
return { targetType: newType, kind: upper === newType ? 'identity' : 'renamed', droppedAttributes: [] };
|
|
37
|
+
}
|
|
38
|
+
if (srcAttrs.length === tgtAttrs.length && srcAttrs.every((name, i) => name === tgtAttrs[i])) {
|
|
39
|
+
// Neither list is a STRICT prefix of the other when they are equal
|
|
40
|
+
// (`isStrictAttrPrefix` requires shorter.length < longer.length) — the
|
|
41
|
+
// same case `convertRecord` leaves untouched because `finalAttrs` never
|
|
42
|
+
// gets reassigned there. Matches, not a rename or a loss.
|
|
43
|
+
return { targetType: newType, kind: upper === newType ? 'identity' : 'renamed', droppedAttributes: [] };
|
|
44
|
+
}
|
|
45
|
+
if (isStrictAttrPrefix(tgtAttrs, srcAttrs)) {
|
|
46
|
+
const dropped = srcAttrs.slice(tgtAttrs.length);
|
|
47
|
+
return {
|
|
48
|
+
targetType: newType,
|
|
49
|
+
kind: dropped.length > 0 ? 'lossy' : upper === newType ? 'identity' : 'renamed',
|
|
50
|
+
droppedAttributes: dropped,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (isStrictAttrPrefix(srcAttrs, tgtAttrs)) {
|
|
54
|
+
return { targetType: newType, kind: upper === newType ? 'identity' : 'renamed', droppedAttributes: [] };
|
|
55
|
+
}
|
|
56
|
+
if (upper !== newType && BY_NAME_ATTR_REMAP_TYPES.has(upper)) {
|
|
57
|
+
const dropped = srcAttrs.filter((name) => !tgtAttrs.includes(name));
|
|
58
|
+
return { targetType: newType, kind: dropped.length > 0 ? 'lossy' : 'renamed', droppedAttributes: dropped };
|
|
59
|
+
}
|
|
60
|
+
// Neither prefix-related nor in the by-name allowlist: `convertRecord`
|
|
61
|
+
// leaves the attribute list untouched under the new type name — a record
|
|
62
|
+
// whose slots no longer match its own declared type's shape at all.
|
|
63
|
+
return {
|
|
64
|
+
targetType: newType,
|
|
65
|
+
kind: 'lossy',
|
|
66
|
+
droppedAttributes: srcAttrs.filter((name) => !tgtAttrs.includes(name)),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const MAX_IDS_NAMED = 8;
|
|
70
|
+
function describeEntry(entry) {
|
|
71
|
+
const ids = entry.expressIds.slice(0, MAX_IDS_NAMED).map((id) => `#${id}`).join(', ');
|
|
72
|
+
const more = entry.expressIds.length > MAX_IDS_NAMED ? `, +${entry.expressIds.length - MAX_IDS_NAMED} more` : '';
|
|
73
|
+
const attrs = entry.droppedAttributes.length > 0 ? ` — loses ${entry.droppedAttributes.join(', ')}` : '';
|
|
74
|
+
switch (entry.kind) {
|
|
75
|
+
case 'blocked':
|
|
76
|
+
return (`${entry.count} × ${entry.sourceType} (${ids}${more}) has no representation in this schema and is ` +
|
|
77
|
+
`not an IfcRoot subtype: conversion cannot write these records at all${attrs}.`);
|
|
78
|
+
case 'proxied':
|
|
79
|
+
return (`${entry.count} × ${entry.sourceType} (${ids}${more}) has no representation in this schema: these ` +
|
|
80
|
+
`become generic IFCPROXY placeholders, losing their own type and every attribute${attrs}.`);
|
|
81
|
+
case 'lossy':
|
|
82
|
+
default:
|
|
83
|
+
return `${entry.count} × ${entry.sourceType} → ${entry.targetType} (${ids}${more})${attrs}.`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* A complete, per-type loss report for converting every entity `store`
|
|
88
|
+
* contains from `fromSchema` to `toSchema` — no export attempted, so this
|
|
89
|
+
* never throws and always covers the whole file, not just the first record a
|
|
90
|
+
* full export would have aborted on.
|
|
91
|
+
*/
|
|
92
|
+
export function analyzeConversionLoss(store, fromSchema, toSchema) {
|
|
93
|
+
const entries = [];
|
|
94
|
+
if (fromSchema !== toSchema) {
|
|
95
|
+
// @raw-entity-enumeration-ok this report accepts only a source entityIndex and describes the parsed file's schema-conversion losses
|
|
96
|
+
for (const [sourceType, expressIds] of store.entityIndex.byType) {
|
|
97
|
+
if (expressIds.length === 0)
|
|
98
|
+
continue;
|
|
99
|
+
const info = classifyEntityTypeConversion(sourceType, fromSchema, toSchema);
|
|
100
|
+
if (info.kind === 'identity' || info.kind === 'renamed')
|
|
101
|
+
continue;
|
|
102
|
+
entries.push({ ...info, sourceType: sourceType.toUpperCase(), count: expressIds.length, expressIds });
|
|
103
|
+
}
|
|
104
|
+
entries.sort((a, b) => a.sourceType.localeCompare(b.sourceType));
|
|
105
|
+
}
|
|
106
|
+
const hasBlocking = entries.some((e) => e.kind === 'blocked');
|
|
107
|
+
return {
|
|
108
|
+
fromSchema,
|
|
109
|
+
toSchema,
|
|
110
|
+
entries,
|
|
111
|
+
hasLoss: entries.length > 0,
|
|
112
|
+
hasBlocking,
|
|
113
|
+
describe: () => entries.map(describeEntry),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=schema-conversion-loss-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-conversion-loss-report.js","sourceRoot":"","sources":["../src/schema-conversion-loss-report.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AA2B/D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAsChE;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,UAA4B,EAC5B,QAA0B;IAE1B,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACvC,IAAI,UAAU,KAAK,QAAQ;QAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAEnG,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,8DAA8D;QAC9D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;IACxF,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,QAAQ,IAAI,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,OAAO,kBAAkB,CAAC,KAAK,CAAC;YAC9B,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE;YAC1E,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC5E,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAC1G,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,mEAAmE;QACnE,uEAAuE;QACvE,wEAAwE;QACxE,0DAA0D;QAC1D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAC1G,CAAC;IAED,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC/E,iBAAiB,EAAE,OAAO;SAC3B,CAAC;IACJ,CAAC;IACD,IAAI,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAC1G,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAC7G,CAAC;IACD,uEAAuE;IACvE,yEAAyE;IACzE,oEAAoE;IACpE,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,OAAO;QACb,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AA2BD,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB,SAAS,aAAa,CAAC,KAA0B;IAC/C,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,aAAa,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjH,MAAM,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzG,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,UAAU,KAAK,GAAG,GAAG,IAAI,gDAAgD;gBACnG,uEAAuE,KAAK,GAAG,CAChF,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,UAAU,KAAK,GAAG,GAAG,IAAI,gDAAgD;gBACnG,kFAAkF,KAAK,GAAG,CAC3F,CAAC;QACJ,KAAK,OAAO,CAAC;QACb;YACE,OAAO,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,UAAU,KAAK,GAAG,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAwC,EACxC,UAA4B,EAC5B,QAA0B;IAE1B,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,oIAAoI;QACpI,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAChE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACtC,MAAM,IAAI,GAAG,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YAClE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACxG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC9D,OAAO;QACL,UAAU;QACV,QAAQ;QACR,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3B,WAAW;QACX,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -42,6 +42,14 @@ export declare function splitTopLevelAttributes(attrsRaw: string): string[] | nu
|
|
|
42
42
|
* freshly minted GlobalId — losing the door/window's own identity, Name
|
|
43
43
|
* and property-set associations even though IFC2X3 has a real (if
|
|
44
44
|
* differently shaped) representation for it.
|
|
45
|
+
*
|
|
46
|
+
* `IFCSTRUCTURALCURVEACTION`/`IFCSTRUCTURALSURFACEACTION` are added for the
|
|
47
|
+
* same reason (#4206): each shares `GlobalId` through `DestabilizingLoad`
|
|
48
|
+
* with its IFC2X3 `IfcStructuralLinearAction`/`PlanarAction` target, but
|
|
49
|
+
* IFC2X3 inserts an optional `CausedBy` before `ProjectedOrTrue` where IFC4
|
|
50
|
+
* instead appends `PredefinedType`, so neither list is a positional prefix
|
|
51
|
+
* of the other verified case by case (see the entries in `IFC4_TO_IFC2X3`
|
|
52
|
+
* in `schema-converter.ts`).
|
|
45
53
|
*/
|
|
46
54
|
export declare const BY_NAME_ATTR_REMAP_TYPES: Set<string>;
|
|
47
55
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter-attr-remap.d.ts","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAEzE;AAED
|
|
1
|
+
{"version":3,"file":"schema-converter-attr-remap.d.ts","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAEzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,wBAAwB,aAKnC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,GAAG,IAAI,CAQf"}
|
|
@@ -48,8 +48,21 @@ export function splitTopLevelAttributes(attrsRaw) {
|
|
|
48
48
|
* freshly minted GlobalId — losing the door/window's own identity, Name
|
|
49
49
|
* and property-set associations even though IFC2X3 has a real (if
|
|
50
50
|
* differently shaped) representation for it.
|
|
51
|
+
*
|
|
52
|
+
* `IFCSTRUCTURALCURVEACTION`/`IFCSTRUCTURALSURFACEACTION` are added for the
|
|
53
|
+
* same reason (#4206): each shares `GlobalId` through `DestabilizingLoad`
|
|
54
|
+
* with its IFC2X3 `IfcStructuralLinearAction`/`PlanarAction` target, but
|
|
55
|
+
* IFC2X3 inserts an optional `CausedBy` before `ProjectedOrTrue` where IFC4
|
|
56
|
+
* instead appends `PredefinedType`, so neither list is a positional prefix
|
|
57
|
+
* of the other verified case by case (see the entries in `IFC4_TO_IFC2X3`
|
|
58
|
+
* in `schema-converter.ts`).
|
|
51
59
|
*/
|
|
52
|
-
export const BY_NAME_ATTR_REMAP_TYPES = new Set([
|
|
60
|
+
export const BY_NAME_ATTR_REMAP_TYPES = new Set([
|
|
61
|
+
'IFCDOORTYPE',
|
|
62
|
+
'IFCWINDOWTYPE',
|
|
63
|
+
'IFCSTRUCTURALCURVEACTION',
|
|
64
|
+
'IFCSTRUCTURALSURFACEACTION',
|
|
65
|
+
]);
|
|
53
66
|
/**
|
|
54
67
|
* Reconcile a renamed entity's attribute list by matching attribute NAMES
|
|
55
68
|
* between the source and target schema tables, rather than by position.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-converter-attr-remap.js","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"schema-converter-attr-remap.js","sourceRoot":"","sources":["../src/schema-converter-attr-remap.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;GAKG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IAC9C,aAAa;IACb,eAAe;IACf,0BAA0B;IAC1B,4BAA4B;CAC7B,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAAgB,EAChB,QAA2B,EAC3B,QAA2B;IAE3B,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC"}
|