�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` destination = $destination; $this->codeGenerator = $codeGenerator ?: new CodeGenerator(); $this->fs = $fs ?: new Filesystem(); } /** @throws FileNotFoundException */ public function convertFile(string $yamlFile, bool $backupBeforeOverride = true): void { if (!$this->fs->exists($yamlFile)) { throw FileNotFoundException::fileNotFound($yamlFile); } $this->doConvert(Yaml::parse(file_get_contents($yamlFile)), $backupBeforeOverride); } public function convertString(string $yamlString, bool $backupBeforeOverride = true): void { $this->doConvert(Yaml::parse($yamlString), $backupBeforeOverride); } protected function doConvert(array $regexes, bool $backupBeforeOverride = true): void { $regexes = $this->sanitizeRegexes($regexes); $code = $this->codeGenerator->generateArray($regexes); $code = "destination.'/regexes.php'; if ($backupBeforeOverride && $this->fs->exists($regexesFile)) { $currentHash = hash('sha512', file_get_contents($regexesFile)); $futureHash = hash('sha512', $code); if ($futureHash === $currentHash) { return; } $backupFile = $this->destination . '/regexes-' . $currentHash . '.php'; $this->fs->copy($regexesFile, $backupFile); } $this->fs->dumpFile($regexesFile, $code); } private function sanitizeRegexes(array $regexes): array { foreach ($regexes as $groupName => $group) { $regexes[$groupName] = array_map([$this, 'sanitizeRegex'], $group); } return $regexes; } private function sanitizeRegex(array $regex): array { $regex['regex'] = '@' . str_replace('@', '\@', $regex['regex']) . '@'; if (isset($regex['regex_flag'])) { $regex['regex'] .= $regex['regex_flag']; } unset($regex['regex_flag']); return $regex; } }