@finsys/core 4.2.0 → 4.4.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/data/adapter-categories.json +254 -0
- package/dist/index.cjs +256 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +69 -2
- package/dist/index.d.ts +69 -2
- package/dist/index.js +256 -2
- package/dist/index.js.map +1 -1
- package/dist/schema/adapter-manifest.schema.json +34 -0
- package/package.json +1 -1
|
@@ -128,6 +128,15 @@
|
|
|
128
128
|
"type": { "const": "manual-override" }
|
|
129
129
|
},
|
|
130
130
|
"description": "SYS-2501 — declares that this adapter's `produces` list is operator-overridable post-extraction. `produces` IS the override surface; the shape is intentionally empty beyond the discriminator."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": ["type"],
|
|
135
|
+
"additionalProperties": false,
|
|
136
|
+
"properties": {
|
|
137
|
+
"type": { "const": "extraction-pipeline" }
|
|
138
|
+
},
|
|
139
|
+
"description": "SYS-2998 — declaration-only: the adapter's implementation IS the host application's own document-extraction pipeline. No code is loaded and neither fetch() nor extract() ever runs; the host's pipeline writes the canonical rows and records the runs. The manifest exists purely as the declaration plane (produces, cardinality, fieldAuthorizations) for data the host was already producing."
|
|
131
140
|
}
|
|
132
141
|
]
|
|
133
142
|
},
|
|
@@ -153,6 +162,31 @@
|
|
|
153
162
|
"uniqueItems": true,
|
|
154
163
|
"description": "v2.7.0 — partner-specific identity field names required by fetch(). Host validates per-applicant before invoking fetch() and skips the adapter when missing. Omit (or empty) for adapters that don't implement fetch(). Must NOT include core fields ('ihsId', 'ic', 'fullName') — those are always populated, and declaring 'ic' as required would cause the host to skip every non-MY applicant since 'ic' can legitimately be empty."
|
|
155
164
|
},
|
|
165
|
+
"fieldAuthorizations": {
|
|
166
|
+
"type": "object",
|
|
167
|
+
"minProperties": 1,
|
|
168
|
+
"propertyNames": { "minLength": 1 },
|
|
169
|
+
"additionalProperties": {
|
|
170
|
+
"type": "object",
|
|
171
|
+
"minProperties": 1,
|
|
172
|
+
"additionalProperties": false,
|
|
173
|
+
"properties": {
|
|
174
|
+
"lenderRoles": {
|
|
175
|
+
"type": "array",
|
|
176
|
+
"minItems": 1,
|
|
177
|
+
"uniqueItems": true,
|
|
178
|
+
"items": { "type": "string", "minLength": 1 }
|
|
179
|
+
},
|
|
180
|
+
"programIds": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"minItems": 1,
|
|
183
|
+
"uniqueItems": true,
|
|
184
|
+
"items": { "type": "string", "minLength": 1 }
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
"description": "SYS-2503 — declarative per-field authorization gating, keyed by canonical field name (every key must also appear in `produces`; host validates at registration). No entry → field visible to every reader. An entry restricts: reader must satisfy EVERY declared dimension (AND across dimensions), matching ANY value within a list (OR within). Dimensions are host-interpreted opaque strings. Each entry must declare at least one non-empty dimension — an empty list would read as deny-all, better expressed by not producing the field."
|
|
189
|
+
},
|
|
156
190
|
"notes": {
|
|
157
191
|
"type": "string",
|
|
158
192
|
"maxLength": 2000,
|