@finsys/core 4.5.0 → 4.7.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/index.d.cts CHANGED
@@ -842,6 +842,19 @@ interface CanonicalFieldSpec {
842
842
  readonly unit?: string;
843
843
  readonly range?: readonly [number, number];
844
844
  readonly description: string;
845
+ /**
846
+ * Global fact identifier marking this field as an ATTESTATION of a
847
+ * shared real-world fact (e.g. a company has exactly one
848
+ * incorporation date, no matter which document it was extracted
849
+ * from). Multiple categories may declare the SAME field name iff
850
+ * every declaring category carries the same `fact` id — each
851
+ * category's value is then an independent attestation of one fact,
852
+ * comparable across sources (the future disagreement-comparison
853
+ * feature's unit of comparison). A `fact` id is bound to exactly one
854
+ * field name registry-wide; by convention the field name IS the fact
855
+ * id. Uniquely-declared fields need no `fact` (but may carry one).
856
+ */
857
+ readonly fact?: string;
845
858
  }
846
859
  /**
847
860
  * Per-category schema bundle. Used by:
@@ -883,11 +896,30 @@ declare function allCategories(): ReadonlyArray<CategorySchema>;
883
896
  /**
884
897
  * Reverse lookup: which category declares a given canonical field?
885
898
  * Returns null if the field name isn't declared by any category in
886
- * this version of finsys-core. Useful when the host app is reading
887
- * canonical field values back from storage + wants to identify the
888
- * producing category for rendering. O(1).
899
+ * this version of finsys-core AND for shared-fact names (declared by
900
+ * more than one category), where "the" category is genuinely ambiguous.
901
+ * The null is deliberate: a caller holding a shared-fact name must
902
+ * decide per-attestation, via `categoriesAttestingFact(factOf(name))`,
903
+ * rather than being handed one arbitrary declarer. Useful when the
904
+ * host app is reading canonical field values back from storage + wants
905
+ * to identify the producing category for rendering. O(1).
889
906
  */
890
907
  declare function categoryForField(field: CanonicalFieldName): AdapterCategory | null;
908
+ /**
909
+ * The fact id a canonical field attests, or null when the field
910
+ * declares no fact (or isn't declared at all). By convention the fact
911
+ * id equals the field name, but callers must not assume it — read it
912
+ * from here. O(1).
913
+ */
914
+ declare function factOf(field: CanonicalFieldName): string | null;
915
+ /**
916
+ * Every category attesting a given shared fact, in data-file order.
917
+ * Empty for an unknown fact id. This is the lookup the disagreement-
918
+ * comparison feature keys on: each attesting category's value for the
919
+ * fact's field is an independent observation of the same real-world
920
+ * fact, so cross-category mismatches are surfaceable.
921
+ */
922
+ declare function categoriesAttestingFact(factId: string): ReadonlyArray<AdapterCategory>;
891
923
  /**
892
924
  * Runtime membership check — is `id` a category declared by this
893
925
  * version of finsys-core? Use this at trust boundaries (parsing a
@@ -1097,8 +1129,8 @@ type CanonicalFieldValue = number | string | boolean | null;
1097
1129
  * stay assignment-compatible. A telco adapter that needs an MSISDN
1098
1130
  * declares it once at the interface level:
1099
1131
  *
1100
- * interface CelcomExt { msisdn: string }
1101
- * const celcomTelco: SourceAdapter<CelcomExt> = {
1132
+ * interface TelcoPartnerExt { msisdn: string }
1133
+ * const telcoAdapter: SourceAdapter<TelcoPartnerExt> = {
1102
1134
  * async fetch(identity) {
1103
1135
  * identity.msisdn // string (typed via E)
1104
1136
  * identity.ic // string (core)
@@ -1112,7 +1144,7 @@ type CanonicalFieldValue = number | string | boolean | null;
1112
1144
  interface SourceAdapter<E extends Record<string, unknown> = {}> {
1113
1145
  /**
1114
1146
  * Globally unique id for this adapter instance. By convention:
1115
- * `<vendor>-<category-short>-v<n>` — e.g. `celcom-telco-v1`. Vendor
1147
+ * `<vendor>-<category-short>-v<n>` — e.g. `example-telco-v1`. Vendor
1116
1148
  * names appear here in deployment-specific code, NEVER in
1117
1149
  * finsys-core. The id is what the registry uses to dedupe + what
1118
1150
  * provenance records pin to.
@@ -1249,10 +1281,10 @@ interface SourceAdapter<E extends Record<string, unknown> = {}> {
1249
1281
  *
1250
1282
  * Narrowing example (the ergonomics win this type is designed to deliver):
1251
1283
  *
1252
- * interface CelcomExt { msisdn: string; accountRef: string }
1284
+ * interface TelcoPartnerExt { msisdn: string; accountRef: string }
1253
1285
  *
1254
1286
  * // declare adapter with the extension shape baked in:
1255
- * const celcom: SourceAdapter<CelcomExt> = {
1287
+ * const telcoAdapter: SourceAdapter<TelcoPartnerExt> = {
1256
1288
  * async fetch(identity) {
1257
1289
  * identity.ic // string
1258
1290
  * identity.msisdn // string (NOT unknown — narrowed by E)
@@ -1434,7 +1466,7 @@ interface AdapterManifest {
1434
1466
  readonly manifestVersion: 1;
1435
1467
  /**
1436
1468
  * Globally unique adapter id. Conventional pattern:
1437
- * `<vendor>-<category-short>-v<n>` (e.g. `celcom-telco-v1`). The id is
1469
+ * `<vendor>-<category-short>-v<n>` (e.g. `example-telco-v1`). The id is
1438
1470
  * what `SourceAdapter#id` returns + what provenance records pin to.
1439
1471
  */
