@finsys/core 4.7.0 → 4.9.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.
@@ -137,6 +137,15 @@
137
137
  "type": { "const": "extraction-pipeline" }
138
138
  },
139
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."
140
+ },
141
+ {
142
+ "type": "object",
143
+ "required": ["type"],
144
+ "additionalProperties": false,
145
+ "properties": {
146
+ "type": { "const": "external-assertion" }
147
+ },
148
+ "description": "SYS-3036 — declaration-only: the adapter is executed entirely OUTSIDE the host. An externally-orchestrated process completes its own ceremony/extraction and PUSHES the result to the host's assertion-ingest surface. No code is loaded and neither fetch() nor extract() ever runs — same declaration-only shape as form-intake/manual-override/extraction-pipeline, but data arrives via an external push rather than the host's own pipeline, form submission, or extract() call."
140
149
  }
141
150
  ]
142
151
  },
@@ -210,6 +219,21 @@
210
219
  },
211
220
  "description": "SYS-3002 — ordered period declarations: the contract for the category's period axis. Positional identity, 1-BASED: period1 is the FIRST array entry; there is no period0. Declared positions may overlap, nest, vary in length, or be staggered (e.g. period1 = an annual table, periods 2-5 = the four quarters overlapping it) — dates never identify a period. Absent means the single-period convention (exactly one implicit period; single-period categories never need to declare), so a declared list must be non-empty. Any implementation type may declare — the axis is contract-level, not implementation-level."
212
221
  },
222
+ "enumValues": {
223
+ "type": "object",
224
+ "additionalProperties": {
225
+ "type": "array",
226
+ "minItems": 1,
227
+ "uniqueItems": true,
228
+ "items": {
229
+ "type": "string",
230
+ "minLength": 1,
231
+ "maxLength": 200,
232
+ "pattern": "^\\S(.*\\S)?$"
233
+ }
234
+ },
235
+ "description": "Vendor-specific value sets for the enum-kind fields this adapter produces. The category declares only THAT a field is enumerated (kind 'enum' — no values, no ordering); this map declares WHICH labels this vendor emits. Host-validated at registration: every key must appear in `produces` and be declared kind 'enum' by the category, and every enum-kind field in `produces` must have an entry. Labels are string-normalized (non-empty, no leading/trailing whitespace) and unique per set; the adapter emits them VERBATIM and the host refuses out-of-set values at ingest. Ordering and scoring interpretation belong to the consumer's per-value mapping, never here. Matching is exact-string (case and whitespace variations from a declared label are distinct, hence out-of-set, deliberately) — `uniqueItems` is likewise exact-match, so e.g. [\"High\", \"high\"] is a legal two-label set; vendors own their exact label byte-for-byte, hosts never fold case or reconcile near-miss spelling."
236
+ },
213
237
  "notes": {
214
238
  "type": "string",
215
239
  "maxLength": 2000,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finsys/core",
3
- "version": "4.7.0",
3
+ "version": "4.9.0",
4
4
  "description": "Convert unified form configurations into Zod schemas, React Hook Form defaults, and SurveyJS JSON",
5
5
  "repository": {
6
6
  "type": "git",