@ifc-lite/sdk 9.0.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/cost-store-backend.d.ts +2 -0
- package/dist/cost-store-backend.d.ts.map +1 -1
- package/dist/cost-store-backend.js.map +1 -1
- package/dist/group-store-backend.d.ts +5 -0
- package/dist/group-store-backend.d.ts.map +1 -0
- package/dist/group-store-backend.js +43 -0
- package/dist/group-store-backend.js.map +1 -0
- package/dist/headless-mutate.d.ts +0 -10
- package/dist/headless-mutate.d.ts.map +1 -1
- package/dist/headless-mutate.js +8 -2
- package/dist/headless-mutate.js.map +1 -1
- package/dist/host.d.ts +2 -0
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +34 -11
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/namespaces/ids-authoring.d.ts +74 -0
- package/dist/namespaces/ids-authoring.d.ts.map +1 -0
- package/dist/namespaces/ids-authoring.js +99 -0
- package/dist/namespaces/ids-authoring.js.map +1 -0
- package/dist/namespaces/ids.d.ts +4 -0
- package/dist/namespaces/ids.d.ts.map +1 -1
- package/dist/namespaces/ids.js +11 -0
- package/dist/namespaces/ids.js.map +1 -1
- package/dist/namespaces/mutate.d.ts +3 -3
- package/dist/namespaces/mutate.d.ts.map +1 -1
- package/dist/namespaces/mutate.js +7 -3
- package/dist/namespaces/mutate.js.map +1 -1
- package/dist/namespaces/store-group.d.ts +9 -0
- package/dist/namespaces/store-group.d.ts.map +1 -0
- package/dist/namespaces/store-group.js +31 -0
- package/dist/namespaces/store-group.js.map +1 -0
- package/dist/namespaces/store-modelling.d.ts +42 -1
- package/dist/namespaces/store-modelling.d.ts.map +1 -1
- package/dist/namespaces/store-modelling.js +119 -0
- package/dist/namespaces/store-modelling.js.map +1 -1
- package/dist/namespaces/store.d.ts +14 -13
- package/dist/namespaces/store.d.ts.map +1 -1
- package/dist/namespaces/store.js +10 -9
- package/dist/namespaces/store.js.map +1 -1
- package/dist/review/bcf.d.ts +10 -0
- package/dist/review/bcf.d.ts.map +1 -0
- package/dist/review/bcf.js +33 -0
- package/dist/review/bcf.js.map +1 -0
- package/dist/review/capture-budget.d.ts +6 -0
- package/dist/review/capture-budget.d.ts.map +1 -0
- package/dist/review/capture-budget.js +47 -0
- package/dist/review/capture-budget.js.map +1 -0
- package/dist/review/capture-retention.d.ts +47 -0
- package/dist/review/capture-retention.d.ts.map +1 -0
- package/dist/review/capture-retention.js +141 -0
- package/dist/review/capture-retention.js.map +1 -0
- package/dist/review/capture-types.d.ts +57 -0
- package/dist/review/capture-types.d.ts.map +1 -0
- package/dist/review/capture-types.js +5 -0
- package/dist/review/capture-types.js.map +1 -0
- package/dist/review/cards.d.ts +60 -0
- package/dist/review/cards.d.ts.map +1 -0
- package/dist/review/cards.js +90 -0
- package/dist/review/cards.js.map +1 -0
- package/dist/review/disciplines.d.ts +3 -0
- package/dist/review/disciplines.d.ts.map +1 -0
- package/dist/review/disciplines.js +10 -0
- package/dist/review/disciplines.js.map +1 -0
- package/dist/review/identity.d.ts +27 -0
- package/dist/review/identity.d.ts.map +1 -0
- package/dist/review/identity.js +42 -0
- package/dist/review/identity.js.map +1 -0
- package/dist/review/native-captures.d.ts +21 -0
- package/dist/review/native-captures.d.ts.map +1 -0
- package/dist/review/native-captures.js +325 -0
- package/dist/review/native-captures.js.map +1 -0
- package/dist/review/native-snapshot.d.ts +47 -0
- package/dist/review/native-snapshot.d.ts.map +1 -0
- package/dist/review/native-snapshot.js +98 -0
- package/dist/review/native-snapshot.js.map +1 -0
- package/dist/review/portable-analysis-binding.d.ts +29 -0
- package/dist/review/portable-analysis-binding.d.ts.map +1 -0
- package/dist/review/portable-analysis-binding.js +60 -0
- package/dist/review/portable-analysis-binding.js.map +1 -0
- package/dist/review/portable-analysis.d.ts +103 -0
- package/dist/review/portable-analysis.d.ts.map +1 -0
- package/dist/review/portable-analysis.js +119 -0
- package/dist/review/portable-analysis.js.map +1 -0
- package/dist/review/portable-automation-provenance.d.ts +32 -0
- package/dist/review/portable-automation-provenance.d.ts.map +1 -0
- package/dist/review/portable-automation-provenance.js +68 -0
- package/dist/review/portable-automation-provenance.js.map +1 -0
- package/dist/review/portable-ids-report.d.ts +125 -0
- package/dist/review/portable-ids-report.d.ts.map +1 -0
- package/dist/review/portable-ids-report.js +124 -0
- package/dist/review/portable-ids-report.js.map +1 -0
- package/dist/review/portable-manual-report.d.ts +66 -0
- package/dist/review/portable-manual-report.d.ts.map +1 -0
- package/dist/review/portable-manual-report.js +121 -0
- package/dist/review/portable-manual-report.js.map +1 -0
- package/dist/review/portable-report-metadata.d.ts +42 -0
- package/dist/review/portable-report-metadata.d.ts.map +1 -0
- package/dist/review/portable-report-metadata.js +41 -0
- package/dist/review/portable-report-metadata.js.map +1 -0
- package/dist/review/portable-saved-validation.d.ts +12 -0
- package/dist/review/portable-saved-validation.d.ts.map +1 -0
- package/dist/review/portable-saved-validation.js +32 -0
- package/dist/review/portable-saved-validation.js.map +1 -0
- package/dist/review/portable-validation-evidence.d.ts +53 -0
- package/dist/review/portable-validation-evidence.d.ts.map +1 -0
- package/dist/review/portable-validation-evidence.js +52 -0
- package/dist/review/portable-validation-evidence.js.map +1 -0
- package/dist/review/snapshot.d.ts +15 -0
- package/dist/review/snapshot.d.ts.map +1 -0
- package/dist/review/snapshot.js +25 -0
- package/dist/review/snapshot.js.map +1 -0
- package/dist/review/types.d.ts +167 -0
- package/dist/review/types.d.ts.map +1 -0
- package/dist/review/types.js +11 -0
- package/dist/review/types.js.map +1 -0
- package/dist/review/validation.d.ts +14 -0
- package/dist/review/validation.d.ts.map +1 -0
- package/dist/review/validation.js +57 -0
- package/dist/review/validation.js.map +1 -0
- package/dist/review.d.ts +27 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +23 -0
- package/dist/review.js.map +1 -0
- package/dist/schedule-types.d.ts +4 -0
- package/dist/schedule-types.d.ts.map +1 -1
- package/dist/store-align-command.d.ts +13 -0
- package/dist/store-align-command.d.ts.map +1 -0
- package/dist/store-align-command.js +31 -0
- package/dist/store-align-command.js.map +1 -0
- package/dist/store-authoring-exports.d.ts +10 -0
- package/dist/store-authoring-exports.d.ts.map +1 -0
- package/dist/store-authoring-exports.js +9 -0
- package/dist/store-authoring-exports.js.map +1 -0
- package/dist/store-authoring-types.d.ts +8 -0
- package/dist/store-authoring-types.d.ts.map +1 -0
- package/dist/store-authoring-types.js +2 -0
- package/dist/store-authoring-types.js.map +1 -0
- package/dist/store-group-types.d.ts +20 -0
- package/dist/store-group-types.d.ts.map +1 -0
- package/dist/store-group-types.js +2 -0
- package/dist/store-group-types.js.map +1 -0
- package/dist/store-modelling-backend.d.ts.map +1 -1
- package/dist/store-modelling-backend.js +61 -1
- package/dist/store-modelling-backend.js.map +1 -1
- package/dist/store-modelling-types.d.ts +31 -2
- package/dist/store-modelling-types.d.ts.map +1 -1
- package/dist/store-ordinary-backend.d.ts +10 -0
- package/dist/store-ordinary-backend.d.ts.map +1 -0
- package/dist/store-ordinary-backend.js +27 -0
- package/dist/store-ordinary-backend.js.map +1 -0
- package/dist/store-physical-backend.d.ts +5 -0
- package/dist/store-physical-backend.d.ts.map +1 -0
- package/dist/store-physical-backend.js +51 -0
- package/dist/store-physical-backend.js.map +1 -0
- package/dist/store-physical-types.d.ts +33 -0
- package/dist/store-physical-types.d.ts.map +1 -0
- package/dist/store-physical-types.js +5 -0
- package/dist/store-physical-types.js.map +1 -0
- package/dist/store-room-auto-all.d.ts +5 -0
- package/dist/store-room-auto-all.d.ts.map +1 -0
- package/dist/store-room-auto-all.js +94 -0
- package/dist/store-room-auto-all.js.map +1 -0
- package/dist/store-room-command.d.ts +91 -0
- package/dist/store-room-command.d.ts.map +1 -0
- package/dist/store-room-command.js +197 -0
- package/dist/store-room-command.js.map +1 -0
- package/dist/types.d.ts +12 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +21 -14
|
@@ -0,0 +1,32 @@
|
|
|
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 { isAutomationReportProvenance, sameReportEvidence } from './portable-automation-provenance.js';
|
|
5
|
+
import { validateIdsReportBlock } from './portable-ids-report.js';
|
|
6
|
+
import { validateManualReportBlock } from './portable-manual-report.js';
|
|
7
|
+
export function validateSavedReport(value) {
|
|
8
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
9
|
+
return false;
|
|
10
|
+
const entry = value;
|
|
11
|
+
if (typeof entry.id !== 'string' || !entry.id || typeof entry.name !== 'string' || !entry.name.trim())
|
|
12
|
+
return false;
|
|
13
|
+
if (entry.automation !== undefined && !isAutomationReportProvenance(entry.automation))
|
|
14
|
+
return false;
|
|
15
|
+
const raw = entry.snapshot;
|
|
16
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
|
|
17
|
+
return false;
|
|
18
|
+
const block = raw;
|
|
19
|
+
if (typeof block.id !== 'string' || !block.id || typeof block.generatedAt !== 'string' || !Number.isFinite(Date.parse(block.generatedAt)))
|
|
20
|
+
return false;
|
|
21
|
+
if (entry.automation !== undefined && block.automation !== undefined && !sameReportEvidence(entry.automation, block.automation))
|
|
22
|
+
return false;
|
|
23
|
+
const errors = [];
|
|
24
|
+
if (block.kind === 'ids-report')
|
|
25
|
+
validateIdsReportBlock(block, 'snapshot', errors);
|
|
26
|
+
else if (block.kind === 'manual-report')
|
|
27
|
+
validateManualReportBlock(block, 'snapshot', errors);
|
|
28
|
+
else
|
|
29
|
+
return false;
|
|
30
|
+
return errors.length === 0;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=portable-saved-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-saved-validation.js","sourceRoot":"","sources":["../../src/review/portable-saved-validation.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAmC,MAAM,qCAAqC,CAAC;AACxI,OAAO,EAAE,sBAAsB,EAAuB,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAA0B,MAAM,6BAA6B,CAAC;AAUhG,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACpH,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACpG,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChF,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxJ,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9I,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;SAC9E,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;QAAE,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;;QACzF,OAAO,KAAK,CAAC;IAClB,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/** Canonical saved failure evidence wire contract shared by document import and native Review (#7372). */
|
|
2
|
+
export declare const SAVED_VALIDATION_LIMITS: {
|
|
3
|
+
readonly rows: 2000;
|
|
4
|
+
readonly sourceRows: 50000;
|
|
5
|
+
readonly rowBytes: 8192;
|
|
6
|
+
readonly totalBytes: 1048576;
|
|
7
|
+
readonly text: 1024;
|
|
8
|
+
readonly checks: 1024;
|
|
9
|
+
readonly definitionBytes: 131072;
|
|
10
|
+
};
|
|
11
|
+
export interface SavedValidationElement {
|
|
12
|
+
/** Identity within this immutable capture, independent of ephemeral express/model ids. */
|
|
13
|
+
id: string;
|
|
14
|
+
specificationId: string;
|
|
15
|
+
GlobalId: string | null;
|
|
16
|
+
modelName: string | null;
|
|
17
|
+
modelFingerprint?: string;
|
|
18
|
+
ifcType: string;
|
|
19
|
+
Name?: string;
|
|
20
|
+
title: string;
|
|
21
|
+
nativeStatus: 'failed' | 'warning';
|
|
22
|
+
detail: string[];
|
|
23
|
+
/** #7371: digest of the failed requirements and actual values, independent of message language. */
|
|
24
|
+
signature?: string;
|
|
25
|
+
}
|
|
26
|
+
/** #7371: exactly what the native run checked, as the run reconciler compares it. */
|
|
27
|
+
export interface SavedValidationDefinition {
|
|
28
|
+
/** Digest of the whole IDS document or rule-set content. */
|
|
29
|
+
source: string;
|
|
30
|
+
/** Digest of each check (specification, plus rule content for rules), by native specification id. */
|
|
31
|
+
checks: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
digest: string;
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
36
|
+
export interface SavedValidationElements {
|
|
37
|
+
version: 1;
|
|
38
|
+
rows: SavedValidationElement[];
|
|
39
|
+
/** Failed/warning entity rows encountered before the scan cap, not a population total. */
|
|
40
|
+
observed: number;
|
|
41
|
+
/** Encountered failure rows that snapshot limits could not retain. */
|
|
42
|
+
omitted: number;
|
|
43
|
+
/** Native source coverage and snapshot-limit disclosures, never inferred resolution. */
|
|
44
|
+
gaps: string[];
|
|
45
|
+
/** Absent in snapshots saved before #7371 or when the run's content was not recorded: such rows cannot be re-examined. */
|
|
46
|
+
definition?: SavedValidationDefinition;
|
|
47
|
+
}
|
|
48
|
+
export declare function isSavedValidationElement(value: unknown): value is SavedValidationElement;
|
|
49
|
+
export declare function validateSavedValidationElements(value: unknown, at: string, errors: Array<{
|
|
50
|
+
path: string;
|
|
51
|
+
message: string;
|
|
52
|
+
}>): void;
|
|
53
|
+
//# sourceMappingURL=portable-validation-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-validation-evidence.d.ts","sourceRoot":"","sources":["../../src/review/portable-validation-evidence.ts"],"names":[],"mappings":"AAIA,0GAA0G;AAC1G,eAAO,MAAM,uBAAuB;;;;;;;;CAG1B,CAAC;AAWX,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,MAAM,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AACD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,sBAAsB,EAAE,CAAC;IAC/B,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0HAA0H;IAC1H,UAAU,CAAC,EAAE,yBAAyB,CAAC;CACxC;AAgBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAQxF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAQlI"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
/** Canonical saved failure evidence wire contract shared by document import and native Review (#7372). */
|
|
5
|
+
export const SAVED_VALIDATION_LIMITS = {
|
|
6
|
+
rows: 2_000, sourceRows: 50_000, rowBytes: 8_192, totalBytes: 1_048_576,
|
|
7
|
+
text: 1_024, checks: 1_024, definitionBytes: 131_072,
|
|
8
|
+
};
|
|
9
|
+
const SAVED_ELEMENT_LIMIT = SAVED_VALIDATION_LIMITS.rows;
|
|
10
|
+
const ROW_BYTE_LIMIT = SAVED_VALIDATION_LIMITS.rowBytes;
|
|
11
|
+
const TOTAL_BYTE_LIMIT = SAVED_VALIDATION_LIMITS.totalBytes;
|
|
12
|
+
const TEXT_LIMIT = SAVED_VALIDATION_LIMITS.text;
|
|
13
|
+
const CHECK_LIMIT = SAVED_VALIDATION_LIMITS.checks;
|
|
14
|
+
const DEFINITION_BYTE_LIMIT = SAVED_VALIDATION_LIMITS.definitionBytes;
|
|
15
|
+
const DIGEST = /^xxh64:[0-9a-f]{16}$/;
|
|
16
|
+
const EVIDENCE_FIELDS = new Set(['version', 'rows', 'observed', 'omitted', 'gaps', 'definition']);
|
|
17
|
+
const ROW_FIELDS = new Set(['id', 'specificationId', 'GlobalId', 'modelName', 'modelFingerprint', 'ifcType', 'Name', 'title', 'nativeStatus', 'detail', 'signature']);
|
|
18
|
+
const digest = (value) => typeof value === 'string' && DIGEST.test(value);
|
|
19
|
+
function validDefinition(value) {
|
|
20
|
+
if (value === undefined)
|
|
21
|
+
return true;
|
|
22
|
+
if (!record(value) || Object.keys(value).some(key => key !== 'source' && key !== 'checks') || !digest(value.source)
|
|
23
|
+
|| !Array.isArray(value.checks) || value.checks.length > CHECK_LIMIT
|
|
24
|
+
|| new TextEncoder().encode(JSON.stringify(value)).byteLength > DEFINITION_BYTE_LIMIT)
|
|
25
|
+
return false;
|
|
26
|
+
const checks = value.checks;
|
|
27
|
+
return checks.every(check => record(check) && Object.keys(check).length === 2 && text(check.id) && digest(check.digest))
|
|
28
|
+
&& new Set(checks.map(check => check.id)).size === checks.length;
|
|
29
|
+
}
|
|
30
|
+
const record = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
|
|
31
|
+
const text = (value, max = TEXT_LIMIT) => typeof value === 'string' && value.length > 0 && value.length <= max;
|
|
32
|
+
const count = (value) => Number.isSafeInteger(value) && Number(value) >= 0;
|
|
33
|
+
export function isSavedValidationElement(value) {
|
|
34
|
+
if (!record(value) || Object.keys(value).some(key => !ROW_FIELDS.has(key)) || !text(value.id, 128) || !text(value.specificationId) || (value.GlobalId !== null && !text(value.GlobalId, 200))
|
|
35
|
+
|| (value.modelName !== null && !text(value.modelName)) || (value.modelFingerprint !== undefined && !text(value.modelFingerprint, 256))
|
|
36
|
+
|| !text(value.ifcType, 200) || (value.Name !== undefined && (typeof value.Name !== 'string' || value.Name.length > TEXT_LIMIT))
|
|
37
|
+
|| typeof value.title !== 'string' || value.title.length > TEXT_LIMIT
|
|
38
|
+
|| (value.nativeStatus !== 'failed' && value.nativeStatus !== 'warning') || !Array.isArray(value.detail)
|
|
39
|
+
|| value.detail.length > 8 || !value.detail.every(line => text(line)) || (value.signature !== undefined && !digest(value.signature)))
|
|
40
|
+
return false;
|
|
41
|
+
return new TextEncoder().encode(JSON.stringify(value)).byteLength <= ROW_BYTE_LIMIT;
|
|
42
|
+
}
|
|
43
|
+
export function validateSavedValidationElements(value, at, errors) {
|
|
44
|
+
if (!record(value) || Object.keys(value).some(key => !EVIDENCE_FIELDS.has(key)) || value.version !== 1 || !Array.isArray(value.rows) || value.rows.length > SAVED_ELEMENT_LIMIT
|
|
45
|
+
|| !count(value.observed) || !count(value.omitted) || value.observed !== value.rows.length + value.omitted
|
|
46
|
+
|| !Array.isArray(value.gaps) || value.gaps.length > 16 || !value.gaps.every(gap => text(gap))
|
|
47
|
+
|| !value.rows.every(isSavedValidationElement) || !validDefinition(value.definition) || new Set(value.rows.map(row => row.id)).size !== value.rows.length
|
|
48
|
+
|| new TextEncoder().encode(JSON.stringify(value)).byteLength > TOTAL_BYTE_LIMIT) {
|
|
49
|
+
errors.push({ path: at, message: 'expected bounded version-1 saved validation element evidence' });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=portable-validation-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-validation-evidence.js","sourceRoot":"","sources":["../../src/review/portable-validation-evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type CoordinationCard, type ReviewTotals } from './cards.js';
|
|
2
|
+
import type { FindingRun, FindingSource, FindingSourceKind, ReviewFinding, ReviewModel, ReviewMessage } from './types.js';
|
|
3
|
+
export interface ReviewSnapshot<Message extends ReviewMessage = ReviewMessage> {
|
|
4
|
+
runs: FindingRun<Message>[];
|
|
5
|
+
findings: ReviewFinding<Message>[];
|
|
6
|
+
cards: CoordinationCard<Message>[];
|
|
7
|
+
totals: ReviewTotals;
|
|
8
|
+
/** Failed source contributions remain explicit rather than a clean empty result. */
|
|
9
|
+
failed: Array<{
|
|
10
|
+
source: FindingSourceKind;
|
|
11
|
+
message: string;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
export declare function snapshotFrom<Message extends ReviewMessage>(sources: readonly FindingSource<Message>[], models: readonly ReviewModel[], onFailure?: (source: FindingSourceKind, error: unknown) => void): ReviewSnapshot<Message>;
|
|
15
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/review/snapshot.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1H,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa;IAC3E,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,oFAAoF;IACpF,MAAM,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,aAAa,EAAE,OAAO,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAgBhO"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 { buildCards } from './cards.js';
|
|
5
|
+
export function snapshotFrom(sources, models, onFailure) {
|
|
6
|
+
const runs = [];
|
|
7
|
+
const findings = [];
|
|
8
|
+
const failed = [];
|
|
9
|
+
for (const source of sources) {
|
|
10
|
+
try {
|
|
11
|
+
const result = source.collect(models);
|
|
12
|
+
for (const run of result.runs)
|
|
13
|
+
runs.push(run);
|
|
14
|
+
for (const finding of result.findings)
|
|
15
|
+
findings.push(finding);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
onFailure?.(source.kind, error);
|
|
19
|
+
failed.push({ source: source.kind, message: error instanceof Error ? error.message : String(error) });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const { cards, totals } = buildCards(findings, models);
|
|
23
|
+
return { runs, findings, cards, totals, failed };
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/review/snapshot.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,UAAU,EAA4C,MAAM,YAAY,CAAC;AAYlF,MAAM,UAAU,YAAY,CAAgC,OAA0C,EAAE,MAA8B,EAAE,SAA+D;IACrM,MAAM,IAAI,GAA0B,EAAE,CAAC;IACvC,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified coordination findings (viewer AI P18, #6922).
|
|
3
|
+
*
|
|
4
|
+
* Every native analysis keeps its own run, status vocabulary and panel. The
|
|
5
|
+
* review workspace only *normalises* what those analyses already produced into
|
|
6
|
+
* one finding shape so findings that point at the same validated elements can
|
|
7
|
+
* be read together. Nothing here re-runs, re-scores or rewrites a native
|
|
8
|
+
* result: `nativeStatus` is copied verbatim and `evidence` points back to the
|
|
9
|
+
* exact native row so the original stays one click away.
|
|
10
|
+
*/
|
|
11
|
+
/** Host rendering metadata; the viewer instantiates this with its catalogued key type. */
|
|
12
|
+
export interface ReviewMessage {
|
|
13
|
+
labelKey: string;
|
|
14
|
+
params?: Readonly<Record<string, string | number>>;
|
|
15
|
+
}
|
|
16
|
+
/** The analyses a finding can come from. */
|
|
17
|
+
export type FindingSourceKind = 'clash' | 'validation' | 'comparison' | 'bcf' | 'linked';
|
|
18
|
+
export declare const FINDING_SOURCE_KINDS: readonly FindingSourceKind[];
|
|
19
|
+
/**
|
|
20
|
+
* One native run (or record set). `current` is the result held live in the
|
|
21
|
+
* viewer now; `historical` is saved evidence (a clash baseline, a saved
|
|
22
|
+
* comparison). Historical evidence never becomes current by matching.
|
|
23
|
+
*/
|
|
24
|
+
export interface FindingRun<Message extends ReviewMessage = ReviewMessage> {
|
|
25
|
+
/** Unique within one review snapshot. */
|
|
26
|
+
id: string;
|
|
27
|
+
source: FindingSourceKind;
|
|
28
|
+
temporal: 'current' | 'historical';
|
|
29
|
+
/** Native label (IDS title, rule set, comparison name, BCF project). */
|
|
30
|
+
label: string;
|
|
31
|
+
/** ISO time the native run finished or the evidence was saved; null when the source records none. */
|
|
32
|
+
capturedAt: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* The run evaluated its whole declared population: no cap, no failed check,
|
|
35
|
+
* no edits since it ran. Only a complete current run can confirm that a
|
|
36
|
+
* historical finding is no longer observed.
|
|
37
|
+
*/
|
|
38
|
+
complete: boolean;
|
|
39
|
+
/** Why the run is not complete; `detail` carries native wording such as a truncation reason. */
|
|
40
|
+
incomplete: RunGap<Message>[];
|
|
41
|
+
/** Durable names of the models the run evaluated. */
|
|
42
|
+
models: string[];
|
|
43
|
+
}
|
|
44
|
+
export type RunGapCode = 'truncated' | 'stale' | 'check-error' | 'sets-truncated' | 'partial-source' | 'geometry-unavailable' | 'placement-only' | 'excluded-classes';
|
|
45
|
+
export declare const RUN_GAP_CODES: readonly RunGapCode[];
|
|
46
|
+
/** `detail` is native wording shown verbatim; `message` is a catalogued sentence translated where it is rendered. */
|
|
47
|
+
export interface RunGap<Message extends ReviewMessage = ReviewMessage> {
|
|
48
|
+
code: RunGapCode;
|
|
49
|
+
detail?: string;
|
|
50
|
+
message?: Message;
|
|
51
|
+
}
|
|
52
|
+
/** An element a finding refers to, as the native source names it. */
|
|
53
|
+
export interface FindingElement {
|
|
54
|
+
/** IFC GlobalId. */
|
|
55
|
+
globalId: string;
|
|
56
|
+
/** Live viewer model id when the native source names one; null when it does not (BCF components, linked records). */
|
|
57
|
+
modelId: string | null;
|
|
58
|
+
/** Durable model name (file name) when known; historical evidence carries only this. */
|
|
59
|
+
modelName: string | null;
|
|
60
|
+
ifcType?: string;
|
|
61
|
+
name?: string;
|
|
62
|
+
/** The native source itself could not identify the element; it is never merged by GlobalId alone. */
|
|
63
|
+
nativeUnresolved?: 'ambiguous' | 'unmatched';
|
|
64
|
+
}
|
|
65
|
+
/** Exactly where the original evidence lives, so a click can open it. */
|
|
66
|
+
export type FindingEvidence = {
|
|
67
|
+
kind: 'clash';
|
|
68
|
+
clashId: string;
|
|
69
|
+
occurrenceKey: string;
|
|
70
|
+
reviewKey: string;
|
|
71
|
+
} | {
|
|
72
|
+
kind: 'clash-baseline';
|
|
73
|
+
reviewKey: string;
|
|
74
|
+
} | {
|
|
75
|
+
kind: 'clash-group-application';
|
|
76
|
+
applicationId: string;
|
|
77
|
+
groupId: string;
|
|
78
|
+
} | {
|
|
79
|
+
kind: 'saved-validation';
|
|
80
|
+
reportId: string;
|
|
81
|
+
rowId: string;
|
|
82
|
+
} | {
|
|
83
|
+
kind: 'validation';
|
|
84
|
+
specificationId: string;
|
|
85
|
+
modelId: string;
|
|
86
|
+
expressId: number;
|
|
87
|
+
} | {
|
|
88
|
+
kind: 'run-reconciliation';
|
|
89
|
+
baseRunId: string;
|
|
90
|
+
headRunId: string;
|
|
91
|
+
identity: string;
|
|
92
|
+
} | {
|
|
93
|
+
kind: 'comparison';
|
|
94
|
+
key: string;
|
|
95
|
+
} | {
|
|
96
|
+
kind: 'saved-comparison';
|
|
97
|
+
comparisonId: string;
|
|
98
|
+
key: string;
|
|
99
|
+
} | {
|
|
100
|
+
kind: 'bcf';
|
|
101
|
+
topicGuid: string;
|
|
102
|
+
} | {
|
|
103
|
+
kind: 'linked';
|
|
104
|
+
resourceId: string;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Lifecycle of one finding relative to the other runs of its own source.
|
|
108
|
+
* `observed`: current, no compatible earlier run to compare with.
|
|
109
|
+
* `new` / `persistent`: current, absent from / present in a compatible earlier run.
|
|
110
|
+
* On a historical finding, `persistent` means the compatible current run still reports it.
|
|
111
|
+
* `changed`: still reported by the compatible other run, with different failed requirements or values.
|
|
112
|
+
* `no-longer-observed`: historical only, and a complete compatible current run
|
|
113
|
+
* re-examined it (a resolution *candidate*, never a resolution).
|
|
114
|
+
* `not-evaluated`: historical only, and no complete compatible current run
|
|
115
|
+
* could have seen it.
|
|
116
|
+
* `record`: a coordination record (BCF topic or grouping receipt) whose native status is authoritative.
|
|
117
|
+
*/
|
|
118
|
+
export type FindingLifecycle = 'observed' | 'new' | 'persistent' | 'changed' | 'no-longer-observed' | 'not-evaluated' | 'record';
|
|
119
|
+
export interface ReviewFinding<Message extends ReviewMessage = ReviewMessage> {
|
|
120
|
+
/** Unique per run: `${run.id}#${native id}`. */
|
|
121
|
+
id: string;
|
|
122
|
+
/** Run-independent identity used to pair the same finding across runs of one source. */
|
|
123
|
+
lineage: string;
|
|
124
|
+
source: FindingSourceKind;
|
|
125
|
+
run: FindingRun<Message>;
|
|
126
|
+
elements: FindingElement[];
|
|
127
|
+
/** Native status, copied verbatim (clash class, IDS outcome, change state, topic status, severity). */
|
|
128
|
+
nativeStatus: string;
|
|
129
|
+
/** Short native description: rule, specification, change kinds, topic title. */
|
|
130
|
+
title: string;
|
|
131
|
+
/** Extra native lines for the detail view (failed requirements, changed components). */
|
|
132
|
+
detail: string[];
|
|
133
|
+
/** Catalogued explanations (why a historical finding was or was not re-checked), translated where rendered. */
|
|
134
|
+
notes?: Message[];
|
|
135
|
+
lifecycle: FindingLifecycle;
|
|
136
|
+
/** Discipline candidates from the native taxonomy; overlapping and empty lists stay as given. */
|
|
137
|
+
disciplines: string[];
|
|
138
|
+
/** Storey names when the native source or the live model can supply them. */
|
|
139
|
+
storeys: string[];
|
|
140
|
+
evidence: FindingEvidence;
|
|
141
|
+
}
|
|
142
|
+
/** What a source contributes to one review snapshot. */
|
|
143
|
+
export interface FindingSourceResult<Message extends ReviewMessage = ReviewMessage> {
|
|
144
|
+
runs: FindingRun<Message>[];
|
|
145
|
+
findings: ReviewFinding<Message>[];
|
|
146
|
+
}
|
|
147
|
+
/** A model as the review layer sees it: identity plus a GlobalId lookup. */
|
|
148
|
+
export interface ReviewModel {
|
|
149
|
+
id: string;
|
|
150
|
+
name: string;
|
|
151
|
+
/** Returns a positive express id, or a value <= 0 when the GlobalId is not in the model. */
|
|
152
|
+
expressIdOf(globalId: string): number;
|
|
153
|
+
globalIdOf(expressId: number): string;
|
|
154
|
+
storeyOf?(expressId: number): string | null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* The seam other packages plug into. A source reads its own native state
|
|
158
|
+
* (store slices, libraries) and returns normalised findings; the review layer
|
|
159
|
+
* never reaches into a source's internals. P10 clash groups, P16 semantic
|
|
160
|
+
* records and P17 comparison reconciliation add or replace an entry in
|
|
161
|
+
* `FINDING_SOURCES` (`sources/index.ts`) instead of editing the card logic.
|
|
162
|
+
*/
|
|
163
|
+
export interface FindingSource<Message extends ReviewMessage = ReviewMessage> {
|
|
164
|
+
kind: FindingSourceKind;
|
|
165
|
+
collect(models: readonly ReviewModel[]): FindingSourceResult<Message>;
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/review/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
/** Keyed by every source kind, so the runtime list cannot drift from `FindingSourceKind`. */
|
|
5
|
+
const FINDING_SOURCE_KIND_SET = { clash: true, validation: true, comparison: true, bcf: true, linked: true };
|
|
6
|
+
export const FINDING_SOURCE_KINDS = Object.keys(FINDING_SOURCE_KIND_SET);
|
|
7
|
+
/** Keyed by every gap code, so adding a code to `RunGapCode` without listing it here fails the typecheck. */
|
|
8
|
+
const RUN_GAP_CODE_SET = { truncated: true, stale: true, 'check-error': true, 'sets-truncated': true, 'partial-source': true,
|
|
9
|
+
'geometry-unavailable': true, 'placement-only': true, 'excluded-classes': true };
|
|
10
|
+
export const RUN_GAP_CODES = Object.keys(RUN_GAP_CODE_SET);
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/review/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAqB/D,6FAA6F;AAC7F,MAAM,uBAAuB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAqD,CAAC;AAChK,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAiC,CAAC;AA8BzG,6GAA6G;AAC7G,MAAM,gBAAgB,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI;IAC1H,sBAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAA8C,CAAC;AAC/H,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IDS / information-validation findings: one finding per failed
|
|
3
|
+
* (specification, element) pair of the live report. Immutable saved failure
|
|
4
|
+
* facts are projected separately by saved-validation; count-only older
|
|
5
|
+
* snapshots never acquire invented element rows.
|
|
6
|
+
*/
|
|
7
|
+
import type { ValidationReport } from '@ifc-lite/ids';
|
|
8
|
+
import type { ReviewMessage, FindingSourceResult, ReviewModel } from './types.js';
|
|
9
|
+
export interface ValidationFindingInput {
|
|
10
|
+
report: ValidationReport;
|
|
11
|
+
stale: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function validationFindings<Message extends ReviewMessage = ReviewMessage>(input: ValidationFindingInput | null, models: readonly ReviewModel[]): FindingSourceResult<Message>;
|
|
14
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/review/validation.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAc,mBAAmB,EAAiB,WAAW,EAAU,MAAM,YAAY,CAAC;AAGrH,MAAM,WAAW,sBAAsB;IAAG,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE;AAMpF,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CA8CpL"}
|
|
@@ -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
|
+
import { typeDisciplines } from './disciplines.js';
|
|
5
|
+
function sourceLabel(report) {
|
|
6
|
+
return report.source.kind === 'ids' ? report.source.document.info.title || 'IDS' : report.source.ruleSet.name;
|
|
7
|
+
}
|
|
8
|
+
export function validationFindings(input, models) {
|
|
9
|
+
if (!input)
|
|
10
|
+
return { runs: [], findings: [] };
|
|
11
|
+
const { report, stale } = input;
|
|
12
|
+
const names = new Map(models.map(model => [model.id, model.name]));
|
|
13
|
+
const incomplete = [
|
|
14
|
+
...report.specificationResults.filter(spec => spec.error).map(spec => ({ code: 'check-error', detail: `${spec.specification.name}: ${spec.error}` })),
|
|
15
|
+
...report.specificationResults.filter(spec => spec.setResultsTruncated).map(spec => ({ code: 'sets-truncated', detail: spec.specification.name })),
|
|
16
|
+
// #7372: native maxEntities keeps the full applicability population while
|
|
17
|
+
// passed+failed counts only evaluated elements. Hidden passing detail rows
|
|
18
|
+
// retain those counts and therefore do not imply incomplete evaluation.
|
|
19
|
+
...report.specificationResults.filter(spec => spec.passedCount + spec.failedCount < spec.applicableCount)
|
|
20
|
+
.map(spec => ({ code: 'truncated',
|
|
21
|
+
detail: `${spec.specification.name}: ${spec.passedCount + spec.failedCount}/${spec.applicableCount} applicable elements evaluated` })),
|
|
22
|
+
...(stale ? [{ code: 'stale' }] : []),
|
|
23
|
+
];
|
|
24
|
+
const timestamp = report.timestamp instanceof Date && Number.isFinite(report.timestamp.getTime()) ? report.timestamp.toISOString() : null;
|
|
25
|
+
const run = {
|
|
26
|
+
id: 'validation:current', source: 'validation', temporal: 'current', label: sourceLabel(report), capturedAt: timestamp,
|
|
27
|
+
complete: incomplete.length === 0, incomplete,
|
|
28
|
+
models: report.modelInfo.flatMap(info => names.get(info.modelId) ?? []),
|
|
29
|
+
};
|
|
30
|
+
const findings = [];
|
|
31
|
+
for (const spec of report.specificationResults) {
|
|
32
|
+
for (const entity of spec.entityResults) {
|
|
33
|
+
if (entity.passed)
|
|
34
|
+
continue;
|
|
35
|
+
const model = models.find(candidate => candidate.id === entity.modelId);
|
|
36
|
+
const globalId = entity.globalId ?? (model ? model.globalIdOf(entity.expressId) : '');
|
|
37
|
+
const storey = model?.storeyOf?.(entity.expressId) ?? null;
|
|
38
|
+
const failed = entity.requirementResults.filter(requirement => requirement.status === 'fail');
|
|
39
|
+
findings.push({
|
|
40
|
+
id: `${run.id}#${spec.specification.id}#${entity.modelId}#${entity.expressId}`,
|
|
41
|
+
lineage: `validation|${run.label}|${spec.specification.id}|${globalId || `${entity.modelId}#${entity.expressId}`}`,
|
|
42
|
+
source: 'validation', run,
|
|
43
|
+
elements: globalId ? [{ globalId, modelId: entity.modelId, modelName: names.get(entity.modelId) ?? null,
|
|
44
|
+
ifcType: entity.entityType, ...(entity.entityName ? { name: entity.entityName } : {}) }] : [],
|
|
45
|
+
nativeStatus: spec.specification.severity === 'warning' ? 'warning' : 'failed',
|
|
46
|
+
title: spec.specification.name,
|
|
47
|
+
detail: failed.slice(0, 8).map(requirement => [requirement.checkedDescription, requirement.failureReason,
|
|
48
|
+
requirement.actualValue !== undefined ? `actual ${requirement.actualValue}` : '',
|
|
49
|
+
requirement.expectedValue !== undefined ? `expected ${requirement.expectedValue}` : ''].filter(Boolean).join(' · ')),
|
|
50
|
+
lifecycle: 'observed', disciplines: typeDisciplines(entity.entityType), storeys: storey ? [storey] : [],
|
|
51
|
+
evidence: { kind: 'validation', specificationId: spec.specification.id, modelId: entity.modelId, expressId: entity.expressId },
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { runs: [run], findings };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/review/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/review.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Pure read-only coordination facts shared by native hosts and the viewer (#7372). */
|
|
2
|
+
export { FINDING_SOURCE_KINDS, RUN_GAP_CODES } from './review/types.js';
|
|
3
|
+
export type { FindingSourceKind, FindingRun, RunGapCode, RunGap, FindingElement, FindingEvidence, FindingLifecycle, ReviewFinding, FindingSourceResult, ReviewModel, FindingSource } from './review/types.js';
|
|
4
|
+
export { buildCards, totalsForCards } from './review/cards.js';
|
|
5
|
+
export type { CardElement, CardState, CoordinationCard, ReviewTotals } from './review/cards.js';
|
|
6
|
+
export { elementKey, resolveElement } from './review/identity.js';
|
|
7
|
+
export { validationFindings } from './review/validation.js';
|
|
8
|
+
export { bcfFindings } from './review/bcf.js';
|
|
9
|
+
export { typeDisciplines } from './review/disciplines.js';
|
|
10
|
+
export { snapshotFrom, type ReviewSnapshot } from './review/snapshot.js';
|
|
11
|
+
export { NativeReviewCaptures } from './review/native-captures.js';
|
|
12
|
+
export type { NativeReviewModel, ReviewCaptureToken } from './review/capture-types.js';
|
|
13
|
+
export { readNativeReview } from './review/native-snapshot.js';
|
|
14
|
+
export { decodeSavedAnalysisRun } from './review/portable-analysis.js';
|
|
15
|
+
export type { SavedAnalysisRun, SavedClashRef, SavedDistance, SavedRunClash, SavedRunModel, SavedRunValidationReport } from './review/portable-analysis.js';
|
|
16
|
+
export { SAVED_VALIDATION_LIMITS, isSavedValidationElement, validateSavedValidationElements } from './review/portable-validation-evidence.js';
|
|
17
|
+
export type { SavedValidationElement, SavedValidationDefinition, SavedValidationElements } from './review/portable-validation-evidence.js';
|
|
18
|
+
export { bindSavedAnalysisModels } from './review/portable-analysis-binding.js';
|
|
19
|
+
export type { BindRefusalCode, BindRefusal } from './review/portable-analysis-binding.js';
|
|
20
|
+
export * from './review/portable-automation-provenance.js';
|
|
21
|
+
export * from './review/portable-report-metadata.js';
|
|
22
|
+
export { reportBlockSourceKind, validateIdsReportBlock } from './review/portable-ids-report.js';
|
|
23
|
+
export type { IdsReportCheckSummary, IdsReportRuleSummary, IdsReportCardinality, IdsReportVariant, IdsReportBlock } from './review/portable-ids-report.js';
|
|
24
|
+
export { validateManualReportBlock } from './review/portable-manual-report.js';
|
|
25
|
+
export type { ManualReportVerdict, ManualReportCounts, ManualReportItem, ManualReportBlock } from './review/portable-manual-report.js';
|
|
26
|
+
export * from './review/portable-saved-validation.js';
|
|
27
|
+
//# sourceMappingURL=review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAIA,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAC9F,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE5J,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC9I,YAAY,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAE3I,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAE1F,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAChG,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC3J,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvI,cAAc,uCAAuC,CAAC"}
|
package/dist/review.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
/** Pure read-only coordination facts shared by native hosts and the viewer (#7372). */
|
|
5
|
+
export { FINDING_SOURCE_KINDS, RUN_GAP_CODES } from './review/types.js';
|
|
6
|
+
export { buildCards, totalsForCards } from './review/cards.js';
|
|
7
|
+
export { elementKey, resolveElement } from './review/identity.js';
|
|
8
|
+
export { validationFindings } from './review/validation.js';
|
|
9
|
+
export { bcfFindings } from './review/bcf.js';
|
|
10
|
+
export { typeDisciplines } from './review/disciplines.js';
|
|
11
|
+
export { snapshotFrom } from './review/snapshot.js';
|
|
12
|
+
export { NativeReviewCaptures } from './review/native-captures.js';
|
|
13
|
+
export { readNativeReview } from './review/native-snapshot.js';
|
|
14
|
+
// Shared portable wire contract consumed by viewer save/import and native Review (#7372).
|
|
15
|
+
export { decodeSavedAnalysisRun } from './review/portable-analysis.js';
|
|
16
|
+
export { SAVED_VALIDATION_LIMITS, isSavedValidationElement, validateSavedValidationElements } from './review/portable-validation-evidence.js';
|
|
17
|
+
export { bindSavedAnalysisModels } from './review/portable-analysis-binding.js';
|
|
18
|
+
export * from './review/portable-automation-provenance.js';
|
|
19
|
+
export * from './review/portable-report-metadata.js';
|
|
20
|
+
export { reportBlockSourceKind, validateIdsReportBlock } from './review/portable-ids-report.js';
|
|
21
|
+
export { validateManualReportBlock } from './review/portable-manual-report.js';
|
|
22
|
+
export * from './review/portable-saved-validation.js';
|
|
23
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,uFAAuF;AACvF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGxE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAuB,MAAM,sBAAsB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,0FAA0F;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAG9I,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAGhF,cAAc,4CAA4C,CAAC;AAC3D,cAAc,sCAAsC,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEhG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,cAAc,uCAAuC,CAAC"}
|
package/dist/schedule-types.d.ts
CHANGED
|
@@ -48,8 +48,12 @@ export interface ScheduleTaskData {
|
|
|
48
48
|
taskTime?: ScheduleTaskTimeData;
|
|
49
49
|
parentGlobalId?: string;
|
|
50
50
|
childGlobalIds: string[];
|
|
51
|
+
/** Products assigned via IfcRelAssignsToProcess (the task's inputs). */
|
|
51
52
|
productExpressIds: number[];
|
|
52
53
|
productGlobalIds: string[];
|
|
54
|
+
/** Products the task outputs via IfcRelAssignsToProduct (#6749). Absent ≡ `[]`. */
|
|
55
|
+
outputProductExpressIds?: number[];
|
|
56
|
+
outputProductGlobalIds?: string[];
|
|
53
57
|
controllingScheduleGlobalIds: string[];
|
|
54
58
|
/** IfcWorkCalendar globalIds assigned to this task via IfcRelAssignsToControl. */
|
|
55
59
|
calendarGlobalIds?: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule-types.d.ts","sourceRoot":"","sources":["../src/schedule-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,GACjE,aAAa,GAAG,YAAY,CAAC;AAEjC,MAAM,MAAM,wBAAwB,GAChC,UAAU,GAAG,aAAa,GAAG,YAAY,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4BAA4B,EAAE,MAAM,EAAE,CAAC;IACvC,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,oBAAoB,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,cAAc,GAAG,UAAU,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,2FAA2F;IAC3F,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED,2EAA2E;AAC3E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAClC,aAAa,EAAE,gBAAgB,EAAE,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,0EAA0E;IAC1E,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAC/C,wCAAwC;IACxC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAC5C,0DAA0D;IAC1D,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACpD,oDAAoD;IACpD,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAAC;CACrD"}
|
|
1
|
+
{"version":3,"file":"schedule-types.d.ts","sourceRoot":"","sources":["../src/schedule-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AlignMode, type PlanBox } from '@ifc-lite/create';
|
|
2
|
+
import type { CostStoreModelResolution } from './cost-store-backend.js';
|
|
3
|
+
import type { EntityRef } from './types.js';
|
|
4
|
+
export type AlignGeometryProvider = (model: CostStoreModelResolution, storeyId: number, ids: readonly number[]) => Promise<ReadonlyMap<number, PlanBox>>;
|
|
5
|
+
export interface AlignCommandHost {
|
|
6
|
+
historyHead(modelId: string): string;
|
|
7
|
+
record<T>(modelId: string, write: (model: CostStoreModelResolution) => T): T;
|
|
8
|
+
}
|
|
9
|
+
/** Native preparation completes before the one synchronous atomic history record. */
|
|
10
|
+
export declare function createAlignCommandBackend(resolve: (modelId: string) => CostStoreModelResolution, provide: AlignGeometryProvider, host: AlignCommandHost): {
|
|
11
|
+
alignElements(modelId: string, reference: number, targets: readonly number[], mode: AlignMode): Promise<EntityRef[]>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=store-align-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-align-command.d.ts","sourceRoot":"","sources":["../src/store-align-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgD,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACzJ,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,CAAC,GAAG,CAAC,CAAC;CAC9E;AAED,qFAAqF;AACrF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,wBAAwB,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,gBAAgB;2BAIvH,MAAM,aAAa,MAAM,WAAW,SAAS,MAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;EAe7H"}
|