1440
1472
  readonly id: string;
@@ -1740,4 +1772,4 @@ interface FieldMapEntry {
1740
1772
  readonly transform?: "identity" | "pct_to_ratio01" | "to_boolean" | "to_integer";
1741
1773
  }
1742
1774
 
1743
- export { ADAPTER_CATEGORY_IDS, ALL_AGGREGATION_OPS, type AdapterCategory, AdapterError, type AdapterErrorReason, type AdapterExtraction, type AdapterManifest, type AggregationOp, type ApplicantIdentity, BASE_FIELD_SPECS, BasicFormField, type CanonicalFieldName, type CanonicalFieldSpec, type CanonicalFieldValue, type CanonicalFieldValues, type Category, type CategorySchema, type CategorySpec, type Choice, DEFAULT_VALIDATOR_DEFINITIONS, type DeclarativeImplementation, type DocExtractionResult, DocExtractionStatus, type DocumentFileMetadata, type DocumentRow, type DocumentRowCapabilities, type DocumentTypeGroup, type DropdownOption, type EditorValidator, type ExtractionFileType, type ExtractionJobRecord, ExtractionJobStatus, type ExtractionPipelineImplementation, type ExtractionStatusResult, FIELD_TYPE_DEFINITIONS, type FieldAuthorization, type FieldData, type FieldGroup, type FieldMapEntry, type FieldReference, FieldType, type FileFieldTableData, type FileFieldTableItem, FileFieldTableType, FileFormField, FormField, FormFieldCategory, type FormFieldInputType, type FormFieldType, type FormFieldTypeDefinitions, FormFieldValidator, type FormIntakeFieldMapEntry, type FormIntakeImplementation, FormSpec, type FormValidatorDefinitions, IHS_FAILURE_STATUSES, IHS_FIELD_ORIGINS, IHS_TERMINAL_STATUSES, IHS_VALID_STATUSES, type IhsDetailCategory, type IhsFieldDetail, type IhsFieldOrigin, type IhsFieldProvenance, IhsStatus, IhsValueFormat, type InstanceRow, type InstanceValue, type ManualOverrideImplementation, type PageConfig, type PeriodDeclaration, type PeriodValues, type RHFSchemaOutput, type RHFStep, type RawPayload, type ResolvedField, Role, type SourceAdapter, type SurveyElementJSON, type SurveyJSON, type SurveyPageJSON, type TaggedFieldData, type TimePeriodUnit, type TypescriptImplementation, type UnifiedFormConfig, type Validator, type WireFormat, allCategories, applyAggregation, applyDynamicTitles, assertAdapterCategory, assertDocumentType, buildDocumentRows, buildFileFieldTables, buildFileFieldTablesFromInstances, categoryFieldsOf, categoryForField, categorySchemaOf, evaluateExpression, extractTimePeriods, formatDocumentSize, formatDocumentType, formatDocumentUploaded, generateRHFSchema, generateSurveyJson, getBaseCategories, getBaseFieldNames, getBaseFieldSpecMap, getBaseFieldSpecs, getCategoryName, getDisplayName, getDisplayNames, getDocDisplayNames, getDocumentTypeGroups, getExtractableDocTypes, getGroupDisplayNames, getPastMonthLabel, getPastYearLabel, getReuploadableDocTypes, getStepDefaultValues, getStepSchema, groupColumnsByInstance, groupColumnsByTimePeriod, groupDetailsByCategory, groupFieldsByCategory, groupFieldsByPattern, isAdapterCategory, isDocumentType, isFailureIhsStatus, isTerminalIhsStatus, isValidIhsFieldOrigin, isValidIhsStatus, parseFileField, processIhsDetails, resolveExtractionStatus, resolvePageFields, validateFormConfig, validateFormSpec, validatePagesConfig };
1775
+ export { ADAPTER_CATEGORY_IDS, ALL_AGGREGATION_OPS, type AdapterCategory, AdapterError, type AdapterErrorReason, type AdapterExtraction, type AdapterManifest, type AggregationOp, type ApplicantIdentity, BASE_FIELD_SPECS, BasicFormField, type CanonicalFieldName, type CanonicalFieldSpec, type CanonicalFieldValue, type CanonicalFieldValues, type Category, type CategorySchema, type CategorySpec, type Choice, DEFAULT_VALIDATOR_DEFINITIONS, type DeclarativeImplementation, type DocExtractionResult, DocExtractionStatus, type DocumentFileMetadata, type DocumentRow, type DocumentRowCapabilities, type DocumentTypeGroup, type DropdownOption, type EditorValidator, type ExtractionFileType, type ExtractionJobRecord, ExtractionJobStatus, type ExtractionPipelineImplementation, type ExtractionStatusResult, FIELD_TYPE_DEFINITIONS, type FieldAuthorization, type FieldData, type FieldGroup, type FieldMapEntry, type FieldReference, FieldType, type FileFieldTableData, type FileFieldTableItem, FileFieldTableType, FileFormField, FormField, FormFieldCategory, type FormFieldInputType, type FormFieldType, type FormFieldTypeDefinitions, FormFieldValidator, type FormIntakeFieldMapEntry, type FormIntakeImplementation, FormSpec, type FormValidatorDefinitions, IHS_FAILURE_STATUSES, IHS_FIELD_ORIGINS, IHS_TERMINAL_STATUSES, IHS_VALID_STATUSES, type IhsDetailCategory, type IhsFieldDetail, type IhsFieldOrigin, type IhsFieldProvenance, IhsStatus, IhsValueFormat, type InstanceRow, type InstanceValue, type ManualOverrideImplementation, type PageConfig, type PeriodDeclaration, type PeriodValues, type RHFSchemaOutput, type RHFStep, type RawPayload, type ResolvedField, Role, type SourceAdapter, type SurveyElementJSON, type SurveyJSON, type SurveyPageJSON, type TaggedFieldData, type TimePeriodUnit, type TypescriptImplementation, type UnifiedFormConfig, type Validator, type WireFormat, allCategories, applyAggregation, applyDynamicTitles, assertAdapterCategory, assertDocumentType, buildDocumentRows, buildFileFieldTables, buildFileFieldTablesFromInstances, categoriesAttestingFact, categoryFieldsOf, categoryForField, categorySchemaOf, evaluateExpression, extractTimePeriods, factOf, formatDocumentSize, formatDocumentType, formatDocumentUploaded, generateRHFSchema, generateSurveyJson, getBaseCategories, getBaseFieldNames, getBaseFieldSpecMap, getBaseFieldSpecs, getCategoryName, getDisplayName, getDisplayNames, getDocDisplayNames, getDocumentTypeGroups, getExtractableDocTypes, getGroupDisplayNames, getPastMonthLabel, getPastYearLabel, getReuploadableDocTypes, getStepDefaultValues, getStepSchema, groupColumnsByInstance, groupColumnsByTimePeriod, groupDetailsByCategory, groupFieldsByCategory, groupFieldsByPattern, isAdapterCategory, isDocumentType, isFailureIhsStatus, isTerminalIhsStatus, isValidIhsFieldOrigin, isValidIhsStatus, parseFileField, processIhsDetails, resolveExtractionStatus, resolvePageFields, validateFormConfig, validateFormSpec, validatePagesConfig };
package/dist/index.d.ts CHANGED
@@ -842,6 +842,19 @@ interface CanonicalFieldSpec {
842
842
  readonly unit?: string;
843
843
  readonly range?: readonly [number, number];
844
844
  readonly description: string;
845
+ /**
846
+ * Global fact identifier marking this field as an ATTESTATION of a
847
+ * shared real-world fact (e.g. a company has exactly one
848
+ * incorporation date, no matter which document it was extracted
849
+ * from). Multiple categories may declare the SAME field name iff
850
+ * every declaring category carries the same `fact` id — each
851
+ * category's value is then an independent attestation of one fact,
852
+ * comparable across sources (the future disagreement-comparison
853
+ * feature's unit of comparison). A `fact` id is bound to exactly one
854
+ * field name registry-wide; by convention the field name IS the fact
855
+ * id. Uniquely-declared fields need no `fact` (but may carry one).
856
+ */
857
+ readonly fact?: string;
845
858
  }
