@finsys/core 4.3.0 → 4.5.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.
@@ -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
  },
@@ -178,6 +187,29 @@
178
187
  },
179
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."
180
189
  },
190
+ "periods": {
191
+ "type": "array",
192
+ "minItems": 1,
193
+ "items": {
194
+ "type": "object",
195
+ "required": ["name"],
196
+ "additionalProperties": false,
197
+ "properties": {
198
+ "name": {
199
+ "type": "string",
200
+ "minLength": 1,
201
+ "maxLength": 200,
202
+ "description": "Human role label for the position (e.g. 'Current fiscal year'). Rendered in operator UIs; carries no identity semantics."
203
+ },
204
+ "description": {
205
+ "type": "string",
206
+ "maxLength": 2000,
207
+ "description": "Optional longer description of what this position holds."
208
+ }
209
+ }
210
+ },
211
+ "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
+ },
181
213
  "notes": {
182
214
  "type": "string",
183
215
  "maxLength": 2000,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finsys/core",
3
- "version": "4.3.0",
3
+ "version": "4.5.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",