@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.
Files changed (63) hide show
  1. package/dist/browser.d.ts +14 -6
  2. package/dist/browser.d.ts.map +1 -1
  3. package/dist/browser.js +8 -4
  4. package/dist/browser.js.map +1 -1
  5. package/dist/capital-stack.d.ts +116 -0
  6. package/dist/capital-stack.d.ts.map +1 -0
  7. package/dist/capital-stack.js +227 -0
  8. package/dist/capital-stack.js.map +1 -0
  9. package/dist/cascade.d.ts +60 -6
  10. package/dist/cascade.d.ts.map +1 -1
  11. package/dist/cascade.js +93 -14
  12. package/dist/cascade.js.map +1 -1
  13. package/dist/cli.js +269 -11
  14. package/dist/cli.js.map +1 -1
  15. package/dist/composition.d.ts +182 -0
  16. package/dist/composition.d.ts.map +1 -0
  17. package/dist/composition.js +536 -0
  18. package/dist/composition.js.map +1 -0
  19. package/dist/context.js +23 -23
  20. package/dist/defaults.d.ts +18 -0
  21. package/dist/defaults.d.ts.map +1 -1
  22. package/dist/defaults.js +64 -0
  23. package/dist/defaults.js.map +1 -1
  24. package/dist/index.d.ts +14 -6
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +8 -4
  27. package/dist/index.js.map +1 -1
  28. package/dist/lite-bridge.d.ts +9 -0
  29. package/dist/lite-bridge.d.ts.map +1 -1
  30. package/dist/lite-bridge.js +44 -5
  31. package/dist/lite-bridge.js.map +1 -1
  32. package/dist/lite.js +37 -1
  33. package/dist/lite.js.map +1 -1
  34. package/dist/market-data.d.ts +134 -0
  35. package/dist/market-data.d.ts.map +1 -0
  36. package/dist/market-data.js +292 -0
  37. package/dist/market-data.js.map +1 -0
  38. package/dist/packs/index.d.ts +1 -0
  39. package/dist/packs/index.d.ts.map +1 -1
  40. package/dist/packs/index.js +3 -0
  41. package/dist/packs/index.js.map +1 -1
  42. package/dist/packs/mixed-use.d.ts +3 -0
  43. package/dist/packs/mixed-use.d.ts.map +1 -0
  44. package/dist/packs/mixed-use.js +204 -0
  45. package/dist/packs/mixed-use.js.map +1 -0
  46. package/dist/protocol.d.ts +57 -8
  47. package/dist/protocol.d.ts.map +1 -1
  48. package/dist/protocol.js +153 -4
  49. package/dist/protocol.js.map +1 -1
  50. package/dist/receipts.d.ts +189 -9
  51. package/dist/receipts.d.ts.map +1 -1
  52. package/dist/receipts.js +373 -14
  53. package/dist/receipts.js.map +1 -1
  54. package/dist/report.js +165 -165
  55. package/dist/types.d.ts +54 -1
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/types.js.map +1 -1
  58. package/dist/validator.d.ts.map +1 -1
  59. package/dist/validator.js +263 -6
  60. package/dist/validator.js.map +1 -1
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.js +1 -1
  63. 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
@@ -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
@@ -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. investor_profile (ctx.profile)
70
- * 4. market_data (ctx.market)
71
- * 5. asset_class_default (defaults registry)
72
- * 6. global_default (ctx.global)
73
- * 7. system_default (ctx.system)
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