846
859
  /**
847
860
  * Per-category schema bundle. Used by:
@@ -883,11 +896,30 @@ declare function allCategories(): ReadonlyArray<CategorySchema>;
883
896
  /**
884
897
  * Reverse lookup: which category declares a given canonical field?
885
898
  * Returns null if the field name isn't declared by any category in
886
- * this version of finsys-core. Useful when the host app is reading
887
- * canonical field values back from storage + wants to identify the
888
- * producing category for rendering. O(1).
899
+ * this version of finsys-core AND for shared-fact names (declared by
900
+ * more than one category), where "the" category is genuinely ambiguous.
901
+ * The null is deliberate: a caller holding a shared-fact name must
902
+ * decide per-attestation, via `categoriesAttestingFact(factOf(name))`,
903
+ * rather than being handed one arbitrary declarer. Useful when the
904
+ * host app is reading canonical field values back from storage + wants
905
+ * to identify the producing category for rendering. O(1).
889
906
  */
890
907
  declare function categoryForField(field: CanonicalFieldName): AdapterCategory | null;
908
+ /**
909
+ * The fact id a canonical field attests, or null when the field
910
+ * declares no fact (or isn't declared at all). By convention the fact
911
+ * id equals the field name, but callers must not assume it — read it
912
+ * from here. O(1).
913
+ */
914
+ declare function factOf(field: CanonicalFieldName): string | null;
915
+ /**
916
+ * Every category attesting a given shared fact, in data-file order.
917
+ * Empty for an unknown fact id. This is the lookup the disagreement-
918
+ * comparison feature keys on: each attesting category's value for the
919
+ * fact's field is an independent observation of the same real-world
920
+ * fact, so cross-category mismatches are surfaceable.
921
+ */
922
+ declare function categoriesAttestingFact(factId: string): ReadonlyArray<AdapterCategory>;
891
923
  /**
892
924
  * Runtime membership check — is `id` a category declared by this
893
925
  * version of finsys-core? Use this at trust boundaries (parsing a
@@ -1097,8 +1129,8 @@ type CanonicalFieldValue = number | string | boolean | null;
1097
1129
  * stay assignment-compatible. A telco adapter that needs an MSISDN
1098
1130
  * declares it once at the interface level:
1099
1131
  *
1100
- * interface CelcomExt { msisdn: string }
1101
- * const celcomTelco: SourceAdapter<CelcomExt> = {
1132
+ * interface TelcoPartnerExt { msisdn: string }
1133
+ * const telcoAdapter: SourceAdapter<TelcoPartnerExt> = {
1102
1134
  * async fetch(identity) {
1103
1135
  * identity.msisdn // string (typed via E)
1104
1136
  * identity.ic // string (core)
@@ -1112,7 +1144,7 @@ type CanonicalFieldValue = number | string | boolean | null;
1112
1144
  interface SourceAdapter<E extends Record<string, unknown> = {}> {
1113
1145
  /**
1114
1146
  * Globally unique id for this adapter instance. By convention:
1115
- * `<vendor>-<category-short>-v<n>` — e.g. `celcom-telco-v1`. Vendor
1147
+ * `<vendor>-<category-short>-v<n>` — e.g. `example-telco-v1`. Vendor
1116
1148
  * names appear here in deployment-specific code, NEVER in
1117
1149
  * finsys-core. The id is what the registry uses to dedupe + what
1118
1150
  * provenance records pin to.
@@ -1249,10 +1281,10 @@ interface SourceAdapter<E extends Record<string, unknown> = {}> {
1249
1281
  *
1250
1282
  * Narrowing example (the ergonomics win this type is designed to deliver):
1251
1283
  *
1252
- * interface CelcomExt { msisdn: string; accountRef: string }
1284
+ * interface TelcoPartnerExt { msisdn: string; accountRef: string }
1253
1285
  *
1254
1286
  * // declare adapter with the extension shape baked in:
1255
- * const celcom: SourceAdapter<CelcomExt> = {
1287
+ * const telcoAdapter: SourceAdapter<TelcoPartnerExt> = {
1256
1288
  * async fetch(identity) {
1257
1289
  * identity.ic // string
1258
1290
  * identity.msisdn // string (NOT unknown — narrowed by E)
@@ -1434,7 +1466,7 @@ interface AdapterManifest {
1434
1466
  readonly manifestVersion: 1;
1435
1467
  /**
1436
1468
  * Globally unique adapter id. Conventional pattern:
1437
- * `<vendor>-<category-short>-v<n>` (e.g. `celcom-telco-v1`). The id is
1469
+ * `<vendor>-<category-short>-v<n>` (e.g. `example-telco-v1`). The id is
1438
1470
  * what `SourceAdapter#id` returns + what provenance records pin to.
1439
1471
  */
