16.0.3 (2026-06-25)
- response: ground IBS getLastRecordIndex in count, anchor pagination regex (62d2ffd)
16.0.2 (2026-06-25)
- response: anchor CNR pagination-key regex to exact keys (1b254ea)
16.0.1 (2026-06-24)
- client: guard pagination against non-positive page size (eb9f2ba)
16.0.0 (2026-06-23)
- client: scope high-performance URL rewrite to host and scheme (b16f3df), closes hi#performance
- http: reset reused cURL handle per call to stop option leakage (8ec9f92)
- ibs: compute getLastRecordIndex per-instance and harden status access (cb5a177)
- translator: preserve full cURL error text containing a pipe (fa44c9f)
- factory: simplify getClient() to registrar-only construction (d30c5ab)
-
factory: ClientFactory::getClient() no longer accepts a $params array or a $logger argument; its signature is now getClient(string $registrar). Callers must configure the returned client themselves and decode credentials before use.
Before: $cl = ClientFactory::getClient([ "registrar" => "CNR", "username" => $user, "password" => $pw, // was html_entity_decode()'d internally "sandbox" => true, "proxyserver" => $proxy, ], $logger);
After: $cl = ClientFactory::getClient("CNR"); $cl->useOTESystem() ->setCredentials($user, html_entity_decode($pw, ENT_QUOTES)) ->setProxy($proxy) ->setCustomLogger($logger);
15.5.0 (2026-06-19)
- ibs: preserve nested JSON values using array_is_list detection (5d9aaf4)
- phpstan: resolve level 9 type errors in src (06ee950)
- psalm: narrow array key types in Response hierarchy and ResponseInterface (a4b93f5)
- psalm: resolve initial static analysis warnings (68aef17)
- ibs: standalone Column implementation and widened interfaces (8937cb3)
15.4.0 (2026-06-16)
- ci: add monthly Rector modernization workflow (4cef1b3)
15.3.0 (2026-06-16)
- ibs: formally implement interfaces and update CLAUDE.md (04c9846)
15.2.0 (2026-06-15)
- ci: integrate Codecov coverage reporting (673ebc7)
15.1.1 (2026-06-15)
- env: quote placeholders and add shebang to pass shellcheck (c28a2e4)
15.1.0 (2026-06-12)
- devcontainer: add shellcheck shell=bash directive to zsh scripts (ab4dabb)
- devcontainer: ensure xdebug coverage mode for PHPUnit in VSCode (defcce9)
- examples: correct autoload path after moving scripts to examples/ (0a68c11)
- ibs: correct isSuccess() to accept non-error responses (34996e9)
- lint: exclude node_modules and .husky/_/ from shellcheck scan (09cd4c0)
- moniker: eliminate cross-namespace inheritance for MONIKER (00a8219)
- devcontainer: add shellcheck to Dockerfile and composer lint (fdc9de1)
- devcontainer: auto-load env.sh for terminal sessions and PHPUnit runs (978cbc7)
15.0.0 (2026-06-08)
- domain registrar enum: cleanup the last relicts of HEXONET / ISPAPI now after system shutdown (be4e408)
- psalm: suppress PropertyNotSetInConstructor on $logger; make HttpTransport final; drop curl_close (ec9b961)
- review: address code review findings (a5612e5)
- logger: require ResponseInterface in logger contract (8ddfe29)
- factory: introduce Registrar enum; replace magic strings in ClientFactory (01f4c78)
- logger: Custom logger implementations must type the response argument as CNIC\ResponseInterface instead of CNIC\CNR\Response. ResponseInterface now exposes getContext(), so consumers can access logger context through the shared response contract without relying on concrete response classes or method_exists() fallbacks. Update custom loggers, including WHMCS cnic/ibs loggers, to use: public function log(string $post, CNIC\ResponseInterface $r, ?string $error = null): void
- review: IBS\SessionClient no longer defines login(), logout(), saveSession(), or reuseSession(). Previously these methods threw \Exception("Method not supported") — callers handling the unsupported case via try/catch will now receive a fatal "Call to undefined method" Error instead. Guard with instanceof CNR\SessionClient before calling session methods if your code supports multiple registrar types.
Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com
14.1.2 (2026-05-29)
- devcontainer: install PHP intl extension via system package (e1cdde3)
- lint: add missing #[\Override] on interface-implementing methods (ccc6b0f)
- security: remove SSL verification bypass in IBS\Client (3e4d7a5)
14.1.1 (2026-05-27)
- devcontainer: remove unused packages and add .dockerignore (ad4f8e7)
14.1.0 (2026-05-27)
- replace GitHub Copilot with Claude AI (07f535b)
14.0.1 (2026-05-26)
- ResponseInterface: patched docblock type for getColumnIndex (e5d45db)
14.0.0 (2026-05-22)
- linter,devcontainer: review and PHP min version upgrade to 8.3 (981c3b4)
- psalm: Some of our classes are now final.
- psalm: getPOSTData no longer supports string inputs
- linter,devcontainer: minimum PHP version is now 8.3
13.1.6 (2026-04-28)
- CNR ResponseTranslator: enhance placeholder replacement logic and add test for literal brace content preservation (b7d2340)
13.1.5 (2026-04-22)
- IBS/Moniker ResponseParser: streamline JSON parsing and error handling for API responses (cd4d197)
13.1.4 (2026-04-09)
- ibs/moniker registrar sdk: enhanced parsing logic for API responses to support both plain responses and json responses, improved error response handling (a6f1264)
13.1.3 (2026-04-08)
- IBS & Moniker ResponseTranslator: update namespace import for ResponseTemplateManager (7d1fab1)
13.1.2 (2026-03-24)
- deps: bumped node to support all versions equals to or greater than 24.10.0 (54afc35)
13.1.1 (2026-03-03)
- Response: streamline request URL handling and remove redundant method (4f7536f)
13.1.0 (2026-01-19)
- context support: set custom context data via client and access it later again via response (ed28dde)
13.0.1 (2025-11-18)
- deps: bump glob from 10.4.5 to 10.5.0 (f19205b)
13.0.0 (2025-11-13)
- ibs and moniker registrar brand: switched to JSON API (701fa3a)
- ibs and moniker registrar brand: By ths breaking change, we switch to the more developer-friendly JSON API / ResponseFormat. Note that this has an impact on the data structure as well. By upgrading, please ensure to test and review your app as well.
12.0.1 (2025-10-10)
- php 8.4: implicitly marking parameter as nullable is deprecated (682f94d)
12.0.0 (2025-09-26)
- hexonet eol: brand has seen deprecation and the cleanup has been covered (1f0faa0)
- hexonet eol: We removed the support for Brand HEXONET. If you still need a working connection, please use v11 of this library until the final system shutdown.
11.0.10 (2025-08-20)
- ResponseTranslator: add translation for authorization (EPP Code) failure messages (ae7f47b)
11.0.9 (2025-07-18)
- ibs registar: fallback to product_0_code/message in case main props are n/a (9663c02)
11.0.8 (2025-07-07)
- all brands: increase CURLOPT_CONNECTTIMEOUT to 30s (e9244f0)
11.0.7 (2025-06-27)
- ibs / moniker client: add explicit curl option to ip resolve via ipv4 (303bf01)
11.0.6 (2025-05-22)
- cnr client: to temporarily activate auto-idn conversion for parameter PARENTDOMAIN (efb52d4)
11.0.5 (2025-03-12)
- workflows: update test workflow reference and adjust UML generation path (7ea7b40)
11.0.4 (2025-03-12)
- deps: bump cross-spawn from 7.0.3 to 7.0.6 (29582be)
11.0.3 (2025-03-07)
- ResponseParser.php, ResponseTemplateManager.php: standardize date format and update response templates with test cases (419658b)
11.0.2 (2025-02-28)
- CommandFormatter.php: enhance priority handling for command properties and contact fields (56c5e9b)
11.0.1 (2025-02-07)
- ibs, request settings: curl opts, connecttimeout increased to 15, verifypeer/host deactivated (a984cf1)
11.0.0 (2025-02-05)
- registrar support: added Internet.bs (IBS) and Moniker (MONIKER) as supported registrars (5eaa09d)
- registrar support: We added support for two new Domain Registrar Systems: Internet.bs (IBS) and Moniker (MONIKER)
10.0.0 (2025-01-22)
- cnr / hx apiclient: request function: better inherited; cache the curl handle for reuse (755bec4)
- cnr / hx apiclient: the curl handle is now cached for later reuse. consider calling close() of the apiclient in context of a sessionless approach. this automatically covered by the logout function in context of session-based communication
9.1.0 (2025-01-13)
- cnr, hx: reviewed array typing (0bfe71b)
- phpstan: reviewed codebase and dropped
treatPhpDocTypesAsCertain: falsesetting (a1dd4e1)
- CommandFormatter.php: enhance command sorting and formatting logic (affd488)
9.0.1 (2024-09-16)
- cnr / hx: moved functions saveSession & reuseSession to SessionClient Class; reviewed for CNR (311fc70)
9.0.0 (2024-06-12)
- php-stan-compatibility: ensure compatibility with PHP 8.1 standards (d5994a8)
- php-stan-compatibility: This update requires PHP 8.1 or higher and may break on systems using PHP versions lower than 8.1.
8.0.17 (2024-04-05)
- client.php & sessionclient.php: reviewed IDN Conversion with php-idna-translator plugin (b0001ad)
8.0.16 (2024-3-4)
- responsetranslator.php: reviewed error messaging for domain transfers pre-checks (c003b9b)
8.0.15 (2023-10-04)
- hexonet: add response translator mapping for invalid domain name; RSRMID-271 (5c40a9d)
8.0.14 (2023-09-08)
- responsetranslator.php: updated response messages when premium price is not available (e6939ce)
8.0.13 (2023-09-01)
- auto idn converting: of OBJECTID parameter if OBJECTCLASS matches expectations (Registrar CNR) (a105535)
8.0.12 (2023-08-29)
- http error: details are now added to the response (316194e)
8.0.11 (2023-08-24)
- hexonet/responsetranslator.php: auto-reword DNS update error (f5bdc51)
8.0.10 (2023-06-19)
- docker-compose: upgrade to PHP 7.4 (required for phpDocumentor 3.3.1) (d6e06e8)
- dockerfile: upgrade to PHP 7.4 (requirement for phpDocumentor 3.3.1) (517754a)
- gh actions: use PHP 7.4 (requirement for phpDocumentor 3.3.1) (081ac88)
- phpdocumentor: upgrade to 3.3.1 case (sentivity bug of produced file names) (4803f86), closes #40
8.0.9 (2023-04-18)
- gitattributes: ignore non essential files from composer archive (534e4b8)
8.0.8 (2023-04-18)
- gitattributes: ignore non essential (b61dab2)
8.0.7 (2023-04-18)
- z: exclude non essentials (141f13d)
8.0.6 (2023-04-18)
- gitattribute: exclude non essentials files and folders (1fd7429)
8.0.5 (2023-03-23)
- curl options: cURLOPT_TIMEOUT and CURLOPT_CONNECTTIMEOUT to consider seconds not ms (d32827f)
8.0.4 (2022-11-18)
- client: response class dependency injection and restructure (4a40c73)
8.0.3 (2022-10-20)
- columns: ignore pagination columns (TOTAL|COUNT|LAST|LIMIT|FIRST) in non-pagination contexts (37685dd)
8.0.2 (2022-10-07)
- auto idn convert: patched to not consider empty command parameters (00c7787)
8.0.1 (2022-08-16)
- clientfactory: added support for several other registrar ids for better user experience (056348e)
8.0.0 (2022-08-04)
- responsetranslator: to return empty description case also as
invalidtemplate; patched tests (63eb230)
- centralnic reseller: introduced as replacement for RRPproxy (2e66cdc)
- centralnic reseller: RRPproxy marked for deprecation and falling back to new Brand Name "CentralNic Reseller" (CNR). Nothing changes mainly, CNR is the new label for RRP and we want to reflect this also in our software.
7.1.11 (2022-07-15)
- automatic idn conversion: reviewed in direction of case insensitive patterns (5166b84)
7.1.10 (2022-07-12)
- composer: roll-back to previous version format to support PHP8 as well (5dd535e)
7.1.9 (2022-07-12)
- composer: change the php version format to semantic one (a73ec23)
7.1.8 (2022-07-12)
- composer: update requirements to php >= 7.3.0 (5eef7ed)
7.1.7 (2022-06-28)
- versioning: patch release process configuration to get the version no. correctly updated (2c27be7)
7.1.6 (2022-06-28)
- customloggerclass: patched docblock of CustomLoggerClass::log method (2ef6f73)
7.1.5 (2022-06-28)
- typings: removed strict typings as we noticed issues under different platforms (3a566d9)
7.1.4 (2022-06-20)
- hexonet response: fn addColumn patched type declaration issue (06a0ad0)
7.1.3 (2022-06-10)
- ci: upgraded npm engines, dev deps and reviewed release workflow (1d242de)
7.1.2 (2022-05-30)
- phpdoc: change path to docs to /docs (github pages) (e54648f)
7.1.1 (2022-05-23)
- phpstan: increase phpStan level to 9 and fix reported issues (a551b39)
7.1.0 (2022-04-20)
- idn conversion: added IDNConvert method to client allowing to explicitely convert domain names (6774225)
7.0.8 (2022-04-12)
- high performance setup: use the right protocol (c524aa8)
7.0.7 (2022-04-07)
- auto idn conversion: fixed to translate only idns (d4ee814)
7.0.6 (2022-03-28)
- curlopt_verbose: disabled (bc47cbd)
7.0.5 (2022-03-23)
- composer autoload: rollback wrong psr-4 autoload change (f04cf6e)
7.0.4 (2022-03-23)
- composer autoload: to include psr-4 config for HEXONET and RRPproxy as well (fd5b2fd)
7.0.3 (2022-03-21)
- hexonet: changed OT&E url (infrastructure improvement) (acea748)
7.0.2 (2022-01-20)
- logger: require custom logger to implement LoggerInterface (ab73282)
7.0.1 (2021-12-09)
- semantic-release: added missing configuration file (9972e93)
- revamped: to support RRPproxy and HEXONET (2c6381a)
- revamped: SocketConfig constructor now needs a parameter. APIClient got renamed to HexonetClient or RRPproxyClient. Removed function useDefaultConnect in favor of useOTESystem and useLIVESystem.
6.1.1 (2021-08-18)
- auto idn conversion: added object classes (acda2dc)
6.1.0 (2021-08-16)
- auto idn conversion: for Object related commands (a855500)
6.0.8 (2021-06-15)
6.0.7 (2021-05-21)
- responsetranslator: fixed regex which stripped out other returned properties (2848c16)
6.0.6 (2021-05-21)
- responsetranslator: fixed preg_quote usage, added delimiter (8988cdd)
- responsetranslator: reviewed regex and added translation case (c513fe6)
6.0.5 (2021-05-21)
- responsetranslator: fixed regular expression used (e974948)
6.0.4 (2021-05-21)
- responsetranslator: review generic replacement logic (c76d2f6)
6.0.3 (2021-05-21)
- responsetranslator: added templates for translating CheckDomainTransfer (9f812db)
6.0.2 (2021-05-11)
- api docs: cleanup build folder before generating the docs to avoid keeping deprecated files (563266c)
6.0.1 (2021-04-06)
- response translator: fix response translator regarding ACL response case (4fa8ef8)
6.0.0 (2021-04-06)
- response translator: added missing typehints (8b3acb7)
- response translator: added initial version coming with rewrite/restructuring from scratch (8f19444)
- response translator: Downward incompatible restructuring (Merge of Response/ResponseTemplate, Rewrite ResponseTemplateManager) and introducing ResponseTranslator
5.8.9 (2021-01-21)
- ci: exclude build/api-cache from @semantic-release/git assets (11cfe91)
5.8.8 (2021-01-21)
- ci: ignore tag commits (dbda7ef)
5.8.7 (2021-01-21)
- ci: add missing composer update for autoloader (3cb0525)
- ci: apt package installation reviewed (a17e3ce)
- ci: fixed phpcs reported issues (6b061d3)
- ci: migration from Travis CI to github actions (e3d86b9)
- phpdocumentor: upgrade; review config; add to release step (2ed94d0)
- responsetemplatemanager: method __wakeup must have public visibility (9f3c7f1)
5.8.6 (2020-07-23)
- apiclient: use php version without extra data (a9efa97)
5.8.5 (2020-07-17)
- apiclient: fixed log method call to use correct argument type (0ba6cdd)
5.8.4 (2020-07-15)
- apiclient: fixed types and a nasty return+else (7492c9f)
5.8.3 (2020-04-27)
- apiclient: remove deprecated private method toUpperCaseKeys (bbab21e)
5.8.2 (2020-04-15)
- apiclient: fixed automatic idn conversion (aae4fe6)
5.8.1 (2020-04-09)
- security: fixed password replace mechanism (f22ab11)
5.8.0 (2020-04-06)
- phar: create and upload phar/phar.gz archives in release process (696d4a8)
5.7.0 (2020-04-03)
- apiclient: allow to specify additional libraries via setUserAgent (7f9cf7c)
5.6.1 (2020-04-02)
- security: replace passwords whereever they could be used for output (9e97123)
5.6.0 (2020-04-02)
- response: added getCommandPlain (getting used command in plain text) (c3992a4)
5.5.1 (2020-04-02)
- namespace: review namespace usages (509e988)
5.5.0 (2020-04-01)
- logger: possibility to override debug mode's default logging mechanism. See README.md (680c70e)
5.4.2 (2020-04-01)
- auto-versioning: fixed broken version auto-update process (58103b9)
5.4.1 (2020-04-01)
- messaging: return a specific error template in case code or description are missing (59119c3)
5.4.0 (2020-04-01)
- response: fixed placeholder replacements (4e188dd)
- response: possibility of placeholder vars in standard responses to improve error details (1d0a017)
5.3.0 (2020-03-31)
- apiclient: support the
High Performance Proxy Setup. see README.md (90c73ab)
5.2.0 (2020-03-31)
- apiclient: automatic IDN conversion of API command parameters to punycode (79936b0)
5.1.0 (2020-03-13)
- apiclient: support bulk parameters through nested array in API command (5494a41)
5.0.1 (2020-01-22)
- composer: cleanup; trigger new release for commit 99b5b35 (0b63c3f)
5.0.0 (2020-01-22)
- php5 support: review to still support PHP5; for refactoring our 3rd party integrations (cd652d5)
- php5 support: APIClient's method requestNextResponsePage now throws an Exception instead of an Error (PHP5 compatibility). We will review in future in direction of PHP7 only.
4.5.5 (2019-10-04)
- responsetemplate/mgr: improve description of
423 Empty API response(63d6c4c)
4.5.4 (2019-09-18)
- npm: review package.json (2684e71)
4.5.3 (2019-09-18)
- release process: fix path to composer in travis (cc3f453)
- release process: review configuration (6fa9481)
4.5.2 (2019-08-16)
- APIClient: change default SDK url (c5505fe)
4.5.1 (2019-06-14)
- APIClient: fix typo in method call (c932484)
4.5.0 (2019-04-16)
- responsetemplate: add isPending method (f12c64f)
4.4.1 (2019-04-04)
- APIClient: return apiclient instance in setUserAgent method (ec469ab)
4.4.0 (2019-04-01)
- apiclient: review user-agent header usage (6aa5342)
4.3.1 (2018-10-24)
- phpDocumentor: install missing dep graphviz (52252af)
4.3.0 (2018-10-24)
4.2.0 (2018-10-17)
- dependabot: minor release on build commit msg (900fc97)
4.1.0 (2018-10-15)
- client: add method getSession (fae89c0)
4.0.4 (2018-10-05)
- docs: review jsdoc comments (0d8f5d7)
4.0.3 (2018-10-05)
- docs: fix class docs and (c1a4e5e)
4.0.1 (2018-10-05)
- composer: consider ResponseParser namespace for autload (032aac3)
4.0.0 (2018-10-05)
- 4.0.0: Review in direction of our generic UML Diagram.
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
v3.0.3 (3 July 2018)
v3.0.2 (2 July 2018)
- added changelog generator
896848e
v3.0.1 (2 July 2018)
- readme: add slack chat badge
b58e774 - readme: fix getting started
e8ec52c - readme: added packagist module version badge
76c2f49 - readme: add license and contributing badge
91b0559 - readme: added php version badge
729e8b2
v3.0.0 (21 June 2018)
- moved connect method as static method to connection class
c34761f
v2.0.3 (21 June 2018)
- remove composer.lock from .gitignore
d2c6368
v2.0.2 (21 June 2018)
- added class map to composer.json
0bd34e0
v2.0.1 (21 June 2018)
- added phpDocumentor
4175b9d
- added unit tests
b6cedd4 - added unit tests for class connection and response
1b3bfbb - minor cleanup
777b1ce - setup phpunit; phpcs; phpcsf
f88965b - updated readme
f6cfcae - update readme
f7e01ea - added .gitignore and phpunit.xml
79d3127 - updated readme.md
2b3cda3 - reviewed repository structure; added basic files
7fdd40c - initial release
433b056