@ifc-lite/clash 2.1.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/export/table.d.ts +66 -0
- package/dist/export/table.d.ts.map +1 -0
- package/dist/export/table.js +87 -0
- package/dist/export/table.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type Clash, type ClashElementRef, type ClashGroup, type ClashReview, type ClashReviewStatus, type ClashSeverity, type ClashStatus } from '../types.js';
|
|
2
|
+
export interface ClashTableRow {
|
|
3
|
+
/** `Clash.id` — durable within a run (two keys + rule). */
|
|
4
|
+
ClashId: string;
|
|
5
|
+
Rule: string;
|
|
6
|
+
/** Detection classification: `hard` / `clearance` / `touch`. */
|
|
7
|
+
Status: ClashStatus;
|
|
8
|
+
Severity: ClashSeverity;
|
|
9
|
+
/** Coordinator triage (`open` / `resolved` / `accepted`); `open` when never reviewed. */
|
|
10
|
+
Review: ClashReviewStatus;
|
|
11
|
+
ReviewComment: string;
|
|
12
|
+
/** ISO-8601 instant of the last review edit; empty when never reviewed. */
|
|
13
|
+
ReviewUpdatedAt: string;
|
|
14
|
+
/** Bare IfcGUID of element A, or empty when the element has none (synthetic key). */
|
|
15
|
+
GlobalIdA: string;
|
|
16
|
+
GlobalIdB: string;
|
|
17
|
+
/** The adapter's durable key — IfcGUID, `IfcGUID:occurrence`, `expressid:…` or a USD prim path. */
|
|
18
|
+
KeyA: string;
|
|
19
|
+
KeyB: string;
|
|
20
|
+
ModelA: string;
|
|
21
|
+
ModelB: string;
|
|
22
|
+
TypeA: string;
|
|
23
|
+
TypeB: string;
|
|
24
|
+
NameA: string;
|
|
25
|
+
NameB: string;
|
|
26
|
+
StoreyA: string;
|
|
27
|
+
StoreyB: string;
|
|
28
|
+
/** Contact point (hard) or closest-point midpoint, in the run's world frame. */
|
|
29
|
+
PointX: number;
|
|
30
|
+
PointY: number;
|
|
31
|
+
PointZ: number;
|
|
32
|
+
/** Signed: `<0` penetration depth, `>0` gap. */
|
|
33
|
+
Distance: number;
|
|
34
|
+
/** `mesh` / `estimate`, or empty for a run recorded before the field existed. */
|
|
35
|
+
DistanceKind: string;
|
|
36
|
+
/** Title of the group this clash was clustered into, when groups were computed. */
|
|
37
|
+
Group: string;
|
|
38
|
+
}
|
|
39
|
+
/** Column order, which is also the CSV header order. */
|
|
40
|
+
export declare const CLASH_TABLE_COLUMNS: ReadonlyArray<keyof ClashTableRow>;
|
|
41
|
+
export interface ClashTableOptions {
|
|
42
|
+
/** Review state per `clashReviewKey`; a clash absent from the map is `open`. */
|
|
43
|
+
reviews?: ReadonlyMap<string, ClashReview>;
|
|
44
|
+
/** Storey name for an element, or empty/undefined when unknown. */
|
|
45
|
+
storeyOf?: (ref: ClashElementRef) => string | undefined;
|
|
46
|
+
/** Human model name for a model id; defaults to the id itself. */
|
|
47
|
+
modelNameOf?: (modelId: string) => string | undefined;
|
|
48
|
+
/** Groups the clashes were clustered into; fills the `Group` column. */
|
|
49
|
+
groups?: readonly ClashGroup[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The bare IfcGUID behind an adapter key, or empty when the key is not one.
|
|
53
|
+
*
|
|
54
|
+
* The STEP adapter keys an element on its GlobalId, suffixed with
|
|
55
|
+
* `:<occurrence>` for a GPU-instanced occurrence, and falls back to
|
|
56
|
+
* `expressid:<model>:<n>` when the entity has no GlobalId; the IFCX adapter
|
|
57
|
+
* keys on a USD prim path. Only the first form is a GUID a reader can join on,
|
|
58
|
+
* so the others yield an empty cell rather than a string that LOOKS joinable.
|
|
59
|
+
* Validity is the encoder's own rule (`isValidIfcGuid`: 22 chars of the IFC
|
|
60
|
+
* base-64 alphabet whose first character encodes only 2 bits, so `0`–`3`) —
|
|
61
|
+
* a malformed file's `Z000…` GlobalId is kept as the run's key but is not
|
|
62
|
+
* offered as a GUID.
|
|
63
|
+
*/
|
|
64
|
+
export declare function bareIfcGuid(key: string): string;
|
|
65
|
+
export declare function clashTableRows(clashes: readonly Clash[], options?: ClashTableOptions): ClashTableRow[];
|
|
66
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/export/table.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,yFAAyF;IACzF,MAAM,EAAE,iBAAiB,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,MAAM,aAAa,CAKlE,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,kEAAkE;IAClE,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,wEAAwE;IACxE,MAAM,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CAChC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,KAAK,EAAE,EACzB,OAAO,GAAE,iBAAsB,GAC9B,aAAa,EAAE,CAuCjB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
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
|
+
* A clash run as a flat table — one row per clash, both elements' identities
|
|
6
|
+
* on the row — for CSV / spreadsheet / BI consumption (#3944).
|
|
7
|
+
*
|
|
8
|
+
* This is the shape a coordinator loads into Power BI or Excel: every column is
|
|
9
|
+
* a scalar, the two IfcGUIDs are bare so they JOIN back to the model's own
|
|
10
|
+
* element tables, and the coordinator's review state is on the same row as the
|
|
11
|
+
* detection so the export is the report, not half of one.
|
|
12
|
+
*
|
|
13
|
+
* Headless and pure: the viewer and the CLI both build rows here and only
|
|
14
|
+
* differ in how they resolve a model NAME and a STOREY for an element (the
|
|
15
|
+
* result carries a model id and no storey — `ClashElementRef` drops the
|
|
16
|
+
* storey the adapter saw, and a synthetic model id is not a name a reader
|
|
17
|
+
* recognises). Serialisation is `tableToCsv` from `@ifc-lite/export`.
|
|
18
|
+
*/
|
|
19
|
+
import { isValidIfcGuid } from '@ifc-lite/encoding';
|
|
20
|
+
import { clashReviewKey } from '../review.js';
|
|
21
|
+
import { DEFAULT_CLASH_REVIEW_STATUS, } from '../types.js';
|
|
22
|
+
/** Column order, which is also the CSV header order. */
|
|
23
|
+
export const CLASH_TABLE_COLUMNS = [
|
|
24
|
+
'ClashId', 'Rule', 'Status', 'Severity', 'Review', 'ReviewComment', 'ReviewUpdatedAt',
|
|
25
|
+
'GlobalIdA', 'GlobalIdB', 'KeyA', 'KeyB', 'ModelA', 'ModelB',
|
|
26
|
+
'TypeA', 'TypeB', 'NameA', 'NameB', 'StoreyA', 'StoreyB',
|
|
27
|
+
'PointX', 'PointY', 'PointZ', 'Distance', 'DistanceKind', 'Group',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* The bare IfcGUID behind an adapter key, or empty when the key is not one.
|
|
31
|
+
*
|
|
32
|
+
* The STEP adapter keys an element on its GlobalId, suffixed with
|
|
33
|
+
* `:<occurrence>` for a GPU-instanced occurrence, and falls back to
|
|
34
|
+
* `expressid:<model>:<n>` when the entity has no GlobalId; the IFCX adapter
|
|
35
|
+
* keys on a USD prim path. Only the first form is a GUID a reader can join on,
|
|
36
|
+
* so the others yield an empty cell rather than a string that LOOKS joinable.
|
|
37
|
+
* Validity is the encoder's own rule (`isValidIfcGuid`: 22 chars of the IFC
|
|
38
|
+
* base-64 alphabet whose first character encodes only 2 bits, so `0`–`3`) —
|
|
39
|
+
* a malformed file's `Z000…` GlobalId is kept as the run's key but is not
|
|
40
|
+
* offered as a GUID.
|
|
41
|
+
*/
|
|
42
|
+
export function bareIfcGuid(key) {
|
|
43
|
+
const colon = key.indexOf(':');
|
|
44
|
+
const candidate = colon === -1 ? key : key.slice(0, colon);
|
|
45
|
+
return isValidIfcGuid(candidate) ? candidate : '';
|
|
46
|
+
}
|
|
47
|
+
export function clashTableRows(clashes, options = {}) {
|
|
48
|
+
const { reviews, storeyOf, modelNameOf, groups } = options;
|
|
49
|
+
const groupOf = new Map();
|
|
50
|
+
for (const group of groups ?? []) {
|
|
51
|
+
for (const member of group.members)
|
|
52
|
+
groupOf.set(member.id, group.title);
|
|
53
|
+
}
|
|
54
|
+
const modelName = (id) => modelNameOf?.(id) ?? id;
|
|
55
|
+
const storey = (ref) => storeyOf?.(ref) ?? '';
|
|
56
|
+
return clashes.map((clash) => {
|
|
57
|
+
const review = reviews?.get(clashReviewKey(clash));
|
|
58
|
+
return {
|
|
59
|
+
ClashId: clash.id,
|
|
60
|
+
Rule: clash.rule,
|
|
61
|
+
Status: clash.status,
|
|
62
|
+
Severity: clash.severity,
|
|
63
|
+
Review: review?.status ?? DEFAULT_CLASH_REVIEW_STATUS,
|
|
64
|
+
ReviewComment: review?.comment ?? '',
|
|
65
|
+
ReviewUpdatedAt: review?.updatedAt != null ? new Date(review.updatedAt).toISOString() : '',
|
|
66
|
+
GlobalIdA: bareIfcGuid(clash.a.key),
|
|
67
|
+
GlobalIdB: bareIfcGuid(clash.b.key),
|
|
68
|
+
KeyA: clash.a.key,
|
|
69
|
+
KeyB: clash.b.key,
|
|
70
|
+
ModelA: modelName(clash.a.model),
|
|
71
|
+
ModelB: modelName(clash.b.model),
|
|
72
|
+
TypeA: clash.a.tag,
|
|
73
|
+
TypeB: clash.b.tag,
|
|
74
|
+
NameA: clash.a.name ?? '',
|
|
75
|
+
NameB: clash.b.name ?? '',
|
|
76
|
+
StoreyA: storey(clash.a),
|
|
77
|
+
StoreyB: storey(clash.b),
|
|
78
|
+
PointX: clash.point[0],
|
|
79
|
+
PointY: clash.point[1],
|
|
80
|
+
PointZ: clash.point[2],
|
|
81
|
+
Distance: clash.distance,
|
|
82
|
+
DistanceKind: clash.distanceKind ?? '',
|
|
83
|
+
Group: groupOf.get(clash.id) ?? '',
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/export/table.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* rather than a rewrite.
|
|
9
9
|
*/
|
|
10
10
|
export * from './types.js';
|
|
11
|
+
export { clashTableRows, bareIfcGuid, CLASH_TABLE_COLUMNS, type ClashTableRow, type ClashTableOptions } from './export/table.js';
|
|
11
12
|
export { matchesSelector } from './selectors.js';
|
|
12
13
|
export { clashMemberKey, clashMemberSet, inClashSet } from './members.js';
|
|
13
14
|
export { DISCIPLINES, CLASH_RULE_PRESETS, inferClashSeverity, disciplineMatrixRules, rulesFromPresets, type Discipline, type DisciplineInfo, type ClashRulePreset, } from './disciplines.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* rather than a rewrite.
|
|
12
12
|
*/
|
|
13
13
|
export * from './types.js';
|
|
14
|
+
export { clashTableRows, bareIfcGuid, CLASH_TABLE_COLUMNS } from './export/table.js';
|
|
14
15
|
export { matchesSelector } from './selectors.js';
|
|
15
16
|
export { clashMemberKey, clashMemberSet, inClashSet } from './members.js';
|
|
16
17
|
export { DISCIPLINES, CLASH_RULE_PRESETS, inferClashSeverity, disciplineMatrixRules, rulesFromPresets, } from './disciplines.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAsE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAqB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAA0B,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,GAItB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,GAEb,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAA8C,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAsE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAqB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAA0B,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,qBAAqB,GAItB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,GAEb,MAAM,uBAAuB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/clash",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Clash detection for IFC-Lite — representation-agnostic core engine + source adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -35,17 +35,18 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@ifc-lite/bcf": "^4.0.0",
|
|
37
37
|
"@ifc-lite/encoding": "^2.2.0",
|
|
38
|
-
"@ifc-lite/
|
|
39
|
-
"@ifc-lite/
|
|
40
|
-
"@ifc-lite/ifcx": "^4.1.
|
|
41
|
-
"@ifc-lite/query": "^2.3.
|
|
42
|
-
"@ifc-lite/spatial": "^1.14.
|
|
43
|
-
"@ifc-lite/wasm": "^
|
|
38
|
+
"@ifc-lite/geometry": "^6.0.0",
|
|
39
|
+
"@ifc-lite/parser": "^6.2.1",
|
|
40
|
+
"@ifc-lite/ifcx": "^4.1.1",
|
|
41
|
+
"@ifc-lite/query": "^2.3.2",
|
|
42
|
+
"@ifc-lite/spatial": "^1.14.18",
|
|
43
|
+
"@ifc-lite/wasm": "^8.0.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"typescript": "^6.0.3",
|
|
47
47
|
"vitest": "^4.1.11",
|
|
48
|
-
"@ifc-lite/
|
|
48
|
+
"@ifc-lite/export": "^4.3.1",
|
|
49
|
+
"@ifc-lite/world-frame-fixtures": "^0.1.3"
|
|
49
50
|
},
|
|
50
51
|
"license": "MPL-2.0",
|
|
51
52
|
"author": "Louis True",
|