@uwmd/core 1.1.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 +79 -0
- package/dist/agents/bancroft.d.ts +32 -0
- package/dist/agents/bancroft.d.ts.map +1 -0
- package/dist/agents/bancroft.js +292 -0
- package/dist/agents/bancroft.js.map +1 -0
- package/dist/agents/schemas.d.ts +13 -0
- package/dist/agents/schemas.d.ts.map +1 -0
- package/dist/agents/schemas.js +74 -0
- package/dist/agents/schemas.js.map +1 -0
- package/dist/bindings.d.ts +85 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +293 -0
- package/dist/bindings.js.map +1 -0
- package/dist/browser.d.ts +66 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +53 -0
- package/dist/browser.js.map +1 -0
- package/dist/calc/builtins.d.ts +4 -0
- package/dist/calc/builtins.d.ts.map +1 -0
- package/dist/calc/builtins.js +329 -0
- package/dist/calc/builtins.js.map +1 -0
- package/dist/calc/dependencies.d.ts +34 -0
- package/dist/calc/dependencies.d.ts.map +1 -0
- package/dist/calc/dependencies.js +101 -0
- package/dist/calc/dependencies.js.map +1 -0
- package/dist/calc/errors.d.ts +8 -0
- package/dist/calc/errors.d.ts.map +1 -0
- package/dist/calc/errors.js +18 -0
- package/dist/calc/errors.js.map +1 -0
- package/dist/calc/evaluator.d.ts +5 -0
- package/dist/calc/evaluator.d.ts.map +1 -0
- package/dist/calc/evaluator.js +184 -0
- package/dist/calc/evaluator.js.map +1 -0
- package/dist/calc/index.d.ts +14 -0
- package/dist/calc/index.d.ts.map +1 -0
- package/dist/calc/index.js +56 -0
- package/dist/calc/index.js.map +1 -0
- package/dist/calc/parser.d.ts +32 -0
- package/dist/calc/parser.d.ts.map +1 -0
- package/dist/calc/parser.js +361 -0
- package/dist/calc/parser.js.map +1 -0
- package/dist/cascade.d.ts +85 -0
- package/dist/cascade.d.ts.map +1 -0
- package/dist/cascade.js +172 -0
- package/dist/cascade.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +843 -0
- package/dist/cli.js.map +1 -0
- package/dist/codec.d.ts +25 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +62 -0
- package/dist/codec.js.map +1 -0
- package/dist/codecs.d.ts +6 -0
- package/dist/codecs.d.ts.map +1 -0
- package/dist/codecs.js +12 -0
- package/dist/codecs.js.map +1 -0
- package/dist/compactor.d.ts +11 -0
- package/dist/compactor.d.ts.map +1 -0
- package/dist/compactor.js +84 -0
- package/dist/compactor.js.map +1 -0
- package/dist/context-profiles.d.ts +30 -0
- package/dist/context-profiles.d.ts.map +1 -0
- package/dist/context-profiles.js +225 -0
- package/dist/context-profiles.js.map +1 -0
- package/dist/context.d.ts +55 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +288 -0
- package/dist/context.js.map +1 -0
- package/dist/dcf.d.ts +9 -0
- package/dist/dcf.d.ts.map +1 -0
- package/dist/dcf.js +75 -0
- package/dist/dcf.js.map +1 -0
- package/dist/debt.d.ts +11 -0
- package/dist/debt.d.ts.map +1 -0
- package/dist/debt.js +85 -0
- package/dist/debt.js.map +1 -0
- package/dist/defaults.d.ts +104 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +622 -0
- package/dist/defaults.js.map +1 -0
- package/dist/derived.d.ts +17 -0
- package/dist/derived.d.ts.map +1 -0
- package/dist/derived.js +29 -0
- package/dist/derived.js.map +1 -0
- package/dist/editor.d.ts +76 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +502 -0
- package/dist/editor.js.map +1 -0
- package/dist/envelope.d.ts +51 -0
- package/dist/envelope.d.ts.map +1 -0
- package/dist/envelope.js +213 -0
- package/dist/envelope.js.map +1 -0
- package/dist/format.d.ts +60 -0
- package/dist/format.d.ts.map +1 -0
- package/dist/format.js +115 -0
- package/dist/format.js.map +1 -0
- package/dist/gaps.d.ts +62 -0
- package/dist/gaps.d.ts.map +1 -0
- package/dist/gaps.js +272 -0
- package/dist/gaps.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +15 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +169 -0
- package/dist/init.js.map +1 -0
- package/dist/integrity-canonical.d.ts +17 -0
- package/dist/integrity-canonical.d.ts.map +1 -0
- package/dist/integrity-canonical.js +124 -0
- package/dist/integrity-canonical.js.map +1 -0
- package/dist/integrity.d.ts +54 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +244 -0
- package/dist/integrity.js.map +1 -0
- package/dist/modules.d.ts +24 -0
- package/dist/modules.d.ts.map +1 -0
- package/dist/modules.js +322 -0
- package/dist/modules.js.map +1 -0
- package/dist/negotiation.d.ts +19 -0
- package/dist/negotiation.d.ts.map +1 -0
- package/dist/negotiation.js +70 -0
- package/dist/negotiation.js.map +1 -0
- package/dist/opstatement.d.ts +9 -0
- package/dist/opstatement.d.ts.map +1 -0
- package/dist/opstatement.js +80 -0
- package/dist/opstatement.js.map +1 -0
- package/dist/packs/excel-emit.d.ts +21 -0
- package/dist/packs/excel-emit.d.ts.map +1 -0
- package/dist/packs/excel-emit.js +135 -0
- package/dist/packs/excel-emit.js.map +1 -0
- package/dist/packs/index.d.ts +13 -0
- package/dist/packs/index.d.ts.map +1 -0
- package/dist/packs/index.js +37 -0
- package/dist/packs/index.js.map +1 -0
- package/dist/packs/industrial.d.ts +3 -0
- package/dist/packs/industrial.d.ts.map +1 -0
- package/dist/packs/industrial.js +115 -0
- package/dist/packs/industrial.js.map +1 -0
- package/dist/packs/multifamily.d.ts +3 -0
- package/dist/packs/multifamily.d.ts.map +1 -0
- package/dist/packs/multifamily.js +82 -0
- package/dist/packs/multifamily.js.map +1 -0
- package/dist/packs/office.d.ts +3 -0
- package/dist/packs/office.d.ts.map +1 -0
- package/dist/packs/office.js +108 -0
- package/dist/packs/office.js.map +1 -0
- package/dist/packs/retail.d.ts +3 -0
- package/dist/packs/retail.d.ts.map +1 -0
- package/dist/packs/retail.js +115 -0
- package/dist/packs/retail.js.map +1 -0
- package/dist/packs/self-storage.d.ts +3 -0
- package/dist/packs/self-storage.d.ts.map +1 -0
- package/dist/packs/self-storage.js +105 -0
- package/dist/packs/self-storage.js.map +1 -0
- package/dist/parser.d.ts +15 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +430 -0
- package/dist/parser.js.map +1 -0
- package/dist/protocol.d.ts +389 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +714 -0
- package/dist/protocol.js.map +1 -0
- package/dist/refinement.d.ts +63 -0
- package/dist/refinement.d.ts.map +1 -0
- package/dist/refinement.js +242 -0
- package/dist/refinement.js.map +1 -0
- package/dist/renderer.d.ts +22 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +478 -0
- package/dist/renderer.js.map +1 -0
- package/dist/rentroll.d.ts +21 -0
- package/dist/rentroll.d.ts.map +1 -0
- package/dist/rentroll.js +256 -0
- package/dist/rentroll.js.map +1 -0
- package/dist/report.d.ts +29 -0
- package/dist/report.d.ts.map +1 -0
- package/dist/report.js +924 -0
- package/dist/report.js.map +1 -0
- package/dist/runner.d.ts +43 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +288 -0
- package/dist/runner.js.map +1 -0
- package/dist/sourcesuses.d.ts +14 -0
- package/dist/sourcesuses.d.ts.map +1 -0
- package/dist/sourcesuses.js +63 -0
- package/dist/sourcesuses.js.map +1 -0
- package/dist/types.d.ts +248 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +15 -0
- package/dist/types.js.map +1 -0
- package/dist/uwcsv.d.ts +23 -0
- package/dist/uwcsv.d.ts.map +1 -0
- package/dist/uwcsv.js +877 -0
- package/dist/uwcsv.js.map +1 -0
- package/dist/uwjson.d.ts +19 -0
- package/dist/uwjson.d.ts.map +1 -0
- package/dist/uwjson.js +61 -0
- package/dist/uwjson.js.map +1 -0
- package/dist/uwxml.d.ts +18 -0
- package/dist/uwxml.d.ts.map +1 -0
- package/dist/uwxml.js +297 -0
- package/dist/uwxml.js.map +1 -0
- package/dist/validator.d.ts +35 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +553 -0
- package/dist/validator.js.map +1 -0
- package/dist/valuation.d.ts +9 -0
- package/dist/valuation.d.ts.map +1 -0
- package/dist/valuation.js +34 -0
- package/dist/valuation.js.map +1 -0
- package/package.json +58 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
export type ConfidenceLevel = 'high' | 'medium' | 'low';
|
|
2
|
+
export type PipelineStatus = 'complete' | 'in_progress' | 'pending' | 'skipped' | 'failed';
|
|
3
|
+
export type ValidationSeverity = 'error' | 'warning' | 'info';
|
|
4
|
+
export type DealStage = 'scope' | 'screening' | 'term_sheet' | 'full_underwrite' | 'credit_approval' | 'closing' | 'monitoring';
|
|
5
|
+
/**
|
|
6
|
+
* Source tags surface where a value came from. Producers stamp `_meta.source`
|
|
7
|
+
* with a value drawn from this union or an institution-defined pattern (e.g.
|
|
8
|
+
* 'agent/L6-01', 'document/rent_roll'). Free-form strings remain valid for
|
|
9
|
+
* forward compat; this union enumerates the canonical values.
|
|
10
|
+
*
|
|
11
|
+
* Cascade-resolved values use the lower seven tags below; see protocol §IX.
|
|
12
|
+
*/
|
|
13
|
+
export type SourceTag = 'user_input' | 'user_override' | 'manual' | 'investor_profile' | 'market_data' | 'ai_extracted' | 'agent_computed' | 'asset_class_default' | 'scenario_default' | 'global_default' | 'system_default' | (string & {});
|
|
14
|
+
export type AssetClass = 'multifamily' | 'office' | 'retail' | 'industrial' | 'self_storage' | 'hospitality' | 'mixed_use' | 'senior_housing' | 'student_housing' | 'land';
|
|
15
|
+
export interface UWFieldOverride {
|
|
16
|
+
/** Dot-notated path relative to the block's content root (e.g. "units[7].current_rent"). */
|
|
17
|
+
path: string;
|
|
18
|
+
confidence?: ConfidenceLevel;
|
|
19
|
+
source?: SourceTag;
|
|
20
|
+
reason?: 'illegible' | 'missing' | 'overridden' | 'estimated' | 'computed';
|
|
21
|
+
note?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface UWMeta {
|
|
24
|
+
section: string;
|
|
25
|
+
version: number;
|
|
26
|
+
superseded: boolean;
|
|
27
|
+
source: SourceTag;
|
|
28
|
+
agent_id: string | null;
|
|
29
|
+
agent_version: string | null;
|
|
30
|
+
actor: string;
|
|
31
|
+
timestamp: string;
|
|
32
|
+
confidence: ConfidenceLevel;
|
|
33
|
+
human_review_required: boolean;
|
|
34
|
+
flags: string[];
|
|
35
|
+
input_hash: string | null;
|
|
36
|
+
notes: string | null;
|
|
37
|
+
/**
|
|
38
|
+
* True when at least one field inside this block is missing or unknown.
|
|
39
|
+
* When true, `field_overrides` SHOULD enumerate which paths and why.
|
|
40
|
+
*/
|
|
41
|
+
partial?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* True when the entire block is a placeholder, derived from defaults rather
|
|
44
|
+
* than observed data. Stronger signal than confidence:'low'. Downstream
|
|
45
|
+
* consumers SHOULD label outputs derived from provisional blocks.
|
|
46
|
+
*/
|
|
47
|
+
provisional?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Per-field overrides where the block-level confidence/source does not apply
|
|
50
|
+
* uniformly. The path is dot-notated relative to the block content root.
|
|
51
|
+
*/
|
|
52
|
+
field_overrides?: UWFieldOverride[];
|
|
53
|
+
/**
|
|
54
|
+
* sha256 of the canonicalized block content (excluding _meta.content_hash
|
|
55
|
+
* and _meta.signature themselves). See protocol §IX.2 for the
|
|
56
|
+
* canonicalization rule. Optional; when present, the chain becomes
|
|
57
|
+
* verifiable.
|
|
58
|
+
*/
|
|
59
|
+
content_hash?: string;
|
|
60
|
+
/**
|
|
61
|
+
* content_hash of the block this one supersedes. null on a chain root.
|
|
62
|
+
* Optional, but if any block in a supersede chain has it, all later blocks
|
|
63
|
+
* in that chain MUST.
|
|
64
|
+
*/
|
|
65
|
+
parent_hash?: string | null;
|
|
66
|
+
}
|
|
67
|
+
export interface UWFenceAnnotation {
|
|
68
|
+
section: string;
|
|
69
|
+
source?: string;
|
|
70
|
+
ts?: string;
|
|
71
|
+
v?: number;
|
|
72
|
+
superseded?: boolean;
|
|
73
|
+
variant?: string;
|
|
74
|
+
confidence?: ConfidenceLevel;
|
|
75
|
+
[key: string]: string | number | boolean | undefined;
|
|
76
|
+
}
|
|
77
|
+
export interface UWBlock<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
78
|
+
annotation: UWFenceAnnotation;
|
|
79
|
+
meta: UWMeta;
|
|
80
|
+
content: T;
|
|
81
|
+
prose: string;
|
|
82
|
+
rawJson: string;
|
|
83
|
+
lineStart: number;
|
|
84
|
+
lineEnd: number;
|
|
85
|
+
}
|
|
86
|
+
export interface UWPipelineState {
|
|
87
|
+
L0_ingestion?: PipelineStatus;
|
|
88
|
+
L1_screening?: PipelineStatus;
|
|
89
|
+
L2_underwriting?: PipelineStatus;
|
|
90
|
+
L4_structuring?: PipelineStatus;
|
|
91
|
+
L5_compliance?: PipelineStatus;
|
|
92
|
+
L6_risk?: PipelineStatus;
|
|
93
|
+
L7_assembly?: PipelineStatus;
|
|
94
|
+
}
|
|
95
|
+
export interface UWQuickMetrics {
|
|
96
|
+
purchase_price?: number | null;
|
|
97
|
+
loan_amount?: number | null;
|
|
98
|
+
noi_underwritten?: number | null;
|
|
99
|
+
dscr?: number | null;
|
|
100
|
+
ltv?: number | null;
|
|
101
|
+
debt_yield?: number | null;
|
|
102
|
+
cap_rate?: number | null;
|
|
103
|
+
irr_projected?: number | null;
|
|
104
|
+
equity_required?: number | null;
|
|
105
|
+
[key: string]: number | null | undefined;
|
|
106
|
+
}
|
|
107
|
+
export interface UWFrontmatter {
|
|
108
|
+
uw_version: string;
|
|
109
|
+
deal_id: string;
|
|
110
|
+
deal_name: string;
|
|
111
|
+
created: string;
|
|
112
|
+
last_modified: string;
|
|
113
|
+
property_address: string;
|
|
114
|
+
city: string;
|
|
115
|
+
state: string;
|
|
116
|
+
zip: string;
|
|
117
|
+
asset_class: AssetClass;
|
|
118
|
+
asset_subtype?: string | null;
|
|
119
|
+
loan_type?: string | null;
|
|
120
|
+
scenario?: string | null;
|
|
121
|
+
pipeline_state?: UWPipelineState;
|
|
122
|
+
status?: string;
|
|
123
|
+
deal_stage?: DealStage;
|
|
124
|
+
recommendation?: string | null;
|
|
125
|
+
quick_metrics?: UWQuickMetrics;
|
|
126
|
+
flags?: string[];
|
|
127
|
+
blocking_flags?: string[];
|
|
128
|
+
tier?: 'screener' | 'analyst';
|
|
129
|
+
institution_config_id?: string | null;
|
|
130
|
+
created_by?: string;
|
|
131
|
+
source_documents?: string[];
|
|
132
|
+
[key: string]: unknown;
|
|
133
|
+
}
|
|
134
|
+
export interface ParsedSections {
|
|
135
|
+
[sectionId: string]: UWBlock | {
|
|
136
|
+
[variant: string]: UWBlock;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export interface ParsedUWFile {
|
|
140
|
+
frontmatter: UWFrontmatter;
|
|
141
|
+
sections: ParsedSections;
|
|
142
|
+
prose: {
|
|
143
|
+
[sectionId: string]: string;
|
|
144
|
+
};
|
|
145
|
+
pipeline_log: UWBlock[];
|
|
146
|
+
custom_calculations: UWBlock[];
|
|
147
|
+
custom_scenarios: UWBlock[];
|
|
148
|
+
extensions: {
|
|
149
|
+
[extensionId: string]: UWBlock;
|
|
150
|
+
};
|
|
151
|
+
superseded: {
|
|
152
|
+
[sectionId: string]: UWBlock[];
|
|
153
|
+
};
|
|
154
|
+
raw: string;
|
|
155
|
+
}
|
|
156
|
+
export interface ValidationMessage {
|
|
157
|
+
code: string;
|
|
158
|
+
severity: ValidationSeverity;
|
|
159
|
+
section?: string;
|
|
160
|
+
field?: string;
|
|
161
|
+
message: string;
|
|
162
|
+
value?: unknown;
|
|
163
|
+
threshold?: {
|
|
164
|
+
min?: number;
|
|
165
|
+
max?: number;
|
|
166
|
+
};
|
|
167
|
+
/** Short title from BUILTIN_REMEDIATIONS, when a matching registry entry exists. */
|
|
168
|
+
title?: string;
|
|
169
|
+
/** Imperative remediation copy from BUILTIN_REMEDIATIONS, when available. */
|
|
170
|
+
remediation?: string;
|
|
171
|
+
/** Spec section anchor for deep-linking, when available. */
|
|
172
|
+
spec_ref?: string;
|
|
173
|
+
/**
|
|
174
|
+
* Deprecated string-form code from prior versions, emitted alongside
|
|
175
|
+
* the canonical numeric `code` for one release as a migration aid.
|
|
176
|
+
* Consumers should switch to reading `code`. Removal target: v1.2.
|
|
177
|
+
*/
|
|
178
|
+
legacy_code?: string;
|
|
179
|
+
}
|
|
180
|
+
export interface StageReadiness {
|
|
181
|
+
scope: boolean;
|
|
182
|
+
screening: boolean;
|
|
183
|
+
term_sheet: boolean;
|
|
184
|
+
full_underwrite: boolean;
|
|
185
|
+
credit_approval: boolean;
|
|
186
|
+
closing: boolean;
|
|
187
|
+
monitoring: boolean;
|
|
188
|
+
}
|
|
189
|
+
export interface ValidationResult {
|
|
190
|
+
overall_status: 'clean' | 'warnings' | 'errors' | 'blocking';
|
|
191
|
+
stage_readiness: StageReadiness;
|
|
192
|
+
issues: ValidationMessage[];
|
|
193
|
+
errors: ValidationMessage[];
|
|
194
|
+
warnings: ValidationMessage[];
|
|
195
|
+
info: ValidationMessage[];
|
|
196
|
+
}
|
|
197
|
+
export interface FinancialThresholds {
|
|
198
|
+
dscr: {
|
|
199
|
+
error_below: number;
|
|
200
|
+
warning_below: number;
|
|
201
|
+
};
|
|
202
|
+
ltv: {
|
|
203
|
+
warning_above: number;
|
|
204
|
+
error_above: number;
|
|
205
|
+
};
|
|
206
|
+
debt_yield: {
|
|
207
|
+
warning_below: number;
|
|
208
|
+
};
|
|
209
|
+
cap_rate: {
|
|
210
|
+
warning_below: number;
|
|
211
|
+
warning_above: number;
|
|
212
|
+
};
|
|
213
|
+
vacancy_rate: {
|
|
214
|
+
warning_below: number;
|
|
215
|
+
warning_above: number;
|
|
216
|
+
};
|
|
217
|
+
opex_ratio: {
|
|
218
|
+
warning_below: number;
|
|
219
|
+
warning_above: number;
|
|
220
|
+
};
|
|
221
|
+
irr: {
|
|
222
|
+
warning_below: number;
|
|
223
|
+
warning_above: number;
|
|
224
|
+
};
|
|
225
|
+
equity_multiple: {
|
|
226
|
+
warning_below: number;
|
|
227
|
+
warning_above: number;
|
|
228
|
+
};
|
|
229
|
+
annual_rent_growth: {
|
|
230
|
+
warning_above: number;
|
|
231
|
+
};
|
|
232
|
+
ltc: {
|
|
233
|
+
warning_above: number;
|
|
234
|
+
error_above: number;
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
export declare const DEFAULT_THRESHOLDS: FinancialThresholds;
|
|
238
|
+
export interface ParseOptions {
|
|
239
|
+
strict?: boolean;
|
|
240
|
+
thresholds?: Partial<FinancialThresholds>;
|
|
241
|
+
}
|
|
242
|
+
export interface InstitutionConfig {
|
|
243
|
+
institution_name: string;
|
|
244
|
+
thresholds?: Partial<FinancialThresholds>;
|
|
245
|
+
required_fields?: string[];
|
|
246
|
+
render_template?: string;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// .uw.md format — TypeScript type definitions
|
|
2
|
+
// Spec: UW_FORMAT_SPEC_v1.md v1.1
|
|
3
|
+
export const DEFAULT_THRESHOLDS = {
|
|
4
|
+
dscr: { error_below: 1.0, warning_below: 1.2 },
|
|
5
|
+
ltv: { warning_above: 0.75, error_above: 0.85 },
|
|
6
|
+
debt_yield: { warning_below: 0.07 },
|
|
7
|
+
cap_rate: { warning_below: 0.03, warning_above: 0.15 },
|
|
8
|
+
vacancy_rate: { warning_below: 0.02, warning_above: 0.40 },
|
|
9
|
+
opex_ratio: { warning_below: 0.20, warning_above: 0.70 },
|
|
10
|
+
irr: { warning_below: 0.05, warning_above: 0.40 },
|
|
11
|
+
equity_multiple: { warning_below: 1.0, warning_above: 5.0 },
|
|
12
|
+
annual_rent_growth: { warning_above: 0.08 },
|
|
13
|
+
ltc: { warning_above: 0.80, error_above: 0.90 },
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,kCAAkC;AA6QlC,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,IAAI,EAAe,EAAE,WAAW,EAAE,GAAG,EAAG,aAAa,EAAE,GAAG,EAAE;IAC5D,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC7D,UAAU,EAAS,EAAE,aAAa,EAAE,IAAI,EAAE;IAC1C,QAAQ,EAAW,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,YAAY,EAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,UAAU,EAAS,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,eAAe,EAAI,EAAE,aAAa,EAAE,GAAG,EAAG,aAAa,EAAE,GAAG,EAAE;IAC9D,kBAAkB,EAAC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC1C,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;CAC9D,CAAC"}
|
package/dist/uwcsv.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { UWCodec } from './codec.js';
|
|
2
|
+
import { type UWDocumentEnvelope } from './envelope.js';
|
|
3
|
+
export declare const UW_CSV_BUNDLE_VERSION: "1.0.0";
|
|
4
|
+
export declare const UW_CSV_BUNDLE_MEDIA_TYPE: "application/vnd.uwmd.csv-bundle+zip";
|
|
5
|
+
export interface UWCSVBundle {
|
|
6
|
+
files: Record<string, string>;
|
|
7
|
+
}
|
|
8
|
+
export interface UWCSVDecodeOptions {
|
|
9
|
+
maxCompressedBytes?: number;
|
|
10
|
+
maxUncompressedBytes?: number;
|
|
11
|
+
maxFiles?: number;
|
|
12
|
+
maxCompressionRatio?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class UWCSVError extends Error {
|
|
15
|
+
readonly code: string;
|
|
16
|
+
constructor(code: string, message: string);
|
|
17
|
+
}
|
|
18
|
+
export declare function encodeUWCSVBundle(envelope: UWDocumentEnvelope): Promise<UWCSVBundle>;
|
|
19
|
+
export declare function decodeUWCSVBundle(bundle: UWCSVBundle, options?: UWCSVDecodeOptions): Promise<UWDocumentEnvelope>;
|
|
20
|
+
export declare function encodeUWCSVZip(envelope: UWDocumentEnvelope): Promise<Uint8Array>;
|
|
21
|
+
export declare function decodeUWCSVZip(input: Uint8Array, options?: UWCSVDecodeOptions): Promise<UWDocumentEnvelope>;
|
|
22
|
+
export declare const UW_CSV_BUNDLE_CODEC: UWCodec<Uint8Array>;
|
|
23
|
+
//# sourceMappingURL=uwcsv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uwcsv.d.ts","sourceRoot":"","sources":["../src/uwcsv.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,eAAe,CAAC;AAGvB,eAAO,MAAM,qBAAqB,EAAG,OAAgB,CAAC;AACtD,eAAO,MAAM,wBAAwB,EAAG,qCAA8C,CAAC;AAgBvF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAiDD,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkI1F;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAsJ7B;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAOtF;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,kBAAkB,CAAC,CAoB7B;AAED,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAYnD,CAAC"}
|