1440
1472
  readonly id: string;
@@ -1740,4 +1772,4 @@ interface FieldMapEntry {
1740
1772
  readonly transform?: "identity" | "pct_to_ratio01" | "to_boolean" | "to_integer";
1741
1773
  }
1742
1774
 
1743
- export { ADAPTER_CATEGORY_IDS, ALL_AGGREGATION_OPS, type AdapterCategory, AdapterError, type AdapterErrorReason, type AdapterExtraction, type AdapterManifest, type AggregationOp, type ApplicantIdentity, BASE_FIELD_SPECS, BasicFormField, type CanonicalFieldName, type CanonicalFieldSpec, type CanonicalFieldValue, type CanonicalFieldValues, type Category, type CategorySchema, type CategorySpec, type Choice, DEFAULT_VALIDATOR_DEFINITIONS, type DeclarativeImplementation, type DocExtractionResult, DocExtractionStatus, type DocumentFileMetadata, type DocumentRow, type DocumentRowCapabilities, type DocumentTypeGroup, type DropdownOption, type EditorValidator, type ExtractionFileType, type ExtractionJobRecord, ExtractionJobStatus, type ExtractionPipelineImplementation, type ExtractionStatusResult, FIELD_TYPE_DEFINITIONS, type FieldAuthorization, type FieldData, type FieldGroup, type FieldMapEntry, type FieldReference, FieldType, type FileFieldTableData, type FileFieldTableItem, FileFieldTableType, FileFormField, FormField, FormFieldCategory, type FormFieldInputType, type FormFieldType, type FormFieldTypeDefinitions, FormFieldValidator, type FormIntakeFieldMapEntry, type FormIntakeImplementation, FormSpec, type FormValidatorDefinitions, IHS_FAILURE_STATUSES, IHS_FIELD_ORIGINS, IHS_TERMINAL_STATUSES, IHS_VALID_STATUSES, type IhsDetailCategory, type IhsFieldDetail, type IhsFieldOrigin, type IhsFieldProvenance, IhsStatus, IhsValueFormat, type InstanceRow, type InstanceValue, type ManualOverrideImplementation, type PageConfig, type PeriodDeclaration, type PeriodValues, type RHFSchemaOutput, type RHFStep, type RawPayload, type ResolvedField, Role, type SourceAdapter, type SurveyElementJSON, type SurveyJSON, type SurveyPageJSON, type TaggedFieldData, type TimePeriodUnit, type TypescriptImplementation, type UnifiedFormConfig, type Validator, type WireFormat, allCategories, applyAggregation, applyDynamicTitles, assertAdapterCategory, assertDocumentType, buildDocumentRows, buildFileFieldTables, buildFileFieldTablesFromInstances, categoryFieldsOf, categoryForField, categorySchemaOf, evaluateExpression, extractTimePeriods, formatDocumentSize, formatDocumentType, formatDocumentUploaded, generateRHFSchema, generateSurveyJson, getBaseCategories, getBaseFieldNames, getBaseFieldSpecMap, getBaseFieldSpecs, getCategoryName, getDisplayName, getDisplayNames, getDocDisplayNames, getDocumentTypeGroups, getExtractableDocTypes, getGroupDisplayNames, getPastMonthLabel, getPastYearLabel, getReuploadableDocTypes, getStepDefaultValues, getStepSchema, groupColumnsByInstance, groupColumnsByTimePeriod, groupDetailsByCategory, groupFieldsByCategory, groupFieldsByPattern, isAdapterCategory, isDocumentType, isFailureIhsStatus, isTerminalIhsStatus, isValidIhsFieldOrigin, isValidIhsStatus, parseFileField, processIhsDetails, resolveExtractionStatus, resolvePageFields, validateFormConfig, validateFormSpec, validatePagesConfig };
1775
+ export { ADAPTER_CATEGORY_IDS, ALL_AGGREGATION_OPS, type AdapterCategory, AdapterError, type AdapterErrorReason, type AdapterExtraction, type AdapterManifest, type AggregationOp, type ApplicantIdentity, BASE_FIELD_SPECS, BasicFormField, type CanonicalFieldName, type CanonicalFieldSpec, type CanonicalFieldValue, type CanonicalFieldValues, type Category, type CategorySchema, type CategorySpec, type Choice, DEFAULT_VALIDATOR_DEFINITIONS, type DeclarativeImplementation, type DocExtractionResult, DocExtractionStatus, type DocumentFileMetadata, type DocumentRow, type DocumentRowCapabilities, type DocumentTypeGroup, type DropdownOption, type EditorValidator, type ExtractionFileType, type ExtractionJobRecord, ExtractionJobStatus, type ExtractionPipelineImplementation, type ExtractionStatusResult, FIELD_TYPE_DEFINITIONS, type FieldAuthorization, type FieldData, type FieldGroup, type FieldMapEntry, type FieldReference, FieldType, type FileFieldTableData, type FileFieldTableItem, FileFieldTableType, FileFormField, FormField, FormFieldCategory, type FormFieldInputType, type FormFieldType, type FormFieldTypeDefinitions, FormFieldValidator, type FormIntakeFieldMapEntry, type FormIntakeImplementation, FormSpec, type FormValidatorDefinitions, IHS_FAILURE_STATUSES, IHS_FIELD_ORIGINS, IHS_TERMINAL_STATUSES, IHS_VALID_STATUSES, type IhsDetailCategory, type IhsFieldDetail, type IhsFieldOrigin, type IhsFieldProvenance, IhsStatus, IhsValueFormat, type InstanceRow, type InstanceValue, type ManualOverrideImplementation, type PageConfig, type PeriodDeclaration, type PeriodValues, type RHFSchemaOutput, type RHFStep, type RawPayload, type ResolvedField, Role, type SourceAdapter, type SurveyElementJSON, type SurveyJSON, type SurveyPageJSON, type TaggedFieldData, type TimePeriodUnit, type TypescriptImplementation, type UnifiedFormConfig, type Validator, type WireFormat, allCategories, applyAggregation, applyDynamicTitles, assertAdapterCategory, assertDocumentType, buildDocumentRows, buildFileFieldTables, buildFileFieldTablesFromInstances, categoriesAttestingFact, categoryFieldsOf, categoryForField, categorySchemaOf, evaluateExpression, extractTimePeriods, factOf, formatDocumentSize, formatDocumentType, formatDocumentUploaded, generateRHFSchema, generateSurveyJson, getBaseCategories, getBaseFieldNames, getBaseFieldSpecMap, getBaseFieldSpecs, getCategoryName, getDisplayName, getDisplayNames, getDocDisplayNames, getDocumentTypeGroups, getExtractableDocTypes, getGroupDisplayNames, getPastMonthLabel, getPastYearLabel, getReuploadableDocTypes, getStepDefaultValues, getStepSchema, groupColumnsByInstance, groupColumnsByTimePeriod, groupDetailsByCategory, groupFieldsByCategory, groupFieldsByPattern, isAdapterCategory, isDocumentType, isFailureIhsStatus, isTerminalIhsStatus, isValidIhsFieldOrigin, isValidIhsStatus, parseFileField, processIhsDetails, resolveExtractionStatus, resolvePageFields, validateFormConfig, validateFormSpec, validatePagesConfig };