# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), 
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

How can I reduce the effort required to maintain a changelog? Keep an Unreleased section at the top to track upcoming changes. This serves two purposes:

- People can see what changes they might expect in upcoming releases
- At release time, you can move the Unreleased section changes into a new release version section.

## [1.5.26]
### Added
- Added `checkWebmapLayers` validation rule to check if all layers in a web map are to make sure none of them are deprecated or inaccessible.
- Added `checkItemPopup` validation rule to check if an item has a popup enabled and properly configured.
- Added `checkItemDescriptionRecommendedInfo` validation rule to check if an item's description includes the recommended information.

### Changed
- Updated `checkItemExtent` validation rule to award full points when the item extent is valid. Deductions for world-extent items have been removed based on user feedback.
- Updated `checkItemThumbnail` validation rule to allow system-generated thumbnails for certain item types, such as Story Maps.
- Updated `checkUserProfile` validation rule to allow Esri official accounts to use a default phrase instead of an email address in their profile, as many Esri official accounts do not list email addresses.

## [1.5.25]

### Added
- Added `checkSupportsFieldDescriptionProperty` helper function to determine if the Feature Service supports field description property based on its ArcGIS Server version.

### Changed
- Updated `checkFeatureServiceFieldDescriptions` validation rule to use the new helper function to check for field description support before performing the validation.
- Updated `checkFeatureServiceFieldValueTypes` validation rule to use the new helper function to check for field description support before performing the validation.

## [1.5.24]
### Changed
- Updated `tsconfig.json` to remove `removeComments` option, ensuring comments are preserved in the compiled JavaScript files.

## [1.5.23]
### Changed
- Updated `add-package-info` script to include the package version in the generated `package-info.json` file.

## [1.5.22]
### Changed
- Updated `fetchFeatureServiceLayersAndTables`, `fetchFeatureServiceRootJSON`, and `fetchFeatureServiceAdminJSON` throw an error when the fetch response is not ok, improving error handling.
- updated `IItem` type to make `access` property as string, to make it consistent with `IItem` from `@esri/arcgis-rest-portal` package.

## [1.5.21]
### Changed
- Updated `fetchAdditionalPatternsForTitleAndSnippetSearchability` to include the `tier` parameter, enabling retrieval of additional patterns based on the service tier.

## [1.5.20]

### Added
- Added Validation rule to check Item Extent.
- Added Advisory Check for Feature Service Extents.
- Added Advisory Check for Feature Service Export Settings.
- Added Advisory Check for Feature Service CDN Settings.
- Added Advisory Check for Feature Service Field Indexes.+
- Added ESRI_OFFICIAL_ACCOUNTS constant to track official Esri accounts.

### Changed
- Stoped keeping translated strings in validation results to reduce the size of the package.
- Updated `setStrings` function to allow clients to provide translated strings and added validation logic to ensure required strings are provided.

## [1.5.19]

### Added
- Validation rule to check Feature Service Field Aliases.
- Validation rule to check Feature Service Field Descriptions.
- Validation rule to check Feature Service Field Value Types.

### Changed
- Updated `matchDateTimeInfo` and year regex to restrict valid years between 1500 and 2200.
- Updated `cleanUpMatchedResults` to prevent removal of overlapping strings.

### Removed
- _No changes._



## [1.5.18] 2025-05-05

### Added
- `status` and `isBinaryCheck` properties to validation info types.
- `getLivingAtlasSupportedItemTypes` and `checkIsLivingAtlasSupportedItemType` functions to retrieve supported item types.
- `configureSettings` function to manage library-wide settings.

### Changed
- Renamed `checkRecommendedText` to `checkTitleAndSnippetSearchability` for improved clarity.
- Enhanced `checkTitleAndSnippetSearchability` to allow user-provided custom patterns for location, time, source, and topic information.
- Enhanced `checkTitleAndSnippetSearchability` to use `matchUsingMultiplePatterns` for matching with predefined, additional, and user-provided patterns.
- Improved predefined patterns for location, time, source, and topic information used in the `checkTitleAndSnippetSearchability` rule.
- Enhanced `checkTitleAndSnippetSearchability` to sort patterns by length in descending order, prioritizing longer matches.
- Improved `checkTitleAndSnippetSearchability` to prevent mutation of the original item and improve HTML tag handling.
- Enhanced `isEligibleForCheckingTitleAndSnippetSearchability` with item owner profile and culture validation.
- Added colon to prohibited characters in title validation logic.

### Removed
- Removed restriction of `checkTitleAndSnippetSearchability` rule to allow all users.
- Removed validation rule that checks the number of layers in a feature service, as it is no longer relevant.



## [1.5.14] 2025-01-17

### Added
- Validation rule to check recommended text in an item's title and snippet.
- `matchLocationInfo`, `matchDateTimeInfo`, `matchSourceInfo`, and `matchTopicInfo` helper functions to match location, date/time, source, and topic information in title and snippet.
- `TitleSummaryMatchingPatterns.json` to provide predefined patterns for the check recommended text rule.


### Changed
- _No changes._