@uwmd/core 1.3.0 → 1.6.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/browser.d.ts +14 -6
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +8 -4
- package/dist/browser.js.map +1 -1
- package/dist/capital-stack.d.ts +116 -0
- package/dist/capital-stack.d.ts.map +1 -0
- package/dist/capital-stack.js +227 -0
- package/dist/capital-stack.js.map +1 -0
- package/dist/cascade.d.ts +60 -6
- package/dist/cascade.d.ts.map +1 -1
- package/dist/cascade.js +93 -14
- package/dist/cascade.js.map +1 -1
- package/dist/cli.js +269 -11
- package/dist/cli.js.map +1 -1
- package/dist/composition.d.ts +182 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +536 -0
- package/dist/composition.js.map +1 -0
- package/dist/context.js +23 -23
- package/dist/defaults.d.ts +18 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +64 -0
- package/dist/defaults.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/lite-bridge.d.ts +9 -0
- package/dist/lite-bridge.d.ts.map +1 -1
- package/dist/lite-bridge.js +44 -5
- package/dist/lite-bridge.js.map +1 -1
- package/dist/lite.js +37 -1
- package/dist/lite.js.map +1 -1
- package/dist/market-data.d.ts +134 -0
- package/dist/market-data.d.ts.map +1 -0
- package/dist/market-data.js +292 -0
- package/dist/market-data.js.map +1 -0
- package/dist/packs/index.d.ts +1 -0
- package/dist/packs/index.d.ts.map +1 -1
- package/dist/packs/index.js +3 -0
- package/dist/packs/index.js.map +1 -1
- package/dist/packs/mixed-use.d.ts +3 -0
- package/dist/packs/mixed-use.d.ts.map +1 -0
- package/dist/packs/mixed-use.js +204 -0
- package/dist/packs/mixed-use.js.map +1 -0
- package/dist/protocol.d.ts +57 -8
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +153 -4
- package/dist/protocol.js.map +1 -1
- package/dist/receipts.d.ts +189 -9
- package/dist/receipts.d.ts.map +1 -1
- package/dist/receipts.js +373 -14
- package/dist/receipts.js.map +1 -1
- package/dist/report.js +165 -165
- package/dist/types.d.ts +54 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +263 -6
- package/dist/validator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/browser.d.ts
CHANGED
|
@@ -45,11 +45,11 @@ export type { DCFDerivation } from './dcf.js';
|
|
|
45
45
|
export { evaluateCalc, parseExpression, evaluate, BUILTINS, CalcError, calcError } from './calc/index.js';
|
|
46
46
|
export type { CalcValue, Builtin, CalcErrorCode } from './calc/index.js';
|
|
47
47
|
export { quantizeDecimal, resolveRoundTo, DEFAULT_ROUND_TO, DEFAULT_ROUND_TO_BY_UNIT, MAX_ROUND_TO, } from './calc/index.js';
|
|
48
|
-
export { MULTIFAMILY_PACK, OFFICE_PACK, RETAIL_PACK, INDUSTRIAL_PACK, SELF_STORAGE_PACK, HOSPITALITY_PACK, SENIOR_HOUSING_PACK, STUDENT_HOUSING_PACK, LAND_PACK, getPackForAssetClass, emitFromAst, emitExcelFormula, emitCalcExcelFormula, ExcelEmitError, } from './packs/index.js';
|
|
48
|
+
export { MULTIFAMILY_PACK, OFFICE_PACK, RETAIL_PACK, INDUSTRIAL_PACK, SELF_STORAGE_PACK, HOSPITALITY_PACK, SENIOR_HOUSING_PACK, STUDENT_HOUSING_PACK, LAND_PACK, MIXED_USE_PACK, getPackForAssetClass, emitFromAst, emitExcelFormula, emitCalcExcelFormula, ExcelEmitError, } from './packs/index.js';
|
|
49
49
|
export type { ExcelEmitOptions } from './packs/index.js';
|
|
50
50
|
export { loadModuleManifest, createModuleRegistry, getModuleCalculationsForAssetClass, ModuleRegistryError, } from './modules.js';
|
|
51
51
|
export type { ModuleRegistry, LoadModuleOptions, CreateModuleRegistryOptions } from './modules.js';
|
|
52
|
-
export { BUILTIN_DOCUMENT_PROFILES, DEAL_UNDERWRITING_PROFILE, LEASE_ABSTRACT_PROFILE, SOURCE_NOTE_PROFILE, DOCUMENT_PROFILE_PATTERN, lookupDocumentProfile, BUILTIN_EDGE_TYPES, lookupEdgeType, isEdgeTypeValidOnLayer, } from './protocol.js';
|
|
52
|
+
export { BUILTIN_DOCUMENT_PROFILES, DEAL_UNDERWRITING_PROFILE, LEASE_ABSTRACT_PROFILE, SOURCE_NOTE_PROFILE, MARKET_DATA_PROFILE, DOCUMENT_PROFILE_PATTERN, lookupDocumentProfile, STANDARD_SECTION_IDS, isStandardSectionId, EXTENSION_SECTION_PREFIX, BUILTIN_EDGE_TYPES, lookupEdgeType, isEdgeTypeValidOnLayer, } from './protocol.js';
|
|
53
53
|
export type { DocumentProfile, UWEdgeLayer, UWEdgeEndpointKind, UWEdgeTypeDef } from './protocol.js';
|
|
54
54
|
export { UW_PACKAGE_VERSION, UW_PACKAGE_ZIP_CODEC, UW_PACKAGE_ZIP_MEDIA_TYPE, UW_PACKAGE_CONTEXT_CODEC, UW_PACKAGE_CONTEXT_MEDIA_TYPE, CONTEXT_INLINABLE_ROLES, UWPackageError, isSafeMemberPath, validateUWDealPackageManifest, assertUWDealPackageManifest, projectPackageLinksToEntityEdges, edgeTypesForLayer, } from './deal-package.js';
|
|
55
55
|
export type { UWDealPackageManifest, UWPackageMember, UWPackageLink, UWMemberRole, UWSourceReference, UWEntityEdge, } from './deal-package.js';
|
|
@@ -57,6 +57,12 @@ export { projectUWDealPackageContext, validateUWDealPackageContext, verifyContex
|
|
|
57
57
|
export type { UWDealPackageContext, UWContextContent, UWSourceEvidenceDescriptor, ProjectContextOptions, } from './deal-package-context.js';
|
|
58
58
|
export { LEASE_ABSTRACT_PROFILE_ID, LEASE_ABSTRACT_GROUPS, LEASE_TERM_STATUSES, LEASE_ARTIFACT_KINDS, LeaseAbstractError, validateLeaseAbstract, assertLeaseAbstract, projectLeaseAbstractToRentRoll, } from './lease-abstract.js';
|
|
59
59
|
export type { LeaseAbstract, LeaseAbstractGroup, LeaseTermValue, LeaseTermStatus, LeaseArtifactKind, SourceRef, RentRollProjectionRow, RentRollProjectionReport, RentRollProjectionResult, } from './lease-abstract.js';
|
|
60
|
+
export { UWPART_EXTENSION, UWPART_MEDIA_TYPE, UWPART_REPRESENTATION_ID, UWPART_VERSION, EXTERNAL_ANNOTATION_KEY, CompositionError, parseUWPart, readExternalDirective, validateExternalDirective, resolveComposition, resolveComposite, DEFAULT_MAX_COMPOSITION_DEPTH, DEFAULT_MAX_COMPOSITION_MEMBERS, externalizeSection, stringifyUWPart, } from './composition.js';
|
|
61
|
+
export { AmbiguousInheritanceError, selectInheritedAssumption } from './cascade.js';
|
|
62
|
+
export type { InheritedAssumptions } from './cascade.js';
|
|
63
|
+
export type { UWPart, ParseUWPartOptions, ExternalSectionDirective, CompositionErrorCode, CompositionStatus, CompositionResolution, ResolveCompositionOptions, CompositeStatus, CompositeResolution, CompositeLink, ResolveCompositeOptions, StaleMember, ExternalizeSectionOptions, ExternalizationResult, } from './composition.js';
|
|
64
|
+
export { MARKET_DATA_PROFILE_ID, MARKET_OBSERVATIONS_SECTION, DEFAULT_MARKET_DATA_STALENESS_SECONDS, MarketDataError, validateMarketDataDocument, parseMarketDataDocument, createDocumentMarketData, selectCurrentMarketData, promoteMarketObservation, isDealFieldPath, isValidAsOf, } from './market-data.js';
|
|
65
|
+
export type { MarketDataDocument, MarketObservation, MarketObservationRange, DocumentMarketDataOptions, PromoteObservationOptions, PromotedObservation, } from './market-data.js';
|
|
60
66
|
export { PACKAGE_MANIFEST_PATH, encodeUWDealPackageZip, decodeUWDealPackageZip, verifyUWDealPackage, } from './deal-package-zip.js';
|
|
61
67
|
export type { UWDealPackageInput, UWDealPackageDecoded, UWPackageDecodeOptions, PackageVerification, PackageVerificationStatus, } from './deal-package-zip.js';
|
|
62
68
|
export { inspectZipSafety, isSafeZipPath } from './zip-safety.js';
|
|
@@ -71,11 +77,11 @@ export { rankGaps } from './refinement.js';
|
|
|
71
77
|
export type { RankGapsOptions, RankGapsResult, RankedGap, OutputSensitivity, NonMonotonicWarning, } from './refinement.js';
|
|
72
78
|
export { inferGaps, summarizeGaps, readGapsContent } from './gaps.js';
|
|
73
79
|
export type { GapItem, GapSummary, GapsContent, GapReason, InferGapsOptions } from './gaps.js';
|
|
74
|
-
export { getAssetClassDefaults, getDefaultRange, listDefaultedFields, MULTIFAMILY_DEFAULTS, OFFICE_DEFAULTS, RETAIL_DEFAULTS, INDUSTRIAL_DEFAULTS, SELF_STORAGE_DEFAULTS, HOSPITALITY_DEFAULTS, SENIOR_HOUSING_DEFAULTS, STUDENT_HOUSING_DEFAULTS, LAND_DEFAULTS, } from './defaults.js';
|
|
80
|
+
export { getAssetClassDefaults, getDefaultRange, listDefaultedFields, MULTIFAMILY_DEFAULTS, OFFICE_DEFAULTS, RETAIL_DEFAULTS, INDUSTRIAL_DEFAULTS, SELF_STORAGE_DEFAULTS, HOSPITALITY_DEFAULTS, SENIOR_HOUSING_DEFAULTS, STUDENT_HOUSING_DEFAULTS, LAND_DEFAULTS, MIXED_USE_DEFAULTS, } from './defaults.js';
|
|
75
81
|
export type { AssetClassDefaults, DefaultRange, DefaultUnit } from './defaults.js';
|
|
76
82
|
export { getExprDependencies, extractDependencyGraph } from './calc/dependencies.js';
|
|
77
83
|
export type { DependencyGraph, ExtractDependencyGraphOptions } from './calc/dependencies.js';
|
|
78
|
-
export type { UWBlock, UWFenceAnnotation, UWMeta, UWFieldOverride, UWFrontmatter, UWPipelineState, UWQuickMetrics, ParsedUWFile, ParsedSections, ParseOptions, InstitutionConfig, ValidationMessage, ValidationResult, StageReadiness, FinancialThresholds, ConfidenceLevel, PipelineStatus, ValidationSeverity, DealStage, AssetClass, } from './types.js';
|
|
84
|
+
export type { UWBlock, UWFenceAnnotation, UWMeta, UWFieldOverride, MarketDataRef, UWFrontmatter, UWPipelineState, UWQuickMetrics, ParsedUWFile, ParsedSections, ParseOptions, InstitutionConfig, ValidationMessage, ValidationResult, StageReadiness, FinancialThresholds, ConfidenceLevel, PipelineStatus, ValidationSeverity, DealStage, AssetClass, } from './types.js';
|
|
79
85
|
export { DEFAULT_THRESHOLDS, ASSET_CLASSES } from './types.js';
|
|
80
86
|
export { formatCurrency, formatPercent, formatRatio, formatCount, formatDate, formatNull, formatValue, formatPercentCsv, formatNumberCsv, } from './format.js';
|
|
81
87
|
export type { CurrencyOptions, PercentOptions, RatioOptions, CountOptions, DateOptions, NullOptions, } from './format.js';
|
|
@@ -84,6 +90,8 @@ export type { ViewerTier, ViewerRole, ViewerCapability, ImplementationManifest,
|
|
|
84
90
|
export type { SectionDiff } from './compactor.js';
|
|
85
91
|
export type { InitOptions } from './init.js';
|
|
86
92
|
export { CORE_PACKAGE_NAME, CORE_VERSION } from './version.js';
|
|
87
|
-
export { UW_RECEIPT_VERSION, UW_LITE_CANONICALIZATION, UWX_CANONICALIZATION, RECEIPT_RESULT_TOLERANCE, BUILTIN_POLICY_SET, BUILTIN_POLICY_SET_VERSION, ReceiptError, resolveReceiptSubject, computeReceiptResults, computeResultsDigest, issueReceipt, receiptSigningPayload, verifyReceipt, assertUWReceipt, } from './receipts.js';
|
|
88
|
-
export type { UWReceipt, UWReceiptSubject, UWReceiptResult, UWReceiptComputation, UWReceiptPolicy, UWReceiptSignature, UWReceiptCanonicalization, UWReceiptVerdict, UWReceiptIssue, UWReceiptIssueCode, UWReceiptVerification, ReceiptErrorCode, ReceiptSignatureVerifier, ReceiptSubjectOptions, ReceiptSubjectResolution, ReceiptIssuanceOptions, ReceiptVerificationOptions, } from './receipts.js';
|
|
93
|
+
export { UW_RECEIPT_VERSION, SUPPORTED_RECEIPT_VERSIONS, ROLLUP_FUNCTIONS, PORTFOLIO_ROLLUP_SECTION, verifyRollup, evaluateRollup, validateRollupAggregate, UW_LITE_CANONICALIZATION, UW_LITE_CANONICALIZATION_VERSION, UWX_CANONICALIZATION, UWX_CANONICALIZATION_VERSION, RECEIPT_RESULT_TOLERANCE, BUILTIN_POLICY_SET, BUILTIN_POLICY_SET_VERSION, ReceiptError, resolveReceiptSubject, computeReceiptResults, computeResultsDigest, issueReceipt, receiptSigningPayload, verifyReceipt, assertUWReceipt, } from './receipts.js';
|
|
94
|
+
export type { UWReceipt, UWReceiptSubject, UWReceiptResult, UWReceiptComputation, UWReceiptPolicy, UWReceiptSignature, UWReceiptCanonicalization, UWReceiptVerdict, UWReceiptIssue, UWReceiptIssueCode, UWReceiptVerification, UWReceiptInputProvenance, UWReceiptInputSource, UWReceiptInputResolver, RollupFn, UWRollupAggregate, RollupMember, RollupAggregateResult, RollupVerification, ReceiptErrorCode, ReceiptSignatureVerifier, ReceiptSubjectOptions, ReceiptSubjectResolution, ReceiptIssuanceOptions, ReceiptVerificationOptions, } from './receipts.js';
|
|
95
|
+
export { verifyCapitalStack, recomputeSizing, trancheAnnualDebtService, isDebtTranche, capitalStackContext, CAPITAL_STACK_SIZING_DECIMALS, } from './capital-stack.js';
|
|
96
|
+
export type { Tranche, TrancheClass, Accrual, SizingFn, SizingFigure, CapitalStack, CapitalStackContext, CapitalStackVerdict, CapitalStackIssueCode, CapitalStackIssue, SizingResult, CapitalStackVerification, } from './capital-stack.js';
|
|
89
97
|
//# sourceMappingURL=browser.d.ts.map
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -39,14 +39,17 @@ export { evaluateCalc, parseExpression, evaluate, BUILTINS, CalcError, calcError
|
|
|
39
39
|
// The §VIII.5 quantization boundary — browser-safe, and the web editor needs it
|
|
40
40
|
// to quantize hand-overridden fields the same way pack results are quantized.
|
|
41
41
|
export { quantizeDecimal, resolveRoundTo, DEFAULT_ROUND_TO, DEFAULT_ROUND_TO_BY_UNIT, MAX_ROUND_TO, } from './calc/index.js';
|
|
42
|
-
export { MULTIFAMILY_PACK, OFFICE_PACK, RETAIL_PACK, INDUSTRIAL_PACK, SELF_STORAGE_PACK, HOSPITALITY_PACK, SENIOR_HOUSING_PACK, STUDENT_HOUSING_PACK, LAND_PACK, getPackForAssetClass, emitFromAst, emitExcelFormula, emitCalcExcelFormula, ExcelEmitError, } from './packs/index.js';
|
|
42
|
+
export { MULTIFAMILY_PACK, OFFICE_PACK, RETAIL_PACK, INDUSTRIAL_PACK, SELF_STORAGE_PACK, HOSPITALITY_PACK, SENIOR_HOUSING_PACK, STUDENT_HOUSING_PACK, LAND_PACK, MIXED_USE_PACK, getPackForAssetClass, emitFromAst, emitExcelFormula, emitCalcExcelFormula, ExcelEmitError, } from './packs/index.js';
|
|
43
43
|
export { loadModuleManifest, createModuleRegistry, getModuleCalculationsForAssetClass, ModuleRegistryError, } from './modules.js';
|
|
44
44
|
// ─── RFC 0018: document profiles, lease abstracts, deal packages ─────────────
|
|
45
45
|
// All browser-safe: no I/O, no network, no hashing implementation imported.
|
|
46
|
-
export { BUILTIN_DOCUMENT_PROFILES, DEAL_UNDERWRITING_PROFILE, LEASE_ABSTRACT_PROFILE, SOURCE_NOTE_PROFILE, DOCUMENT_PROFILE_PATTERN, lookupDocumentProfile, BUILTIN_EDGE_TYPES, lookupEdgeType, isEdgeTypeValidOnLayer, } from './protocol.js';
|
|
46
|
+
export { BUILTIN_DOCUMENT_PROFILES, DEAL_UNDERWRITING_PROFILE, LEASE_ABSTRACT_PROFILE, SOURCE_NOTE_PROFILE, MARKET_DATA_PROFILE, DOCUMENT_PROFILE_PATTERN, lookupDocumentProfile, STANDARD_SECTION_IDS, isStandardSectionId, EXTENSION_SECTION_PREFIX, BUILTIN_EDGE_TYPES, lookupEdgeType, isEdgeTypeValidOnLayer, } from './protocol.js';
|
|
47
47
|
export { UW_PACKAGE_VERSION, UW_PACKAGE_ZIP_CODEC, UW_PACKAGE_ZIP_MEDIA_TYPE, UW_PACKAGE_CONTEXT_CODEC, UW_PACKAGE_CONTEXT_MEDIA_TYPE, CONTEXT_INLINABLE_ROLES, UWPackageError, isSafeMemberPath, validateUWDealPackageManifest, assertUWDealPackageManifest, projectPackageLinksToEntityEdges, edgeTypesForLayer, } from './deal-package.js';
|
|
48
48
|
export { projectUWDealPackageContext, validateUWDealPackageContext, verifyContextContentDigests, } from './deal-package-context.js';
|
|
49
49
|
export { LEASE_ABSTRACT_PROFILE_ID, LEASE_ABSTRACT_GROUPS, LEASE_TERM_STATUSES, LEASE_ARTIFACT_KINDS, LeaseAbstractError, validateLeaseAbstract, assertLeaseAbstract, projectLeaseAbstractToRentRoll, } from './lease-abstract.js';
|
|
50
|
+
export { UWPART_EXTENSION, UWPART_MEDIA_TYPE, UWPART_REPRESENTATION_ID, UWPART_VERSION, EXTERNAL_ANNOTATION_KEY, CompositionError, parseUWPart, readExternalDirective, validateExternalDirective, resolveComposition, resolveComposite, DEFAULT_MAX_COMPOSITION_DEPTH, DEFAULT_MAX_COMPOSITION_MEMBERS, externalizeSection, stringifyUWPart, } from './composition.js';
|
|
51
|
+
export { AmbiguousInheritanceError, selectInheritedAssumption } from './cascade.js';
|
|
52
|
+
export { MARKET_DATA_PROFILE_ID, MARKET_OBSERVATIONS_SECTION, DEFAULT_MARKET_DATA_STALENESS_SECONDS, MarketDataError, validateMarketDataDocument, parseMarketDataDocument, createDocumentMarketData, selectCurrentMarketData, promoteMarketObservation, isDealFieldPath, isValidAsOf, } from './market-data.js';
|
|
50
53
|
export { PACKAGE_MANIFEST_PATH, encodeUWDealPackageZip, decodeUWDealPackageZip, verifyUWDealPackage, } from './deal-package-zip.js';
|
|
51
54
|
export { inspectZipSafety, isSafeZipPath } from './zip-safety.js';
|
|
52
55
|
export { sha256BytesHex } from './integrity.js';
|
|
@@ -60,7 +63,7 @@ export { generateBlankUWFile } from './init.js';
|
|
|
60
63
|
export { resolveValue, readInFile } from './cascade.js';
|
|
61
64
|
export { rankGaps } from './refinement.js';
|
|
62
65
|
export { inferGaps, summarizeGaps, readGapsContent } from './gaps.js';
|
|
63
|
-
export { getAssetClassDefaults, getDefaultRange, listDefaultedFields, MULTIFAMILY_DEFAULTS, OFFICE_DEFAULTS, RETAIL_DEFAULTS, INDUSTRIAL_DEFAULTS, SELF_STORAGE_DEFAULTS, HOSPITALITY_DEFAULTS, SENIOR_HOUSING_DEFAULTS, STUDENT_HOUSING_DEFAULTS, LAND_DEFAULTS, } from './defaults.js';
|
|
66
|
+
export { getAssetClassDefaults, getDefaultRange, listDefaultedFields, MULTIFAMILY_DEFAULTS, OFFICE_DEFAULTS, RETAIL_DEFAULTS, INDUSTRIAL_DEFAULTS, SELF_STORAGE_DEFAULTS, HOSPITALITY_DEFAULTS, SENIOR_HOUSING_DEFAULTS, STUDENT_HOUSING_DEFAULTS, LAND_DEFAULTS, MIXED_USE_DEFAULTS, } from './defaults.js';
|
|
64
67
|
export { getExprDependencies, extractDependencyGraph } from './calc/dependencies.js';
|
|
65
68
|
export { DEFAULT_THRESHOLDS, ASSET_CLASSES } from './types.js';
|
|
66
69
|
export { formatCurrency, formatPercent, formatRatio, formatCount, formatDate, formatNull, formatValue, formatPercentCsv, formatNumberCsv, } from './format.js';
|
|
@@ -69,5 +72,6 @@ export { PROTOCOL_VERSION, FORMAT_VERSION, DEFAULT_NUMBER_FORMAT, DEFAULT_DATE_F
|
|
|
69
72
|
// comes from Web Crypto via `integrity.sha256TextHex`, and no signing backend
|
|
70
73
|
// is bundled here.
|
|
71
74
|
export { CORE_PACKAGE_NAME, CORE_VERSION } from './version.js';
|
|
72
|
-
export { UW_RECEIPT_VERSION, UW_LITE_CANONICALIZATION, UWX_CANONICALIZATION, RECEIPT_RESULT_TOLERANCE, BUILTIN_POLICY_SET, BUILTIN_POLICY_SET_VERSION, ReceiptError, resolveReceiptSubject, computeReceiptResults, computeResultsDigest, issueReceipt, receiptSigningPayload, verifyReceipt, assertUWReceipt, } from './receipts.js';
|
|
75
|
+
export { UW_RECEIPT_VERSION, SUPPORTED_RECEIPT_VERSIONS, ROLLUP_FUNCTIONS, PORTFOLIO_ROLLUP_SECTION, verifyRollup, evaluateRollup, validateRollupAggregate, UW_LITE_CANONICALIZATION, UW_LITE_CANONICALIZATION_VERSION, UWX_CANONICALIZATION, UWX_CANONICALIZATION_VERSION, RECEIPT_RESULT_TOLERANCE, BUILTIN_POLICY_SET, BUILTIN_POLICY_SET_VERSION, ReceiptError, resolveReceiptSubject, computeReceiptResults, computeResultsDigest, issueReceipt, receiptSigningPayload, verifyReceipt, assertUWReceipt, } from './receipts.js';
|
|
76
|
+
export { verifyCapitalStack, recomputeSizing, trancheAnnualDebtService, isDebtTranche, capitalStackContext, CAPITAL_STACK_SIZING_DECIMALS, } from './capital-stack.js';
|
|
73
77
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { ParsedUWFile } from './types.js';
|
|
2
|
+
/** A tranche's type. Closed and non-extensible. */
|
|
3
|
+
export type TrancheClass = 'senior_debt' | 'mezzanine_debt' | 'preferred_equity' | 'common_equity' | 'bridge' | 'seller_financing' | 'other_debt';
|
|
4
|
+
/** Cash-pay vs PIK. Accrued obligations do not enter cash coverage. */
|
|
5
|
+
export type Accrual = 'cash' | 'accrued';
|
|
6
|
+
/** One layer of the capital stack (UW_FORMAT_SPEC §4.24). */
|
|
7
|
+
export interface Tranche {
|
|
8
|
+
id: string;
|
|
9
|
+
class: TrancheClass;
|
|
10
|
+
position: number;
|
|
11
|
+
amount: number;
|
|
12
|
+
rate?: number | null;
|
|
13
|
+
accrual?: Accrual | null;
|
|
14
|
+
amortization_months?: number | null;
|
|
15
|
+
io_months?: number | null;
|
|
16
|
+
term_months?: number | null;
|
|
17
|
+
}
|
|
18
|
+
/** The closed sizing function vocabulary. */
|
|
19
|
+
export type SizingFn = 'coverage' | 'blended_coverage' | 'debt_yield_through' | 'ltc_through' | 'ltv_through' | 'weighted_cost';
|
|
20
|
+
/** One stated sizing figure a verifier recomputes. */
|
|
21
|
+
export interface SizingFigure {
|
|
22
|
+
id: string;
|
|
23
|
+
fn: SizingFn;
|
|
24
|
+
/** Single-tranche selector: a tranche id, or `*` for the whole stack. */
|
|
25
|
+
over?: string;
|
|
26
|
+
/** Cumulative selector: a position; covers all tranches at or above it. */
|
|
27
|
+
through?: number;
|
|
28
|
+
value: number;
|
|
29
|
+
}
|
|
30
|
+
/** The `capital_stack` section content. */
|
|
31
|
+
export interface CapitalStack {
|
|
32
|
+
tranches: Tranche[];
|
|
33
|
+
sizing?: SizingFigure[];
|
|
34
|
+
}
|
|
35
|
+
/** The property-level inputs the sizing figures divide. */
|
|
36
|
+
export interface CapitalStackContext {
|
|
37
|
+
/** `noi_model.net_operating_income`. */
|
|
38
|
+
noi: number | null;
|
|
39
|
+
/** Total cost / total capitalization, for `ltc_through`. */
|
|
40
|
+
total_cost?: number | null;
|
|
41
|
+
/** Underwritten value, for `ltv_through`. */
|
|
42
|
+
total_value?: number | null;
|
|
43
|
+
}
|
|
44
|
+
export type CapitalStackVerdict = 'verified' | 'failed' | 'unverifiable';
|
|
45
|
+
export type CapitalStackIssueCode =
|
|
46
|
+
/** A stated sizing figure disagrees with recomputation. */
|
|
47
|
+
'CS-SIZING-DISAGREES'
|
|
48
|
+
/** A sizing figure reads inputs the document does not supply — undecided, never zero. */
|
|
49
|
+
| 'CS-SIZING-UNEVALUABLE';
|
|
50
|
+
export interface CapitalStackIssue {
|
|
51
|
+
code: CapitalStackIssueCode;
|
|
52
|
+
severity: 'failure' | 'indeterminate';
|
|
53
|
+
message: string;
|
|
54
|
+
expected?: string;
|
|
55
|
+
actual?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface SizingResult {
|
|
58
|
+
id: string;
|
|
59
|
+
fn: SizingFn;
|
|
60
|
+
stated: number;
|
|
61
|
+
recomputed: number | null;
|
|
62
|
+
agrees: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface CapitalStackVerification {
|
|
65
|
+
verdict: CapitalStackVerdict;
|
|
66
|
+
issues: CapitalStackIssue[];
|
|
67
|
+
sizing: SizingResult[];
|
|
68
|
+
}
|
|
69
|
+
/** Debt-class tranches, whose balances make up "debt" for a debt-yield/LTC. */
|
|
70
|
+
export declare function isDebtTranche(t: Tranche): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* A tranche's annual CASH debt service — what enters coverage. An accrued/PIK
|
|
73
|
+
* tranche pays nothing in cash (returns 0). Common equity has no service.
|
|
74
|
+
* A debt or preferred tranche with no `rate` is uncomputable (returns null).
|
|
75
|
+
*
|
|
76
|
+
* Debt: the fully-amortizing constant when `amortization_months > 0`, otherwise
|
|
77
|
+
* interest-only (`amount × rate`). `io_months` describes when amortization
|
|
78
|
+
* begins — a multi-period schedule concern (RFC 0026 Phase 2) — and does not
|
|
79
|
+
* change this stabilized annual constant. Preferred equity that is cash-pay
|
|
80
|
+
* contributes its current return (`amount × rate`).
|
|
81
|
+
*/
|
|
82
|
+
export declare function trancheAnnualDebtService(t: Tranche): number | null;
|
|
83
|
+
/**
|
|
84
|
+
* The decimal quantum each sizing figure is compared at, keyed by `fn`. Coverage
|
|
85
|
+
* ratios are stated to 2 places (a DSCR reads as 1.85); rates and yields to 4.
|
|
86
|
+
* An author who states a correctly-rounded value verifies and a materially wrong
|
|
87
|
+
* one does not. Exported so an emitting surface (the Excel workbook's sizing
|
|
88
|
+
* block) quantizes at the same boundary this verifier does, rather than keeping
|
|
89
|
+
* its own copy of the table.
|
|
90
|
+
*/
|
|
91
|
+
export declare const CAPITAL_STACK_SIZING_DECIMALS: Readonly<Record<SizingFn, number>>;
|
|
92
|
+
/**
|
|
93
|
+
* Recompute one sizing figure over the tranches. Returns null when the figure
|
|
94
|
+
* reads an input the document does not supply (a missing NOI, an absent
|
|
95
|
+
* cost/value, a division by a zero denominator, or a selector that resolves to
|
|
96
|
+
* no tranche) — never a misleading zero.
|
|
97
|
+
*/
|
|
98
|
+
export declare function recomputeSizing(fig: SizingFigure, tranches: readonly Tranche[], ctx: CapitalStackContext): number | null;
|
|
99
|
+
/**
|
|
100
|
+
* Recompute every stated sizing figure and report a three-state verdict:
|
|
101
|
+
* - a figure disagrees beyond its quantum → `failed` (CS-SIZING-DISAGREES)
|
|
102
|
+
* - a figure reads an input the document does not supply → `unverifiable`
|
|
103
|
+
* - otherwise → `verified`
|
|
104
|
+
*
|
|
105
|
+
* A `verified` stack means the stated sizing follows deterministically from the
|
|
106
|
+
* tranche terms as they stand. It does not mean the terms are the right terms.
|
|
107
|
+
*/
|
|
108
|
+
export declare function verifyCapitalStack(stack: CapitalStack, ctx: CapitalStackContext): CapitalStackVerification;
|
|
109
|
+
/**
|
|
110
|
+
* Pull the property-level sizing inputs from a parsed document: NOI from
|
|
111
|
+
* `noi_model`, total cost from `sources_uses` (uses total), and underwritten
|
|
112
|
+
* value from `valuation`. Any absent input becomes `null`, which makes the
|
|
113
|
+
* figures that need it `unverifiable` rather than wrong.
|
|
114
|
+
*/
|
|
115
|
+
export declare function capitalStackContext(parsed: ParsedUWFile): CapitalStackContext;
|
|
116
|
+
//# sourceMappingURL=capital-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capital-stack.d.ts","sourceRoot":"","sources":["../src/capital-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
// Capital stack — state-and-verify sizing (RFC 0026, UW_FORMAT_SPEC §4.24).
|
|
2
|
+
//
|
|
3
|
+
// A deal states an ordered array of typed capital tranches and the stack-aware
|
|
4
|
+
// sizing figures a lender underwrites to (per-tranche and blended coverage,
|
|
5
|
+
// attachment-point debt yield, LTC/LTV by layer, weighted cost of capital). This
|
|
6
|
+
// module recomputes each stated figure over a FIXED, CLOSED function vocabulary
|
|
7
|
+
// and reports a three-state verdict — the same state-and-verify shape RFC 0021 §6
|
|
8
|
+
// uses for portfolio rollups (`verifyRollup`).
|
|
9
|
+
//
|
|
10
|
+
// This deliberately does NOT touch the Tier-3 calc engine. The sandbox has no
|
|
11
|
+
// iteration or array indexing (RFC 0019 §1), so a variable-length tranche array
|
|
12
|
+
// is not addressable by a pack formula. A deterministic TypeScript verifier is
|
|
13
|
+
// not so constrained: it walks the array directly, exactly as `verifyRollup`
|
|
14
|
+
// walks a variable member list. Browser-safe; performs no I/O.
|
|
15
|
+
//
|
|
16
|
+
// Scope (RFC 0026 v1): tranche representation, the sizing vocabulary below, and
|
|
17
|
+
// preferred-equity cash-vs-accrued. The multi-period distribution waterfall
|
|
18
|
+
// (promote, hurdles, tiers, catch-up) is out of scope and refused by the
|
|
19
|
+
// validator (CS-WATERFALL-UNSUPPORTED); it needs a hold-period cash-flow
|
|
20
|
+
// primitive the format does not yet have (RFC 0026 §E).
|
|
21
|
+
import { getSection, deepGet } from './parser.js';
|
|
22
|
+
// ─── Tranche classification + debt service ───────────────────────────────────
|
|
23
|
+
const DEBT_CLASSES = new Set([
|
|
24
|
+
'senior_debt',
|
|
25
|
+
'mezzanine_debt',
|
|
26
|
+
'bridge',
|
|
27
|
+
'seller_financing',
|
|
28
|
+
'other_debt',
|
|
29
|
+
]);
|
|
30
|
+
/** Debt-class tranches, whose balances make up "debt" for a debt-yield/LTC. */
|
|
31
|
+
export function isDebtTranche(t) {
|
|
32
|
+
return DEBT_CLASSES.has(t.class);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A tranche's annual CASH debt service — what enters coverage. An accrued/PIK
|
|
36
|
+
* tranche pays nothing in cash (returns 0). Common equity has no service.
|
|
37
|
+
* A debt or preferred tranche with no `rate` is uncomputable (returns null).
|
|
38
|
+
*
|
|
39
|
+
* Debt: the fully-amortizing constant when `amortization_months > 0`, otherwise
|
|
40
|
+
* interest-only (`amount × rate`). `io_months` describes when amortization
|
|
41
|
+
* begins — a multi-period schedule concern (RFC 0026 Phase 2) — and does not
|
|
42
|
+
* change this stabilized annual constant. Preferred equity that is cash-pay
|
|
43
|
+
* contributes its current return (`amount × rate`).
|
|
44
|
+
*/
|
|
45
|
+
export function trancheAnnualDebtService(t) {
|
|
46
|
+
if (t.accrual === 'accrued')
|
|
47
|
+
return 0;
|
|
48
|
+
if (t.class === 'common_equity')
|
|
49
|
+
return 0;
|
|
50
|
+
if (t.rate === null || t.rate === undefined)
|
|
51
|
+
return null;
|
|
52
|
+
if (t.class === 'preferred_equity')
|
|
53
|
+
return t.amount * t.rate;
|
|
54
|
+
const amort = t.amortization_months ?? 0;
|
|
55
|
+
if (amort <= 0)
|
|
56
|
+
return t.amount * t.rate; // interest-only / non-amortizing
|
|
57
|
+
const mr = t.rate / 12;
|
|
58
|
+
const monthly = mr === 0 ? t.amount / amort : (t.amount * mr) / (1 - (1 + mr) ** -amort);
|
|
59
|
+
return monthly * 12;
|
|
60
|
+
}
|
|
61
|
+
// ─── Sizing recomputation ────────────────────────────────────────────────────
|
|
62
|
+
/**
|
|
63
|
+
* The decimal quantum each sizing figure is compared at, keyed by `fn`. Coverage
|
|
64
|
+
* ratios are stated to 2 places (a DSCR reads as 1.85); rates and yields to 4.
|
|
65
|
+
* An author who states a correctly-rounded value verifies and a materially wrong
|
|
66
|
+
* one does not. Exported so an emitting surface (the Excel workbook's sizing
|
|
67
|
+
* block) quantizes at the same boundary this verifier does, rather than keeping
|
|
68
|
+
* its own copy of the table.
|
|
69
|
+
*/
|
|
70
|
+
export const CAPITAL_STACK_SIZING_DECIMALS = {
|
|
71
|
+
coverage: 2,
|
|
72
|
+
blended_coverage: 2,
|
|
73
|
+
debt_yield_through: 4,
|
|
74
|
+
ltc_through: 4,
|
|
75
|
+
ltv_through: 4,
|
|
76
|
+
weighted_cost: 4,
|
|
77
|
+
};
|
|
78
|
+
function roundTo(value, decimals) {
|
|
79
|
+
const f = 10 ** decimals;
|
|
80
|
+
return Math.round(value * f) / f;
|
|
81
|
+
}
|
|
82
|
+
function agrees(stated, recomputed, fn) {
|
|
83
|
+
const dp = CAPITAL_STACK_SIZING_DECIMALS[fn];
|
|
84
|
+
return roundTo(stated, dp) === roundTo(recomputed, dp);
|
|
85
|
+
}
|
|
86
|
+
/** Sum a value over the tranches at or above a position; null if any is null. */
|
|
87
|
+
function sumThrough(tranches, position, value) {
|
|
88
|
+
let total = 0;
|
|
89
|
+
for (const t of tranches) {
|
|
90
|
+
if (t.position > position)
|
|
91
|
+
continue;
|
|
92
|
+
const v = value(t);
|
|
93
|
+
if (v === null)
|
|
94
|
+
return null;
|
|
95
|
+
total += v;
|
|
96
|
+
}
|
|
97
|
+
return total;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Recompute one sizing figure over the tranches. Returns null when the figure
|
|
101
|
+
* reads an input the document does not supply (a missing NOI, an absent
|
|
102
|
+
* cost/value, a division by a zero denominator, or a selector that resolves to
|
|
103
|
+
* no tranche) — never a misleading zero.
|
|
104
|
+
*/
|
|
105
|
+
export function recomputeSizing(fig, tranches, ctx) {
|
|
106
|
+
const noi = ctx.noi;
|
|
107
|
+
switch (fig.fn) {
|
|
108
|
+
case 'coverage': {
|
|
109
|
+
const t = tranches.find((x) => x.id === fig.over);
|
|
110
|
+
if (!t || noi === null)
|
|
111
|
+
return null;
|
|
112
|
+
const ds = trancheAnnualDebtService(t);
|
|
113
|
+
if (ds === null || ds === 0)
|
|
114
|
+
return null;
|
|
115
|
+
return noi / ds;
|
|
116
|
+
}
|
|
117
|
+
case 'blended_coverage': {
|
|
118
|
+
if (fig.through === undefined || noi === null)
|
|
119
|
+
return null;
|
|
120
|
+
const ds = sumThrough(tranches, fig.through, trancheAnnualDebtService);
|
|
121
|
+
if (ds === null || ds === 0)
|
|
122
|
+
return null;
|
|
123
|
+
return noi / ds;
|
|
124
|
+
}
|
|
125
|
+
case 'debt_yield_through': {
|
|
126
|
+
if (fig.through === undefined || noi === null)
|
|
127
|
+
return null;
|
|
128
|
+
const bal = sumThrough(tranches, fig.through, (t) => (isDebtTranche(t) ? t.amount : 0));
|
|
129
|
+
if (bal === null || bal === 0)
|
|
130
|
+
return null;
|
|
131
|
+
return noi / bal;
|
|
132
|
+
}
|
|
133
|
+
case 'ltc_through':
|
|
134
|
+
case 'ltv_through': {
|
|
135
|
+
if (fig.through === undefined)
|
|
136
|
+
return null;
|
|
137
|
+
const denom = fig.fn === 'ltc_through' ? ctx.total_cost : ctx.total_value;
|
|
138
|
+
if (denom === null || denom === undefined || denom === 0)
|
|
139
|
+
return null;
|
|
140
|
+
const bal = sumThrough(tranches, fig.through, (t) => (isDebtTranche(t) ? t.amount : 0));
|
|
141
|
+
if (bal === null)
|
|
142
|
+
return null;
|
|
143
|
+
return bal / denom;
|
|
144
|
+
}
|
|
145
|
+
case 'weighted_cost': {
|
|
146
|
+
let weighted = 0;
|
|
147
|
+
let base = 0;
|
|
148
|
+
for (const t of tranches) {
|
|
149
|
+
if (t.rate === null || t.rate === undefined)
|
|
150
|
+
continue;
|
|
151
|
+
weighted += t.amount * t.rate;
|
|
152
|
+
base += t.amount;
|
|
153
|
+
}
|
|
154
|
+
if (base === 0)
|
|
155
|
+
return null;
|
|
156
|
+
return weighted / base;
|
|
157
|
+
}
|
|
158
|
+
default:
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// ─── Verification ────────────────────────────────────────────────────────────
|
|
163
|
+
/**
|
|
164
|
+
* Recompute every stated sizing figure and report a three-state verdict:
|
|
165
|
+
* - a figure disagrees beyond its quantum → `failed` (CS-SIZING-DISAGREES)
|
|
166
|
+
* - a figure reads an input the document does not supply → `unverifiable`
|
|
167
|
+
* - otherwise → `verified`
|
|
168
|
+
*
|
|
169
|
+
* A `verified` stack means the stated sizing follows deterministically from the
|
|
170
|
+
* tranche terms as they stand. It does not mean the terms are the right terms.
|
|
171
|
+
*/
|
|
172
|
+
export function verifyCapitalStack(stack, ctx) {
|
|
173
|
+
const issues = [];
|
|
174
|
+
const results = [];
|
|
175
|
+
const tranches = stack.tranches ?? [];
|
|
176
|
+
for (const fig of stack.sizing ?? []) {
|
|
177
|
+
const recomputed = recomputeSizing(fig, tranches, ctx);
|
|
178
|
+
if (recomputed === null) {
|
|
179
|
+
results.push({ id: fig.id, fn: fig.fn, stated: fig.value, recomputed: null, agrees: false });
|
|
180
|
+
issues.push({
|
|
181
|
+
code: 'CS-SIZING-UNEVALUABLE',
|
|
182
|
+
severity: 'indeterminate',
|
|
183
|
+
message: `Sizing figure '${fig.id}' (${fig.fn}) reads an input the document does not supply, so it cannot be verified.`,
|
|
184
|
+
});
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const ok = agrees(fig.value, recomputed, fig.fn);
|
|
188
|
+
results.push({ id: fig.id, fn: fig.fn, stated: fig.value, recomputed, agrees: ok });
|
|
189
|
+
if (!ok) {
|
|
190
|
+
issues.push({
|
|
191
|
+
code: 'CS-SIZING-DISAGREES',
|
|
192
|
+
severity: 'failure',
|
|
193
|
+
message: `Sizing figure '${fig.id}' states ${fig.value} but ${fig.fn} recomputes to ${recomputed}.`,
|
|
194
|
+
expected: String(fig.value),
|
|
195
|
+
actual: String(recomputed),
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (issues.some((i) => i.severity === 'failure')) {
|
|
200
|
+
return { verdict: 'failed', issues, sizing: results };
|
|
201
|
+
}
|
|
202
|
+
if (issues.some((i) => i.severity === 'indeterminate')) {
|
|
203
|
+
return { verdict: 'unverifiable', issues, sizing: results };
|
|
204
|
+
}
|
|
205
|
+
return { verdict: 'verified', issues, sizing: results };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Pull the property-level sizing inputs from a parsed document: NOI from
|
|
209
|
+
* `noi_model`, total cost from `sources_uses` (uses total), and underwritten
|
|
210
|
+
* value from `valuation`. Any absent input becomes `null`, which makes the
|
|
211
|
+
* figures that need it `unverifiable` rather than wrong.
|
|
212
|
+
*/
|
|
213
|
+
export function capitalStackContext(parsed) {
|
|
214
|
+
const num = (section, path) => {
|
|
215
|
+
const block = getSection(parsed, section);
|
|
216
|
+
if (!block)
|
|
217
|
+
return null;
|
|
218
|
+
const v = deepGet(block.content, path);
|
|
219
|
+
return typeof v === 'number' && Number.isFinite(v) ? v : null;
|
|
220
|
+
};
|
|
221
|
+
return {
|
|
222
|
+
noi: num('noi_model', 'net_operating_income'),
|
|
223
|
+
total_cost: num('sources_uses', 'uses.total') ?? num('sources_uses', 'total_uses'),
|
|
224
|
+
total_value: num('valuation', 'underwritten_value') ?? num('valuation', 'purchase_price'),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=capital-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capital-stack.js","sourceRoot":"","sources":["../src/capital-stack.ts"],"names":[],"mappings":"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"}
|
package/dist/cascade.d.ts
CHANGED
|
@@ -17,10 +17,54 @@ export interface MarketDataLookup {
|
|
|
17
17
|
central: number;
|
|
18
18
|
high: number;
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Optional identity of the observation set this value came from, surfaced
|
|
22
|
+
* as `ResolvedValue.resolved_from`. Added by RFC 0022 so a market-derived
|
|
23
|
+
* value can say *which* set produced it — the gap that made receipts over
|
|
24
|
+
* market data irreproducible. Optional, so a host returning the original
|
|
25
|
+
* `{ value, range }` shape is unaffected.
|
|
26
|
+
*/
|
|
27
|
+
source_id?: string;
|
|
20
28
|
} | null;
|
|
21
29
|
/** How long an observation remains usable, for staleness checks downstream. */
|
|
22
30
|
staleness_seconds: number;
|
|
23
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Assumptions one ancestor asserts for its descendants (RFC 0021 §5).
|
|
34
|
+
*
|
|
35
|
+
* Callers build these by walking the composition DAG; this module does not
|
|
36
|
+
* discover them, because there is deliberately no ambient assumption scope —
|
|
37
|
+
* a document not reachable as an ancestor contributes nothing.
|
|
38
|
+
*/
|
|
39
|
+
export interface InheritedAssumptions {
|
|
40
|
+
/** The ancestor asserting these values. */
|
|
41
|
+
document_id: string;
|
|
42
|
+
/** `sha256:<64 lowercase hex>` over the ancestor's canonical form. */
|
|
43
|
+
digest: string;
|
|
44
|
+
/** Hops up the DAG from the resolving document; 1 is the immediate parent. */
|
|
45
|
+
distance: number;
|
|
46
|
+
/** Field-path → value. */
|
|
47
|
+
values: Record<string, unknown>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Raised when two equidistant ancestors assert the same field. Diamond
|
|
51
|
+
* inheritance resolves explicitly or not at all — silently picking one would
|
|
52
|
+
* make the answer depend on graph traversal order, which is the class of bug
|
|
53
|
+
* this whole RFC is written to avoid.
|
|
54
|
+
*/
|
|
55
|
+
export declare class AmbiguousInheritanceError extends Error {
|
|
56
|
+
readonly code: "COMP-AMBIGUOUS-INHERIT";
|
|
57
|
+
readonly field_path: string;
|
|
58
|
+
readonly ancestors: string[];
|
|
59
|
+
constructor(field_path: string, ancestors: string[]);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Select the inherited value for `field_path`: the nearest ancestor wins.
|
|
63
|
+
*
|
|
64
|
+
* Exported because a host often needs the winning ancestor's identity to stamp
|
|
65
|
+
* `_meta.inherited_from`, not merely the value.
|
|
66
|
+
*/
|
|
67
|
+
export declare function selectInheritedAssumption(field_path: string, inherited: readonly InheritedAssumptions[]): InheritedAssumptions | null;
|
|
24
68
|
export interface InvestorProfile {
|
|
25
69
|
/** Field-path → preferred value map. */
|
|
26
70
|
values: Record<string, unknown>;
|
|
@@ -42,6 +86,12 @@ export interface CascadeContext {
|
|
|
42
86
|
/** Optional geography hint passed to the market-data resolver. */
|
|
43
87
|
geo?: string;
|
|
44
88
|
profile?: InvestorProfile;
|
|
89
|
+
/**
|
|
90
|
+
* Assumptions from ancestors in the composition DAG (RFC 0021 §5). Supplied
|
|
91
|
+
* by the caller after resolving the graph; absent for a standalone record,
|
|
92
|
+
* which is why no pre-0021 document can resolve at this step.
|
|
93
|
+
*/
|
|
94
|
+
inherited?: readonly InheritedAssumptions[];
|
|
45
95
|
market?: MarketDataLookup;
|
|
46
96
|
global?: GlobalDefaults;
|
|
47
97
|
system?: SystemDefaults;
|
|
@@ -65,12 +115,16 @@ export interface ResolvedValue {
|
|
|
65
115
|
*
|
|
66
116
|
* Cascade order:
|
|
67
117
|
* 1. user_override (in-file, source-tag match)
|
|
68
|
-
* 2. user_input (in-file, source-tag match)
|
|
69
|
-
* 3.
|
|
70
|
-
* 4.
|
|
71
|
-
* 5.
|
|
72
|
-
* 6.
|
|
73
|
-
* 7.
|
|
118
|
+
* 2. user_input (in-file, source-tag match; also market_data_accepted)
|
|
119
|
+
* 3. inherited_assumption (ctx.inherited — composition DAG only)
|
|
120
|
+
* 4. investor_profile (ctx.profile)
|
|
121
|
+
* 5. market_data (ctx.market)
|
|
122
|
+
* 6. asset_class_default (defaults registry)
|
|
123
|
+
* 7. global_default (ctx.global)
|
|
124
|
+
* 8. system_default (ctx.system)
|
|
125
|
+
*
|
|
126
|
+
* Throws `AmbiguousInheritanceError` when two equidistant ancestors assert the
|
|
127
|
+
* same field — the one case where resolution refuses rather than choosing.
|
|
74
128
|
*
|
|
75
129
|
* Returns `undefined` value with step='system_default' as a sentinel only when
|
|
76
130
|
* every step misses; callers SHOULD treat that as an unresolvable input and
|