# @accounter/shaam-uniform-format-generator

## 0.2.6

### Patch Changes

- [#3440](https://github.com/Urigo/accounter-fullstack/pull/3440)
  [`1ad8a10`](https://github.com/Urigo/accounter-fullstack/commit/1ad8a10f3dd92b38c04ccea15b90cc7f9dc43887)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.4.2` ↗︎](https://www.npmjs.com/package/zod/v/4.4.2) (from `4.3.6`, in
    `dependencies`)

- [#3454](https://github.com/Urigo/accounter-fullstack/pull/3454)
  [`0b654ef`](https://github.com/Urigo/accounter-fullstack/commit/0b654ef08495e1632ccc75942d6a1a3142924d9f)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.4.3` ↗︎](https://www.npmjs.com/package/zod/v/4.4.3) (from `4.4.2`, in
    `dependencies`)

- [#3599](https://github.com/Urigo/accounter-fullstack/pull/3599)
  [`4405b3a`](https://github.com/Urigo/accounter-fullstack/commit/4405b3abf883827c5580131abdeba32552d82196)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Encoding Support**: Added `iconv-lite`
  to handle Windows-1255 encoding, ensuring correct processing of legacy SHAAM file formats.

- [#3673](https://github.com/Urigo/accounter-fullstack/pull/3673)
  [`a1b5a9a`](https://github.com/Urigo/accounter-fullstack/commit/a1b5a9ad9ddfab18cc747e1f6c25d8b599aaf56a)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Data Parsing Refactoring**: Centralized
  the data file parsing logic into a dedicated `parseDataFile` utility, improving code modularity
  and maintainability.
  - **Type Safety Improvements**: Introduced `ParsedDataRecords` interface to standardize data
    record structures and removed redundant manual property mapping.
  - **Error Handling Enhancements**: Implemented robust error handling for date conversions and
    record parsing, including better reporting of line numbers and unknown record types.
  - **Validation Logic Updates**: Renamed validation functions to `performRecordsValidation` and
    `performCrossFileValidation` for better clarity and intent.

## 0.2.5

### Patch Changes

- [#2954](https://github.com/Urigo/accounter-fullstack/pull/2954)
  [`79fef66`](https://github.com/Urigo/accounter-fullstack/commit/79fef668ca7a7f2b2411ae5f5d4d0bdc5bb2fa2b)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.3.6` ↗︎](https://www.npmjs.com/package/zod/v/4.3.6) (from `4.3.5`, in
    `dependencies`)

- [#3038](https://github.com/Urigo/accounter-fullstack/pull/3038)
  [`4d4e60d`](https://github.com/Urigo/accounter-fullstack/commit/4d4e60dd85f6c7779c556b513e2de844615dd293)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - - **Configurable NPM Registry in CI**: The
  GitHub Actions setup now includes a `registryUrl` input, allowing for flexible specification of
  the NPM registry during package publishing.
  - **Deterministic Dependency Installation**: The `yarn install` command in the CI workflow was
    updated to use `--frozen-lockfile`, ensuring consistent and reproducible builds by preventing
    modifications to the `yarn.lock` file.
  - **Standardized Package Metadata**: `package.json` files across several packages were updated to
    include comprehensive and consistent metadata, such as `description`, `repository` details,
    `homepage`, `bugs` URL, and `author` information.
  - **Explicit NPM Registry Configuration**: The `publishConfig` in multiple `package.json` files
    was modified to explicitly set the `registry` to `https://registry.npmjs.org`, clarifying the
    target for package publication.

## 0.2.4

### Patch Changes

- [#2816](https://github.com/Urigo/accounter-fullstack/pull/2816)
  [`6a9926c`](https://github.com/Urigo/accounter-fullstack/commit/6a9926c3948fa736e2c52ce93207b4f35e28f931)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`iconv-lite@0.7.1` ↗︎](https://www.npmjs.com/package/iconv-lite/v/0.7.1)
    (from `0.7.0`, in `dependencies`)

- [#2824](https://github.com/Urigo/accounter-fullstack/pull/2824)
  [`ca5e62b`](https://github.com/Urigo/accounter-fullstack/commit/ca5e62b91faaf33c99ac178575304797150efe1a)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.2.0` ↗︎](https://www.npmjs.com/package/zod/v/4.2.0) (from `4.1.13`, in
    `dependencies`)

- [#2829](https://github.com/Urigo/accounter-fullstack/pull/2829)
  [`73b11ba`](https://github.com/Urigo/accounter-fullstack/commit/73b11ba1fd676a21b4ba44fe99e2bfd181e513dc)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.2.1` ↗︎](https://www.npmjs.com/package/zod/v/4.2.1) (from `4.2.0`, in
    `dependencies`)

- [#2873](https://github.com/Urigo/accounter-fullstack/pull/2873)
  [`eea8a89`](https://github.com/Urigo/accounter-fullstack/commit/eea8a89638a3893814fd9a341e0080922fc703a1)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.3.2` ↗︎](https://www.npmjs.com/package/zod/v/4.3.2) (from `4.2.1`, in
    `dependencies`)

- [#2877](https://github.com/Urigo/accounter-fullstack/pull/2877)
  [`1c209c8`](https://github.com/Urigo/accounter-fullstack/commit/1c209c8a6045bef747039bbff3780812c6b8678f)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.3.4` ↗︎](https://www.npmjs.com/package/zod/v/4.3.4) (from `4.3.2`, in
    `dependencies`)

- [#2881](https://github.com/Urigo/accounter-fullstack/pull/2881)
  [`bc3ab26`](https://github.com/Urigo/accounter-fullstack/commit/bc3ab260704b677363561ef1c9403eac704a29aa)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.3.5` ↗︎](https://www.npmjs.com/package/zod/v/4.3.5) (from `4.3.4`, in
    `dependencies`)

- [#2904](https://github.com/Urigo/accounter-fullstack/pull/2904)
  [`17ae14f`](https://github.com/Urigo/accounter-fullstack/commit/17ae14f2482ad876e1adce23cdbc7cb173b88dfb)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`iconv-lite@0.7.2` ↗︎](https://www.npmjs.com/package/iconv-lite/v/0.7.2)
    (from `0.7.1`, in `dependencies`)

## 0.2.3

### Patch Changes

- [#2744](https://github.com/Urigo/accounter-fullstack/pull/2744)
  [`ef68321`](https://github.com/Urigo/accounter-fullstack/commit/ef68321608d60a7208e82a2c413f27beb502e3cc)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.13` ↗︎](https://www.npmjs.com/package/zod/v/4.1.13) (from `4.1.12`,
    in `dependencies`)

## 0.2.2

### Patch Changes

- [#2543](https://github.com/Urigo/accounter-fullstack/pull/2543)
  [`65e3c7f`](https://github.com/Urigo/accounter-fullstack/commit/65e3c7f01993eb4f41244a40feefefa08b31a4e6)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.12` ↗︎](https://www.npmjs.com/package/zod/v/4.1.12) (from `4.1.11`,
    in `dependencies`)

## 0.2.1

### Patch Changes

- [#2291](https://github.com/Urigo/accounter-fullstack/pull/2291)
  [`633a688`](https://github.com/Urigo/accounter-fullstack/commit/633a68824433dcd4df7be7e9c118ddadbf9a2029)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.0.17` ↗︎](https://www.npmjs.com/package/zod/v/4.0.17) (from `3.25.76`,
    in `dependencies`)

- [#2446](https://github.com/Urigo/accounter-fullstack/pull/2446)
  [`c56e276`](https://github.com/Urigo/accounter-fullstack/commit/c56e276f6e2addab88cd9fcd11b68fbc15c6f41a)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`iconv-lite@0.7.0` ↗︎](https://www.npmjs.com/package/iconv-lite/v/0.7.0)
    (from `0.6.3`, in `dependencies`)

- [#2456](https://github.com/Urigo/accounter-fullstack/pull/2456)
  [`3fe961a`](https://github.com/Urigo/accounter-fullstack/commit/3fe961a8338359ed544ce4de5730a1898fb1cc43)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.0` ↗︎](https://www.npmjs.com/package/zod/v/4.1.0) (from `4.0.17`, in
    `dependencies`)

- [#2457](https://github.com/Urigo/accounter-fullstack/pull/2457)
  [`16b0040`](https://github.com/Urigo/accounter-fullstack/commit/16b0040862d1bf9d65eb9829e8eb33117d60a1c2)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.1` ↗︎](https://www.npmjs.com/package/zod/v/4.1.1) (from `4.1.0`, in
    `dependencies`)

- [#2469](https://github.com/Urigo/accounter-fullstack/pull/2469)
  [`7176d0d`](https://github.com/Urigo/accounter-fullstack/commit/7176d0d3e1808cc1800e1cabe121b380f0480d63)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.3` ↗︎](https://www.npmjs.com/package/zod/v/4.1.3) (from `4.1.1`, in
    `dependencies`)

- [#2478](https://github.com/Urigo/accounter-fullstack/pull/2478)
  [`86e628e`](https://github.com/Urigo/accounter-fullstack/commit/86e628e40cc0d8fac239cfea2563326094013df4)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.5` ↗︎](https://www.npmjs.com/package/zod/v/4.1.5) (from `4.1.3`, in
    `dependencies`)

- [#2483](https://github.com/Urigo/accounter-fullstack/pull/2483)
  [`43760d7`](https://github.com/Urigo/accounter-fullstack/commit/43760d77cb29ea44257d37ca0bc7a97e17aa1c89)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.8` ↗︎](https://www.npmjs.com/package/zod/v/4.1.8) (from `4.1.5`, in
    `dependencies`)

- [#2512](https://github.com/Urigo/accounter-fullstack/pull/2512)
  [`590823c`](https://github.com/Urigo/accounter-fullstack/commit/590823cf7105b018a3127abc2343ac714f2845ac)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.9` ↗︎](https://www.npmjs.com/package/zod/v/4.1.9) (from `4.1.8`, in
    `dependencies`)

- [#2522](https://github.com/Urigo/accounter-fullstack/pull/2522)
  [`df6b635`](https://github.com/Urigo/accounter-fullstack/commit/df6b63558a951ae7a318515d1d8b86b1b49a74a0)
  Thanks [@renovate](https://github.com/apps/renovate)! - dependencies updates:
  - Updated dependency [`zod@4.1.11` ↗︎](https://www.npmjs.com/package/zod/v/4.1.11) (from `4.1.9`,
    in `dependencies`)

## 0.2.0

### Minor Changes

- [#2314](https://github.com/Urigo/accounter-fullstack/pull/2314)
  [`88207b1`](https://github.com/Urigo/accounter-fullstack/commit/88207b1f3fbafbd67b67fe8edca6a576d42e25bd)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - Initial package

### Patch Changes

- [#2321](https://github.com/Urigo/accounter-fullstack/pull/2321)
  [`9915dd2`](https://github.com/Urigo/accounter-fullstack/commit/9915dd2c0f7f78103320bc99dabd2de2384bbfbc)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - \* **New Integration Test Suite**: I've
  added a comprehensive integration test suite for validating the uniform format report generation
  process using real-world fixture files.
  - **Round-trip Validation**: I've implemented tests to perform a full round-trip: parsing existing
    `BKMVDATA.txt` and `ini.txt` fixtures, generating new reports from the parsed data, and then
    re-parsing the generated reports to ensure data integrity and consistency.
  - **Data Parsing and Generation Coverage**: The tests cover parsing and generation of various
    record types (A100, B100, B110, C100, D110, D120, M100, Z900 for `BKMVDATA.txt` and A000,
    A000Sum for `ini.txt`), ensuring broad coverage of the uniform format specification.
  - **Robustness Testing**: I've included tests for handling edge cases such as different line
    endings, whitespace, and gracefully skipping invalid or unknown record types during parsing,
    enhancing the robustness of the parsing logic.
  - **Monetary Precision Verification**: A test has been added to ensure that monetary values from
    B100 records are correctly parsed and can be part of the round-trip process, implying that
    precision is maintained throughout data transformation.

- [#2322](https://github.com/Urigo/accounter-fullstack/pull/2322)
  [`408b287`](https://github.com/Urigo/accounter-fullstack/commit/408b287588f1753776cd98755383fc269d7410fb)
  Thanks [@gilgardosh](https://github.com/gilgardosh)! - \* **New Client-Side Feature**: I've added
  a new modal component (`FileDownloadModal`) to the client application, allowing users to select a
  date range and trigger the generation and download of uniform format files (bkmvdata and ini)
  directly from the UI.
  - **Data Model Extension**: The `JournalEntry` and `BusinessMetadata` schemas have been extended
    to support additional optional fields, such as `batchNumber`, `transactionType`,
    `referenceDocument`, `currencyCode`, `foreignCurrencyAmount` for journal entries, and `address`
    details for business metadata. This enriches the data available for reporting.
  - **Uniform Format Generator Enhancement**: The `generateUniformFormatReport` function in the
    generator package has been updated to consume and incorporate these new extended fields from the
    `JournalEntry` and `BusinessMetadata` into the generated uniform format files, ensuring more
    comprehensive reports.
  - **Testing**: New unit tests have been added to verify that the uniform format generator
    correctly handles journal entries with the newly introduced extended fields, ensuring data
    integrity and proper report generation.
