diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..b2095be --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "semi": false, + "singleQuote": true +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 13ee2b0..efd7793 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,3 @@ { - "nuxt.isNuxtApp": false -} \ No newline at end of file + "nuxt.isNuxtApp": false +} diff --git a/app/Bootstrap.php b/app/Bootstrap.php index 0825e98..0a27ff4 100755 --- a/app/Bootstrap.php +++ b/app/Bootstrap.php @@ -14,6 +14,14 @@ class Bootstrap $configurator = new Configurator; $appDir = dirname(__DIR__); + // Provide some parameters + $configurator->addParameters([ + 'rootDir' => realpath(__DIR__ . '/..'), + 'appDir' => __DIR__, + 'wwwDir' => realpath(__DIR__ . '/../www'), + ]); + + $configurator->setDebugMode($_SERVER['HTTP_HOST'] === 'localhost'); $configurator->enableTracy($appDir . '/log'); diff --git a/app/Presenters/Error4xxPresenter.php b/app/Presenters/Error4xxPresenter.php deleted file mode 100755 index ee2e1b3..0000000 --- a/app/Presenters/Error4xxPresenter.php +++ /dev/null @@ -1,27 +0,0 @@ -getRequest()->isMethod(Nette\Application\Request::FORWARD)) { - $this->error(); - } - } - - - public function renderDefault(Nette\Application\BadRequestException $exception): void - { - // load template 403.latte or 404.latte or ... 4xx.latte - $file = __DIR__ . "/templates/Error/{$exception->getCode()}.latte"; - $this->template->setFile(is_file($file) ? $file : __DIR__ . '/templates/Error/4xx.latte'); - } -} diff --git a/app/Presenters/ErrorPresenter.php b/app/Presenters/ErrorPresenter.php deleted file mode 100755 index 2874b38..0000000 --- a/app/Presenters/ErrorPresenter.php +++ /dev/null @@ -1,43 +0,0 @@ -logger = $logger; - } - - - public function run(Nette\Application\Request $request): Nette\Application\Response - { - $exception = $request->getParameter('exception'); - - if ($exception instanceof Nette\Application\BadRequestException) { - [$module, , $sep] = Nette\Application\Helpers::splitName($request->getPresenterName()); - return new Responses\ForwardResponse($request->setPresenterName($module . $sep . 'Error4xx')); - } - - $this->logger->log($exception, ILogger::EXCEPTION); - return new Responses\CallbackResponse(function (Http\IRequest $httpRequest, Http\IResponse $httpResponse): void { - if (preg_match('#^text/html(?:;|$)#', (string) $httpResponse->getHeader('Content-Type'))) { - require __DIR__ . '/templates/Error/500.phtml'; - } - }); - } -} diff --git a/app/Presenters/HomepagePresenter.php b/app/Presenters/HomepagePresenter.php deleted file mode 100755 index 97bced8..0000000 --- a/app/Presenters/HomepagePresenter.php +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/app/domain/Api/MyApi/v1/Handlers/TermsHandler.php b/app/domain/Api/MyApi/v1/Handlers/TermsHandler.php new file mode 100755 index 0000000..1286ed3 --- /dev/null +++ b/app/domain/Api/MyApi/v1/Handlers/TermsHandler.php @@ -0,0 +1,32 @@ +em = $em; + $this->termFacade = $tf; + } + + public function handle(array $params): ResponseInterface + { + $translation = $this->em->getTranslationRepository()->findOneBy(['id' => $_GET['translation']]); + $this->termFacade->setDirection($translation->direction); + $q = $this->termFacade->findByStringFull($_GET['string'], $translation->dictionary, ''); + $terms = $q->getArrayResult(); + + return new JsonApiResponse(200, ['status' => 'ok', 'terms' => $terms]); + } +} \ No newline at end of file diff --git a/app/domain/Api/MyApi/v1/Handlers/TranslationsHandler.php b/app/domain/Api/MyApi/v1/Handlers/TranslationsHandler.php new file mode 100644 index 0000000..0445918 --- /dev/null +++ b/app/domain/Api/MyApi/v1/Handlers/TranslationsHandler.php @@ -0,0 +1,39 @@ +em = $em; + } + + public function handle(array $params): ResponseInterface + { + $trs = $this->em->getTranslationRepository()->findBy([], ['id' => 'ASC', 'direction' => 'ASC']); + $translations = []; + foreach ($trs as $t) { + $lang1 = $t->getLangName1(); + $lang2 = $t->getLangName2(); + + $lang = mb_substr($lang1, 0, -1); + $lang .= "o-" . $lang2; + $slug = Strings::webalize($lang); + $translations[$t->id]["slug"] = $slug; + $translations[$t->id]["lang"] = $lang; + } + + return new JsonApiResponse(200, ['status' => 'ok', 'translations' => $translations]); + } +} \ No newline at end of file diff --git a/app/domain/Api/MyApi/v1/Handlers/UsersListingHandler.php b/app/domain/Api/MyApi/v1/Handlers/UsersListingHandler.php new file mode 100755 index 0000000..537ebe6 --- /dev/null +++ b/app/domain/Api/MyApi/v1/Handlers/UsersListingHandler.php @@ -0,0 +1,29 @@ +em = $em; + } + + public function handle(array $params): ResponseInterface + { + //$users = []; + //foreach ($this->userRepository->all() as $user) { + // $users[] = $user->toArray(); + //} + $users = [ 'name' => 'test']; + return new JsonApiResponse(200, ['status' => 'ok', 'users' => $users]); + } +} \ No newline at end of file diff --git a/app/domain/Http/RequestLoggerSubscriber.php b/app/domain/Http/RequestLoggerSubscriber.php new file mode 100755 index 0000000..e67c0be --- /dev/null +++ b/app/domain/Http/RequestLoggerSubscriber.php @@ -0,0 +1,25 @@ + 'onRequest']; + } + + public function onRequest(RequestEvent $event): void + { + Debugger::barDump($event->getRequest()); + } + +} diff --git a/app/domain/Order/Event/OrderCreated.php b/app/domain/Order/Event/OrderCreated.php new file mode 100755 index 0000000..5356c64 --- /dev/null +++ b/app/domain/Order/Event/OrderCreated.php @@ -0,0 +1,25 @@ +order = $order; + } + + public function getOrder(): string + { + return $this->order; + } + +} diff --git a/app/domain/Order/OrderLogSubscriber.php b/app/domain/Order/OrderLogSubscriber.php new file mode 100755 index 0000000..1fbe9d1 --- /dev/null +++ b/app/domain/Order/OrderLogSubscriber.php @@ -0,0 +1,42 @@ + [ + ['onOrderCreatedBefore', 100], + ['onOrderCreated', 0], + ['onOrderCreatedAfter', -100], + ], + ]; + } + + public function onOrderCreatedBefore(OrderCreated $event): void + { + Debugger::barDump('BEFORE'); + } + + public function onOrderCreated(OrderCreated $event): void + { + Debugger::log($event, 'info'); + Debugger::barDump($event); + } + + public function onOrderCreatedAfter(OrderCreated $event): void + { + Debugger::barDump('AFTER'); + } + +} diff --git a/app/domain/User/CreateUserFacade.php b/app/domain/User/CreateUserFacade.php new file mode 100755 index 0000000..7e52eac --- /dev/null +++ b/app/domain/User/CreateUserFacade.php @@ -0,0 +1,48 @@ +em = $em; + } + + /** + * @param mixed[] $data + */ + public function createUser(array $data): User + { + // Create User + $user = new User( + $data['name'], + $data['surname'], + $data['email'], + $data['username'], + Passwords::create()->hash($data['password'] ?? md5(microtime())) + ); + + // Set role + if (isset($data['role'])) { + $user->setRole($data['role']); + } + + // Save user + $this->em->persist($user); + $this->em->flush(); + + return $user; + } + +} diff --git a/app/model/App.php b/app/model/App.php new file mode 100755 index 0000000..072244b --- /dev/null +++ b/app/model/App.php @@ -0,0 +1,14 @@ +setName('hello'); + $this->setDescription('Hello world!'); + } + + protected function execute(InputInterface $input, OutputInterface $output): int + { + $output->write('Hello world!'); + + return 0; + } + +} diff --git a/app/model/Database/Entity/AbstractEntity.php b/app/model/Database/Entity/AbstractEntity.php new file mode 100755 index 0000000..deeddb3 --- /dev/null +++ b/app/model/Database/Entity/AbstractEntity.php @@ -0,0 +1,8 @@ +createdAt; + } + + /** + * Doctrine annotation + * + * @ORM\PrePersist + * @internal + */ + public function setCreatedAt(): void + { + $this->createdAt = new DateTime(); + } + +} diff --git a/app/model/Database/Entity/Attributes/TId.php b/app/model/Database/Entity/Attributes/TId.php new file mode 100755 index 0000000..38d05cf --- /dev/null +++ b/app/model/Database/Entity/Attributes/TId.php @@ -0,0 +1,29 @@ +id; + } + + + public function __clone() + { + $this->id = null; + } + +} diff --git a/app/model/Database/Entity/Attributes/TUpdatedAt.php b/app/model/Database/Entity/Attributes/TUpdatedAt.php new file mode 100755 index 0000000..726bc10 --- /dev/null +++ b/app/model/Database/Entity/Attributes/TUpdatedAt.php @@ -0,0 +1,33 @@ +updatedAt; + } + + /** + * Doctrine annotation + * + * @ORM\PreUpdate + * @internal + */ + public function setUpdatedAt(): void + { + $this->updatedAt = new DateTime(); + } + +} diff --git a/app/model/Database/Entity/DictType.php b/app/model/Database/Entity/DictType.php new file mode 100755 index 0000000..4649dce --- /dev/null +++ b/app/model/Database/Entity/DictType.php @@ -0,0 +1,50 @@ +shortName = $short_name; + $this->fullName = $full_name; + } + + /** + * @ORM\Column(type="string") + */ + protected $shortName; + + public function getShortName() + { + return $this->shortName; + } + + /** + * @ORM\Column(type="string") + */ + protected $fullName; + + public function getFullName() + { + return $this->fullName; + } + +} + +?> diff --git a/app/model/Database/Entity/Dictionary.php b/app/model/Database/Entity/Dictionary.php new file mode 100755 index 0000000..114ed69 --- /dev/null +++ b/app/model/Database/Entity/Dictionary.php @@ -0,0 +1,94 @@ +name = $name; + $this->fullName = $fullname; + $this->translations = new ArrayCollection(); + } + + /** + * @ORM\OneToMany(targetEntity="\App\Model\Database\Entity\Translation", mappedBy="dictionary", cascade={"persist"}) + * @var Collection&iterable + */ + protected Collection $translations; + + public function getTranslations() + { + return $this->translations; + } + + /** + * @ORM\OnetoMany(targetEntity="\App\Model\Database\Entity\Term", mappedBy="dictionary") + * @var Collection&iterable + */ + protected Collection $terms; + + /** + * @ORM\ManyToOne(targetEntity="Language", inversedBy="dictionaries1") + * @ORM\JoinColumn(name="lang1_id", referencedColumnName="id") + */ + protected ?Language $lang1; + + /** + * @ORM\ManyToOne(targetEntity="Language", inversedBy="dictionaries2") + * @ORM\JoinColumn(name="lang2_id", referencedColumnName="id") + */ + protected ?Language $lang2; + + /** + * @ORM\Column(type="string") + */ + protected $name; + + public function getName() + { + return $this->name; + } + + /** + * @ORM\Column(type="string") + */ + protected $fullName; + + public function setLang1($lang1) + { + $this->lang1 = $lang1; + + return $this; + } + + public function setLang2($lang2) + { + $this->lang2 = $lang2; + + return $this; + } + +} + +?> diff --git a/app/model/Database/Entity/Language.php b/app/model/Database/Entity/Language.php new file mode 100755 index 0000000..d38ef32 --- /dev/null +++ b/app/model/Database/Entity/Language.php @@ -0,0 +1,65 @@ +shortName = $shortname; + $this->name = $name; + } + + /** + * @ORM\Column(type="string",length=2, unique=true, options={"fixed" = true}) + */ + protected $shortName; + + public function getShortName() + { + return $this->shortName; + } + + /** + * @ORM\Column(type="string",length=32) + */ + protected $name; + + public function getName() + { + return $this->name; + } + + /* + * @var Collection&iterable + * @ORM\OneToMany(targetEntity="Dictionary", mappedBy="language") + */ + protected Collection $dictionaries1; + + /* + * @var Collection&iterable + * @ORM\OneToMany(targetEntity="Dictionary", mappedBy="language") + */ + protected Collection $dictionaries2; + +} + +?> diff --git a/app/model/Database/Entity/Pronunciation.php b/app/model/Database/Entity/Pronunciation.php new file mode 100755 index 0000000..158a7b9 --- /dev/null +++ b/app/model/Database/Entity/Pronunciation.php @@ -0,0 +1,85 @@ +type = $type; + $this->ipa = $ipa; + $this->filename = $filename; + $this->terms = new \Doctrine\Common\Collections\ArrayCollection(); + } + + /** + * @ORM\ManyToMany(targetEntity="Term", mappedBy="pronunciations") + */ + private $terms; + + + /** + * @ORM\ManyToOne(targetEntity="PronunciationType", inversedBy="pronunciations") + */ + protected $type; + + /** + * @ORM\Column(type="string",nullable=true) + */ + protected $ipa; + + /** + * @ORM\Column(type="string", nullable=true) + */ + protected $filename; + + /** + * Get the value of filename + */ + public function getFilename() + { + return $this->filename; + } + + /** + * Get the value of terms + */ + public function getTerms() + { + return $this->terms; + } + + /** + * Get the value of ipa + */ + public function getIpa() + { + return $this->ipa; + } + + /** + * Get the value of type + */ + public function getType() + { + return $this->type; + } +} + +?> diff --git a/app/model/Database/Entity/PronunciationType.php b/app/model/Database/Entity/PronunciationType.php new file mode 100755 index 0000000..4000b8f --- /dev/null +++ b/app/model/Database/Entity/PronunciationType.php @@ -0,0 +1,37 @@ +name = $name; + $this->fullName = $fullName; + } + + /** + * @ORM\Column(type="string") + */ + protected $name; + + /** + * @ORM\Column(type="string") + */ + protected $fullName; +} + +?> diff --git a/app/model/Database/Entity/Suffix.php b/app/model/Database/Entity/Suffix.php new file mode 100755 index 0000000..c9b2e8b --- /dev/null +++ b/app/model/Database/Entity/Suffix.php @@ -0,0 +1,36 @@ +text = $text; + } + + /** + * @ORM\Column(type="string") + */ + protected $text; + + + public function getText() + { + return $this->text; + } +} + +?> diff --git a/app/model/Database/Entity/Term.php b/app/model/Database/Entity/Term.php new file mode 100755 index 0000000..de39a8b --- /dev/null +++ b/app/model/Database/Entity/Term.php @@ -0,0 +1,231 @@ +dictionary = $dictionary; + $this->string1 = $string; + } + + /** + * @ORM\ManyToOne(targetEntity="\App\Model\Database\Entity\Dictionary", inversedBy="terms",cascade={"persist", "remove" }) + */ + protected $dictionary; + + /** + * @ORM\Column(type="string") + */ + protected $string1; + + /** + * @ORM\Column(type="string") + */ + protected $string2; + + /** + * @ORM\ManyToOne(targetEntity="Suffix") + */ + protected $suffix1; + + /** + * @ORM\ManyToOne(targetEntity="Suffix") + */ + protected $suffix2; + + /** + * @ORM\ManyToOne(targetEntity="DictType") + */ + protected $type; + + /** + * @ORM\ManyToMany(targetEntity="Pronunciation", inversedBy="terms") + * @ORM\JoinTable(name="terms_pronunciations") + * @var Collection&iterable + */ + protected Collection $pronunciations; + + /** + * @ORM\Column(type="string",nullable=true) + */ + protected $member; + + public function setMember($member) + { + $this->member = $member; + return $this; + } + + public function getMember() + { + return $this->member; + } + + /** + * @ORM\Column(type="smallint",nullable=true) + */ + protected $order2; + + /** + * @ORM\Column(type="json_array",nullable=true) + */ + protected $flags; + + public function getFlags() + { + return $this->flags; + } + + public function setFlags($flags) + { + $this->flags = $flags; + return $this; + } + + public function getOrder2() + { + return $this->order2; + } + + public function setOrder2($order2) + { + $this->order2 = $order2; + return $this; + } + + /** + * Get the value of string1 + */ + public function getString1() + { + return $this->string1; + } + + /** + * Set the value of string1 + * + * @return self + */ + public function setString1($string1) + { + $this->string1 = $string1; + + return $this; + } + + /** + * Get the value of string2 + */ + public function getString2() + { + return $this->string2; + } + + /** + * Set the value of string2 + * + * @return self + */ + public function setString2($string2) + { + $this->string2 = $string2; + + return $this; + } + + /** + * Get the value of suffix1 + */ + public function getSuffix1() + { + return $this->suffix1; + } + + /** + * Set the value of suffix1 + * + * @return self + */ + public function setSuffix1($suffix1) + { + $this->suffix1 = $suffix1; + + return $this; + } + + /** + * Get the value of suffix2 + */ + public function getSuffix2() + { + return $this->suffix2; + } + + /** + * Set the value of suffix2 + * + * @return self + */ + public function setSuffix2($suffix2) + { + $this->suffix2 = $suffix2; + + return $this; + } + + /** + * Get the value of type + */ + public function getType() + { + return $this->type; + } + + /** + * Set the value of type + * + * @return self + */ + public function setType($type) + { + $this->type = $type; + + return $this; + } + + /** + * Get the value of pronunciations + * + * @return Collection&iterable + */ + public function getPronunciations() + { + return $this->pronunciations; + } +} diff --git a/app/model/Database/Entity/TermFlag.php b/app/model/Database/Entity/TermFlag.php new file mode 100755 index 0000000..aab5135 --- /dev/null +++ b/app/model/Database/Entity/TermFlag.php @@ -0,0 +1,97 @@ +id = $id; + $this->class = $class; + $this->language = $language; + $this->code = $code; + $this->description = $description; + } + + /** + * @ORM\ManyToOne(targetEntity="WordClass", inversedBy="flags") + */ + protected $class; + + public function getClass() + { + return $this->class; + } + + public function setClass($class) + { + $this->class = $class; + return $this; + } + + /** + * @ORM\ManyToOne(targetEntity="Language", inversedBy="flags") + */ + protected $language; + + public function getLanguage() + { + return $this->language; + } + + public function setLanguage($language) + { + $this->language = $language; + return $this; + } + + /** + * @ORM\Column(type="string") + */ + protected $code; + + public function getCode() + { + return $this->code; + } + + public function setCode($code) + { + $this->code = $code; + return $this; + } + + /** + * @ORM\Column(type="string") + */ + protected $description; + + public function getDescription() + { + return $this->description; + } + + public function setDescription($description) + { + $this->description = $description; + return $this; + } +} + +?> diff --git a/app/model/Database/Entity/Translation.php b/app/model/Database/Entity/Translation.php new file mode 100755 index 0000000..d7eed08 --- /dev/null +++ b/app/model/Database/Entity/Translation.php @@ -0,0 +1,87 @@ +dictionary = $dictionary; + $this->lang1 = $lang1; + $this->lang2 = $lang2; + $this->lang_name1 = $lang_name1; + $this->lang_name2 = $lang_name2; + $this->direction = $direction; + } + + /** + * @ORM\ManyToOne(targetEntity="App\Model\Database\Entity\Dictionary", inversedBy="translations") + */ + protected $dictionary; + + public function getDictionary() + { + return $this->dictionary; + } + + /** + * @ORM\ManyToOne(targetEntity="App\Model\Database\Entity\Language", inversedBy="translations1") + */ + protected $lang1; + + /** + * @ORM\ManyToOne(targetEntity="App\Model\Database\Entity\Language", inversedBy="translations2") + */ + protected $lang2; + + /** + * @ORM\Column(type="string") + */ + protected $lang_name1; + + public function getLangName1(): String + { + return $this->lang_name1; + } + + /** + * @ORM\Column(type="string") + */ + protected $lang_name2; + + public function getLangName2(): String + { + return $this->lang_name2; + } + + /** + * @ORM\Column(type="smallint") + */ + protected $direction; + + public function getDirection() : int + { + return $this->direction; + } + +} + +?> diff --git a/app/model/Database/Entity/User.php b/app/model/Database/Entity/User.php new file mode 100755 index 0000000..99439cb --- /dev/null +++ b/app/model/Database/Entity/User.php @@ -0,0 +1,214 @@ +name = $name; + $this->surname = $surname; + $this->email = $email; + $this->username = $username; + $this->password = $passwordHash; + + $this->role = self::ROLE_USER; + $this->state = self::STATE_FRESH; + } + + public function changeLoggedAt(): void + { + $this->lastLoggedAt = new DateTime(); + } + + public function getEmail(): string + { + return $this->email; + } + + public function getUsername(): string + { + return $this->username; + } + + public function changeUsername(string $username): void + { + $this->username = $username; + } + + public function getLastLoggedAt(): ?DateTime + { + return $this->lastLoggedAt; + } + + public function getRole(): string + { + return $this->role; + } + + public function setRole(string $role): void + { + $this->role = $role; + } + + public function getPasswordHash(): string + { + return $this->password; + } + + public function changePasswordHash(string $password): void + { + $this->password = $password; + } + + public function block(): void + { + $this->state = self::STATE_BLOCKED; + } + + public function activate(): void + { + $this->state = self::STATE_ACTIVATED; + } + + public function isActivated(): bool + { + return $this->state === self::STATE_ACTIVATED; + } + + public function getName(): string + { + return $this->name; + } + + public function getSurname(): string + { + return $this->surname; + } + + public function getFullname(): string + { + return $this->name . ' ' . $this->surname; + } + + public function rename(string $name, string $surname): void + { + $this->name = $name; + $this->surname = $surname; + } + + public function getState(): int + { + return $this->state; + } + + public function setState(int $state): void + { + if (!in_array($state, self::STATES)) { + throw new InvalidArgumentException(sprintf('Unsupported state %s', $state)); + } + + $this->state = $state; + } + + public function getGravatar(): string + { + return 'https://www.gravatar.com/avatar/' . md5($this->email); + } + + public function toIdentity(): Identity + { + return new Identity($this->getId(), [$this->role], [ + 'email' => $this->email, + 'name' => $this->name, + 'surname' => $this->surname, + 'state' => $this->state, + 'gravatar' => $this->getGravatar(), + ]); + } + +} diff --git a/app/model/Database/Entity/WordClass.php b/app/model/Database/Entity/WordClass.php new file mode 100755 index 0000000..2196f59 --- /dev/null +++ b/app/model/Database/Entity/WordClass.php @@ -0,0 +1,43 @@ +id = $id; + $this->name = $name; + } + + /** + * @ORM\Column(type="string") + */ + protected $name; + + public function getName() + { + return $this->id; + } + + public function setName($name) + { + $this->name = $name; + return $this; + } +} + diff --git a/app/model/Database/EntityManager.php b/app/model/Database/EntityManager.php new file mode 100755 index 0000000..ce84369 --- /dev/null +++ b/app/model/Database/EntityManager.php @@ -0,0 +1,28 @@ +|ObjectRepository + * @internal + * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint + * @phpstan-template T of object + * @phpstan-param class-string $entityName + * @phpstan-return ObjectRepository + */ + public function getRepository($entityName): ObjectRepository + { + return parent::getRepository($entityName); + } + +} diff --git a/app/model/Database/Facade/TermFacade.php b/app/model/Database/Facade/TermFacade.php new file mode 100755 index 0000000..75a0627 --- /dev/null +++ b/app/model/Database/Facade/TermFacade.php @@ -0,0 +1,124 @@ +em = $em; + } + + public function setDirection(int $direction) + { + $this->direction = $direction; + } + /** + * @param mixed[] $data + */ + public function findByString(String $term,Dictionary $d,String $clen = null) + { + $query = $this->em->createQueryBuilder('t')->select('t') + ->addSelect('s1') + ->addSelect('s2') + ->from(Term::class,'t') + ->leftJoin('t.suffix1','s1') + ->leftJoin('t.suffix2','s2'); + if ($this->direction == 1) { + $query->where('t.string1 LIKE :str')->setParameter('str', $term."%"); + $query->orderBy('t.string1,t.id','ASC'); + } else if ($this->direction == 2) { + $query->where('t.string2 LIKE :str')->setParameter('str', $term."%"); + $query->orderBy('t.string2','ASC'); + $query->addOrderBy('t.order2','ASC'); + } + $query->andWhere('t.dictionary = :dict')->setParameter(':dict',$d->id); + if ($clen) + $query->andWhere('t.member LIKE :clen')->setParameter('clen','%'.$clen.'%'); + + return $query->getQuery(); + } + + /** + * @param mixed[] $data + */ + public function findByStringQuick(String $string, Dictionary $d, String $clen = null) + { + $query = $this->em->createQueryBuilder('t')->select('DISTINCT t.string1 AS str')->from(Term::class,'t'); + if ($this->direction == 1) { + $query->where('t.string1 LIKE :str')->setParameter('str',$string."%"); + $query->orderBy('t.string1','ASC'); + } else if ($this->direction == 2) { + $query->where('t.string2 LIKE :str')->setParameter('str', $string."%"); + $query->orderBy('t.string2','ASC'); + } + $query->andWhere('t.dictionary = :dict')->setParameter(':dict',$d->id); + + return $query->getQuery(); + } + + /** + * @param mixed[] $data + */ + public function findByStringFull(String $string, Dictionary $d, String $clen = null, $like = true) + { + + $search = $string; + if ($like) $search = $search . "%"; + + $query = $this->em->createQueryBuilder('t')->select('t') + ->addSelect('s1') + ->addSelect('s2') + ->addSelect('p') + ->from(Term::class,'t') + ->leftJoin('t.suffix1','s1') + ->leftJoin('t.suffix2','s2') + ->leftJoin('t.pronunciations','p'); + if ($this->direction == 1) { + $query->where('t.string1 LIKE :str')->setParameter('str',$search); + $query->orderBy('t.id','ASC'); + $query->addOrderBy('p.id','ASC'); + } else if ($this->direction == 2) { + $query->where('t.string2 LIKE :str')->setParameter('str', $search); + $query->orderBy('t.string2','ASC'); + $query->addOrderBy('t.order2','ASC'); + } + $query->andWhere('t.dictionary = :dict')->setParameter(':dict',$d->id); + if ($clen) + $query->andWhere('t.member LIKE :clen')->setParameter('clen','%'.$clen.'%'); + + return $query->getQuery(); + } + + /** + * @param mixed[] $data + */ + public function findByStringSimple(String $string, Dictionary $d, String $clen = null) + { + $query = $this->em->createQueryBuilder('t')->select('t')->from(Term::class,'t'); + if ($this->direction == 1) { + $query->where('t.string1 LIKE :str')->setParameter('str',$string."%"); + $query->orderBy('t.id','ASC'); + } else if ($this->direction == 2) { + $query->where('t.string2 LIKE :str')->setParameter('str', $string."%"); + $query->orderBy('t.string2','ASC'); + $query->addOrderBy('t.order2','ASC'); + } + $query->andWhere('t.dictionary = :dict')->setParameter(':dict',$d->id); + + return $query->getQuery(); + } +} diff --git a/app/model/Database/Repository/AbstractRepository.php b/app/model/Database/Repository/AbstractRepository.php new file mode 100755 index 0000000..1518a80 --- /dev/null +++ b/app/model/Database/Repository/AbstractRepository.php @@ -0,0 +1,86 @@ + + */ +abstract class AbstractRepository extends EntityRepository +{ + + /** + * Fetches all records like $key => $value pairs + * + * @param mixed[] $criteria + * @param mixed[] $orderBy + * @return mixed[] + */ + public function findPairs(?string $key, string $value, array $criteria = [], array $orderBy = []): array + { + if ($key === null) { + $key = $this->getClassMetadata()->getSingleIdentifierFieldName(); + } + + $qb = $this->createQueryBuilder('e') + ->select(['e.' . $value, 'e.' . $key]) + ->resetDQLPart('from') + ->from($this->getEntityName(), 'e', 'e.' . $key); + + foreach ($criteria as $k => $v) { + if (is_array($v)) { + $qb->andWhere(sprintf('e.%s IN(:%s)', $k, $k))->setParameter($k, array_values($v)); + } else { + $qb->andWhere(sprintf('e.%s = :%s', $k, $k))->setParameter($k, $v); + } + } + + foreach ($orderBy as $column => $order) { + $qb->addOrderBy($column, $order); + } + + return array_map(function ($row) { + return reset($row); + }, $qb->getQuery()->getArrayResult()); + } + + /** + * Fetches all records and returns an associative array indexed by key + * + * @param array $criteria + * @param string $key + * + * @throws \Exception|QueryException + * @return array + */ + public function findAssoc(array $criteria = [],String $key = NULL) + { + if (!is_array($criteria)) { + $key = $criteria; + $criteria = []; + } + + $qb = $this->createQueryBuilder('e') + ->resetDQLPart('from')->from($this->getEntityName(), 'e', 'e.' . $key); + + foreach ($criteria as $k => $v) { + if (is_array($v)) { + $qb->andWhere(sprintf('e.%s IN(:%s)', $k, $k))->setParameter($k, array_values($v)); + } else { + $qb->andWhere(sprintf('e.%s = :%s', $k, $k))->setParameter($k, $v); + } + } + + try { + return $qb->getQuery()->getResult(); + + } catch (\Exception $e) { + throw $this->handleException($e, $qb); + } + } + + + +} diff --git a/app/model/Database/Repository/DictTypeRepository.php b/app/model/Database/Repository/DictTypeRepository.php new file mode 100755 index 0000000..7dffd52 --- /dev/null +++ b/app/model/Database/Repository/DictTypeRepository.php @@ -0,0 +1,18 @@ + + */ +class DictTypeRepository extends AbstractRepository +{ + + +} diff --git a/app/model/Database/Repository/DictionaryRepository.php b/app/model/Database/Repository/DictionaryRepository.php new file mode 100755 index 0000000..7375b65 --- /dev/null +++ b/app/model/Database/Repository/DictionaryRepository.php @@ -0,0 +1,18 @@ + + */ +class DictionaryRepository extends AbstractRepository +{ + + +} diff --git a/app/model/Database/Repository/PronunciationRepository.php b/app/model/Database/Repository/PronunciationRepository.php new file mode 100755 index 0000000..6d6b671 --- /dev/null +++ b/app/model/Database/Repository/PronunciationRepository.php @@ -0,0 +1,16 @@ + + */ +class PronunciationRepository extends AbstractRepository +{ + +} diff --git a/app/model/Database/Repository/TermFlagRepository.php b/app/model/Database/Repository/TermFlagRepository.php new file mode 100755 index 0000000..4c3c80f --- /dev/null +++ b/app/model/Database/Repository/TermFlagRepository.php @@ -0,0 +1,18 @@ + + */ +class TermFlagRepository extends AbstractRepository +{ + + +} diff --git a/app/model/Database/Repository/TermRepository.php b/app/model/Database/Repository/TermRepository.php new file mode 100755 index 0000000..52484d4 --- /dev/null +++ b/app/model/Database/Repository/TermRepository.php @@ -0,0 +1,18 @@ + + */ +class TermRepository extends AbstractRepository +{ + + +} diff --git a/app/model/Database/Repository/TermsQuery.php b/app/model/Database/Repository/TermsQuery.php new file mode 100755 index 0000000..b538887 --- /dev/null +++ b/app/model/Database/Repository/TermsQuery.php @@ -0,0 +1,57 @@ +dictionary = $dict; + $this->string = $string; + $this->direction = $direction; + } + + public function withClen(String $clen) + { + if ($clen != null && $clen != '') + $this->clen = $clen; + } + + /** + * Fetches all records like $key => $value pairs + * + * @param mixed[] $criteria + * @param mixed[] $orderBy + * @return mixed[] + */ + protected function doCreateQuery() + { + $query = $this->createQueryBuilder('t')->select('t') + ->addSelect('s1') + ->addSelect('s2') + ->leftJoin('t.suffix1','s1') + ->leftJoin('t.suffix2','s2'); + if ($this->direction == 1) { + $query->where('t.string1 LIKE :str')->setParameter('str',$this->string."%"); + $query->orderBy('t.string1,t.id','ASC'); + } else if ($this->direction == 2) { + $query->where('t.string2 LIKE :str')->setParameter('str', $this->string."%"); + $query->orderBy('t.string2','ASC'); + $query->addOrderBy('t.order2','ASC'); + } + $query->andWhere('t.dictionary = :dict')->setParameter(':dict',$this->dictionary->id); + if ($this->clen) + $query->andWhere('t.member LIKE :clen')->setParameter('clen','%'.$this->clen.'%'); + + return $query; + } +} diff --git a/app/model/Database/Repository/TranslationRepository.php b/app/model/Database/Repository/TranslationRepository.php new file mode 100755 index 0000000..54cff01 --- /dev/null +++ b/app/model/Database/Repository/TranslationRepository.php @@ -0,0 +1,20 @@ + + */ +class TranslationRepository extends AbstractRepository +{ + public function findOneByEmail(string $email): ?Translation + { + return $this->findOneBy(['email' => $email]); + } +} diff --git a/app/model/Database/Repository/UserRepository.php b/app/model/Database/Repository/UserRepository.php new file mode 100755 index 0000000..878ad93 --- /dev/null +++ b/app/model/Database/Repository/UserRepository.php @@ -0,0 +1,22 @@ + + */ +class UserRepository extends AbstractRepository +{ + + public function findOneByEmail(string $email): ?User + { + return $this->findOneBy(['email' => $email]); + } + +} diff --git a/app/model/Database/TRepositories.php b/app/model/Database/TRepositories.php new file mode 100755 index 0000000..04cc64b --- /dev/null +++ b/app/model/Database/TRepositories.php @@ -0,0 +1,61 @@ +getRepository(User::class); + } + + public function getTranslationRepository(): TranslationRepository + { + return $this->getRepository(Translation::class); + } + + public function getTermRepository(): TermRepository + { + return $this->getRepository(Term::class); + } + + public function getTermFlagRepository(): TermFlagRepository + { + return $this->getRepository(TermFlag::class); + } + + public function getPronunciationRepository(): PronunciationRepository + { + return $this->getRepository(Pronunciation::class); + } + + public function getDictTypeRepository(): DictTypeRepository + { + return $this->getRepository(DictType::class); + } + + public function getDictionaryRepository(): DictionaryRepository + { + return $this->getRepository(Dictionary::class); + } + +} diff --git a/app/model/Exception/Logic/InvalidArgumentException.php b/app/model/Exception/Logic/InvalidArgumentException.php new file mode 100755 index 0000000..2b01985 --- /dev/null +++ b/app/model/Exception/Logic/InvalidArgumentException.php @@ -0,0 +1,10 @@ +latte = $latte; + } + + /** + * @param mixed[] $args + * @return mixed + */ + public function __call(string $name, array $args) + { + return $this->latte->invokeFilter($name, $args); + } + + /** + * @return mixed + */ + public function __get(string $name) + { + return $this->latte->invokeFilter($name, []); + } + +} diff --git a/app/model/Latte/Filters.php b/app/model/Latte/Filters.php new file mode 100755 index 0000000..b3ec342 --- /dev/null +++ b/app/model/Latte/Filters.php @@ -0,0 +1,30 @@ +latteFactory = $latteFactory; + $this->user = $user; + } + + public function createTemplate(Control $control = null, string $class = null): Template + { + /** @var Template $template */ + $template = parent::createTemplate($control); + + // Remove default $template->user for prevent misused + unset($template->user); + + // Assign new variables + $template->_user = $this->user; + $template->_template = $template; + $template->_filters = new FilterExecutor($this->latteFactory->create()); + + return $template; + } + +} diff --git a/app/model/Latte/TemplateProperty.php b/app/model/Latte/TemplateProperty.php new file mode 100755 index 0000000..85857a1 --- /dev/null +++ b/app/model/Latte/TemplateProperty.php @@ -0,0 +1,20 @@ +buildApi($router); + $this->buildMailing($router); + $this->buildPdf($router); + $this->buildAdmin($router); + $this->buildFront($router); + + return $router; + } + + protected function buildAdmin(RouteList $router): RouteList + { + $router[] = $list = new RouteList('Admin'); + $list[] = new Route('admin//[/]', 'Home:default'); + + return $router; + } + + protected function buildFront(RouteList $router): RouteList + { + $router[] = $list = new RouteList('Front'); + $list[] = new Route('/[/]', 'Home:default'); + + return $router; + } + + protected function buildMailing(RouteList $router): RouteList + { + $router[] = $list = new RouteList('Mailing'); + $list[] = new Route('mailing//[/]', 'Home:default'); + + return $router; + } + + protected function buildPdf(RouteList $router): RouteList + { + $router[] = $list = new RouteList('Pdf'); + $list[] = new Route('pdf//[/]', 'Home:default'); + + return $router; + } + + protected function buildApi(RouteList $router): RouteList + { + $router[] = $list = new RouteList('Api'); + $list[] = new Route('/api/v/[/][/]', 'Api:default'); + + return $router; + } +} diff --git a/app/model/Security/Authenticator/UserAuthenticator.php b/app/model/Security/Authenticator/UserAuthenticator.php new file mode 100755 index 0000000..491eb60 --- /dev/null +++ b/app/model/Security/Authenticator/UserAuthenticator.php @@ -0,0 +1,57 @@ +em = $em; + $this->passwords = $passwords; + } + + /** + * @param string $username + * @param string $password + * @throws AuthenticationException + */ + public function authenticate(string $username, string $password): IIdentity + { + $user = $this->em->getUserRepository()->findOneBy(['email' => $username]); + + if (!$user) { + throw new AuthenticationException('The username is incorrect.', self::IDENTITY_NOT_FOUND); + } elseif (!$user->isActivated()) { + throw new AuthenticationException('The user is not active.', self::INVALID_CREDENTIAL); + } elseif (!$this->passwords->verify($password, $user->getPasswordHash())) { + throw new AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL); + } + + $user->changeLoggedAt(); + $this->em->flush(); + + return $this->createIdentity($user); + } + + protected function createIdentity(User $user): IIdentity + { + $this->em->flush(); + + return $user->toIdentity(); + } + +} diff --git a/app/model/Security/Authorizator/StaticAuthorizator.php b/app/model/Security/Authorizator/StaticAuthorizator.php new file mode 100755 index 0000000..b1caa32 --- /dev/null +++ b/app/model/Security/Authorizator/StaticAuthorizator.php @@ -0,0 +1,47 @@ +addRoles(); + $this->addResources(); + $this->addPermissions(); + } + + /** + * Setup roles + */ + protected function addRoles(): void + { + $this->addRole(User::ROLE_ADMIN); + } + + /** + * Setup resources + */ + protected function addResources(): void + { + $this->addResource('Admin:Home'); + } + + /** + * Setup ACL + */ + protected function addPermissions(): void + { + $this->allow(User::ROLE_ADMIN, [ + 'Admin:Home', + ]); + } + +} diff --git a/app/model/Security/Identity.php b/app/model/Security/Identity.php new file mode 100755 index 0000000..10aa758 --- /dev/null +++ b/app/model/Security/Identity.php @@ -0,0 +1,15 @@ +data['name'] ?? '', $this->data['surname'] ?? ''); + } + +} diff --git a/app/model/Security/Passwords.php b/app/model/Security/Passwords.php new file mode 100755 index 0000000..0da157b --- /dev/null +++ b/app/model/Security/Passwords.php @@ -0,0 +1,15 @@ +isInRole(User::ROLE_ADMIN); + } + +} diff --git a/app/model/Utils/Arrays.php b/app/model/Utils/Arrays.php new file mode 100755 index 0000000..646eef8 --- /dev/null +++ b/app/model/Utils/Arrays.php @@ -0,0 +1,10 @@ +user->isAllowed('Admin:Home')) { + $this->flashError('You cannot access this with user role'); + $this->redirect(App::DESTINATION_FRONT_HOMEPAGE); + } + } + +} diff --git a/app/modules/Admin/Home/HomePresenter.php b/app/modules/Admin/Home/HomePresenter.php new file mode 100755 index 0000000..bfc010e --- /dev/null +++ b/app/modules/Admin/Home/HomePresenter.php @@ -0,0 +1,31 @@ +addText('order', 'Order name') + ->setRequired(true); + $form->addSubmit('send', 'OK'); + + $form->onSuccess[] = function (Form $form): void { + $this->dispatcher->dispatch(new OrderCreated($form->values->order), OrderCreated::NAME); + }; + + return $form; + } + +} diff --git a/app/modules/Admin/Home/templates/default.latte b/app/modules/Admin/Home/templates/default.latte new file mode 100755 index 0000000..cb64275 --- /dev/null +++ b/app/modules/Admin/Home/templates/default.latte @@ -0,0 +1,8 @@ +{block #content} +

SECRET PAGE!

+Logout + +
+ +

Orders

+{control orderForm} diff --git a/app/modules/Admin/Sign/SignPresenter.php b/app/modules/Admin/Sign/SignPresenter.php new file mode 100755 index 0000000..f53abc6 --- /dev/null +++ b/app/modules/Admin/Sign/SignPresenter.php @@ -0,0 +1,75 @@ +user->isLoggedIn()) { + $this->redirect(App::DESTINATION_AFTER_SIGN_IN); + } + } + + public function actionOut(): void + { + if ($this->user->isLoggedIn()) { + $this->user->logout(); + $this->flashSuccess('_front.sign.out.success'); + } + + $this->redirect(App::DESTINATION_AFTER_SIGN_OUT); + } + + protected function createComponentLoginForm(): BaseForm + { + $form = $this->formFactory->forBackend(); + $form->addEmail('email') + ->setRequired(true); + $form->addPassword('password') + ->setRequired(true); + $form->addCheckbox('remember') + ->setDefaultValue(true); + $form->addSubmit('submit'); + $form->onSuccess[] = [$this, 'processLoginForm']; + + return $form; + } + + public function processLoginForm(BaseForm $form): void + { + try { + $this->user->setExpiration($form->values->remember ? '14 days' : '20 minutes'); + $this->user->login($form->values->email, $form->values->password); + } catch (AuthenticationException $e) { + $form->addError('Invalid username or password'); + + return; + } + + $this->redirect(App::DESTINATION_AFTER_SIGN_IN); + } + +} diff --git a/app/modules/Admin/Sign/templates/in.latte b/app/modules/Admin/Sign/templates/in.latte new file mode 100755 index 0000000..e23a877 --- /dev/null +++ b/app/modules/Admin/Sign/templates/in.latte @@ -0,0 +1,29 @@ +{block #content} + diff --git a/app/modules/Admin/templates/@layout.latte b/app/modules/Admin/templates/@layout.latte new file mode 100755 index 0000000..d1b07c9 --- /dev/null +++ b/app/modules/Admin/templates/@layout.latte @@ -0,0 +1,7 @@ +{layout '../../Base/templates/@layout.latte'} + +{block #head} + + + +{/block} diff --git a/app/modules/Base/BaseError4xxPresenter.php b/app/modules/Base/BaseError4xxPresenter.php new file mode 100755 index 0000000..d5ecfe5 --- /dev/null +++ b/app/modules/Base/BaseError4xxPresenter.php @@ -0,0 +1,44 @@ +getRequest() !== null && $this->getRequest()->isMethod(Request::FORWARD)) { + return; + } + + $this->error(); + } + + public function renderDefault(BadRequestException $exception): void + { + $rf1 = new ComponentReflection(static::class); + $fileName = $rf1->getFileName(); + + // Validate if class is not in PHP core + if ($fileName === false) { + throw new InvalidStateException('Class is defined in the PHP core or in a PHP extension'); + } + + $dir = dirname($fileName); + + // Load template 403.latte or 404.latte or ... 4xx.latte + $file = $dir . '/templates/' . $exception->getCode() . '.latte'; + $this->template->setFile(is_file($file) ? $file : $dir . '/templates/4xx.latte'); + } + +} diff --git a/app/modules/Base/BaseErrorPresenter.php b/app/modules/Base/BaseErrorPresenter.php new file mode 100755 index 0000000..36ea0e1 --- /dev/null +++ b/app/modules/Base/BaseErrorPresenter.php @@ -0,0 +1,57 @@ +getParameter('exception'); + + if ($e instanceof Throwable) { + $code = $e->getCode(); + $level = ($code >= 400 && $code <= 499) ? LogLevel::WARNING : LogLevel::ERROR; + + Debugger::log(sprintf( + 'Code %s: %s in %s:%s', + $code, + $e->getMessage(), + $e->getFile(), + $e->getLine() + ), $level); + + Debugger::log($e, ILogger::EXCEPTION); + } + + if ($e instanceof BadRequestException) { + [$module, , $sep] = Helpers::splitName($request->getPresenterName()); + + return new ForwardResponse($request->setPresenterName($module . $sep . 'Error4xx')); + } + + return new CallbackResponse(function (IRequest $httpRequest, IResponse $httpResponse): void { + $header = $httpResponse->getHeader('Content-Type'); + if ($header !== null && preg_match('#^text/html(?:;|$)#', $header)) { + require __DIR__ . '/templates/500.phtml'; + } + }); + } + +} diff --git a/app/modules/Base/BasePresenter.php b/app/modules/Base/BasePresenter.php new file mode 100755 index 0000000..fae8c36 --- /dev/null +++ b/app/modules/Base/BasePresenter.php @@ -0,0 +1,23 @@ +user->isLoggedIn()) { + if ($this->user->getLogoutReason() === IUserStorage::INACTIVITY) { + $this->flashInfo('You have been logged out for inactivity'); + } + + $this->redirect( + App::DESTINATION_SIGN_IN, + ['backlink' => $this->storeRequest()] + ); + } + } + +} diff --git a/app/modules/Base/UnsecuredPresenter.php b/app/modules/Base/UnsecuredPresenter.php new file mode 100755 index 0000000..71a04ca --- /dev/null +++ b/app/modules/Base/UnsecuredPresenter.php @@ -0,0 +1,8 @@ + + + +Server Error + + + +
+
+

Server Error

+ +

We're sorry! The server encountered an internal error and + was unable to complete your request. Please try again later.

+ +

error 500

+
+
+ + diff --git a/app/modules/Base/templates/@layout.latte b/app/modules/Base/templates/@layout.latte new file mode 100755 index 0000000..1af88ec --- /dev/null +++ b/app/modules/Base/templates/@layout.latte @@ -0,0 +1,65 @@ +{** + * @param string $basePath web base path + * @param array $flashes flash messages + *} + + + + + + {ifset title}{include title|striptags} | {/ifset}Nette Sandbox + + + + + + + {block head}{/block} + + + + +
+
+

My Dictionary

+

multilanguage dictionary with pronunciations

+
+ + Jaro's Solutions +
+ +
+

{$title}

+ +
{$flash->message}
+ + {include content} +
+ +
+

Slovníky

+
    + {foreach $translations as $tr} +
  • {$tr["lang"]}
  • + {/foreach} +
+
+ +
+

© 2016 Jaro's Solutions - Sitemap

+
+ + {block scripts} + + + + {/block} + + diff --git a/app/Presenters/BasePresenter.php b/app/modules/Front/BaseFrontPresenter.php similarity index 65% rename from app/Presenters/BasePresenter.php rename to app/modules/Front/BaseFrontPresenter.php index 068c13c..c21d59d 100755 --- a/app/Presenters/BasePresenter.php +++ b/app/modules/Front/BaseFrontPresenter.php @@ -1,8 +1,6 @@ -Access Denied + +

You do not have permission to view this page. Please try contact the web + site administrator if you believe you should be able to view this page.

+ +

error 403

diff --git a/app/modules/Front/Error4xx/templates/404.latte b/app/modules/Front/Error4xx/templates/404.latte new file mode 100755 index 0000000..b905f00 --- /dev/null +++ b/app/modules/Front/Error4xx/templates/404.latte @@ -0,0 +1,8 @@ +{block #content} +

Page Not Found

+ +

The page you requested could not be found. It is possible that the address is + incorrect, or that the page no longer exists. Please use a search engine to find + what you are looking for.

+ +

error 404

diff --git a/app/modules/Front/Error4xx/templates/405.latte b/app/modules/Front/Error4xx/templates/405.latte new file mode 100755 index 0000000..a3abb85 --- /dev/null +++ b/app/modules/Front/Error4xx/templates/405.latte @@ -0,0 +1,6 @@ +{block #content} +

Method Not Allowed

+ +

The requested method is not allowed for the URL.

+ +

error 405

diff --git a/app/modules/Front/Error4xx/templates/410.latte b/app/modules/Front/Error4xx/templates/410.latte new file mode 100755 index 0000000..c82c2e1 --- /dev/null +++ b/app/modules/Front/Error4xx/templates/410.latte @@ -0,0 +1,6 @@ +{block #content} +

Page Not Found

+ +

The page you requested has been taken off the site. We apologize for the inconvenience.

+ +

error 410

diff --git a/app/modules/Front/Error4xx/templates/4xx.latte b/app/modules/Front/Error4xx/templates/4xx.latte new file mode 100755 index 0000000..0660a8d --- /dev/null +++ b/app/modules/Front/Error4xx/templates/4xx.latte @@ -0,0 +1,4 @@ +{block #content} +

Oops...

+ +

Your browser sent a request that this server could not understand or process.

diff --git a/app/modules/Front/Home/HomePresenter.php b/app/modules/Front/Home/HomePresenter.php new file mode 100755 index 0000000..0d4e83e --- /dev/null +++ b/app/modules/Front/Home/HomePresenter.php @@ -0,0 +1,10 @@ +mailBuilderFactory = $mailBuilderFactory; + } + + public function actionDefault(): void + { + $mail = $this->mailBuilderFactory->create(); + $mail->setSubject('Example'); + $mail->addTo('foo@example.com'); + + $mail->setTemplateFile(__DIR__ . '/templates/Emails/email.latte'); + $mail->setParameters([ + 'title' => 'Title', + 'content' => 'Lorem ipsum dolor sit amet', + ]); + + $mail->send(); + } + +} diff --git a/app/modules/Mailing/Home/templates/@layout.latte b/app/modules/Mailing/Home/templates/@layout.latte new file mode 100755 index 0000000..ebae0fe --- /dev/null +++ b/app/modules/Mailing/Home/templates/@layout.latte @@ -0,0 +1,19 @@ + + + + + + + {ifset title}{include title|stripHtml} | {/ifset}Nette Web + + + +
{$flash->message}
+ + {include content} + + {block scripts} + + {/block} + + diff --git a/app/modules/Mailing/Home/templates/Emails/email.latte b/app/modules/Mailing/Home/templates/Emails/email.latte new file mode 100755 index 0000000..2af03e8 --- /dev/null +++ b/app/modules/Mailing/Home/templates/Emails/email.latte @@ -0,0 +1,9 @@ +{layout $_config->layout} + +{block #header} + {$title} +{/block} + +{block #content} + {$content} +{/block} diff --git a/app/modules/Mailing/Home/templates/Home/default.latte b/app/modules/Mailing/Home/templates/Home/default.latte new file mode 100755 index 0000000..2edaa1c --- /dev/null +++ b/app/modules/Mailing/Home/templates/Home/default.latte @@ -0,0 +1,38 @@ +{* This is the welcome page, you can delete it *} + +{block content} + + +
+

You have successfully created your Nette Web project.

+ +

+ If you are exploring Nette for the first time, you should read the + Quick Start, documentation, + tutorials and forum.

+ +

We hope you enjoy Nette!

+
+ + diff --git a/app/modules/Pdf/Home/HomePresenter.php b/app/modules/Pdf/Home/HomePresenter.php new file mode 100755 index 0000000..cb9a3ce --- /dev/null +++ b/app/modules/Pdf/Home/HomePresenter.php @@ -0,0 +1,46 @@ +createTemplate(); + $template->setFile(__DIR__ . '/../../../resources/pdf/example.latte'); + $template->title = 'Contributte PDF example'; + + $this->pdfResponse->setTemplate($template->renderToString()); + $this->pdfResponse->documentTitle = 'Contributte PDF example'; // creates filename 2012-06-30-my-super-title.pdf + $this->pdfResponse->pageFormat = 'A4-L'; // wide format + $this->pdfResponse->getMPDF()->SetFooter('|Contributte PDF|'); // footer + + return $this->pdfResponse; + } + + public function actionViewPdf(): void + { + $pdf = $this->createPdf(); + $pdf->setSaveMode(PdfResponse::INLINE); + + $this->sendResponse($pdf); + } + + public function actionDownloadPdf(): void + { + $pdf = $this->createPdf(); + $pdf->setSaveMode(PdfResponse::DOWNLOAD); + + $this->sendResponse($pdf); + } + +} diff --git a/app/modules/Pdf/Home/templates/default.latte b/app/modules/Pdf/Home/templates/default.latte new file mode 100755 index 0000000..b9a78de --- /dev/null +++ b/app/modules/Pdf/Home/templates/default.latte @@ -0,0 +1,34 @@ +{block #content} + + +
+

Welcome in example of using contributte/pdf.

+ + View generated PDF +

+ Download generated PDF +

+
+ + diff --git a/app/modules/Pdf/templates/@layout.latte b/app/modules/Pdf/templates/@layout.latte new file mode 100755 index 0000000..716c66c --- /dev/null +++ b/app/modules/Pdf/templates/@layout.latte @@ -0,0 +1,19 @@ + + + + + + + {ifset title}{include title|stripHtml} | {/ifset}Nette Web + + + +
{$flash->message}
+ +{include content} + + {block scripts} + +{/block} + + diff --git a/app/ui/Control/BaseControl.php b/app/ui/Control/BaseControl.php new file mode 100755 index 0000000..dae95c0 --- /dev/null +++ b/app/ui/Control/BaseControl.php @@ -0,0 +1,16 @@ +isAjax()) { + $this->redrawControl('flashes'); + } + + return parent::flashMessage($message, $type); + } + + public function flashInfo(string $message): stdClass + { + return $this->flashMessage($message, 'info'); + } + + public function flashSuccess(string $message): stdClass + { + return $this->flashMessage($message, 'success'); + } + + public function flashWarning(string $message): stdClass + { + return $this->flashMessage($message, 'warning'); + } + + public function flashError(string $message): stdClass + { + return $this->flashMessage($message, 'danger'); + } + +} diff --git a/app/ui/Control/TModuleUtils.php b/app/ui/Control/TModuleUtils.php new file mode 100755 index 0000000..1b847fe --- /dev/null +++ b/app/ui/Control/TModuleUtils.php @@ -0,0 +1,63 @@ +getName(); + + // Validate presenter has a proper name + if ($name === null) { + throw new InvalidStateException('Presenter doesn\'t have a name'); + } + + $parts = explode(':', $name); + + return current($parts); + } + + /** + * Is current module active? + * + * @param string $module Module name + */ + public function isModuleCurrent(string $module): bool + { + return strpos($this->getAction(true), $module) !== false; + } + + /** + * Gets template dir + */ + public function getTemplateDir(): string + { + $fileName = $this->getReflection()->getFileName(); + + // Validate if class is not in PHP core + if ($fileName === false) { + throw new InvalidStateException('Class is defined in the PHP core or in a PHP extension'); + } + + $realpath = realpath(dirname($fileName) . '/../templates'); + + // Validate if file exists + if ($realpath === false) { + throw new InvalidStateException('File does not exist'); + } + + return $realpath; + } + +} diff --git a/app/ui/Control/TTranslate.php b/app/ui/Control/TTranslate.php new file mode 100755 index 0000000..efb51ea --- /dev/null +++ b/app/ui/Control/TTranslate.php @@ -0,0 +1,19 @@ +getContext()->getByType(ITranslator::class)->translate($message); + } + +} diff --git a/app/ui/Form/BaseForm.php b/app/ui/Form/BaseForm.php new file mode 100755 index 0000000..9c02a52 --- /dev/null +++ b/app/ui/Form/BaseForm.php @@ -0,0 +1,31 @@ +addCondition(self::FILLED) + ->addRule(self::MAX_LENGTH, null, 255) + ->addRule(self::FLOAT); + + return $input; + } + + public function addNumeric(string $name, ?string $label = null): TextInput + { + $input = self::addText($name, $label); + $input->addCondition(self::FILLED) + ->addRule(self::MAX_LENGTH, null, 255) + ->addRule(self::NUMERIC); + + return $input; + } + +} diff --git a/app/ui/Form/FormFactory.php b/app/ui/Form/FormFactory.php new file mode 100755 index 0000000..0f1c625 --- /dev/null +++ b/app/ui/Form/FormFactory.php @@ -0,0 +1,23 @@ +create(); + } + + public function forBackend(): BaseForm + { + return $this->create(); + } + +} diff --git a/app/ui/Form/SearchFormFactory.php b/app/ui/Form/SearchFormFactory.php new file mode 100755 index 0000000..65661db --- /dev/null +++ b/app/ui/Form/SearchFormFactory.php @@ -0,0 +1,53 @@ +em = $em; + } + + public function create($select,SearchFormData $data = null): Form + { + if ($data == null) $data = new SearchFormData(); + + $form = new Form; + $form->addText('string', 'Výraz') + ->setRequired('Zadajte výray'); + $form->addSelect('translation', 'Preklad', $select) + ->setDefaultValue(1) + ->setRequired('Vyberte slovnik'); + $form->addText('clen', 'Clen', 5); + $form->addSubmit('search', 'Vyhaľadaj'); + + return $form; + } + + public function searchFormSubmmited(Form $form, SearchFormData $data) + { + + } +} \ No newline at end of file diff --git a/composer.json b/composer.json index cced47e..bd912e1 100755 --- a/composer.json +++ b/composer.json @@ -1,40 +1,70 @@ { - "name": "nette/web-project", - "description": "Nette: Standard Web Project", - "keywords": ["nette"], - "type": "project", - "license": ["MIT", "BSD-3-Clause", "GPL-2.0", "GPL-3.0"], - "require": { - "php": ">= 8.0", - "nette/application": "^3.1", - "nette/bootstrap": "^3.1", - "nette/caching": "^3.1", - "nette/database": "^3.1", - "nette/di": "^3.0", - "nette/finder": "^2.5", - "nette/forms": "^3.1", - "nette/http": "^3.1", - "nette/mail": "^3.1", - "nette/robot-loader": "^3.3", - "nette/security": "^3.1", - "nette/utils": "^3.2", - "latte/latte": "^2.9", - "tracy/tracy": "^2.8", - "tomaj/nette-api": "^2.6" - }, - "require-dev": { - "nette/tester": "^2.3", - "symfony/thanks": "^1" - }, - "autoload": { - "psr-4": { - "App\\": "app" - } - }, - "minimum-stability": "stable", - "config": { - "allow-plugins": { - "symfony/thanks": true - } - } + "name": "nette/web-project", + "description": "Nette: Standard Web Project", + "keywords": [ + "nette" + ], + "type": "project", + "license": [ + "MIT", + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" + ], + "require": { + "php": ">= 8.0", + "nette/application": "^3.1", + "nette/bootstrap": "^3.1", + "nette/caching": "^3.1", + "nette/database": "^3.1", + "nette/di": "^3.0", + "nette/finder": "^2.5", + "nette/forms": "^3.1", + "nette/http": "^3.1", + "nette/mail": "^3.1", + "nette/robot-loader": "^3.3", + "nette/security": "^3.1", + "nette/utils": "^3.2", + "latte/latte": "^2.9", + "tracy/tracy": "^2.8", + "tomaj/nette-api": "^2.6", + "contributte/application": "^0.5.0", + "contributte/console": "^0.9.0", + "contributte/console-extra": "^0.7.0", + "contributte/di": "^0.5.0", + "contributte/event-dispatcher": "^0.8.0", + "contributte/event-dispatcher-extra": "^0.8.0", + "contributte/monolog": "^0.5.0", + "contributte/mail": "^0.6.0", + "contributte/mailing": "^0.5.0", + "contributte/pdf": "^6.1", + "nettrine/annotations": "^0.7.0", + "nettrine/orm": "^0.8.0", + "nettrine/dbal": "^0.7.0", + "nettrine/cache": "^0.3.0", + "nettrine/migrations": "^0.7.0", + "nettrine/fixtures": "^0.6.0" + }, + "require-dev": { + "nette/tester": "^2.3", + "symfony/thanks": "^1" + }, + "autoload": { + "psr-4": { + "App\\": "app", + "App\\Model\\": "app/model", + "App\\Domain\\": "app/domain", + "App\\UI\\": "app/ui", + "Database\\": "db", + "App\\Modules\\": "app/modules", + "Dict\\": "app/extensions", + "App\\MyApi\\v1\\Handlers\\": "app/domain/Api/MyApi/v1/Handlers" + } + }, + "minimum-stability": "stable", + "config": { + "allow-plugins": { + "symfony/thanks": true + } + } } diff --git a/composer.lock b/composer.lock index d907f63..13301d3 100755 --- a/composer.lock +++ b/composer.lock @@ -1,1800 +1,5563 @@ { - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "854c729bf7a229c060f2e5b62311fde5", - "packages": [ - { - "name": "justinrainbow/json-schema", - "version": "5.2.11", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", - "json-schema/json-schema-test-suite": "1.2.0", - "phpunit/phpunit": "^4.8.35" - }, - "bin": [ - "bin/validate-json" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "JsonSchema\\": "src/JsonSchema/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" - } - ], - "description": "A library to validate a json schema.", - "homepage": "https://github.com/justinrainbow/json-schema", - "keywords": [ - "json", - "schema" - ], - "support": { - "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" - }, - "time": "2021-07-22T09:24:00+00:00" - }, - { - "name": "latte/latte", - "version": "v2.10.8", - "source": { - "type": "git", - "url": "https://github.com/nette/latte.git", - "reference": "596b28bf098ebb852732d60b00538139a009c4db" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/latte/zipball/596b28bf098ebb852732d60b00538139a009c4db", - "reference": "596b28bf098ebb852732d60b00538139a009c4db", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.1 <8.2" - }, - "conflict": { - "nette/application": "<2.4.1" - }, - "require-dev": { - "nette/php-generator": "^3.3.4", - "nette/tester": "~2.0", - "nette/utils": "^3.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-fileinfo": "to use filter |datastream", - "ext-iconv": "to use filters |reverse, |substring", - "ext-mbstring": "to use filters like lower, upper, capitalize, ...", - "nette/php-generator": "to use tag {templatePrint}", - "nette/utils": "to use filter |webalize" - }, - "bin": [ - "bin/latte-lint" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.10-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "☕ Latte: the intuitive and fast template engine for those who want the most secure PHP sites. Introduces context-sensitive escaping.", - "homepage": "https://latte.nette.org", - "keywords": [ - "context-sensitive", - "engine", - "escaping", - "html", - "nette", - "security", - "template", - "twig" - ], - "support": { - "issues": "https://github.com/nette/latte/issues", - "source": "https://github.com/nette/latte/tree/v2.10.8" - }, - "time": "2022-01-04T14:13:28+00:00" - }, - { - "name": "league/fractal", - "version": "0.17.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/fractal.git", - "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/fractal/zipball/a0b350824f22fc2fdde2500ce9d6851a3f275b0e", - "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e", - "shasum": "" - }, - "require": { - "php": ">=5.4" - }, - "require-dev": { - "doctrine/orm": "^2.5", - "illuminate/contracts": "~5.0", - "mockery/mockery": "~0.9", - "pagerfanta/pagerfanta": "~1.0.0", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~1.5", - "zendframework/zend-paginator": "~2.3" - }, - "suggest": { - "illuminate/pagination": "The Illuminate Pagination component.", - "pagerfanta/pagerfanta": "Pagerfanta Paginator", - "zendframework/zend-paginator": "Zend Framework Paginator" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "0.13-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Fractal\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Phil Sturgeon", - "email": "me@philsturgeon.uk", - "homepage": "http://philsturgeon.uk/", - "role": "Developer" - } - ], - "description": "Handle the output of complex data structures ready for API output.", - "homepage": "http://fractal.thephpleague.com/", - "keywords": [ - "api", - "json", - "league", - "rest" - ], - "support": { - "issues": "https://github.com/thephpleague/fractal/issues", - "source": "https://github.com/thephpleague/fractal/tree/master" - }, - "time": "2017-06-12T11:04:56+00:00" - }, - { - "name": "nette/application", - "version": "v3.1.5", - "source": { - "type": "git", - "url": "https://github.com/nette/application.git", - "reference": "fa5da6a90ff71724353568894a4839aec627eae3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/application/zipball/fa5da6a90ff71724353568894a4839aec627eae3", - "reference": "fa5da6a90ff71724353568894a4839aec627eae3", - "shasum": "" - }, - "require": { - "nette/component-model": "^3.0", - "nette/http": "^3.0.2", - "nette/routing": "^3.0.2", - "nette/utils": "^3.2.1", - "php": ">=7.2" - }, - "conflict": { - "latte/latte": "<2.7.1 || >=3.0", - "nette/caching": "<3.1", - "nette/di": "<3.0.7", - "nette/forms": "<3.0", - "nette/schema": "<1.2", - "tracy/tracy": "<2.5" - }, - "require-dev": { - "latte/latte": "^2.10.2", - "mockery/mockery": "^1.0", - "nette/di": "^v3.0", - "nette/forms": "^3.0", - "nette/robot-loader": "^3.2", - "nette/security": "^3.0", - "nette/tester": "^2.3.1", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.6" - }, - "suggest": { - "latte/latte": "Allows using Latte in templates", - "nette/forms": "Allows to use Nette\\Application\\UI\\Form" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🏆 Nette Application: a full-stack component-based MVC kernel for PHP that helps you write powerful and modern web applications. Write less, have cleaner code and your work will bring you joy.", - "homepage": "https://nette.org", - "keywords": [ - "Forms", - "component-based", - "control", - "framework", - "mvc", - "mvp", - "nette", - "presenter", - "routing", - "seo" - ], - "support": { - "issues": "https://github.com/nette/application/issues", - "source": "https://github.com/nette/application/tree/v3.1.5" - }, - "time": "2021-12-20T12:24:49+00:00" - }, - { - "name": "nette/bootstrap", - "version": "v3.1.2", - "source": { - "type": "git", - "url": "https://github.com/nette/bootstrap.git", - "reference": "3ab4912a08af0c16d541c3709935c3478b5ee090" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/3ab4912a08af0c16d541c3709935c3478b5ee090", - "reference": "3ab4912a08af0c16d541c3709935c3478b5ee090", - "shasum": "" - }, - "require": { - "nette/di": "^3.0.5", - "nette/utils": "^3.2.1", - "php": ">=7.2 <8.2" - }, - "conflict": { - "tracy/tracy": "<2.6" - }, - "require-dev": { - "latte/latte": "^2.8", - "nette/application": "^3.1", - "nette/caching": "^3.0", - "nette/database": "^3.0", - "nette/forms": "^3.0", - "nette/http": "^3.0", - "nette/mail": "^3.0", - "nette/robot-loader": "^3.0", - "nette/safe-stream": "^2.2", - "nette/security": "^3.0", - "nette/tester": "^2.0", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.6" - }, - "suggest": { - "nette/robot-loader": "to use Configurator::createRobotLoader()", - "tracy/tracy": "to use Configurator::enableTracy()" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", - "homepage": "https://nette.org", - "keywords": [ - "bootstrapping", - "configurator", - "nette" - ], - "support": { - "issues": "https://github.com/nette/bootstrap/issues", - "source": "https://github.com/nette/bootstrap/tree/v3.1.2" - }, - "time": "2021-11-24T16:51:46+00:00" - }, - { - "name": "nette/caching", - "version": "v3.1.2", - "source": { - "type": "git", - "url": "https://github.com/nette/caching.git", - "reference": "27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/caching/zipball/27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9", - "reference": "27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9", - "shasum": "" - }, - "require": { - "nette/finder": "^2.4 || ^3.0", - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.2 <8.2" - }, - "require-dev": { - "latte/latte": "^2.10", - "nette/di": "^v3.0", - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.4" - }, - "suggest": { - "ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "⏱ Nette Caching: library with easy-to-use API and many cache backends.", - "homepage": "https://nette.org", - "keywords": [ - "cache", - "journal", - "memcached", - "nette", - "sqlite" - ], - "support": { - "issues": "https://github.com/nette/caching/issues", - "source": "https://github.com/nette/caching/tree/v3.1.2" - }, - "time": "2021-08-24T23:45:03+00:00" - }, - { - "name": "nette/component-model", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/nette/component-model.git", - "reference": "20a39df12009029c7e425bc5e0439ee4ab5304af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/component-model/zipball/20a39df12009029c7e425bc5e0439ee4ab5304af", - "reference": "20a39df12009029c7e425bc5e0439ee4ab5304af", - "shasum": "" - }, - "require": { - "nette/utils": "^2.5 || ^3.0", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "⚛ Nette Component Model", - "homepage": "https://nette.org", - "keywords": [ - "components", - "nette" - ], - "support": { - "issues": "https://github.com/nette/component-model/issues", - "source": "https://github.com/nette/component-model/tree/v3.0.2" - }, - "time": "2021-08-25T14:52:12+00:00" - }, - { - "name": "nette/database", - "version": "v3.1.4", - "source": { - "type": "git", - "url": "https://github.com/nette/database.git", - "reference": "c4df89d2a6aa9bc72f6891eee4fba36ee729e39e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/database/zipball/c4df89d2a6aa9bc72f6891eee4fba36ee729e39e", - "reference": "c4df89d2a6aa9bc72f6891eee4fba36ee729e39e", - "shasum": "" - }, - "require": { - "ext-pdo": "*", - "nette/caching": "^3.0", - "nette/utils": "^3.2.1", - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0-stable" - }, - "require-dev": { - "mockery/mockery": "^1.3.4", - "nette/di": "^v3.0", - "nette/tester": "^2.4", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "💾 Nette Database: layer with a familiar PDO-like API but much more powerful. Building queries, advanced joins, drivers for MySQL, PostgreSQL, SQLite, MS SQL Server and Oracle.", - "homepage": "https://nette.org", - "keywords": [ - "database", - "mssql", - "mysql", - "nette", - "notorm", - "oracle", - "pdo", - "postgresql", - "queries", - "sqlite" - ], - "support": { - "issues": "https://github.com/nette/database/issues", - "source": "https://github.com/nette/database/tree/v3.1.4" - }, - "time": "2021-11-24T17:58:06+00:00" - }, - { - "name": "nette/di", - "version": "v3.0.12", - "source": { - "type": "git", - "url": "https://github.com/nette/di.git", - "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/11c236b9f7bbfc5a95e7b24742ad8847936feeb5", - "reference": "11c236b9f7bbfc5a95e7b24742ad8847936feeb5", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "nette/neon": "^3.3", - "nette/php-generator": "^3.5.4", - "nette/robot-loader": "^3.2", - "nette/schema": "^1.1", - "nette/utils": "^3.1.6", - "php": ">=7.1 <8.2" - }, - "conflict": { - "nette/bootstrap": "<3.0" - }, - "require-dev": { - "nette/tester": "^2.2", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP features.", - "homepage": "https://nette.org", - "keywords": [ - "compiled", - "di", - "dic", - "factory", - "ioc", - "nette", - "static" - ], - "support": { - "issues": "https://github.com/nette/di/issues", - "source": "https://github.com/nette/di/tree/v3.0.12" - }, - "time": "2021-12-15T21:05:11+00:00" - }, - { - "name": "nette/finder", - "version": "v2.5.3", - "source": { - "type": "git", - "url": "https://github.com/nette/finder.git", - "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", - "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", - "shasum": "" - }, - "require": { - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🔍 Nette Finder: find files and directories with an intuitive API.", - "homepage": "https://nette.org", - "keywords": [ - "filesystem", - "glob", - "iterator", - "nette" - ], - "support": { - "issues": "https://github.com/nette/finder/issues", - "source": "https://github.com/nette/finder/tree/v2.5.3" - }, - "time": "2021-12-12T17:43:24+00:00" - }, - { - "name": "nette/forms", - "version": "v3.1.6", - "source": { - "type": "git", - "url": "https://github.com/nette/forms.git", - "reference": "4ed52434b61d7e532cb3bc77b048717703b91b0b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/forms/zipball/4ed52434b61d7e532cb3bc77b048717703b91b0b", - "reference": "4ed52434b61d7e532cb3bc77b048717703b91b0b", - "shasum": "" - }, - "require": { - "nette/component-model": "^3.0", - "nette/http": "^3.1", - "nette/utils": "^3.2.1", - "php": ">=7.2 <8.2" - }, - "conflict": { - "latte/latte": ">=3.0", - "nette/di": "<3.0-stable" - }, - "require-dev": { - "latte/latte": "^2.10.2", - "nette/application": "^3.0", - "nette/di": "^3.0", - "nette/tester": "^2.0", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "📝 Nette Forms: generating, validating and processing secure forms in PHP. Handy API, fully customizable, server & client side validation and mature design.", - "homepage": "https://nette.org", - "keywords": [ - "Forms", - "bootstrap", - "csrf", - "javascript", - "nette", - "validation" - ], - "support": { - "issues": "https://github.com/nette/forms/issues", - "source": "https://github.com/nette/forms/tree/v3.1.6" - }, - "time": "2021-11-09T11:56:09+00:00" - }, - { - "name": "nette/http", - "version": "v3.1.5", - "source": { - "type": "git", - "url": "https://github.com/nette/http.git", - "reference": "8146c2f2a262691a7139f9c56007961dcc5c1f42" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/http/zipball/8146c2f2a262691a7139f9c56007961dcc5c1f42", - "reference": "8146c2f2a262691a7139f9c56007961dcc5c1f42", - "shasum": "" - }, - "require": { - "nette/utils": "^3.1", - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0.3", - "nette/schema": "<1.2" - }, - "require-dev": { - "nette/di": "^3.0", - "nette/security": "^3.0", - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.4" - }, - "suggest": { - "ext-fileinfo": "to detect type of uploaded files" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🌐 Nette Http: abstraction for HTTP request, response and session. Provides careful data sanitization and utility for URL and cookies manipulation.", - "homepage": "https://nette.org", - "keywords": [ - "cookies", - "http", - "nette", - "proxy", - "request", - "response", - "security", - "session", - "url" - ], - "support": { - "issues": "https://github.com/nette/http/issues", - "source": "https://github.com/nette/http/tree/v3.1.5" - }, - "time": "2021-11-29T18:56:42+00:00" - }, - { - "name": "nette/mail", - "version": "v3.1.8", - "source": { - "type": "git", - "url": "https://github.com/nette/mail.git", - "reference": "69b43ae9a5c63ff68804531ef0113c372c676ce6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/mail/zipball/69b43ae9a5c63ff68804531ef0113c372c676ce6", - "reference": "69b43ae9a5c63ff68804531ef0113c372c676ce6", - "shasum": "" - }, - "require": { - "ext-iconv": "*", - "nette/utils": "^3.1", - "php": ">=7.1 <8.2" - }, - "conflict": { - "nette/di": "<3.0-stable" - }, - "require-dev": { - "nette/di": "^3.0.0", - "nette/tester": "^2.0", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.4" - }, - "suggest": { - "ext-fileinfo": "to detect type of attached files", - "ext-openssl": "to use Nette\\Mail\\DkimSigner" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "📧 Nette Mail: handy email creation and transfer library for PHP with both text and MIME-compliant support.", - "homepage": "https://nette.org", - "keywords": [ - "mail", - "mailer", - "mime", - "nette", - "smtp" - ], - "support": { - "issues": "https://github.com/nette/mail/issues", - "source": "https://github.com/nette/mail/tree/v3.1.8" - }, - "time": "2021-08-25T00:07:03+00:00" - }, - { - "name": "nette/neon", - "version": "v3.3.2", - "source": { - "type": "git", - "url": "https://github.com/nette/neon.git", - "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/54b287d8c2cdbe577b02e28ca1713e275b05ece2", - "reference": "54b287d8c2cdbe577b02e28ca1713e275b05ece2", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.7" - }, - "bin": [ - "bin/neon-lint" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🍸 Nette NEON: encodes and decodes NEON file format.", - "homepage": "https://ne-on.org", - "keywords": [ - "export", - "import", - "neon", - "nette", - "yaml" - ], - "support": { - "issues": "https://github.com/nette/neon/issues", - "source": "https://github.com/nette/neon/tree/v3.3.2" - }, - "time": "2021-11-25T15:57:41+00:00" - }, - { - "name": "nette/php-generator", - "version": "v3.6.5", - "source": { - "type": "git", - "url": "https://github.com/nette/php-generator.git", - "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/9370403f9d9c25b51c4596ded1fbfe70347f7c82", - "reference": "9370403f9d9c25b51c4596ded1fbfe70347f7c82", - "shasum": "" - }, - "require": { - "nette/utils": "^3.1.2", - "php": ">=7.2 <8.2" - }, - "require-dev": { - "nette/tester": "^2.4", - "nikic/php-parser": "^4.13", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.8" - }, - "suggest": { - "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", - "homepage": "https://nette.org", - "keywords": [ - "code", - "nette", - "php", - "scaffolding" - ], - "support": { - "issues": "https://github.com/nette/php-generator/issues", - "source": "https://github.com/nette/php-generator/tree/v3.6.5" - }, - "time": "2021-11-24T16:23:44+00:00" - }, - { - "name": "nette/robot-loader", - "version": "v3.4.1", - "source": { - "type": "git", - "url": "https://github.com/nette/robot-loader.git", - "reference": "e2adc334cb958164c050f485d99c44c430f51fe2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/e2adc334cb958164c050f485d99c44c430f51fe2", - "reference": "e2adc334cb958164c050f485d99c44c430f51fe2", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "nette/finder": "^2.5 || ^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", - "homepage": "https://nette.org", - "keywords": [ - "autoload", - "class", - "interface", - "nette", - "trait" - ], - "support": { - "issues": "https://github.com/nette/robot-loader/issues", - "source": "https://github.com/nette/robot-loader/tree/v3.4.1" - }, - "time": "2021-08-25T15:53:54+00:00" - }, - { - "name": "nette/routing", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/nette/routing.git", - "reference": "5532e7e3612e13def357f089c1a5c25793a16843" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/routing/zipball/5532e7e3612e13def357f089c1a5c25793a16843", - "reference": "5532e7e3612e13def357f089c1a5c25793a16843", - "shasum": "" - }, - "require": { - "nette/http": "^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "Nette Routing: two-ways URL conversion", - "homepage": "https://nette.org", - "keywords": [ - "nette" - ], - "support": { - "issues": "https://github.com/nette/routing/issues", - "source": "https://github.com/nette/routing/tree/v3.0.2" - }, - "time": "2021-02-06T04:08:30+00:00" - }, - { - "name": "nette/schema", - "version": "v1.2.2", - "source": { - "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", - "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", - "shasum": "" - }, - "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.2" - }, - "require-dev": { - "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], - "support": { - "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.2" - }, - "time": "2021-10-15T11:40:02+00:00" - }, - { - "name": "nette/security", - "version": "v3.1.5", - "source": { - "type": "git", - "url": "https://github.com/nette/security.git", - "reference": "c120893f561b09494486c66594720b2abcb099b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/security/zipball/c120893f561b09494486c66594720b2abcb099b2", - "reference": "c120893f561b09494486c66594720b2abcb099b2", - "shasum": "" - }, - "require": { - "nette/utils": "^3.2.1", - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0-stable", - "nette/http": "<3.1.3" - }, - "require-dev": { - "nette/di": "^3.0.1", - "nette/http": "^3.0.0", - "nette/tester": "^2.0", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🔑 Nette Security: provides authentication, authorization and a role-based access control management via ACL (Access Control List)", - "homepage": "https://nette.org", - "keywords": [ - "Authentication", - "acl", - "authorization", - "nette" - ], - "support": { - "issues": "https://github.com/nette/security/issues", - "source": "https://github.com/nette/security/tree/v3.1.5" - }, - "time": "2021-09-20T15:20:25+00:00" - }, - { - "name": "nette/utils", - "version": "v3.2.7", - "source": { - "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", - "shasum": "" - }, - "require": { - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0.6" - }, - "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], - "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.7" - }, - "time": "2022-01-24T11:29:14+00:00" - }, - { - "name": "tomaj/nette-api", - "version": "2.6.0", - "source": { - "type": "git", - "url": "https://github.com/tomaj/nette-api.git", - "reference": "76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tomaj/nette-api/zipball/76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e", - "reference": "76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "ext-filter": "*", - "ext-json": "*", - "ext-session": "*", - "justinrainbow/json-schema": "^5.2", - "league/fractal": "^0.17.0", - "nette/application": "^3.0", - "nette/http": "^3.0", - "php": ">= 7.1.0", - "tomaj/nette-bootstrap-form": "^2.0", - "tracy/tracy": "^2.6" - }, - "replace": { - "phpspec/prophecy": "*" - }, - "require-dev": { - "latte/latte": "^2.4", - "nette/di": "^3.0", - "phpunit/phpunit": ">7.0", - "squizlabs/php_codesniffer": "^3.2", - "symfony/yaml": "^4.4|5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Tomaj\\NetteApi\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Tomas Majer", - "email": "tomasmajer@gmail.com", - "homepage": "http://www.tomaj.sk/" - } - ], - "description": "Nette api", - "keywords": [ - "api", - "nette" - ], - "support": { - "issues": "https://github.com/tomaj/nette-api/issues", - "source": "https://github.com/tomaj/nette-api/tree/2.6.0" - }, - "time": "2021-10-08T08:50:27+00:00" - }, - { - "name": "tomaj/nette-bootstrap-form", - "version": "2.0.1", - "source": { - "type": "git", - "url": "https://github.com/tomaj/nette-bootstrap-form.git", - "reference": "c4aeee158ede5c64cf2dab588ee181135b8b2e92" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tomaj/nette-bootstrap-form/zipball/c4aeee158ede5c64cf2dab588ee181135b8b2e92", - "reference": "c4aeee158ede5c64cf2dab588ee181135b8b2e92", - "shasum": "" - }, - "require": { - "nette/forms": "^3.0", - "php": ">= 7.1.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.0-or-later" - ], - "authors": [ - { - "name": "Tomas Majer", - "email": "tomasmajer@gmail.com", - "homepage": "http://www.tomaj.sk/" - } - ], - "description": "Nette bootstrap form renderer", - "keywords": [ - "bootstrap", - "form", - "nette", - "renderer" - ], - "support": { - "issues": "https://github.com/tomaj/nette-bootstrap-form/issues", - "source": "https://github.com/tomaj/nette-bootstrap-form/tree/2.0.1" - }, - "time": "2022-01-11T10:41:18+00:00" - }, - { - "name": "tracy/tracy", - "version": "v2.9.0", - "source": { - "type": "git", - "url": "https://github.com/nette/tracy.git", - "reference": "551a7d936dfbd7075ced9a604b9527d1f7bfa8b4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/tracy/zipball/551a7d936dfbd7075ced9a604b9527d1f7bfa8b4", - "reference": "551a7d936dfbd7075ced9a604b9527d1f7bfa8b4", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-session": "*", - "php": ">=7.2 <8.2" - }, - "conflict": { - "nette/di": "<3.0" - }, - "require-dev": { - "latte/latte": "^2.5", - "nette/di": "^3.0", - "nette/mail": "^3.0", - "nette/tester": "^2.2", - "nette/utils": "^3.0", - "phpstan/phpstan": "^1.0", - "psr/log": "^1.0 || ^2.0 || ^3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.9-dev" - } - }, - "autoload": { - "files": [ - "src/Tracy/functions.php" - ], - "classmap": [ - "src" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.", - "homepage": "https://tracy.nette.org", - "keywords": [ - "Xdebug", - "debug", - "debugger", - "nette", - "profiler" - ], - "support": { - "issues": "https://github.com/nette/tracy/issues", - "source": "https://github.com/nette/tracy/tree/v2.9.0" - }, - "time": "2021-12-20T18:19:46+00:00" + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0880483516aabedaf3ec28611093f1a5", + "packages": [ + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.5", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" } - ], - "packages-dev": [ + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ { - "name": "nette/tester", - "version": "v2.4.1", - "source": { - "type": "git", - "url": "https://github.com/nette/tester.git", - "reference": "b54326b3c1a2c6c76d2662a06b5ad5a10d822e98" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/tester/zipball/b54326b3c1a2c6c76d2662a06b5ad5a10d822e98", - "reference": "b54326b3c1a2c6c76d2662a06b5ad5a10d822e98", - "shasum": "" - }, - "require": { - "php": ">=7.2 <8.2" - }, - "require-dev": { - "ext-simplexml": "*", - "phpstan/phpstan": "^0.12" - }, - "bin": [ - "src/tester" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Miloslav Hůla", - "homepage": "https://github.com/milo" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "Nette Tester: enjoyable unit testing in PHP with code coverage reporter. 🍏🍏🍎🍏", - "homepage": "https://tester.nette.org", - "keywords": [ - "Xdebug", - "assertions", - "clover", - "code coverage", - "nette", - "pcov", - "phpdbg", - "phpunit", - "testing", - "unit" - ], - "support": { - "issues": "https://github.com/nette/tester/issues", - "source": "https://github.com/nette/tester/tree/v2.4.1" - }, - "time": "2021-08-24T14:13:00+00:00" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" }, { - "name": "symfony/thanks", - "version": "v1.2.10", - "source": { - "type": "git", - "url": "https://github.com/symfony/thanks.git", - "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/thanks/zipball/e9c4709560296acbd4fe9e12b8d57a925aa7eae8", - "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=5.5.9" - }, - "type": "composer-plugin", - "extra": { - "branch-alias": { - "dev-main": "1.2-dev" - }, - "class": "Symfony\\Thanks\\Thanks" - }, - "autoload": { - "psr-4": { - "Symfony\\Thanks\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - } - ], - "description": "Encourages sending ⭐ and 💵 to fellow PHP package maintainers (not limited to Symfony components)!", - "support": { - "issues": "https://github.com/symfony/thanks/issues", - "source": "https://github.com/symfony/thanks/tree/v1.2.10" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-14T17:47:37+00:00" + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } - ], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">= 8.0" + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-17T14:14:24+00:00" }, - "platform-dev": [], - "plugin-api-version": "2.1.0" + { + "name": "contributte/application", + "version": "v0.5.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/application.git", + "reference": "2579ab2bc3b7c95ae32a2e664ac9a8cc038777f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/application/zipball/2579ab2bc3b7c95ae32a2e664ac9a8cc038777f9", + "reference": "2579ab2bc3b7c95ae32a2e664ac9a8cc038777f9", + "shasum": "" + }, + "require": { + "nette/application": "^3.0.0", + "php": ">=7.2" + }, + "require-dev": { + "nette/http": "~2.4.8 || ~3.0.0", + "ninjify/nunjuck": "^0.3.0", + "ninjify/qa": "^0.9.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan-deprecation-rules": "^0.11.0", + "phpstan/phpstan-nette": "^0.11.1", + "phpstan/phpstan-shim": "^0.11.2", + "phpstan/phpstan-strict-rules": "^0.11.0", + "psr/http-message": "~1.0.1", + "tracy/tracy": "~2.6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Application\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Extra contrib to nette/application", + "homepage": "https://github.com/contributte/application", + "keywords": ["application", "component", "control", "nette", "presenter"], + "support": { + "issues": "https://github.com/contributte/application/issues", + "source": "https://github.com/contributte/application/tree/v0.5.1" + }, + "funding": [ + { + "url": "https://contributte.org/partners.html", + "type": "custom" + }, + { + "url": "https://github.com/f3l1x", + "type": "github" + } + ], + "time": "2021-03-10T21:48:30+00:00" + }, + { + "name": "contributte/console", + "version": "v0.9.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/console.git", + "reference": "549893573ba3cb81f476785763f48178b5166322" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/console/zipball/549893573ba3cb81f476785763f48178b5166322", + "reference": "549893573ba3cb81f476785763f48178b5166322", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.1", + "php": ">=7.2", + "symfony/console": "^4.2.9|^5.0.0" + }, + "require-dev": { + "nette/http": "~3.0.1", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "symfony/event-dispatcher": "^4.3.0 || ^5.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.10.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Console\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Best Symfony Console for Nette Framework", + "homepage": "https://github.com/contributte/console", + "keywords": ["console", "nette", "symfony"], + "support": { + "issues": "https://github.com/contributte/console/issues", + "source": "https://github.com/contributte/console/tree/v0.9.1" + }, + "funding": [ + { + "url": "https://contributte.org/partners.html", + "type": "custom" + }, + { + "url": "https://github.com/f3l1x", + "type": "github" + } + ], + "time": "2021-03-20T12:35:56+00:00" + }, + { + "name": "contributte/console-extra", + "version": "v0.7.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/console-extra.git", + "reference": "29b59f60de741ae96a295691c342e0fa89062bdd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/console-extra/zipball/29b59f60de741ae96a295691c342e0fa89062bdd", + "reference": "29b59f60de741ae96a295691c342e0fa89062bdd", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "php": ">=7.2", + "symfony/console": "^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "conflict": { + "nette/schema": "<1.0.1" + }, + "require-dev": { + "contributte/console": "~0.7", + "latte/latte": "^2.6.0", + "nette/application": "^3.1.3", + "nette/bootstrap": "^3.1.1", + "nette/caching": "^3.1.1", + "nette/security": "^3.1.1", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.13", + "phpstan/phpstan": "^1.0.0", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-nette": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.0.0" + }, + "suggest": { + "contributte/console": "Symfony\\Console for Nette" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Console\\Extra\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Nette-based console commands for latte, DIC, security, utils and many others", + "homepage": "https://github.com/contributte/console-extra", + "keywords": ["console", "nette", "symfony"], + "support": { + "issues": "https://github.com/contributte/console-extra/issues", + "source": "https://github.com/contributte/console-extra/tree/v0.7.1" + }, + "funding": [ + { + "url": "https://contributte.org/partners.html", + "type": "custom" + }, + { + "url": "https://github.com/f3l1x", + "type": "github" + } + ], + "time": "2022-02-10T11:34:16+00:00" + }, + { + "name": "contributte/di", + "version": "v0.5.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/di.git", + "reference": "534fdb5e85b4ae01f8f848fc4b752deb8458ed7c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/di/zipball/534fdb5e85b4ae01f8f848fc4b752deb8458ed7c", + "reference": "534fdb5e85b4ae01f8f848fc4b752deb8458ed7c", + "shasum": "" + }, + "require": { + "nette/di": "~3.0.2", + "nette/utils": "^3.0.3", + "php": ">=7.2" + }, + "conflict": { + "nette/di": "<3.0.0", + "nette/schema": "<1.1.0" + }, + "require-dev": { + "nette/bootstrap": "~3.0.0", + "nette/robot-loader": "^3.0.4", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12" + }, + "suggest": { + "nette/reflection": "to use AutoloadExtension[CompilerExtension]", + "nette/robot-loader": "to use AutoloadExtension[CompilerExtension]" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.5.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\DI\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Extra contrib to nette/di", + "homepage": "https://github.com/contributte/di", + "keywords": ["dependency", "inject", "nette"], + "support": { + "issues": "https://github.com/contributte/di/issues", + "source": "https://github.com/contributte/di/tree/v0.5.1" + }, + "time": "2020-12-26T17:02:42+00:00" + }, + { + "name": "contributte/event-dispatcher", + "version": "v0.8.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/event-dispatcher.git", + "reference": "d7bf70522438b62221b0adb50c29c05c7923e27c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/event-dispatcher/zipball/d7bf70522438b62221b0adb50c29c05c7923e27c", + "reference": "d7bf70522438b62221b0adb50c29c05c7923e27c", + "shasum": "" + }, + "require": { + "nette/di": "^3.0.0", + "php": ">=7.2", + "symfony/event-dispatcher": "^4.3.1 || ^5.0.0 || ^6.0.0" + }, + "conflict": { + "nette/di": "<3.0.0" + }, + "require-dev": { + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.13", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\EventDispatcher\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Best event dispatcher / event manager / event emitter for Nette Framework", + "homepage": "https://github.com/contributte/event-dispatcher", + "keywords": ["dispatcher", "emitter", "event", "nette", "symfony"], + "support": { + "issues": "https://github.com/contributte/event-dispatcher/issues", + "source": "https://github.com/contributte/event-dispatcher/tree/v0.8.1" + }, + "funding": [ + { + "url": "https://contributte.org/partners.html", + "type": "custom" + }, + { + "url": "https://github.com/f3l1x", + "type": "github" + } + ], + "time": "2022-02-09T13:05:59+00:00" + }, + { + "name": "contributte/event-dispatcher-extra", + "version": "v0.8.2", + "source": { + "type": "git", + "url": "https://github.com/contributte/event-dispatcher-extra.git", + "reference": "2e719464deee6d9be374b0a3ea0d0f43fb90c36e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/event-dispatcher-extra/zipball/2e719464deee6d9be374b0a3ea0d0f43fb90c36e", + "reference": "2e719464deee6d9be374b0a3ea0d0f43fb90c36e", + "shasum": "" + }, + "require": { + "nette/di": "~3.0.0", + "php": ">=7.2", + "symfony/event-dispatcher": "^4.3.1 || ^5.0 || ^6.0" + }, + "conflict": { + "nette/di": "<3.0.0" + }, + "require-dev": { + "contributte/event-dispatcher": "^0.8.0", + "latte/latte": "^2.5.1", + "nette/application": "^3.0.0", + "nette/http": "^3.0.1", + "nette/security": "^3.0.0", + "ninjify/nunjuck": "^0.4.0", + "ninjify/qa": "^0.13.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-nette": "^1.0", + "phpstan/phpstan-strict-rules": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Events\\Extra\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Nette-based Symfony events for application, presenter, form, latte, templates, security and many others.", + "homepage": "https://github.com/contributte/event-dispatcher-extra", + "keywords": [ + "Bridge", + "application", + "dispatcher", + "event", + "form", + "latte", + "nette", + "security", + "template" + ], + "support": { + "issues": "https://github.com/contributte/event-dispatcher-extra/issues", + "source": "https://github.com/contributte/event-dispatcher-extra/tree/v0.8.2" + }, + "funding": [ + { + "url": "https://contributte.org/partners.html", + "type": "custom" + }, + { + "url": "https://github.com/f3l1x", + "type": "github" + } + ], + "time": "2022-02-10T11:18:58+00:00" + }, + { + "name": "contributte/mail", + "version": "v0.6.0", + "source": { + "type": "git", + "url": "https://github.com/contributte/mail.git", + "reference": "4865133bec55d6ed25a3050e63f35ecfa40bc52f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/mail/zipball/4865133bec55d6ed25a3050e63f35ecfa40bc52f", + "reference": "4865133bec55d6ed25a3050e63f35ecfa40bc52f", + "shasum": "" + }, + "require": { + "nette/mail": "^3.1.0", + "nette/utils": "^3.0.0", + "php": ">=7.2" + }, + "require-dev": { + "nette/di": "^3.0.4", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^0.12.2", + "phpstan/phpstan-deprecation-rules": "^0.12.0", + "phpstan/phpstan-nette": "^0.12.0", + "phpstan/phpstan-strict-rules": "^0.12.0", + "tracy/tracy": "^2.6.2" + }, + "suggest": { + "contributte/di": "to use MailerExtension[CompilerExtension]" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Mail\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Extra contrib to nette/mail", + "homepage": "https://github.com/contributte/mail", + "keywords": ["extra", "mail", "nette"], + "support": { + "issues": "https://github.com/contributte/mail/issues", + "source": "https://github.com/contributte/mail/tree/v0.6.0" + }, + "time": "2020-12-17T21:59:21+00:00" + }, + { + "name": "contributte/mailing", + "version": "v0.5.1", + "source": { + "type": "git", + "url": "https://github.com/contributte/mailing.git", + "reference": "55bc6366e038463a5b226dcae5a980fff1554555" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/mailing/zipball/55bc6366e038463a5b226dcae5a980fff1554555", + "reference": "55bc6366e038463a5b226dcae5a980fff1554555", + "shasum": "" + }, + "require": { + "latte/latte": "^2.9.2", + "nette/application": "^3.1.0", + "nette/di": "^3.0.7", + "nette/mail": "^3.1.5", + "php": ">=7.2" + }, + "conflict": { + "nette/di": "<3.0.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12.1", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Mailing\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Sending emails with pleasure and prepared templates.", + "homepage": "https://github.com/contributte/mailing", + "keywords": ["mail", "mailing", "nette"], + "support": { + "issues": "https://github.com/contributte/mailing/issues", + "source": "https://github.com/contributte/mailing/tree/v0.5.1" + }, + "time": "2021-01-10T18:21:50+00:00" + }, + { + "name": "contributte/monolog", + "version": "v0.5.0", + "source": { + "type": "git", + "url": "https://github.com/contributte/monolog.git", + "reference": "a47a3f634c7d9ba21f0923d3479f38a459767182" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/monolog/zipball/a47a3f634c7d9ba21f0923d3479f38a459767182", + "reference": "a47a3f634c7d9ba21f0923d3479f38a459767182", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "monolog/monolog": "^2.0.0", + "nette/utils": "^3.0.0", + "php": ">=7.2" + }, + "conflict": { + "tracy/tracy": "<2.6.2" + }, + "require-dev": { + "ninjify/qa": "^0.10.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^8.1.3", + "tracy/tracy": "~2.6.2 || ~2.7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Contributte\\Monolog\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Monolog integration into Nette Framework", + "homepage": "https://github.com/contributte/monolog", + "keywords": ["logging", "monolog", "nette"], + "support": { + "issues": "https://github.com/contributte/monolog/issues", + "source": "https://github.com/contributte/monolog/tree/v0.5.0" + }, + "time": "2020-12-10T14:31:08+00:00" + }, + { + "name": "contributte/pdf", + "version": "v6.1.0", + "source": { + "type": "git", + "url": "https://github.com/contributte/pdf.git", + "reference": "9c3feafefb970e92ffc3e98defbc3854733fb7eb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/contributte/pdf/zipball/9c3feafefb970e92ffc3e98defbc3854733fb7eb", + "reference": "9c3feafefb970e92ffc3e98defbc3854733fb7eb", + "shasum": "" + }, + "require": { + "mpdf/mpdf": "^8.0", + "nette/application": "~3.0", + "nette/http": "~3.0", + "php": ">=7.1" + }, + "require-dev": { + "latte/latte": "^2.10", + "nette/di": "^3.0.0", + "ninjify/nunjuck": "^0.3.0", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dom-crawler": "^4.4|^5.0" + }, + "suggest": { + "nette/nette": "PHP framework to which this extension belongs to.", + "symfony/dom-crawler": "Allows filtering html tags." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.1-dev" + } + }, + "autoload": { + "files": ["src/compatibility.php"], + "psr-4": { + "Contributte\\PdfResponse\\": "src/", + "Joseki\\Application\\Responses\\": "src-old/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["LGPL-3.0"], + "authors": [ + { + "name": "Miroslav Paulík", + "email": "miras.paulik@seznam.cz" + }, + { + "name": "Jan Kuchař" + }, + { + "name": "Tomáš Votruba", + "email": "tomas.vot@gmail.com" + }, + { + "name": "Petr Parolek", + "homepage": "https://www.webnazakazku.cz/" + }, + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Pdf response extension for Nette Framework", + "support": { + "issues": "https://github.com/contributte/pdf/issues", + "source": "https://github.com/contributte/pdf/tree/v6.1.0" + }, + "funding": [ + { + "url": "https://github.com/f3l1x", + "type": "github" + }, + { + "url": "https://github.com/petrparolek", + "type": "github" + } + ], + "time": "2021-02-28T18:30:39+00:00" + }, + { + "name": "doctrine/annotations", + "version": "1.13.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", + "reference": "5b668aef16090008790395c02c893b1ba13f7e08", + "shasum": "" + }, + "require": { + "doctrine/lexer": "1.*", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^6.0 || ^8.1", + "phpstan/phpstan": "^0.12.20", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", + "symfony/cache": "^4.4 || ^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": ["annotations", "docblock", "parser"], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.13.2" + }, + "time": "2021-08-05T19:00:23+00:00" + }, + { + "name": "doctrine/cache", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^8.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "predis/predis": "~1.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", + "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/1.12.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2021-07-17T14:39:21+00:00" + }, + { + "name": "doctrine/collections", + "version": "1.6.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", + "shasum": "" + }, + "require": { + "php": "^7.1.3 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.2.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": ["array", "collections", "iterators", "php"], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.6.8" + }, + "time": "2021-08-10T18:51:53+00:00" + }, + { + "name": "doctrine/common", + "version": "3.2.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "295082d3750987065912816a9d536c2df735f637" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/295082d3750987065912816a9d536c2df735f637", + "reference": "295082d3750987065912816a9d536c2df735f637", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^2.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^4.0.5", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": ["common", "doctrine", "php"], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.2.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2022-02-02T09:15:57+00:00" + }, + { + "name": "doctrine/data-fixtures", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/data-fixtures.git", + "reference": "51c1890e8c5467c421c7cab4579f059ebf720278" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51c1890e8c5467c421c7cab4579f059ebf720278", + "reference": "51c1890e8c5467c421c7cab4579f059ebf720278", + "shasum": "" + }, + "require": { + "doctrine/common": "^2.13|^3.0", + "doctrine/persistence": "^1.3.3|^2.0", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "doctrine/dbal": "<2.13", + "doctrine/phpcr-odm": "<1.3.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "doctrine/dbal": "^2.13 || ^3.0", + "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", + "doctrine/orm": "^2.7.0", + "ext-sqlite3": "*", + "jangregor/phpstan-prophecy": "^0.8.1", + "phpstan/phpstan": "^0.12.99", + "phpunit/phpunit": "^8.0", + "symfony/cache": "^5.0 || ^6.0", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", + "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", + "doctrine/orm": "For loading ORM fixtures", + "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Data Fixtures for all Doctrine Object Managers", + "homepage": "https://www.doctrine-project.org", + "keywords": ["database"], + "support": { + "issues": "https://github.com/doctrine/data-fixtures/issues", + "source": "https://github.com/doctrine/data-fixtures/tree/1.5.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", + "type": "tidelift" + } + ], + "time": "2022-01-20T17:10:56+00:00" + }, + { + "name": "doctrine/dbal", + "version": "2.13.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/dc9b3c3c8592c935a6e590441f9abc0f9eba335b", + "reference": "dc9b3c3c8592c935a6e590441f9abc0f9eba335b", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" + }, + "require-dev": { + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.22.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": ["bin/doctrine-dbal"], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlanywhere", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/2.13.8" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-03-09T15:25:46+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v0.5.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", + "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0|^7.0|^8.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0", + "psr/log": "^1.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" + }, + "time": "2021-03-21T12:59:47+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "vimeo/psalm": "^4.10" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:16:43+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": ["constructor", "instantiate"], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": ["annotations", "docblock", "lexer", "parser", "php"], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "doctrine/migrations", + "version": "2.3.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "28d92a34348fee5daeb80879e56461b2e862fc05" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/28d92a34348fee5daeb80879e56461b2e862fc05", + "reference": "28d92a34348fee5daeb80879e56461b2e862fc05", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.8", + "doctrine/dbal": "^2.9", + "friendsofphp/proxy-manager-lts": "^1.0", + "php": "^7.1 || ^8.0", + "symfony/console": "^3.4||^4.4.16||^5.0", + "symfony/stopwatch": "^3.4||^4.0||^5.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.2", + "doctrine/orm": "^2.6", + "ext-pdo_sqlite": "*", + "jdorn/sql-formatter": "^1.1", + "mikey179/vfsstream": "^1.6", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "symfony/cache": "^4.4. || ^5.3", + "symfony/process": "^3.4||^4.0||^5.0", + "symfony/yaml": "^3.4||^4.0||^5.0" + }, + "suggest": { + "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." + }, + "bin": ["bin/doctrine-migrations"], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Michael Simonson", + "email": "contact@mikesimonson.com" + } + ], + "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", + "keywords": ["database", "dbal", "migrations", "php"], + "support": { + "issues": "https://github.com/doctrine/migrations/issues", + "source": "https://github.com/doctrine/migrations/tree/2.3.5" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", + "type": "tidelift" + } + ], + "time": "2021-10-19T19:55:20+00:00" + }, + { + "name": "doctrine/orm", + "version": "2.11.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/orm.git", + "reference": "9c351e044478135aec1755e2c0c0493a4b6309db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/orm/zipball/9c351e044478135aec1755e2c0c0493a4b6309db", + "reference": "9c351e044478135aec1755e2c0c0493a4b6309db", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.12.1 || ^2.1.1", + "doctrine/collections": "^1.5", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.13.1 || ^3.2", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.4 || ^2.0", + "doctrine/instantiator": "^1.3", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^2.2", + "ext-ctype": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3", + "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/polyfill-php72": "^1.23", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "doctrine/annotations": "<1.13 || >= 2.0" + }, + "require-dev": { + "doctrine/annotations": "^1.13", + "doctrine/coding-standard": "^9.0", + "phpbench/phpbench": "^0.16.10 || ^1.0", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "vimeo/psalm": "4.22.0" + }, + "suggest": { + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "bin": ["bin/doctrine"], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "https://www.doctrine-project.org/projects/orm.html", + "keywords": ["database", "orm"], + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.11.2" + }, + "time": "2022-03-09T15:23:58+00:00" + }, + { + "name": "doctrine/persistence", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "reference": "f8af155c1e7963f3d2b4415097d55757bbaa53d8", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/collections": "^1.0", + "doctrine/deprecations": "^0.5.3", + "doctrine/event-manager": "^1.0", + "php": "^7.1 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "doctrine/annotations": "<1.0 || >=2.0", + "doctrine/common": "<2.10@dev" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.11", + "doctrine/annotations": "^1.0", + "doctrine/coding-standard": "^6.0 || ^9.0", + "doctrine/common": "^3.0", + "phpstan/phpstan": "1.2.0", + "phpunit/phpunit": "^7.5.20 || ^8.0 || ^9.0", + "symfony/cache": "^4.4 || ^5.0 || ^6.0", + "vimeo/psalm": "4.13.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common", + "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://doctrine-project.org/projects/persistence.html", + "keywords": ["mapper", "object", "odm", "orm", "persistence"], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/2.3.0" + }, + "time": "2022-01-09T19:58:46+00:00" + }, + { + "name": "friendsofphp/proxy-manager-lts", + "version": "v1.0.7", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", + "reference": "c828ced1f932094ab79e4120a106a666565e4d9c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/c828ced1f932094ab79e4120a106a666565e4d9c", + "reference": "c828ced1f932094ab79e4120a106a666565e4d9c", + "shasum": "" + }, + "require": { + "laminas/laminas-code": "~3.4.1|^4.0", + "php": ">=7.1", + "symfony/filesystem": "^4.4.17|^5.0|^6.0" + }, + "conflict": { + "laminas/laminas-stdlib": "<3.2.1", + "zendframework/zend-stdlib": "<3.2.1" + }, + "replace": { + "ocramius/proxy-manager": "^2.1" + }, + "require-dev": { + "ext-phar": "*", + "symfony/phpunit-bridge": "^5.4|^6.0" + }, + "type": "library", + "extra": { + "thanks": { + "name": "ocramius/proxy-manager", + "url": "https://github.com/Ocramius/ProxyManager" + } + }, + "autoload": { + "psr-4": { + "ProxyManager\\": "src/ProxyManager" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + } + ], + "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", + "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "support": { + "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.7" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2022-03-02T09:29:19+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.11", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", + "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": ["bin/validate-json"], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": ["json", "schema"], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + }, + "time": "2021-07-22T09:24:00+00:00" + }, + { + "name": "laminas/laminas-code", + "version": "4.5.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-code.git", + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/6fd96d4d913571a2cd056a27b123fa28cb90ac4e", + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e", + "shasum": "" + }, + "require": { + "php": ">=7.4, <8.2" + }, + "require-dev": { + "doctrine/annotations": "^1.13.2", + "ext-phar": "*", + "laminas/laminas-coding-standard": "^2.3.0", + "laminas/laminas-stdlib": "^3.6.1", + "phpunit/phpunit": "^9.5.10", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.13.1" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "laminas/laminas-stdlib": "Laminas\\Stdlib component" + }, + "type": "library", + "autoload": { + "files": ["polyfill/ReflectionEnumPolyfill.php"], + "psr-4": { + "Laminas\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause"], + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "homepage": "https://laminas.dev", + "keywords": ["code", "laminas", "laminasframework"], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-code/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-code/issues", + "rss": "https://github.com/laminas/laminas-code/releases.atom", + "source": "https://github.com/laminas/laminas-code" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-12-19T18:06:55+00:00" + }, + { + "name": "latte/latte", + "version": "v2.11.0", + "source": { + "type": "git", + "url": "https://github.com/nette/latte.git", + "reference": "a815687bfadaf3af51ae99f92edb4ea310c43426" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/latte/zipball/a815687bfadaf3af51ae99f92edb4ea310c43426", + "reference": "a815687bfadaf3af51ae99f92edb4ea310c43426", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.1 <8.2" + }, + "conflict": { + "nette/application": "<2.4.1" + }, + "require-dev": { + "nette/php-generator": "^3.3.4", + "nette/tester": "~2.0", + "nette/utils": "^3.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-fileinfo": "to use filter |datastream", + "ext-iconv": "to use filters |reverse, |substring", + "ext-mbstring": "to use filters like lower, upper, capitalize, ...", + "nette/php-generator": "to use tag {templatePrint}", + "nette/utils": "to use filter |webalize" + }, + "bin": ["bin/latte-lint"], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "☕ Latte: the intuitive and fast template engine for those who want the most secure PHP sites. Introduces context-sensitive escaping.", + "homepage": "https://latte.nette.org", + "keywords": [ + "context-sensitive", + "engine", + "escaping", + "html", + "nette", + "security", + "template", + "twig" + ], + "support": { + "issues": "https://github.com/nette/latte/issues", + "source": "https://github.com/nette/latte/tree/v2.11.0" + }, + "time": "2022-02-22T18:39:58+00:00" + }, + { + "name": "league/fractal", + "version": "0.17.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/fractal.git", + "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/fractal/zipball/a0b350824f22fc2fdde2500ce9d6851a3f275b0e", + "reference": "a0b350824f22fc2fdde2500ce9d6851a3f275b0e", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "doctrine/orm": "^2.5", + "illuminate/contracts": "~5.0", + "mockery/mockery": "~0.9", + "pagerfanta/pagerfanta": "~1.0.0", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~1.5", + "zendframework/zend-paginator": "~2.3" + }, + "suggest": { + "illuminate/pagination": "The Illuminate Pagination component.", + "pagerfanta/pagerfanta": "Pagerfanta Paginator", + "zendframework/zend-paginator": "Zend Framework Paginator" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.13-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Fractal\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Phil Sturgeon", + "email": "me@philsturgeon.uk", + "homepage": "http://philsturgeon.uk/", + "role": "Developer" + } + ], + "description": "Handle the output of complex data structures ready for API output.", + "homepage": "http://fractal.thephpleague.com/", + "keywords": ["api", "json", "league", "rest"], + "support": { + "issues": "https://github.com/thephpleague/fractal/issues", + "source": "https://github.com/thephpleague/fractal/tree/master" + }, + "time": "2017-06-12T11:04:56+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.3.5", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9", + "reference": "fd4380d6fc37626e2f799f29d91195040137eba9", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.3", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90@dev", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": ["log", "logging", "psr-3"], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.3.5" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2021-10-01T21:08:31+00:00" + }, + { + "name": "mpdf/mpdf", + "version": "v8.0.17", + "source": { + "type": "git", + "url": "https://github.com/mpdf/mpdf.git", + "reference": "5f64118317c8145c0abc606b310aa0a66808398a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mpdf/mpdf/zipball/5f64118317c8145c0abc606b310aa0a66808398a", + "reference": "5f64118317c8145c0abc606b310aa0a66808398a", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "ext-mbstring": "*", + "myclabs/deep-copy": "^1.7", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": "^5.6 || ^7.0 || ~8.0.0 || ~8.1.0", + "psr/log": "^1.0 || ^2.0", + "setasign/fpdi": "^2.1" + }, + "require-dev": { + "mockery/mockery": "^1.3.0", + "mpdf/qrcode": "^1.1.0", + "squizlabs/php_codesniffer": "^3.5.0", + "tracy/tracy": "^2.4", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-bcmath": "Needed for generation of some types of barcodes", + "ext-xml": "Needed mainly for SVG manipulation", + "ext-zlib": "Needed for compression of embedded resources, such as fonts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Mpdf\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["GPL-2.0-only"], + "authors": [ + { + "name": "Matěj Humpál", + "role": "Developer, maintainer" + }, + { + "name": "Ian Back", + "role": "Developer (retired)" + } + ], + "description": "PHP library generating PDF files from UTF-8 encoded HTML", + "homepage": "https://mpdf.github.io", + "keywords": ["pdf", "php", "utf-8"], + "support": { + "docs": "http://mpdf.github.io", + "issues": "https://github.com/mpdf/mpdf/issues", + "source": "https://github.com/mpdf/mpdf" + }, + "funding": [ + { + "url": "https://www.paypal.me/mpdf", + "type": "custom" + } + ], + "time": "2022-01-20T10:51:40+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": ["src/DeepCopy/deep_copy.php"], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "description": "Create deep copies (clones) of your objects", + "keywords": ["clone", "copy", "duplicate", "object", "object graph"], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nette/application", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/nette/application.git", + "reference": "fa5da6a90ff71724353568894a4839aec627eae3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/application/zipball/fa5da6a90ff71724353568894a4839aec627eae3", + "reference": "fa5da6a90ff71724353568894a4839aec627eae3", + "shasum": "" + }, + "require": { + "nette/component-model": "^3.0", + "nette/http": "^3.0.2", + "nette/routing": "^3.0.2", + "nette/utils": "^3.2.1", + "php": ">=7.2" + }, + "conflict": { + "latte/latte": "<2.7.1 || >=3.0", + "nette/caching": "<3.1", + "nette/di": "<3.0.7", + "nette/forms": "<3.0", + "nette/schema": "<1.2", + "tracy/tracy": "<2.5" + }, + "require-dev": { + "latte/latte": "^2.10.2", + "mockery/mockery": "^1.0", + "nette/di": "^v3.0", + "nette/forms": "^3.0", + "nette/robot-loader": "^3.2", + "nette/security": "^3.0", + "nette/tester": "^2.3.1", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.6" + }, + "suggest": { + "latte/latte": "Allows using Latte in templates", + "nette/forms": "Allows to use Nette\\Application\\UI\\Form" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🏆 Nette Application: a full-stack component-based MVC kernel for PHP that helps you write powerful and modern web applications. Write less, have cleaner code and your work will bring you joy.", + "homepage": "https://nette.org", + "keywords": [ + "Forms", + "component-based", + "control", + "framework", + "mvc", + "mvp", + "nette", + "presenter", + "routing", + "seo" + ], + "support": { + "issues": "https://github.com/nette/application/issues", + "source": "https://github.com/nette/application/tree/v3.1.5" + }, + "time": "2021-12-20T12:24:49+00:00" + }, + { + "name": "nette/bootstrap", + "version": "v3.1.2", + "source": { + "type": "git", + "url": "https://github.com/nette/bootstrap.git", + "reference": "3ab4912a08af0c16d541c3709935c3478b5ee090" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/3ab4912a08af0c16d541c3709935c3478b5ee090", + "reference": "3ab4912a08af0c16d541c3709935c3478b5ee090", + "shasum": "" + }, + "require": { + "nette/di": "^3.0.5", + "nette/utils": "^3.2.1", + "php": ">=7.2 <8.2" + }, + "conflict": { + "tracy/tracy": "<2.6" + }, + "require-dev": { + "latte/latte": "^2.8", + "nette/application": "^3.1", + "nette/caching": "^3.0", + "nette/database": "^3.0", + "nette/forms": "^3.0", + "nette/http": "^3.0", + "nette/mail": "^3.0", + "nette/robot-loader": "^3.0", + "nette/safe-stream": "^2.2", + "nette/security": "^3.0", + "nette/tester": "^2.0", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.6" + }, + "suggest": { + "nette/robot-loader": "to use Configurator::createRobotLoader()", + "tracy/tracy": "to use Configurator::enableTracy()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", + "homepage": "https://nette.org", + "keywords": ["bootstrapping", "configurator", "nette"], + "support": { + "issues": "https://github.com/nette/bootstrap/issues", + "source": "https://github.com/nette/bootstrap/tree/v3.1.2" + }, + "time": "2021-11-24T16:51:46+00:00" + }, + { + "name": "nette/caching", + "version": "v3.1.2", + "source": { + "type": "git", + "url": "https://github.com/nette/caching.git", + "reference": "27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/caching/zipball/27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9", + "reference": "27d8f0048eb1a9c7e49e0268f39b2db7d3ce7ae9", + "shasum": "" + }, + "require": { + "nette/finder": "^2.4 || ^3.0", + "nette/utils": "^2.4 || ^3.0", + "php": ">=7.2 <8.2" + }, + "require-dev": { + "latte/latte": "^2.10", + "nette/di": "^v3.0", + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.4" + }, + "suggest": { + "ext-pdo_sqlite": "to use SQLiteStorage or SQLiteJournal" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "⏱ Nette Caching: library with easy-to-use API and many cache backends.", + "homepage": "https://nette.org", + "keywords": ["cache", "journal", "memcached", "nette", "sqlite"], + "support": { + "issues": "https://github.com/nette/caching/issues", + "source": "https://github.com/nette/caching/tree/v3.1.2" + }, + "time": "2021-08-24T23:45:03+00:00" + }, + { + "name": "nette/component-model", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/nette/component-model.git", + "reference": "20a39df12009029c7e425bc5e0439ee4ab5304af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/component-model/zipball/20a39df12009029c7e425bc5e0439ee4ab5304af", + "reference": "20a39df12009029c7e425bc5e0439ee4ab5304af", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5 || ^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "⚛ Nette Component Model", + "homepage": "https://nette.org", + "keywords": ["components", "nette"], + "support": { + "issues": "https://github.com/nette/component-model/issues", + "source": "https://github.com/nette/component-model/tree/v3.0.2" + }, + "time": "2021-08-25T14:52:12+00:00" + }, + { + "name": "nette/database", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/nette/database.git", + "reference": "b138afb94d6ce93c3a7ad9786c2e925ac1ac501f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/database/zipball/b138afb94d6ce93c3a7ad9786c2e925ac1ac501f", + "reference": "b138afb94d6ce93c3a7ad9786c2e925ac1ac501f", + "shasum": "" + }, + "require": { + "ext-pdo": "*", + "nette/caching": "^3.0", + "nette/utils": "^3.2.1", + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0-stable" + }, + "require-dev": { + "mockery/mockery": "^1.3.4", + "nette/di": "^v3.0", + "nette/tester": "^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "💾 Nette Database: layer with a familiar PDO-like API but much more powerful. Building queries, advanced joins, drivers for MySQL, PostgreSQL, SQLite, MS SQL Server and Oracle.", + "homepage": "https://nette.org", + "keywords": [ + "database", + "mssql", + "mysql", + "nette", + "notorm", + "oracle", + "pdo", + "postgresql", + "queries", + "sqlite" + ], + "support": { + "issues": "https://github.com/nette/database/issues", + "source": "https://github.com/nette/database/tree/v3.1.5" + }, + "time": "2022-03-10T03:43:40+00:00" + }, + { + "name": "nette/di", + "version": "v3.0.13", + "source": { + "type": "git", + "url": "https://github.com/nette/di.git", + "reference": "9878f2958a0a804b08430dbc719a52e493022739" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/di/zipball/9878f2958a0a804b08430dbc719a52e493022739", + "reference": "9878f2958a0a804b08430dbc719a52e493022739", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/neon": "^3.3 || ^4.0", + "nette/php-generator": "^3.5.4 || ^4.0", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.1", + "nette/utils": "^3.1.6", + "php": ">=7.1 <8.2" + }, + "conflict": { + "nette/bootstrap": "<3.0" + }, + "require-dev": { + "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP features.", + "homepage": "https://nette.org", + "keywords": [ + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" + ], + "support": { + "issues": "https://github.com/nette/di/issues", + "source": "https://github.com/nette/di/tree/v3.0.13" + }, + "time": "2022-03-10T02:43:04+00:00" + }, + { + "name": "nette/finder", + "version": "v2.5.3", + "source": { + "type": "git", + "url": "https://github.com/nette/finder.git", + "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/finder/zipball/64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", + "reference": "64dc25b7929b731e72a1bc84a9e57727f5d5d3e8", + "shasum": "" + }, + "require": { + "nette/utils": "^2.4 || ^3.0", + "php": ">=7.1" + }, + "conflict": { + "nette/nette": "<2.2" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", + "keywords": ["filesystem", "glob", "iterator", "nette"], + "support": { + "issues": "https://github.com/nette/finder/issues", + "source": "https://github.com/nette/finder/tree/v2.5.3" + }, + "time": "2021-12-12T17:43:24+00:00" + }, + { + "name": "nette/forms", + "version": "v3.1.6", + "source": { + "type": "git", + "url": "https://github.com/nette/forms.git", + "reference": "4ed52434b61d7e532cb3bc77b048717703b91b0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/forms/zipball/4ed52434b61d7e532cb3bc77b048717703b91b0b", + "reference": "4ed52434b61d7e532cb3bc77b048717703b91b0b", + "shasum": "" + }, + "require": { + "nette/component-model": "^3.0", + "nette/http": "^3.1", + "nette/utils": "^3.2.1", + "php": ">=7.2 <8.2" + }, + "conflict": { + "latte/latte": ">=3.0", + "nette/di": "<3.0-stable" + }, + "require-dev": { + "latte/latte": "^2.10.2", + "nette/application": "^3.0", + "nette/di": "^3.0", + "nette/tester": "^2.0", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📝 Nette Forms: generating, validating and processing secure forms in PHP. Handy API, fully customizable, server & client side validation and mature design.", + "homepage": "https://nette.org", + "keywords": [ + "Forms", + "bootstrap", + "csrf", + "javascript", + "nette", + "validation" + ], + "support": { + "issues": "https://github.com/nette/forms/issues", + "source": "https://github.com/nette/forms/tree/v3.1.6" + }, + "time": "2021-11-09T11:56:09+00:00" + }, + { + "name": "nette/http", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/nette/http.git", + "reference": "8146c2f2a262691a7139f9c56007961dcc5c1f42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/http/zipball/8146c2f2a262691a7139f9c56007961dcc5c1f42", + "reference": "8146c2f2a262691a7139f9c56007961dcc5c1f42", + "shasum": "" + }, + "require": { + "nette/utils": "^3.1", + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0.3", + "nette/schema": "<1.2" + }, + "require-dev": { + "nette/di": "^3.0", + "nette/security": "^3.0", + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.4" + }, + "suggest": { + "ext-fileinfo": "to detect type of uploaded files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🌐 Nette Http: abstraction for HTTP request, response and session. Provides careful data sanitization and utility for URL and cookies manipulation.", + "homepage": "https://nette.org", + "keywords": [ + "cookies", + "http", + "nette", + "proxy", + "request", + "response", + "security", + "session", + "url" + ], + "support": { + "issues": "https://github.com/nette/http/issues", + "source": "https://github.com/nette/http/tree/v3.1.5" + }, + "time": "2021-11-29T18:56:42+00:00" + }, + { + "name": "nette/mail", + "version": "v3.1.8", + "source": { + "type": "git", + "url": "https://github.com/nette/mail.git", + "reference": "69b43ae9a5c63ff68804531ef0113c372c676ce6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/mail/zipball/69b43ae9a5c63ff68804531ef0113c372c676ce6", + "reference": "69b43ae9a5c63ff68804531ef0113c372c676ce6", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "nette/utils": "^3.1", + "php": ">=7.1 <8.2" + }, + "conflict": { + "nette/di": "<3.0-stable" + }, + "require-dev": { + "nette/di": "^3.0.0", + "nette/tester": "^2.0", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.4" + }, + "suggest": { + "ext-fileinfo": "to detect type of attached files", + "ext-openssl": "to use Nette\\Mail\\DkimSigner" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📧 Nette Mail: handy email creation and transfer library for PHP with both text and MIME-compliant support.", + "homepage": "https://nette.org", + "keywords": ["mail", "mailer", "mime", "nette", "smtp"], + "support": { + "issues": "https://github.com/nette/mail/issues", + "source": "https://github.com/nette/mail/tree/v3.1.8" + }, + "time": "2021-08-25T00:07:03+00:00" + }, + { + "name": "nette/neon", + "version": "v3.3.3", + "source": { + "type": "git", + "url": "https://github.com/nette/neon.git", + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/neon/zipball/22e384da162fab42961d48eb06c06d3ad0c11b95", + "reference": "22e384da162fab42961d48eb06c06d3ad0c11b95", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.7" + }, + "bin": ["bin/neon-lint"], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.3-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "https://ne-on.org", + "keywords": ["export", "import", "neon", "nette", "yaml"], + "support": { + "issues": "https://github.com/nette/neon/issues", + "source": "https://github.com/nette/neon/tree/v3.3.3" + }, + "time": "2022-03-10T02:04:26+00:00" + }, + { + "name": "nette/php-generator", + "version": "v4.0.1", + "source": { + "type": "git", + "url": "https://github.com/nette/php-generator.git", + "reference": "23110ddbcdc7723f5ae06e94a535bbd01b72bfdc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/php-generator/zipball/23110ddbcdc7723f5ae06e94a535bbd01b72bfdc", + "reference": "23110ddbcdc7723f5ae06e94a535bbd01b72bfdc", + "shasum": "" + }, + "require": { + "nette/utils": "^3.2.7 || ^4.0", + "php": ">=8.0 <8.2" + }, + "require-dev": { + "nette/tester": "^2.4", + "nikic/php-parser": "^4.13", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.1 features.", + "homepage": "https://nette.org", + "keywords": ["code", "nette", "php", "scaffolding"], + "support": { + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.0.1" + }, + "time": "2022-03-10T02:24:09+00:00" + }, + { + "name": "nette/robot-loader", + "version": "v3.4.1", + "source": { + "type": "git", + "url": "https://github.com/nette/robot-loader.git", + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/e2adc334cb958164c050f485d99c44c430f51fe2", + "reference": "e2adc334cb958164c050f485d99c44c430f51fe2", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "nette/finder": "^2.5 || ^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", + "keywords": ["autoload", "class", "interface", "nette", "trait"], + "support": { + "issues": "https://github.com/nette/robot-loader/issues", + "source": "https://github.com/nette/robot-loader/tree/v3.4.1" + }, + "time": "2021-08-25T15:53:54+00:00" + }, + { + "name": "nette/routing", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/nette/routing.git", + "reference": "5532e7e3612e13def357f089c1a5c25793a16843" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/routing/zipball/5532e7e3612e13def357f089c1a5c25793a16843", + "reference": "5532e7e3612e13def357f089c1a5c25793a16843", + "shasum": "" + }, + "require": { + "nette/http": "^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "Nette Routing: two-ways URL conversion", + "homepage": "https://nette.org", + "keywords": ["nette"], + "support": { + "issues": "https://github.com/nette/routing/issues", + "source": "https://github.com/nette/routing/tree/v3.0.2" + }, + "time": "2021-02-06T04:08:30+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": ["config", "nette"], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/security", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/nette/security.git", + "reference": "c120893f561b09494486c66594720b2abcb099b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/security/zipball/c120893f561b09494486c66594720b2abcb099b2", + "reference": "c120893f561b09494486c66594720b2abcb099b2", + "shasum": "" + }, + "require": { + "nette/utils": "^3.2.1", + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0-stable", + "nette/http": "<3.1.3" + }, + "require-dev": { + "nette/di": "^3.0.1", + "nette/http": "^3.0.0", + "nette/tester": "^2.0", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🔑 Nette Security: provides authentication, authorization and a role-based access control management via ACL (Access Control List)", + "homepage": "https://nette.org", + "keywords": ["Authentication", "acl", "authorization", "nette"], + "support": { + "issues": "https://github.com/nette/security/issues", + "source": "https://github.com/nette/security/tree/v3.1.5" + }, + "time": "2021-09-20T15:20:25+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.7", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", + "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.7" + }, + "time": "2022-01-24T11:29:14+00:00" + }, + { + "name": "nettrine/annotations", + "version": "v0.7.0", + "source": { + "type": "git", + "url": "https://github.com/nettrine/annotations.git", + "reference": "fbb06d156a4edcbf37e4154e5b4ede079136388b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/annotations/zipball/fbb06d156a4edcbf37e4154e5b4ede079136388b", + "reference": "fbb06d156a4edcbf37e4154e5b4ede079136388b", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/annotations": "^1.6.1", + "nettrine/cache": "^0.3.0", + "php": ">=7.2" + }, + "require-dev": { + "ninjify/qa": "^0.10.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan-deprecation-rules": "^0.11.0", + "phpstan/phpstan-nette": "^0.11.0", + "phpstan/phpstan-shim": "^0.11.5", + "phpstan/phpstan-strict-rules": "^0.11.0", + "phpunit/phpunit": "^8.1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\Annotations\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + }, + { + "name": "Marek Bartoš", + "homepage": "https://github.com/mabar" + } + ], + "description": "Doctrine Annotations for Nette Framework", + "homepage": "https://github.com/nettrine/annotations", + "keywords": ["annotations", "doctrine", "nette", "nettrine"], + "support": { + "issues": "https://github.com/nettrine/annotations/issues", + "source": "https://github.com/nettrine/annotations/tree/v0.7.0" + }, + "time": "2020-12-10T18:01:50+00:00" + }, + { + "name": "nettrine/cache", + "version": "v0.3.0", + "source": { + "type": "git", + "url": "https://github.com/nettrine/cache.git", + "reference": "8a58596de24cdd61e45866ef8f35788675f6d2bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/cache/zipball/8a58596de24cdd61e45866ef8f35788675f6d2bc", + "reference": "8a58596de24cdd61e45866ef8f35788675f6d2bc", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/cache": "^1.8.0", + "php": ">=7.2" + }, + "require-dev": { + "ninjify/qa": "^0.9.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan-deprecation-rules": "^0.11.0", + "phpstan/phpstan-nette": "^0.11.0", + "phpstan/phpstan-shim": "^0.11.5", + "phpstan/phpstan-strict-rules": "^0.11.0", + "phpunit/phpunit": "^8.1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MPL-2.0"], + "authors": [ + { + "name": "Marek Bartoš", + "homepage": "https://github.com/mabar" + } + ], + "description": "Doctrine Cache for Nette Framework", + "homepage": "https://github.com/nettrine/cache", + "keywords": ["cache", "doctrine", "nette", "nettrine"], + "support": { + "issues": "https://github.com/nettrine/cache/issues", + "source": "https://github.com/nettrine/cache/tree/v0.3.0" + }, + "time": "2020-12-10T17:56:32+00:00" + }, + { + "name": "nettrine/dbal", + "version": "v0.7.0", + "source": { + "type": "git", + "url": "https://github.com/nettrine/dbal.git", + "reference": "26a63ef21d229aa35b42b2d7798581bdb88ee912" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/dbal/zipball/26a63ef21d229aa35b42b2d7798581bdb88ee912", + "reference": "26a63ef21d229aa35b42b2d7798581bdb88ee912", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/dbal": "^2.9.2", + "nettrine/cache": "^0.3.0", + "php": ">=7.2" + }, + "require-dev": { + "contributte/console": "^0.5.0", + "mockery/mockery": "^1.3.3", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.9.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "psr/log": "^1.1", + "tracy/tracy": "~2.6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\DBAL\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Doctrine DBAL for Nette Framework", + "homepage": "https://github.com/nettrine/dbal", + "keywords": [ + "database", + "dbal", + "doctrine", + "mysql", + "nette", + "postgres", + "sqlite" + ], + "support": { + "issues": "https://github.com/nettrine/dbal/issues", + "source": "https://github.com/nettrine/dbal/tree/v0.7.0" + }, + "time": "2020-12-11T15:36:41+00:00" + }, + { + "name": "nettrine/fixtures", + "version": "v0.6.2", + "source": { + "type": "git", + "url": "https://github.com/nettrine/fixtures.git", + "reference": "56accd28d40e6be410d8ebb147d60c45e257eef7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/fixtures/zipball/56accd28d40e6be410d8ebb147d60c45e257eef7", + "reference": "56accd28d40e6be410d8ebb147d60c45e257eef7", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/data-fixtures": "^1.4.4", + "doctrine/orm": "^2.6.3", + "php": ">=7.2", + "symfony/console": "^4.2.5|^5.0.0|^6.0.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.13", + "phpstan/phpstan": "^1.4.0", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-nette": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\Fixtures\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + }, + { + "name": "Josef Benjac", + "homepage": "http://josefbenjac.com" + } + ], + "description": "Doctrine Fixtures for Nette Framework", + "homepage": "https://github.com/nettrine/fixtures", + "keywords": ["doctrine", "fixtures", "nette"], + "support": { + "issues": "https://github.com/nettrine/fixtures/issues", + "source": "https://github.com/nettrine/fixtures/tree/v0.6.2" + }, + "time": "2022-02-23T09:56:09+00:00" + }, + { + "name": "nettrine/migrations", + "version": "v0.7.1", + "source": { + "type": "git", + "url": "https://github.com/nettrine/migrations.git", + "reference": "71951f68fec491e484e628047a3a2fe21469a518" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/migrations/zipball/71951f68fec491e484e628047a3a2fe21469a518", + "reference": "71951f68fec491e484e628047a3a2fe21469a518", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/migrations": "^2.0.0", + "php": ">=7.2", + "symfony/console": "^4.2.5|^5.0.0" + }, + "require-dev": { + "doctrine/orm": "^2.6", + "mockery/mockery": "^1.3.0", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-deprecation-rules": "^0.12", + "phpstan/phpstan-nette": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\Migrations\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + }, + { + "name": "Josef Benjac", + "homepage": "http://josefbenjac.com" + } + ], + "description": "Doctrine Migrations for Nette Framework", + "homepage": "https://github.com/nettrine/migrations", + "keywords": ["doctrine", "migrations", "nette"], + "support": { + "issues": "https://github.com/nettrine/migrations/issues", + "source": "https://github.com/nettrine/migrations/tree/v0.7.1" + }, + "time": "2021-01-31T12:39:52+00:00" + }, + { + "name": "nettrine/orm", + "version": "v0.8.3", + "source": { + "type": "git", + "url": "https://github.com/nettrine/orm.git", + "reference": "04bf4aca3897c12fcba3db3bc7aeb58e557de638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nettrine/orm/zipball/04bf4aca3897c12fcba3db3bc7aeb58e557de638", + "reference": "04bf4aca3897c12fcba3db3bc7aeb58e557de638", + "shasum": "" + }, + "require": { + "contributte/di": "^0.5.0", + "doctrine/common": "^2.13.1 || ^3.0.0", + "doctrine/orm": "^2.6.3", + "nettrine/annotations": "^0.7.0 || ^0.8.0", + "nettrine/cache": "^0.3.0 || ^0.4.0", + "nettrine/dbal": "^0.7.0 || ^0.8.0", + "php": ">=7.2", + "symfony/console": "^4.2.5|^5.0.0|^6.0.0" + }, + "conflict": { + "nette/di": "<3.0.6", + "nette/schema": "<1.1.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.1", + "ninjify/nunjuck": "^0.4", + "ninjify/qa": "^0.12", + "phpstan/phpstan": "^1.4.0", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-nette": "^1.0.0", + "phpstan/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Nettrine\\ORM\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Milan Felix Šulc", + "homepage": "https://f3l1x.io" + } + ], + "description": "Doctrine ORM for Nette Framework", + "homepage": "https://github.com/nettrine/orm", + "keywords": ["database", "doctrine", "nette", "orm"], + "support": { + "issues": "https://github.com/nettrine/orm/issues", + "source": "https://github.com/nettrine/orm/tree/v0.8.3" + }, + "time": "2022-02-10T15:54:23+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": ["csprng", "polyfill", "pseudorandom", "random"], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": ["cache", "psr", "psr-6"], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": ["events", "psr", "psr-14"], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": ["log", "psr", "psr-3"], + "support": { + "source": "https://github.com/php-fig/log/tree/2.0.0" + }, + "time": "2021-07-14T16:41:46+00:00" + }, + { + "name": "setasign/fpdi", + "version": "v2.3.6", + "source": { + "type": "git", + "url": "https://github.com/Setasign/FPDI.git", + "reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/6231e315f73e4f62d72b73f3d6d78ff0eed93c31", + "reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31", + "shasum": "" + }, + "require": { + "ext-zlib": "*", + "php": "^5.6 || ^7.0 || ^8.0" + }, + "conflict": { + "setasign/tfpdf": "<1.31" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "setasign/fpdf": "~1.8", + "setasign/tfpdf": "1.31", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "~6.2" + }, + "suggest": { + "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." + }, + "type": "library", + "autoload": { + "psr-4": { + "setasign\\Fpdi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Jan Slabon", + "email": "jan.slabon@setasign.com", + "homepage": "https://www.setasign.com" + }, + { + "name": "Maximilian Kresse", + "email": "maximilian.kresse@setasign.com", + "homepage": "https://www.setasign.com" + } + ], + "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", + "homepage": "https://www.setasign.com/fpdi", + "keywords": ["fpdf", "fpdi", "pdf"], + "support": { + "issues": "https://github.com/Setasign/FPDI/issues", + "source": "https://github.com/Setasign/FPDI/tree/v2.3.6" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", + "type": "tidelift" + } + ], + "time": "2021-02-11T11:37:01+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad", + "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": ["/Tests/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": ["cli", "command line", "console", "terminal"], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-24T12:45:35+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "shasum": "" + }, + "require": { + "php": ">=8.0.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": ["function.php"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-01T23:48:49+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", + "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": ["/Tests/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:55:41+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "aa5422287b75594b90ee9cd807caf8f0df491385" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385", + "reference": "aa5422287b75594b90ee9cd807caf8f0df491385", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-07-15T12:33:35+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.0.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "52b888523545b0b4049ab9ce48766802484d7046" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/52b888523545b0b4049ab9ce48766802484d7046", + "reference": "52b888523545b0b4049ab9ce48766802484d7046", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": ["/Tests/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.0.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-03-02T12:58:14+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "30885182c981ab175d4d034db0f6f469898070ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", + "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": ["compatibility", "ctype", "polyfill", "portable"], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-10-20T20:35:02+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", + "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-23T21:10:46+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", + "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": ["Resources/stubs"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-02-19T12:13:01+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", + "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": ["compatibility", "mbstring", "polyfill", "portable", "shim"], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-30T18:21:41+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", + "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": ["compatibility", "polyfill", "portable", "shim"], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-27T09:17:38+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", + "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": ["Resources/stubs"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": ["compatibility", "polyfill", "portable", "shim"], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-06-05T21:20:04+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.25.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.23-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": ["bootstrap.php"], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": ["Resources/stubs"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": ["compatibility", "polyfill", "portable", "shim"], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-03-04T08:16:47+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/36715ebf9fb9db73db0cb24263c79077c6fe8603", + "reference": "36715ebf9fb9db73db0cb24263c79077c6fe8603", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-11-04T17:53:12+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v5.4.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/service-contracts": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": ["/Tests/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.4.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-18T16:06:09+00:00" + }, + { + "name": "symfony/string", + "version": "v6.0.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/522144f0c4c004c80d56fa47e40e17028e2eefc2", + "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": ["Resources/functions.php"], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": ["/Tests/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": ["grapheme", "i18n", "string", "unicode", "utf-8", "utf8"], + "support": { + "source": "https://github.com/symfony/string/tree/v6.0.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:55:41+00:00" + }, + { + "name": "tomaj/nette-api", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/tomaj/nette-api.git", + "reference": "76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tomaj/nette-api/zipball/76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e", + "reference": "76df023fcdfc19a5cfb6169e2c5c1c4382e30e1e", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-filter": "*", + "ext-json": "*", + "ext-session": "*", + "justinrainbow/json-schema": "^5.2", + "league/fractal": "^0.17.0", + "nette/application": "^3.0", + "nette/http": "^3.0", + "php": ">= 7.1.0", + "tomaj/nette-bootstrap-form": "^2.0", + "tracy/tracy": "^2.6" + }, + "replace": { + "phpspec/prophecy": "*" + }, + "require-dev": { + "latte/latte": "^2.4", + "nette/di": "^3.0", + "phpunit/phpunit": ">7.0", + "squizlabs/php_codesniffer": "^3.2", + "symfony/yaml": "^4.4|5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Tomaj\\NetteApi\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Tomas Majer", + "email": "tomasmajer@gmail.com", + "homepage": "http://www.tomaj.sk/" + } + ], + "description": "Nette api", + "keywords": ["api", "nette"], + "support": { + "issues": "https://github.com/tomaj/nette-api/issues", + "source": "https://github.com/tomaj/nette-api/tree/2.6.0" + }, + "time": "2021-10-08T08:50:27+00:00" + }, + { + "name": "tomaj/nette-bootstrap-form", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/tomaj/nette-bootstrap-form.git", + "reference": "c4aeee158ede5c64cf2dab588ee181135b8b2e92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tomaj/nette-bootstrap-form/zipball/c4aeee158ede5c64cf2dab588ee181135b8b2e92", + "reference": "c4aeee158ede5c64cf2dab588ee181135b8b2e92", + "shasum": "" + }, + "require": { + "nette/forms": "^3.0", + "php": ">= 7.1.0" + }, + "type": "library", + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["LGPL-2.0-or-later"], + "authors": [ + { + "name": "Tomas Majer", + "email": "tomasmajer@gmail.com", + "homepage": "http://www.tomaj.sk/" + } + ], + "description": "Nette bootstrap form renderer", + "keywords": ["bootstrap", "form", "nette", "renderer"], + "support": { + "issues": "https://github.com/tomaj/nette-bootstrap-form/issues", + "source": "https://github.com/tomaj/nette-bootstrap-form/tree/2.0.1" + }, + "time": "2022-01-11T10:41:18+00:00" + }, + { + "name": "tracy/tracy", + "version": "v2.9.1", + "source": { + "type": "git", + "url": "https://github.com/nette/tracy.git", + "reference": "4180b3221ff852fe10d5eab30d80be6f6ab7221e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/tracy/zipball/4180b3221ff852fe10d5eab30d80be6f6ab7221e", + "reference": "4180b3221ff852fe10d5eab30d80be6f6ab7221e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-session": "*", + "php": ">=7.2 <8.2" + }, + "conflict": { + "nette/di": "<3.0" + }, + "require-dev": { + "latte/latte": "^2.5", + "nette/di": "^3.0", + "nette/mail": "^3.0", + "nette/tester": "^2.2", + "nette/utils": "^3.0", + "phpstan/phpstan": "^1.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9-dev" + } + }, + "autoload": { + "files": ["src/Tracy/functions.php"], + "classmap": ["src"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.", + "homepage": "https://tracy.nette.org", + "keywords": ["Xdebug", "debug", "debugger", "nette", "profiler"], + "support": { + "issues": "https://github.com/nette/tracy/issues", + "source": "https://github.com/nette/tracy/tree/v2.9.1" + }, + "time": "2022-02-15T16:38:30+00:00" + } + ], + "packages-dev": [ + { + "name": "nette/tester", + "version": "v2.4.1", + "source": { + "type": "git", + "url": "https://github.com/nette/tester.git", + "reference": "b54326b3c1a2c6c76d2662a06b5ad5a10d822e98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/tester/zipball/b54326b3c1a2c6c76d2662a06b5ad5a10d822e98", + "reference": "b54326b3c1a2c6c76d2662a06b5ad5a10d822e98", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.2" + }, + "require-dev": { + "ext-simplexml": "*", + "phpstan/phpstan": "^0.12" + }, + "bin": ["src/tester"], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "autoload": { + "classmap": ["src/"] + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["BSD-3-Clause", "GPL-2.0-only", "GPL-3.0-only"], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Miloslav Hůla", + "homepage": "https://github.com/milo" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "Nette Tester: enjoyable unit testing in PHP with code coverage reporter. 🍏🍏🍎🍏", + "homepage": "https://tester.nette.org", + "keywords": [ + "Xdebug", + "assertions", + "clover", + "code coverage", + "nette", + "pcov", + "phpdbg", + "phpunit", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/nette/tester/issues", + "source": "https://github.com/nette/tester/tree/v2.4.1" + }, + "time": "2021-08-24T14:13:00+00:00" + }, + { + "name": "symfony/thanks", + "version": "v1.2.10", + "source": { + "type": "git", + "url": "https://github.com/symfony/thanks.git", + "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/thanks/zipball/e9c4709560296acbd4fe9e12b8d57a925aa7eae8", + "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=5.5.9" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + }, + "class": "Symfony\\Thanks\\Thanks" + }, + "autoload": { + "psr-4": { + "Symfony\\Thanks\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": ["MIT"], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + } + ], + "description": "Encourages sending ⭐ and 💵 to fellow PHP package maintainers (not limited to Symfony components)!", + "support": { + "issues": "https://github.com/symfony/thanks/issues", + "source": "https://github.com/symfony/thanks/tree/v1.2.10" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-14T17:47:37+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">= 8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.1.0" } diff --git a/config/common.neon b/config/common.neon index f65e605..46550a2 100755 --- a/config/common.neon +++ b/config/common.neon @@ -1,10 +1,18 @@ +includes: + - ext/nettrine.neon + - ext/contributte.neon + parameters: - application: - errorPresenter: Error + catchExceptions: %productionMode% + #errorPresenter: %system.error.presenter% mapping: - *: [App, Modules\*, Presenters\*Presenter] + Admin: [App\Modules\Admin, *, *\*Presenter] + Front: [App\Modules\Front, *, *\*Presenter] + Mailing: [App\Modules\Mailing, *, *\*Presenter] + Pdf: [App\Modules\Pdf, *, *\*Presenter] + Api: Tomaj\NetteApi\Presenters\*Presenter session: diff --git a/config/ext/contributte.neon b/config/ext/contributte.neon new file mode 100755 index 0000000..3f5d7e4 --- /dev/null +++ b/config/ext/contributte.neon @@ -0,0 +1,40 @@ +# Extension > Contributte +# +extensions: + contributte.console: Contributte\Console\DI\ConsoleExtension(%consoleMode%) + contributte.console.extra: Contributte\Console\Extra\DI\ConsoleBridgesExtension(%consoleMode%) + contributte.events: Contributte\EventDispatcher\DI\EventDispatcherExtension + contributte.events2nette: Contributte\Events\Extra\DI\EventBridgesExtension + contributte.monolog: Contributte\Monolog\DI\MonologExtension + contributte.mailing: Contributte\Mailing\DI\MailingExtension + contributte.post: Contributte\Mail\DI\MailExtension + +contributte.console: + url: http://localhost/ + lazy: true + +contributte.mailing: + template: + config: + layout: %appDir%/resources/mail/@layout.latte + +contributte.monolog: + holder: + enabled: true + hook: + toTracy: false + channel: + default: + handlers: + - Monolog\Handler\RotatingFileHandler(%appDir%/../log/syslog.log, 30, Monolog\Logger::WARNING) + processors: + - Monolog\Processor\WebProcessor() + - Monolog\Processor\IntrospectionProcessor() + - Monolog\Processor\MemoryPeakUsageProcessor() + - Monolog\Processor\ProcessIdProcessor() + +services: + - + factory: Contributte\PdfResponse\PdfResponse + setup: + - $mpdfConfig([tempDir: %tempDir%/mpdf]) diff --git a/config/ext/nettrine.neon b/config/ext/nettrine.neon new file mode 100755 index 0000000..afd6766 --- /dev/null +++ b/config/ext/nettrine.neon @@ -0,0 +1,62 @@ +# Extension > Nettrine +# +extensions: + nettrine.annotations: Nettrine\Annotations\DI\AnnotationsExtension + nettrine.cache: Nettrine\Cache\DI\CacheExtension + nettrine.migrations: Nettrine\Migrations\DI\MigrationsExtension + nettrine.fixtures: Nettrine\Fixtures\DI\FixturesExtension + + # Dbal + nettrine.dbal: Nettrine\DBAL\DI\DbalExtension + nettrine.dbal.console: Nettrine\DBAL\DI\DbalConsoleExtension(%consoleMode%) + + # Orm + nettrine.orm: Nettrine\ORM\DI\OrmExtension + nettrine.orm.cache: Nettrine\ORM\DI\OrmCacheExtension + nettrine.orm.console: Nettrine\ORM\DI\OrmConsoleExtension(%consoleMode%) + nettrine.orm.annotations: Nettrine\ORM\DI\OrmAnnotationsExtension + +nettrine.dbal: + debug: + panel: %debugMode% + configuration: + sqlLogger: Nettrine\DBAL\Logger\PsrLogger(@Monolog\Logger) + connection: + driver: %database.driver% + host: %database.host% + user: %database.user% + password: %database.password% + dbname: %database.dbname% + port: %database.port% + +nettrine.orm: + entityManagerDecoratorClass: App\Model\Database\EntityManager + configuration: + autoGenerateProxyClasses: %debugMode% + +nettrine.orm.annotations: + mapping: + App\Model\Database\Entity: %appDir%/model/Database/Entity + +nettrine.orm.cache: + +nettrine.cache: +# driver: Doctrine\Common\Cache\ApcuCache + +nettrine.migrations: + table: doctrine_migrations + column: version + directory: %rootDir%/db/Migrations + namespace: Database\Migrations + versionsOrganization: null + +nettrine.fixtures: + paths: + - %rootDir%/db/Fixtures + +decorator: + Doctrine\Common\EventSubscriber: + tags: [nettrine.subscriber] + +services: + - Nettrine\Migrations\Subscriber\FixPostgreSQLDefaultSchemaSubscriber diff --git a/config/local.neon b/config/local.neon index 463c1f3..47ad30c 100755 --- a/config/local.neon +++ b/config/local.neon @@ -1,7 +1,8 @@ parameters: - - -database: - dsn: 'mysql:host=db;dbname=root' - user: root - password: root + database: + host: database + dbname: dict + user: dict_user + password: PW4dbdict + driver: pdo_pgsql + port: 5432 diff --git a/config/services.neon b/config/services.neon index bedec1f..925fb14 100755 --- a/config/services.neon +++ b/config/services.neon @@ -1,6 +1,61 @@ services: - - App\Router\RouterFactory::createRouter - - Vite(http://localhost:3000, %wwwDir%/manifest.json, not(%debugMode%)) - nette.latteFactory: - setup: - - addFilter(asset, App\Latte\AssetFilter()) +# - App\Router\RouterFactory::createRouter + - Vite(http://localhost:3000, %wwwDir%/manifest.json, not(%debugMode%)) + - App\UI\Form\FormFactory +# - App\UI\Form\SearchFormFactory + + + # Latte/Templates + latte.latteFactory: + setup: + - addFilter(asset, App\Latte\AssetFilter()) + - addFilter(datetime, App\Model\Latte\Filters::datetime) + - addFilter(neon, App\Model\Latte\Filters::neon) + - addFilter(json, App\Model\Latte\Filters::json) + + latte.templateFactory: + class: App\Model\Latte\TemplateFactory + + + # Security ================ + nette.userStorage: + setup: + - setNamespace("Webapp") + + security.passwords: App\Model\Security\Passwords + security.user: App\Model\Security\SecurityUser + security.authenticator: App\Model\Security\Authenticator\UserAuthenticator + security.authorizator: App\Model\Security\Authorizator\StaticAuthorizator + + + # Routing ================ + - App\Model\Router\RouterFactory + router: + class: Nette\Application\IRouter + factory: @App\Model\Router\RouterFactory::create + + - Tomaj\NetteApi\Link\ApiLink + - Tomaj\NetteApi\Misc\IpDetector + apiDecider: + factory: Tomaj\NetteApi\ApiDecider + setup: + - addApi(\Tomaj\NetteApi\EndpointIdentifier('GET', 1, 'users'), \App\MyApi\v1\Handlers\UsersListingHandler(), \Tomaj\NetteApi\Authorization\NoAuthorization()) + - addApi(\Tomaj\NetteApi\EndpointIdentifier('GET', 1, 'terms'), \App\MyApi\v1\Handlers\TermsHandler(), \Tomaj\NetteApi\Authorization\NoAuthorization()) + - addApi(\Tomaj\NetteApi\EndpointIdentifier('GET', 1, 'translations'), \App\MyApi\v1\Handlers\TranslationsHandler(), \Tomaj\NetteApi\Authorization\NoAuthorization()) + + # Domain ================= + - App\Domain\User\CreateUserFacade +# - App\Domain\Order\OrderLogSubscriber +# - App\Domain\Http\RequestLoggerSubscriber + + + # Console ================ + - {class: App\Model\Console\HelloCommand, tags: {console.command: hello}} + + # Facades ================= + - App\Model\Database\Facade\TermFacade + +latte: + macros: + - App\Model\Latte\Macros::register + diff --git a/docker-compose.yml b/docker-compose.yml index 485b1dd..b944ff4 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,14 +10,19 @@ services: ports: - 80:80 - 443:443 - db: - image: mariadb:10.6 + database: + image: dockette/postgres:10 environment: - MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: root + - POSTGRES_HOST_AUTH_METHOD=trust + - POSTGRES_PASSWORD=webapp + - POSTGRES_USER=webapp + # - POSTGRES_DB=webapp volumes: - - .docker/mysql:/var/lib/mysql - + - /data/postgres10:/var/lib/postgresql/data + adminer: + image: dockette/adminer:dg + ports: + - 8080:80 # adminer: # image: adminer # ports: diff --git a/package.json b/package.json index eb60f0e..0bddd4d 100755 --- a/package.json +++ b/package.json @@ -11,8 +11,9 @@ "-": "^0.0.1", "@fortawesome/fontawesome-free": "^6.0.0", "@fortawesome/fontawesome-svg-core": "^1.3.0", + "@fortawesome/free-brands-svg-icons": "^6.0.0", "@fortawesome/free-solid-svg-icons": "^6.0.0", - "@fortawesome/vue-fontawesome": "^2.0.6", + "@fortawesome/vue-fontawesome": "^3.0.0-5", "@hotwired/stimulus": "^3.0.1", "@hotwired/turbo": "^7.1.0", "axios": "^0.25.0", @@ -35,6 +36,7 @@ "postcss-custom-selectors": "^6.0.0", "postcss-import": "^14.0.2", "postcss-nesting": "^10.1.2", + "prettier": "^2.5.1", "tailwindcss": "^3.0.15", "vite": "^2.7.13" } diff --git a/readme.md b/readme.md index 169933f..8a51c8a 100755 --- a/readme.md +++ b/readme.md @@ -1,5 +1,4 @@ -Nette Vite -================= +# Nette Vite This is a simple, skeleton application using the [Nette](https://nette.org). This is meant to be used as a starting point for your new projects. @@ -12,46 +11,41 @@ If you like Nette, **[please make a donation now](https://nette.org/donate)**. In addition, this skeleton provides complete solution for fast, compelling applications with a minimal amount of effort. -* [Vite](https://vitejs.dev/) - next generation frontend tooling -* [Tailwind 3+](https://tailwindcss.com/) - a utility-first CSS framework packed with classes -* [Stimulus 3+](https://stimulus.hotwired.dev/) - designed to augment your HTML with just enough behavior to make it shine -* [Turbo 7+](https://turbo.hotwired.dev/) - accelerates links and form submissions by negating the need for full page reloads +- [Vite](https://vitejs.dev/) - next generation frontend tooling +- [Tailwind 3+](https://tailwindcss.com/) - a utility-first CSS framework packed with classes +- [Stimulus 3+](https://stimulus.hotwired.dev/) - designed to augment your HTML with just enough behavior to make it shine +- [Turbo 7+](https://turbo.hotwired.dev/) - accelerates links and form submissions by negating the need for full page reloads -Requirements ------------- +## Requirements - PHP 8.0 - Node.js LTS - Docker - -Local Setup ------------- +## Local Setup The best way to install Web Project locally is using Docker. If you don't have Docker yet, -download it following [the instructions](https://www.docker.com/products/docker-desktop). +download it following [the instructions](https://www.docker.com/products/docker-desktop). Use following commands: - + mkdir nette-vite && cd nette-vite - git clone --depth 1 https://github.com/evromalarkey/nette-vite.git . && npm i + git clone --depth 1 https://github.com/evromalarkey/nette-vite.git . && npm i That downloads the project from Github, installs `package.json` dependencies. After that you can serve your project from localhost - docker compose up + docker compose up npm run dev Then visit `http://localhost` in your browser to see the welcome page. JS and CSS files are served via Vite, directly from sources. Any file changes reloads the browsers for fast local development. -> On Windows it's recommended to use **WSL2** to run everything (Docker, Node.js via nvm), it's the best approach. Otherwise, some docker scripts inside package.json would work only in PowerShell. +> On Windows it's recommended to use **WSL2** to run everything (Docker, Node.js via nvm), it's the best approach. Otherwise, some docker scripts inside package.json would work only in PowerShell. > When correct Node.js version is set in **PhpStorm** (WSL2 on Windows), you can use build-in npm to install dependencies or run scripts via GUI. - -Production Setup ----------------- +## Production Setup Make directories `temp/` and `log/` writable. @@ -61,16 +55,18 @@ should be ready to go. **It is CRITICAL that whole `app/`, `config/`, `log/` and `temp/` directories are not accessible directly via a web browser. See [security warning](https://nette.org/security-warning).** -Vite ----------------- +## Vite + There are few possible ways how to load assets with Vite in your latte templates. Option 1 - print all ` @@ -84,6 +80,7 @@ Option 2 - same as first option, but you have more control over your HTML ``` Option 3 - most basic, but currently not possible for production, due Vite drawback - [vitejs/vite#6595](https://github.com/vitejs/vite/issues/6595) + ```latte {if $vite->isEnabled()} diff --git a/src/scripts/App.vue b/src/scripts/App.vue index 1fc8b33..1d9a561 100644 --- a/src/scripts/App.vue +++ b/src/scripts/App.vue @@ -1,67 +1,153 @@ - diff --git a/src/scripts/components/HelloWorld.vue b/src/scripts/components/HelloWorld.vue index 48a5ca9..ff0a618 100644 --- a/src/scripts/components/HelloWorld.vue +++ b/src/scripts/components/HelloWorld.vue @@ -2,7 +2,7 @@ import { ref } from 'vue' defineProps({ - msg: String + msg: String, }) const count = ref(0) diff --git a/src/scripts/components/LeftDict.vue b/src/scripts/components/LeftDict.vue index 758bba9..525c39a 100644 --- a/src/scripts/components/LeftDict.vue +++ b/src/scripts/components/LeftDict.vue @@ -5,16 +5,22 @@ export default { diff --git a/src/scripts/components/SearchForm.vue b/src/scripts/components/SearchForm.vue index e04ce9b..b6d31fd 100644 --- a/src/scripts/components/SearchForm.vue +++ b/src/scripts/components/SearchForm.vue @@ -1,31 +1,47 @@ diff --git a/src/scripts/components/Terms.js b/src/scripts/components/Terms.js index 2942153..349403f 100644 --- a/src/scripts/components/Terms.js +++ b/src/scripts/components/Terms.js @@ -1,2557 +1,2311 @@ export default { - "status": "ok", - "terms": [ - { - "string1": "loop", - "string2": "slučka", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442760, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "očko", - "member": "A", - "order2": 11, - "flags": [ - 16 - ], - "id": 442761, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "premet", - "member": "A", - "order2": 5, - "flags": [ - 16 - ], - "id": 442762, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "looping", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442763, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "krúžok", - "member": "A", - "order2": 7, - "flags": [ - 16 - ], - "id": 442764, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "kruh", - "member": "A", - "order2": 8, - "flags": [ - 16 - ], - "id": 442765, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "obrúčka", - "member": "A", - "order2": 3, - "flags": [ - 16 - ], - "id": 442766, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "obruč", - "member": "A", - "order2": 6, - "flags": [ - 16 - ], - "id": 442767, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "vedľajšia trať", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442768, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "akustická kmitňa", - "member": "b", - "order2": 0, - "flags": [], - "id": 442769, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "ohyb", - "member": "A", - "order2": 19, - "flags": [ - 16 - ], - "id": 442770, - "suffix1": null, - "suffix2": { - "text": "(prúdov. dráhy)", - "id": 10114 + status: 'ok', + terms: [ + { + string1: 'loop', + string2: 'slučka', + member: 'A', + order2: 0, + flags: [16], + id: 442760, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, }, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "vinúť sa", - "member": "C", - "order2": 9, - "flags": [ - 32 - ], - "id": 442771, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "točiť sa", - "member": "C", - "order2": 17, - "flags": [ - 32 - ], - "id": 442772, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "robiť slučku", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442773, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "robiť očko", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442774, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "robiť kruhy", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442775, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "zavíjať sa", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442776, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "spájať slučkou", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442777, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "spojiť slučkou", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442778, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "upevniť slučkou", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442779, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "robiť premety", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442780, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "robiť loopingy", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442781, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "cyklus", - "member": "A", - "order2": 3, - "flags": [ - 16 - ], - "id": 442782, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "uzavretý okruh", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442783, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "vnútromaternicové teliesko", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442784, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "kmitňa", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442785, - "suffix1": { - "text": "(of wave)", - "id": 10115 + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, }, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "oblúk na skladaciu plachtu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442786, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "meander", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442787, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop", - "string2": "uško", - "member": "A", - "order2": 5, - "flags": [ - 16 - ], - "id": 442788, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26979 - }, - { - "ipa": "lup", - "filename": "us_pron_ogg/l/loo/loop_/loop.ogg", - "id": 26980 - }, - { - "ipa": "luːp", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel025.ogg", - "id": 26981 - } - ] - }, - { - "string1": "loop adapter", - "string2": "slučkový adaptér", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442789, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop aerial", - "string2": "rámová anténa", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442790, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop analysis", - "string2": "metóda slučkových prúdov", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442791, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop antenna", - "string2": "rámová anténa", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442792, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop body", - "string2": "telo cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442793, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop body", - "string2": "hlavná časť cyklu", - "member": "", - "order2": 0, - "flags": [], - "id": 442794, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop bridge", - "string2": "slučkový mostík", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442795, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop cable", - "string2": "párový kábel", - "member": "", - "order2": 2, - "flags": [], - "id": 442796, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop chain", - "string2": "nekonečná reťaz", - "member": "", - "order2": 1, - "flags": [], - "id": 442797, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop characteristic", - "string2": "slučková charakteristika", - "member": "", - "order2": 0, - "flags": [], - "id": 442798, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop check", - "string2": "kontrola prenosu", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442799, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop check", - "string2": "spätná kontrola", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442800, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop check", - "string2": "kontrola cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442801, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop checking", - "string2": "slučková kontrola", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442802, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop checking", - "string2": "informačná spätná väzba", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442803, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop circuit", - "string2": "slučka", - "member": "A", - "order2": 16, - "flags": [ - 16 - ], - "id": 442804, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop circuit", - "string2": "uzavretý obvod", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442805, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop circuit", - "string2": "kruhový spoj", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442806, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop code", - "string2": "cyklický kód", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442807, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop compaction", - "string2": "zhusťovacie slučky", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442808, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop connection", - "string2": "kruhový spoj", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442809, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop connection", - "string2": "slučkové spojenie", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442810, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop connector", - "string2": "slučkový konektor", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442811, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop construct", - "string2": "príkaz cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442812, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop control", - "string2": "riadenie opakovaniaprocedúry", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442813, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop control structure", - "string2": "slučka", - "member": "A", - "order2": 26, - "flags": [ - 16 - ], - "id": 442814, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop control variable", - "string2": "premenná cyklickéhoriadenia", - "member": "", - "order2": 0, - "flags": [], - "id": 442815, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop counter", - "string2": "počítač cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442816, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop counter", - "string2": "čítač cyklov", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442817, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop counter", - "string2": "počítač cyklov", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442818, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop current", - "string2": "slučkový prúd", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442819, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop cut", - "string2": "cyklický rez", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442820, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop delay", - "string2": "slučkové oneskorenie", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442821, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop detector", - "string2": "slučkový detektor", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442822, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop dialing", - "string2": "slučková voľba", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442823, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop dialling", - "string2": "slučková voľba", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442824, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop error", - "string2": "chyba cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442825, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop extender", - "string2": "účastnícka predlžovačka dosahu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442826, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop extender", - "string2": "prídavok pre zväčšenie dosahu", - "member": "", - "order2": 0, - "flags": [], - "id": 442827, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop eye", - "string2": "karabínka", - "member": "A", - "order2": 5, - "flags": [ - 16 - ], - "id": 442828, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop fastener", - "string2": "slučková spona", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442829, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop feeder", - "string2": "slučkový napájač", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442830, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop feeding", - "string2": "slučkové napájanie", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442831, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop gain", - "string2": "slučkové zosilnenie", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442832, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop galvanometer", - "string2": "slučkový galvanometer", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442833, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop hole", - "string2": "strieľňa", - "member": "A", - "order2": 6, - "flags": [ - 16 - ], - "id": 442834, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop impedance", - "string2": "impedancia slučky", - "member": "", - "order2": 0, - "flags": [], - "id": 442835, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop in", - "string2": "preslučkovať", - "member": "", - "order2": 0, - "flags": [], - "id": 442836, - "suffix1": null, - "suffix2": { - "text": "(vodič)", - "id": 10116 + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, }, - "pronunciations": [] - }, - { - "string1": "loop incidence", - "string2": "slučková incidencia", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442837, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop inductor", - "string2": "induktor s jedným závitom", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442838, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop initialization", - "string2": "inicializácia cyklu", - "member": "", - "order2": 0, - "flags": [], - "id": 442839, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop instruction", - "string2": "inštrukcia cyklu", - "member": "", - "order2": 0, - "flags": [], - "id": 442840, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop integral", - "string2": "slučkový integrál", - "member": "", - "order2": 0, - "flags": [], - "id": 442841, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop invariant", - "string2": "invariant cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442842, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop invariant", - "string2": "invariant sľučky", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442843, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop iteration", - "string2": "iteračný cyklus", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442844, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop jump", - "string2": "cyklický skok", - "member": "", - "order2": 0, - "flags": [], - "id": 442845, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop jump", - "string2": "odskok v cykle", - "member": "", - "order2": 0, - "flags": [], - "id": 442846, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop line", - "string2": "slučkové vedenie", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442847, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop lines", - "string2": "slučkové vedenie", - "member": "", - "order2": 0, - "flags": [], - "id": 442848, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop lines", - "string2": "okružné vedenie", - "member": "", - "order2": 0, - "flags": [], - "id": 442849, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop loss", - "string2": "útlm v slučke", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442850, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop measurement", - "string2": "meranie v slučke", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442851, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop network", - "string2": "kruhová sieť", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442852, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop optimization", - "string2": "optimalizácia slučky", - "member": "", - "order2": 0, - "flags": [], - "id": 442853, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop oscillograph", - "string2": "slučkový oscilograf", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442854, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop processor", - "string2": "regulačný procesor", - "member": "", - "order2": 0, - "flags": [], - "id": 442855, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop propagation time", - "string2": "slučkové oneskorenie", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442856, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop resistance", - "string2": "odpor slučky", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442857, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop resistance", - "string2": "slučkový odpor", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442858, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop road", - "string2": "obchádzka", - "member": "A", - "order2": 16, - "flags": [ - 16 - ], - "id": 442859, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop scavenging", - "string2": "vratné vyplachovanie(dvojtaktný motor)", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442860, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop scavenging", - "string2": "Schnürleho vyplachovanie (dvojtaktný motor)", - "member": "", - "order2": 0, - "flags": [], - "id": 442861, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop space", - "string2": "priestor okruhov", - "member": "", - "order2": 0, - "flags": [], - "id": 442862, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop stitch", - "string2": "slučkový steh", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442863, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop stop", - "string2": "dynamické zastavenie", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442864, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop stores delay", - "string2": "slučkové oneskorenie", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442865, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop structure", - "string2": "cyklická štruktúra", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442866, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop system", - "string2": "zaslučkovaná elektrická sústava", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442867, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop termination", - "string2": "ukončenie cyklu", - "member": "", - "order2": 0, - "flags": [], - "id": 442868, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop test", - "string2": "meranie v slučke", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442869, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop testing", - "string2": "testovanie cyklom", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442870, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop the loop", - "string2": "robiť premet", - "member": "C", - "order2": 0, - "flags": [ - 32 - ], - "id": 442871, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop time constant", - "string2": "časová konštanta regulačnej slučky", - "member": "", - "order2": 0, - "flags": [], - "id": 442872, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop transformation", - "string2": "slučková transformácia", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442873, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop transmission", - "string2": "kruhový prenos", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442874, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop tunnel", - "string2": "slučkový tunel", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442875, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop turn", - "string2": "slučka", - "member": "A", - "order2": 20, - "flags": [ - 16 - ], - "id": 442876, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop variable", - "string2": "premenná cyklu", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442877, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop variable", - "string2": "parameter cyklu", - "member": "", - "order2": 2, - "flags": [], - "id": 442878, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop wiring", - "string2": "prepojenie slučky", - "member": "", - "order2": 0, - "flags": [], - "id": 442879, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop within loop", - "string2": "cyklus v cykle", - "member": "", - "order2": 0, - "flags": [], - "id": 442880, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop yarn", - "string2": "slučková priadza", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442881, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-disconnect pulsing", - "string2": "slučková voľba", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442882, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-disconnect pulsing", - "string2": "voľba prerušovaním slučky", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442883, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "otvor", - "member": "A", - "order2": 20, - "flags": [ - 16 - ], - "id": 442884, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "štrbina", - "member": "A", - "order2": 8, - "flags": [ - 16 - ], - "id": 442885, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "diera", - "member": "A", - "order2": 11, - "flags": [ - 16 - ], - "id": 442886, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "škára", - "member": "A", - "order2": 5, - "flags": [ - 16 - ], - "id": 442887, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "strelnica", - "member": "A", - "order2": 4, - "flags": [ - 16 - ], - "id": 442888, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "vytáčka", - "member": "A", - "order2": 3, - "flags": [ - 16 - ], - "id": 442889, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-hole", - "string2": "zadné dvierka", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442890, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-line", - "string2": "slučka", - "member": "A", - "order2": 25, - "flags": [ - 16 - ], - "id": 442891, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-oscillograph", - "string2": "slučkový oscilograf", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442892, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loop-the-loop", - "string2": "orálny sex", - "member": "A", - "order2": 2, - "flags": [ - 16 - ], - "id": 442893, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopback", - "string2": "slučka", - "member": "A", - "order2": 8, - "flags": [ - 16 - ], - "id": 442894, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopback", - "string2": "skratovacia slučka", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442895, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopback connection", - "string2": "slučkové spojenie", - "member": "", - "order2": 0, - "flags": [], - "id": 442896, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopback test", - "string2": "slučková skúška", - "member": "", - "order2": 0, - "flags": [], - "id": 442897, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopback test", - "string2": "skúška v slučke", - "member": "", - "order2": 0, - "flags": [], - "id": 442898, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looped", - "string2": "naslopaný", - "member": "B", - "order2": 1, - "flags": [ - 1 - ], - "id": 442899, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looped cable", - "string2": "zakrivený kábel", - "member": "A$", - "order2": 0, - "flags": [ - 16 - ], - "id": 442900, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looper", - "string2": "retiazkovací stroj", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442901, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loophole", - "string2": "medzera", - "member": "A", - "order2": 30, - "flags": [ - 16 - ], - "id": 442902, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "ˈluːp.həʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26982 - }, - { - "ipa": "ˈlupˌhoʊl", - "filename": "us_pron_ogg/l/loo/looph/loophole.ogg", - "id": 26983 - }, - { - "ipa": "ˈluːphəʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26984 - } - ] - }, - { - "string1": "loophole", - "string2": "strieľňa", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442903, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "ˈluːp.həʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26982 - }, - { - "ipa": "ˈlupˌhoʊl", - "filename": "us_pron_ogg/l/loo/looph/loophole.ogg", - "id": 26983 - }, - { - "ipa": "ˈluːphəʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26984 - } - ] - }, - { - "string1": "loophole", - "string2": "strielňa", - "member": "B", - "order2": 0, - "flags": [ - 1 - ], - "id": 442904, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "ˈluːp.həʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26982 - }, - { - "ipa": "ˈlupˌhoʊl", - "filename": "us_pron_ogg/l/loo/looph/loophole.ogg", - "id": 26983 - }, - { - "ipa": "ˈluːphəʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26984 - } - ] - }, - { - "string1": "loophole", - "string2": "zadné dvierka", - "member": "", - "order2": 1, - "flags": [], - "id": 442905, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "ˈluːp.həʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26982 - }, - { - "ipa": "ˈlupˌhoʊl", - "filename": "us_pron_ogg/l/loo/looph/loophole.ogg", - "id": 26983 - }, - { - "ipa": "ˈluːphəʊl", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel026.ogg", - "id": 26984 - } - ] - }, - { - "string1": "loophole in", - "string2": "štrbina v", - "member": "", - "order2": 0, - "flags": [], - "id": 442906, - "suffix1": null, - "suffix2": { - "text": "(6. p.)", - "id": 158 + ], + }, + { + string1: 'loop', + string2: 'očko', + member: 'A', + order2: 11, + flags: [16], + id: 442761, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, }, - "pronunciations": [] + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'premet', + member: 'A', + order2: 5, + flags: [16], + id: 442762, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'looping', + member: 'A', + order2: 0, + flags: [16], + id: 442763, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'krúžok', + member: 'A', + order2: 7, + flags: [16], + id: 442764, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'kruh', + member: 'A', + order2: 8, + flags: [16], + id: 442765, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'obrúčka', + member: 'A', + order2: 3, + flags: [16], + id: 442766, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'obruč', + member: 'A', + order2: 6, + flags: [16], + id: 442767, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'vedľajšia trať', + member: 'A', + order2: 1, + flags: [16], + id: 442768, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'akustická kmitňa', + member: 'b', + order2: 0, + flags: [], + id: 442769, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'ohyb', + member: 'A', + order2: 19, + flags: [16], + id: 442770, + suffix1: null, + suffix2: { + text: '(prúdov. dráhy)', + id: 10114, }, - { - "string1": "loophole in a contract", - "string2": "medzera v zmluve", - "member": "", - "order2": 0, - "flags": [], - "id": 442907, - "suffix1": null, - "suffix2": null, - "pronunciations": [] + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'vinúť sa', + member: 'C', + order2: 9, + flags: [32], + id: 442771, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'točiť sa', + member: 'C', + order2: 17, + flags: [32], + id: 442772, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'robiť slučku', + member: 'C', + order2: 0, + flags: [32], + id: 442773, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'robiť očko', + member: 'C', + order2: 0, + flags: [32], + id: 442774, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'robiť kruhy', + member: 'C', + order2: 0, + flags: [32], + id: 442775, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'zavíjať sa', + member: 'C', + order2: 0, + flags: [32], + id: 442776, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'spájať slučkou', + member: 'C', + order2: 0, + flags: [32], + id: 442777, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'spojiť slučkou', + member: 'C', + order2: 0, + flags: [32], + id: 442778, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'upevniť slučkou', + member: 'C', + order2: 0, + flags: [32], + id: 442779, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'robiť premety', + member: 'C', + order2: 0, + flags: [32], + id: 442780, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'robiť loopingy', + member: 'C', + order2: 0, + flags: [32], + id: 442781, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'cyklus', + member: 'A', + order2: 3, + flags: [16], + id: 442782, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'uzavretý okruh', + member: 'A', + order2: 1, + flags: [16], + id: 442783, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'vnútromaternicové teliesko', + member: 'A', + order2: 0, + flags: [16], + id: 442784, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'kmitňa', + member: 'A', + order2: 0, + flags: [16], + id: 442785, + suffix1: { + text: '(of wave)', + id: 10115, }, - { - "string1": "loophole in the law", - "string2": "medzera v zákone", - "member": "", - "order2": 0, - "flags": [], - "id": 442908, - "suffix1": null, - "suffix2": null, - "pronunciations": [] + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'oblúk na skladaciu plachtu', + member: 'A', + order2: 0, + flags: [16], + id: 442786, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'meander', + member: 'A', + order2: 1, + flags: [16], + id: 442787, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop', + string2: 'uško', + member: 'A', + order2: 5, + flags: [16], + id: 442788, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26979, + }, + { + ipa: 'lup', + filename: 'us_pron_ogg/l/loo/loop_/loop.ogg', + id: 26980, + }, + { + ipa: 'luːp', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel025.ogg', + id: 26981, + }, + ], + }, + { + string1: 'loop adapter', + string2: 'slučkový adaptér', + member: 'A', + order2: 0, + flags: [16], + id: 442789, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop aerial', + string2: 'rámová anténa', + member: 'A', + order2: 2, + flags: [16], + id: 442790, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop analysis', + string2: 'metóda slučkových prúdov', + member: 'A', + order2: 0, + flags: [16], + id: 442791, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop antenna', + string2: 'rámová anténa', + member: 'A', + order2: 1, + flags: [16], + id: 442792, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop body', + string2: 'telo cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442793, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop body', + string2: 'hlavná časť cyklu', + member: '', + order2: 0, + flags: [], + id: 442794, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop bridge', + string2: 'slučkový mostík', + member: 'A', + order2: 0, + flags: [16], + id: 442795, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop cable', + string2: 'párový kábel', + member: '', + order2: 2, + flags: [], + id: 442796, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop chain', + string2: 'nekonečná reťaz', + member: '', + order2: 1, + flags: [], + id: 442797, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop characteristic', + string2: 'slučková charakteristika', + member: '', + order2: 0, + flags: [], + id: 442798, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop check', + string2: 'kontrola prenosu', + member: 'A', + order2: 2, + flags: [16], + id: 442799, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop check', + string2: 'spätná kontrola', + member: 'A', + order2: 2, + flags: [16], + id: 442800, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop check', + string2: 'kontrola cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442801, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop checking', + string2: 'slučková kontrola', + member: 'A', + order2: 0, + flags: [16], + id: 442802, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop checking', + string2: 'informačná spätná väzba', + member: 'A', + order2: 1, + flags: [16], + id: 442803, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop circuit', + string2: 'slučka', + member: 'A', + order2: 16, + flags: [16], + id: 442804, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop circuit', + string2: 'uzavretý obvod', + member: 'A', + order2: 0, + flags: [16], + id: 442805, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop circuit', + string2: 'kruhový spoj', + member: 'A', + order2: 0, + flags: [16], + id: 442806, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop code', + string2: 'cyklický kód', + member: 'A', + order2: 0, + flags: [16], + id: 442807, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop compaction', + string2: 'zhusťovacie slučky', + member: 'A', + order2: 0, + flags: [16], + id: 442808, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop connection', + string2: 'kruhový spoj', + member: 'A', + order2: 1, + flags: [16], + id: 442809, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop connection', + string2: 'slučkové spojenie', + member: 'A', + order2: 1, + flags: [16], + id: 442810, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop connector', + string2: 'slučkový konektor', + member: 'A', + order2: 0, + flags: [16], + id: 442811, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop construct', + string2: 'príkaz cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442812, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop control', + string2: 'riadenie opakovaniaprocedúry', + member: 'A', + order2: 0, + flags: [16], + id: 442813, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop control structure', + string2: 'slučka', + member: 'A', + order2: 26, + flags: [16], + id: 442814, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop control variable', + string2: 'premenná cyklickéhoriadenia', + member: '', + order2: 0, + flags: [], + id: 442815, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop counter', + string2: 'počítač cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442816, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop counter', + string2: 'čítač cyklov', + member: 'A', + order2: 0, + flags: [16], + id: 442817, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop counter', + string2: 'počítač cyklov', + member: 'A', + order2: 0, + flags: [16], + id: 442818, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop current', + string2: 'slučkový prúd', + member: 'A', + order2: 1, + flags: [16], + id: 442819, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop cut', + string2: 'cyklický rez', + member: 'A', + order2: 0, + flags: [16], + id: 442820, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop delay', + string2: 'slučkové oneskorenie', + member: 'A', + order2: 1, + flags: [16], + id: 442821, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop detector', + string2: 'slučkový detektor', + member: 'A', + order2: 0, + flags: [16], + id: 442822, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop dialing', + string2: 'slučková voľba', + member: 'A', + order2: 2, + flags: [16], + id: 442823, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop dialling', + string2: 'slučková voľba', + member: 'A', + order2: 1, + flags: [16], + id: 442824, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop error', + string2: 'chyba cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442825, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop extender', + string2: 'účastnícka predlžovačka dosahu', + member: 'A', + order2: 0, + flags: [16], + id: 442826, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop extender', + string2: 'prídavok pre zväčšenie dosahu', + member: '', + order2: 0, + flags: [], + id: 442827, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop eye', + string2: 'karabínka', + member: 'A', + order2: 5, + flags: [16], + id: 442828, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop fastener', + string2: 'slučková spona', + member: 'A', + order2: 0, + flags: [16], + id: 442829, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop feeder', + string2: 'slučkový napájač', + member: 'A', + order2: 0, + flags: [16], + id: 442830, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop feeding', + string2: 'slučkové napájanie', + member: 'A', + order2: 0, + flags: [16], + id: 442831, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop gain', + string2: 'slučkové zosilnenie', + member: 'A', + order2: 0, + flags: [16], + id: 442832, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop galvanometer', + string2: 'slučkový galvanometer', + member: 'A', + order2: 0, + flags: [16], + id: 442833, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop hole', + string2: 'strieľňa', + member: 'A', + order2: 6, + flags: [16], + id: 442834, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop impedance', + string2: 'impedancia slučky', + member: '', + order2: 0, + flags: [], + id: 442835, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop in', + string2: 'preslučkovať', + member: '', + order2: 0, + flags: [], + id: 442836, + suffix1: null, + suffix2: { + text: '(vodič)', + id: 10116, }, - { - "string1": "loophole in the taxlaws", - "string2": "medzera v daňových zákonoch", - "member": "", - "order2": 1, - "flags": [], - "id": 442909, - "suffix1": null, - "suffix2": null, - "pronunciations": [] + pronunciations: [], + }, + { + string1: 'loop incidence', + string2: 'slučková incidencia', + member: 'A', + order2: 0, + flags: [16], + id: 442837, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop inductor', + string2: 'induktor s jedným závitom', + member: 'A', + order2: 0, + flags: [16], + id: 442838, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop initialization', + string2: 'inicializácia cyklu', + member: '', + order2: 0, + flags: [], + id: 442839, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop instruction', + string2: 'inštrukcia cyklu', + member: '', + order2: 0, + flags: [], + id: 442840, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop integral', + string2: 'slučkový integrál', + member: '', + order2: 0, + flags: [], + id: 442841, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop invariant', + string2: 'invariant cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442842, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop invariant', + string2: 'invariant sľučky', + member: 'A', + order2: 0, + flags: [16], + id: 442843, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop iteration', + string2: 'iteračný cyklus', + member: 'A', + order2: 2, + flags: [16], + id: 442844, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop jump', + string2: 'cyklický skok', + member: '', + order2: 0, + flags: [], + id: 442845, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop jump', + string2: 'odskok v cykle', + member: '', + order2: 0, + flags: [], + id: 442846, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop line', + string2: 'slučkové vedenie', + member: 'A', + order2: 1, + flags: [16], + id: 442847, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop lines', + string2: 'slučkové vedenie', + member: '', + order2: 0, + flags: [], + id: 442848, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop lines', + string2: 'okružné vedenie', + member: '', + order2: 0, + flags: [], + id: 442849, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop loss', + string2: 'útlm v slučke', + member: 'A', + order2: 0, + flags: [16], + id: 442850, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop measurement', + string2: 'meranie v slučke', + member: 'A', + order2: 1, + flags: [16], + id: 442851, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop network', + string2: 'kruhová sieť', + member: 'A', + order2: 2, + flags: [16], + id: 442852, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop optimization', + string2: 'optimalizácia slučky', + member: '', + order2: 0, + flags: [], + id: 442853, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop oscillograph', + string2: 'slučkový oscilograf', + member: 'A', + order2: 1, + flags: [16], + id: 442854, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop processor', + string2: 'regulačný procesor', + member: '', + order2: 0, + flags: [], + id: 442855, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop propagation time', + string2: 'slučkové oneskorenie', + member: 'A', + order2: 0, + flags: [16], + id: 442856, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop resistance', + string2: 'odpor slučky', + member: 'A', + order2: 0, + flags: [16], + id: 442857, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop resistance', + string2: 'slučkový odpor', + member: 'A', + order2: 0, + flags: [16], + id: 442858, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop road', + string2: 'obchádzka', + member: 'A', + order2: 16, + flags: [16], + id: 442859, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop scavenging', + string2: 'vratné vyplachovanie(dvojtaktný motor)', + member: 'A', + order2: 1, + flags: [16], + id: 442860, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop scavenging', + string2: 'Schnürleho vyplachovanie (dvojtaktný motor)', + member: '', + order2: 0, + flags: [], + id: 442861, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop space', + string2: 'priestor okruhov', + member: '', + order2: 0, + flags: [], + id: 442862, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop stitch', + string2: 'slučkový steh', + member: 'A', + order2: 0, + flags: [16], + id: 442863, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop stop', + string2: 'dynamické zastavenie', + member: 'A', + order2: 1, + flags: [16], + id: 442864, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop stores delay', + string2: 'slučkové oneskorenie', + member: 'A', + order2: 2, + flags: [16], + id: 442865, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop structure', + string2: 'cyklická štruktúra', + member: 'A', + order2: 0, + flags: [16], + id: 442866, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop system', + string2: 'zaslučkovaná elektrická sústava', + member: 'A', + order2: 0, + flags: [16], + id: 442867, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop termination', + string2: 'ukončenie cyklu', + member: '', + order2: 0, + flags: [], + id: 442868, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop test', + string2: 'meranie v slučke', + member: 'A', + order2: 0, + flags: [16], + id: 442869, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop testing', + string2: 'testovanie cyklom', + member: 'A', + order2: 0, + flags: [16], + id: 442870, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop the loop', + string2: 'robiť premet', + member: 'C', + order2: 0, + flags: [32], + id: 442871, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop time constant', + string2: 'časová konštanta regulačnej slučky', + member: '', + order2: 0, + flags: [], + id: 442872, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop transformation', + string2: 'slučková transformácia', + member: 'A', + order2: 0, + flags: [16], + id: 442873, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop transmission', + string2: 'kruhový prenos', + member: 'A', + order2: 2, + flags: [16], + id: 442874, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop tunnel', + string2: 'slučkový tunel', + member: 'A', + order2: 0, + flags: [16], + id: 442875, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop turn', + string2: 'slučka', + member: 'A', + order2: 20, + flags: [16], + id: 442876, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop variable', + string2: 'premenná cyklu', + member: 'A', + order2: 0, + flags: [16], + id: 442877, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop variable', + string2: 'parameter cyklu', + member: '', + order2: 2, + flags: [], + id: 442878, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop wiring', + string2: 'prepojenie slučky', + member: '', + order2: 0, + flags: [], + id: 442879, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop within loop', + string2: 'cyklus v cykle', + member: '', + order2: 0, + flags: [], + id: 442880, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop yarn', + string2: 'slučková priadza', + member: 'A', + order2: 0, + flags: [16], + id: 442881, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-disconnect pulsing', + string2: 'slučková voľba', + member: 'A', + order2: 0, + flags: [16], + id: 442882, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-disconnect pulsing', + string2: 'voľba prerušovaním slučky', + member: 'A', + order2: 0, + flags: [16], + id: 442883, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'otvor', + member: 'A', + order2: 20, + flags: [16], + id: 442884, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'štrbina', + member: 'A', + order2: 8, + flags: [16], + id: 442885, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'diera', + member: 'A', + order2: 11, + flags: [16], + id: 442886, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'škára', + member: 'A', + order2: 5, + flags: [16], + id: 442887, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'strelnica', + member: 'A', + order2: 4, + flags: [16], + id: 442888, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'vytáčka', + member: 'A', + order2: 3, + flags: [16], + id: 442889, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-hole', + string2: 'zadné dvierka', + member: 'A', + order2: 0, + flags: [16], + id: 442890, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-line', + string2: 'slučka', + member: 'A', + order2: 25, + flags: [16], + id: 442891, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-oscillograph', + string2: 'slučkový oscilograf', + member: 'A', + order2: 0, + flags: [16], + id: 442892, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loop-the-loop', + string2: 'orálny sex', + member: 'A', + order2: 2, + flags: [16], + id: 442893, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopback', + string2: 'slučka', + member: 'A', + order2: 8, + flags: [16], + id: 442894, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopback', + string2: 'skratovacia slučka', + member: 'A', + order2: 0, + flags: [16], + id: 442895, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopback connection', + string2: 'slučkové spojenie', + member: '', + order2: 0, + flags: [], + id: 442896, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopback test', + string2: 'slučková skúška', + member: '', + order2: 0, + flags: [], + id: 442897, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopback test', + string2: 'skúška v slučke', + member: '', + order2: 0, + flags: [], + id: 442898, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looped', + string2: 'naslopaný', + member: 'B', + order2: 1, + flags: [1], + id: 442899, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looped cable', + string2: 'zakrivený kábel', + member: 'A$', + order2: 0, + flags: [16], + id: 442900, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looper', + string2: 'retiazkovací stroj', + member: 'A', + order2: 0, + flags: [16], + id: 442901, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loophole', + string2: 'medzera', + member: 'A', + order2: 30, + flags: [16], + id: 442902, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'ˈluːp.həʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26982, + }, + { + ipa: 'ˈlupˌhoʊl', + filename: 'us_pron_ogg/l/loo/looph/loophole.ogg', + id: 26983, + }, + { + ipa: 'ˈluːphəʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26984, + }, + ], + }, + { + string1: 'loophole', + string2: 'strieľňa', + member: 'A', + order2: 0, + flags: [16], + id: 442903, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'ˈluːp.həʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26982, + }, + { + ipa: 'ˈlupˌhoʊl', + filename: 'us_pron_ogg/l/loo/looph/loophole.ogg', + id: 26983, + }, + { + ipa: 'ˈluːphəʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26984, + }, + ], + }, + { + string1: 'loophole', + string2: 'strielňa', + member: 'B', + order2: 0, + flags: [1], + id: 442904, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'ˈluːp.həʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26982, + }, + { + ipa: 'ˈlupˌhoʊl', + filename: 'us_pron_ogg/l/loo/looph/loophole.ogg', + id: 26983, + }, + { + ipa: 'ˈluːphəʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26984, + }, + ], + }, + { + string1: 'loophole', + string2: 'zadné dvierka', + member: '', + order2: 1, + flags: [], + id: 442905, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'ˈluːp.həʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26982, + }, + { + ipa: 'ˈlupˌhoʊl', + filename: 'us_pron_ogg/l/loo/looph/loophole.ogg', + id: 26983, + }, + { + ipa: 'ˈluːphəʊl', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel026.ogg', + id: 26984, + }, + ], + }, + { + string1: 'loophole in', + string2: 'štrbina v', + member: '', + order2: 0, + flags: [], + id: 442906, + suffix1: null, + suffix2: { + text: '(6. p.)', + id: 158, }, - { - "string1": "loophole, tax", - "string2": "medzera v daňových zákonoch", - "member": "", - "order2": 0, - "flags": [], - "id": 442910, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopholes", - "string2": "právne medzery", - "member": "", - "order2": 0, - "flags": [], - "id": 442911, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping", - "string2": "retiazkovanie", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442912, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping", - "string2": "slučkovanie", - "member": "A", - "order2": 1, - "flags": [ - 16 - ], - "id": 442913, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping", - "string2": "premet", - "member": "A", - "order2": 6, - "flags": [ - 16 - ], - "id": 442914, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping execution", - "string2": "cyklické vykonávanie", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442915, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping inclusion", - "string2": "slučková inklúzia", - "member": "", - "order2": 0, - "flags": [], - "id": 442916, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "looping of a heating network", - "string2": "zokruhovanie tepelnej siete", - "member": "", - "order2": 0, - "flags": [], - "id": 442917, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loops", - "string2": "slučky", - "member": "A", - "order2": 0, - "flags": [ - 16 - ], - "id": 442918, - "suffix1": null, - "suffix2": null, - "pronunciations": [] - }, - { - "string1": "loopy", - "string2": "šibnutý", - "member": "B", - "order2": 1, - "flags": [ - 1 - ], - "id": 442919, - "suffix1": null, - "suffix2": null, - "pronunciations": [ - { - "ipa": "ˈluː.pi", - "filename": "uk_pron_ogg/u/ukl/uklon/uklonel027.ogg", - "id": 26985 - } - ] - } - ] -} \ No newline at end of file + pronunciations: [], + }, + { + string1: 'loophole in a contract', + string2: 'medzera v zmluve', + member: '', + order2: 0, + flags: [], + id: 442907, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loophole in the law', + string2: 'medzera v zákone', + member: '', + order2: 0, + flags: [], + id: 442908, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loophole in the taxlaws', + string2: 'medzera v daňových zákonoch', + member: '', + order2: 1, + flags: [], + id: 442909, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loophole, tax', + string2: 'medzera v daňových zákonoch', + member: '', + order2: 0, + flags: [], + id: 442910, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopholes', + string2: 'právne medzery', + member: '', + order2: 0, + flags: [], + id: 442911, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping', + string2: 'retiazkovanie', + member: 'A', + order2: 0, + flags: [16], + id: 442912, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping', + string2: 'slučkovanie', + member: 'A', + order2: 1, + flags: [16], + id: 442913, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping', + string2: 'premet', + member: 'A', + order2: 6, + flags: [16], + id: 442914, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping execution', + string2: 'cyklické vykonávanie', + member: 'A', + order2: 0, + flags: [16], + id: 442915, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping inclusion', + string2: 'slučková inklúzia', + member: '', + order2: 0, + flags: [], + id: 442916, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'looping of a heating network', + string2: 'zokruhovanie tepelnej siete', + member: '', + order2: 0, + flags: [], + id: 442917, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loops', + string2: 'slučky', + member: 'A', + order2: 0, + flags: [16], + id: 442918, + suffix1: null, + suffix2: null, + pronunciations: [], + }, + { + string1: 'loopy', + string2: 'šibnutý', + member: 'B', + order2: 1, + flags: [1], + id: 442919, + suffix1: null, + suffix2: null, + pronunciations: [ + { + ipa: 'ˈluː.pi', + filename: 'uk_pron_ogg/u/ukl/uklon/uklonel027.ogg', + id: 26985, + }, + ], + }, + ], +} diff --git a/src/scripts/components/Translation.vue b/src/scripts/components/Translation.vue index dad728a..592b250 100644 --- a/src/scripts/components/Translation.vue +++ b/src/scripts/components/Translation.vue @@ -1,310 +1,624 @@ \ No newline at end of file + + diff --git a/src/scripts/components/Translations.js b/src/scripts/components/Translations.js index 7557c2b..6476aee 100644 --- a/src/scripts/components/Translations.js +++ b/src/scripts/components/Translations.js @@ -1,134 +1,134 @@ export default { - translations: { - "1": { - "slug": "anglicko-slovensky", - "lang": "Anglicko-Slovenský", - "t": {} - }, - "2": { - "slug": "slovensko-anglicky", - "lang": "Slovensko-Anglický", - "t": {} - }, - "3": { - "slug": "holandsko-cesky", - "lang": "Holandsko-Český", - "t": {} - }, - "4": { - "slug": "cesko-holandsky", - "lang": "Česko-Holandský", - "t": {} - }, - "5": { - "slug": "francuzsko-slovensky", - "lang": "Francúzsko-Slovenský", - "t": {} - }, - "6": { - "slug": "slovensko-francuzsky", - "lang": "Slovensko-Francúzsky", - "t": {} - }, - "7": { - "slug": "nemecko-slovensky", - "lang": "Nemecko-Slovenský", - "t": {} - }, - "8": { - "slug": "slovensko-nemecky", - "lang": "Slovensko-Nemecký", - "t": {} - }, - "9": { - "slug": "taliansko-slovensky", - "lang": "Taliansko-Slovenský", - "t": {} - }, - "10": { - "slug": "slovensko-taliansky", - "lang": "Slovensko-Taliansky", - "t": {} - }, - "11": { - "slug": "latinsko-cesky", - "lang": "Latinsko-Český", - "t": {} - }, - "12": { - "slug": "cesko-latinsky", - "lang": "Česko-Latinský", - "t": {} - }, - "13": { - "slug": "madarsko-slovensky", - "lang": "Maďarsko-Slovenský", - "t": {} - }, - "14": { - "slug": "slovensko-madarsky", - "lang": "Slovensko-Maďarský", - "t": {} - }, - "15": { - "slug": "polsko-cesky", - "lang": "Poľsko-Český", - "t": {} - }, - "16": { - "slug": "cesko-polsky", - "lang": "Česko-Poľský", - "t": {} - }, - "17": { - "slug": "portugalsko-cesky", - "lang": "Portugalsko-Český", - "t": {} - }, - "18": { - "slug": "cesko-portugalsky", - "lang": "Česko-Portugalský", - "t": {} - }, - "19": { - "slug": "rusko-slovensky", - "lang": "Rusko-Slovenský", - "t": {} - }, - "20": { - "slug": "slovensko-rusky", - "lang": "Slovensko-Ruský", - "t": {} - }, - "21": { - "slug": "slovensko-slovensky", - "lang": "Slovensko-Slovenský", - "t": {} - }, - "22": { - "slug": "slovensko-slovensky", - "lang": "Slovensko-Slovenský", - "t": {} - }, - "23": { - "slug": "spanielsko-slovensky", - "lang": "Španielsko-Slovenský", - "t": {} - }, - "24": { - "slug": "slovensko-spanielsky", - "lang": "Slovensko-Španielsky", - "t": {} - }, - "25": { - "slug": "svedsko-cesky", - "lang": "Švédsko-Český", - "t": {} - }, - "26": { - "slug": "cesko-svedsky", - "lang": "Česko-Švédsky", - "t": {} - } - }, -} \ No newline at end of file + translations: { + 1: { + slug: 'anglicko-slovensky', + lang: 'Anglicko-Slovenský', + t: {}, + }, + 2: { + slug: 'slovensko-anglicky', + lang: 'Slovensko-Anglický', + t: {}, + }, + 3: { + slug: 'holandsko-cesky', + lang: 'Holandsko-Český', + t: {}, + }, + 4: { + slug: 'cesko-holandsky', + lang: 'Česko-Holandský', + t: {}, + }, + 5: { + slug: 'francuzsko-slovensky', + lang: 'Francúzsko-Slovenský', + t: {}, + }, + 6: { + slug: 'slovensko-francuzsky', + lang: 'Slovensko-Francúzsky', + t: {}, + }, + 7: { + slug: 'nemecko-slovensky', + lang: 'Nemecko-Slovenský', + t: {}, + }, + 8: { + slug: 'slovensko-nemecky', + lang: 'Slovensko-Nemecký', + t: {}, + }, + 9: { + slug: 'taliansko-slovensky', + lang: 'Taliansko-Slovenský', + t: {}, + }, + 10: { + slug: 'slovensko-taliansky', + lang: 'Slovensko-Taliansky', + t: {}, + }, + 11: { + slug: 'latinsko-cesky', + lang: 'Latinsko-Český', + t: {}, + }, + 12: { + slug: 'cesko-latinsky', + lang: 'Česko-Latinský', + t: {}, + }, + 13: { + slug: 'madarsko-slovensky', + lang: 'Maďarsko-Slovenský', + t: {}, + }, + 14: { + slug: 'slovensko-madarsky', + lang: 'Slovensko-Maďarský', + t: {}, + }, + 15: { + slug: 'polsko-cesky', + lang: 'Poľsko-Český', + t: {}, + }, + 16: { + slug: 'cesko-polsky', + lang: 'Česko-Poľský', + t: {}, + }, + 17: { + slug: 'portugalsko-cesky', + lang: 'Portugalsko-Český', + t: {}, + }, + 18: { + slug: 'cesko-portugalsky', + lang: 'Česko-Portugalský', + t: {}, + }, + 19: { + slug: 'rusko-slovensky', + lang: 'Rusko-Slovenský', + t: {}, + }, + 20: { + slug: 'slovensko-rusky', + lang: 'Slovensko-Ruský', + t: {}, + }, + 21: { + slug: 'slovensko-slovensky', + lang: 'Slovensko-Slovenský', + t: {}, + }, + 22: { + slug: 'slovensko-slovensky', + lang: 'Slovensko-Slovenský', + t: {}, + }, + 23: { + slug: 'spanielsko-slovensky', + lang: 'Španielsko-Slovenský', + t: {}, + }, + 24: { + slug: 'slovensko-spanielsky', + lang: 'Slovensko-Španielsky', + t: {}, + }, + 25: { + slug: 'svedsko-cesky', + lang: 'Švédsko-Český', + t: {}, + }, + 26: { + slug: 'cesko-svedsky', + lang: 'Česko-Švédsky', + t: {}, + }, + }, +} diff --git a/src/scripts/components/VueSound.vue b/src/scripts/components/VueSound.vue index 9a5304c..fad30ee 100644 --- a/src/scripts/components/VueSound.vue +++ b/src/scripts/components/VueSound.vue @@ -1,20 +1,17 @@ \ No newline at end of file + + diff --git a/src/scripts/components/vue-tabz.vue b/src/scripts/components/vue-tabz.vue index 0af0aaf..e613fb6 100644 --- a/src/scripts/components/vue-tabz.vue +++ b/src/scripts/components/vue-tabz.vue @@ -1,21 +1,30 @@ \ No newline at end of file +} + diff --git a/src/scripts/index.css b/src/scripts/index.css index b5c61c9..bd6213e 100644 --- a/src/scripts/index.css +++ b/src/scripts/index.css @@ -1,3 +1,3 @@ @tailwind base; @tailwind components; -@tailwind utilities; +@tailwind utilities; \ No newline at end of file diff --git a/src/scripts/main.js b/src/scripts/main.js index 792f9f2..2b27454 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -4,19 +4,14 @@ import './index.css' // import { Application, Controller } from '@hotwired/stimulus' // import "@hotwired/turbo" import 'flowbite'; -import '@fortawesome/fontawesome-free/js/all.js'; +// import '@fortawesome/fontawesome-free/js/all.js'; +import { library } from "@fortawesome/fontawesome-svg-core"; +import { faPlayCircle } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; +library.add(faPlayCircle); - -// const LibStimulus = new Application(document.documentElement) - -// LibStimulus.start() - -// LibStimulus.register('body', class extends Controller { -// connect() { -// console.log('Hello stimulus') -// } -// }) - -createApp(App).mount('#app') +createApp(App) + .component("fa", FontAwesomeIcon) + .mount("#app"); diff --git a/tailwind.config.cjs b/tailwind.config.cjs index 68a79f1..6628002 100755 --- a/tailwind.config.cjs +++ b/tailwind.config.cjs @@ -1,14 +1,7 @@ module.exports = { - content: [ - './src/**/*.js', - './src/**/*.vue', - './app/**/*.latte' - ], + content: ['./src/**/*.js', './src/**/*.vue', './app/**/*.latte'], theme: { extend: {}, }, - plugins: [ - require('@tailwindcss/custom-forms'), - require('flowbite/plugin') - ], + plugins: [require('@tailwindcss/custom-forms'), require('flowbite/plugin')], } diff --git a/vite.config.js b/vite.config.js index c1843ac..9f5517f 100755 --- a/vite.config.js +++ b/vite.config.js @@ -1,51 +1,83 @@ import FastGlob from 'fast-glob' -import { resolve } from 'path'; +import { resolve, path } from 'path' import tailwindcss from 'tailwindcss' import tailwindcssNesting from 'tailwindcss/nesting/index.js' import autoprefixer from 'autoprefixer' -import postcssImport from 'postcss-import'; -import postcssNesting from 'postcss-nesting'; -import postcssCustomMedia from 'postcss-custom-media'; -import dynamicImportVars from '@rollup/plugin-dynamic-import-vars'; -import vue from '@vitejs/plugin-vue'; +import postcssImport from 'postcss-import' +import postcssNesting from 'postcss-nesting' +import postcssCustomMedia from 'postcss-custom-media' +import dynamicImportVars from '@rollup/plugin-dynamic-import-vars' +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' const reload = { - name: 'reload', - handleHotUpdate({ file, server }) { - if (!file.includes('temp') && file.endsWith(".php") || file.endsWith(".latte")) { - server.ws.send({ - type: 'full-reload', - path: '*', - }); - } + name: 'reload', + handleHotUpdate({ file, server }) { + if ( + (!file.includes('temp') && file.endsWith('.php')) || + file.endsWith('.latte') + ) { + server.ws.send({ + type: 'full-reload', + path: '*', + }) } + }, } -export default { - plugins: [reload, vue()], - css: { - postcss: { - plugins: [postcssImport, tailwindcssNesting(postcssNesting), postcssCustomMedia, tailwindcss, autoprefixer] - } +const assets = (url) => { + return { + name: 'asset-base-url', + enforce: 'post', + transform: (code) => { + code = code.replace( + /(from |import\()("|'|`)(\/src|~?@|\/@fs\/@)\/(.*?)\.(svg|png|mp3|mp4)/g, + `$1$2${url}/src/$4.$5?import=` + ) + code = code.replace( + /(? resolve(process.cwd(), entry)), - plugins: [ - vue() - ], - } - } + } } + +export default defineConfig({ + plugins: [reload, assets(`http://localhost:3000`), vue()], + css: { + postcss: { + plugins: [ + postcssImport, + tailwindcssNesting(postcssNesting), + postcssCustomMedia, + tailwindcss, + autoprefixer, + ], + }, + }, + server: { + watch: { + usePolling: true, + }, + hmr: { + host: 'localhost', + }, + }, + build: { + manifest: true, + outDir: 'www', + emptyOutDir: false, + rollupOptions: { + input: FastGlob.sync([ + './src/scripts/*.js', + './src/styles/*.css', + // './src/scripts/*.vue', + ]).map((entry) => resolve(process.cwd(), entry)) + }, + }, +}) diff --git a/yarn-error.log b/yarn-error.log index 383e8c1..b8412a6 100644 --- a/yarn-error.log +++ b/yarn-error.log @@ -1,8 +1,8 @@ Arguments: - /usr/bin/node /usr/bin/yarn add @fortawesome/pro-regular-svg-icons + /usr/bin/node /usr/bin/yarn run dev PATH: - /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin + /home/jaro/.poetry/bin:/home/jaro/.poetry/bin:/home/jaro/.poetry/bin:/home/jaro/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin Yarn version: 1.22.17 @@ -14,17 +14,12 @@ Platform: linux x64 Trace: - Error: https://registry.yarnpkg.com/@fortawesome%2fpro-regular-svg-icons: Not found - at Request.params.callback [as _callback] (/usr/lib/node_modules/yarn/lib/cli.js:67029:18) - at Request.self.callback (/usr/lib/node_modules/yarn/lib/cli.js:140883:22) - at Request.emit (node:events:520:28) - at Request. (/usr/lib/node_modules/yarn/lib/cli.js:141855:10) - at Request.emit (node:events:520:28) - at IncomingMessage. (/usr/lib/node_modules/yarn/lib/cli.js:141777:12) - at Object.onceWrapper (node:events:639:28) - at IncomingMessage.emit (node:events:532:35) - at endReadableNT (node:internal/streams/readable:1346:12) - at processTicksAndRejections (node:internal/process/task_queues:83:21) + SyntaxError: /home/jaro/Devel/nette-vite/package.json: Unexpected token } in JSON at position 1474 + at JSON.parse () + at /usr/lib/node_modules/yarn/lib/cli.js:1625:59 + at Generator.next () + at step (/usr/lib/node_modules/yarn/lib/cli.js:310:30) + at /usr/lib/node_modules/yarn/lib/cli.js:321:13 npm manifest: { @@ -37,6 +32,8 @@ npm manifest: "composer:update": "docker run --rm --interactive --tty --volume ${PWD}:/app --volume ${COMPOSER_HOME:-$HOME/.composer}:/tmp composer update" }, "dependencies": { + "-": "^0.0.1", + "@fortawesome/fontawesome-free": "^6.0.0", "@fortawesome/fontawesome-svg-core": "^1.3.0", "@fortawesome/free-solid-svg-icons": "^6.0.0", "@fortawesome/vue-fontawesome": "^2.0.6", @@ -45,8 +42,10 @@ npm manifest: "axios": "^0.25.0", "flowbite": "^1.3.3", "font-awesome": "^4.7.0", + "html5-audio-demo": "https://github.com/muhammadatt/vue-audio-player", "nette-forms": "^3.3.1", "vue": "^3.2.30", + "vue-audio-player": "^0.0.2", "vue-tabz": "^1.1.5" }, "devDependencies": { @@ -62,7 +61,8 @@ npm manifest: "postcss-nesting": "^10.1.2", "tailwindcss": "^3.0.15", "vite": "^2.7.13" - } + }, + } yarn manifest: @@ -73,6 +73,11 @@ Lockfile: # yarn lockfile v1 + "-@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/-/-/--0.0.1.tgz#db6db7cd866142880dd03e5b8781d1b4fac0e5bd" + integrity sha512-3HfneK3DGAm05fpyj20sT3apkNcvPpCuccOThOPdzz8sY7GgQGe0l93XH9bt+YzibcTIgUAIMoyVJI740RtgyQ== + "@algolia/autocomplete-core@1.5.2": version "1.5.2" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.5.2.tgz#ec0178e07b44fd74a057728ac157291b26cecf37" @@ -250,6 +255,11 @@ Lockfile: resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.3.0.tgz#949995a05c0d8801be7e0a594f775f1dbaa0d893" integrity sha512-CA3MAZBTxVsF6SkfkHXDerkhcQs0QPofy43eFdbWJJkZiq3SfiaH1msOkac59rQaqto5EqWnASboY1dBuKen5w== + "@fortawesome/fontawesome-free@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.0.0.tgz#6f3bd8e42997c7d536a1246877ed8bcd4f005a54" + integrity sha512-6LB4PYBST1Rx40klypw1SmSDArjFOcfBf2LeX9Zg5EKJT2eXiyiJq+CyBYKeXyK0sXS2FsCJWSPr/luyhuvh0Q== + "@fortawesome/fontawesome-svg-core@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.3.0.tgz#343fac91fa87daa630d26420bfedfba560f85885" @@ -893,6 +903,12 @@ Lockfile: dependencies: function-bind "^1.1.1" + "html5-audio-demo@https://github.com/muhammadatt/vue-audio-player": + version "1.0.0" + resolved "https://github.com/muhammadatt/vue-audio-player#c24f5f4beeb9c7efb5d73a7a819a98c644a67411" + dependencies: + vue "^2.5.11" + import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" @@ -1287,11 +1303,23 @@ Lockfile: optionalDependencies: fsevents "~2.3.2" + vue-audio-player@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/vue-audio-player/-/vue-audio-player-0.0.2.tgz#5629b029396208b291309de08f196448b5cedc19" + integrity sha512-q8n8x/Nh2Ls2Qkd0Agta6COo60PPM9rGONwZSoCqwmhWhF8XzbTXKFWpsIb7dRbWMtZa8oNIB1VTFgzCcwm7Ow== + dependencies: + vue "^2.5.2" + vue-tabz@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/vue-tabz/-/vue-tabz-1.1.5.tgz" integrity sha512-3g5tNqBw7HDpi84NBMKdk3vuhVfei83BXN1KksCfZ+RnIF4yKvLI61RaS/zti3Ar25qOMNRQE9pP+awJF6DG5A== + vue@^2.5.11, vue@^2.5.2: + version "2.6.14" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235" + integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ== + vue@^3.2.30: version "3.2.30" resolved "https://registry.npmjs.org/vue/-/vue-3.2.30.tgz" diff --git a/yarn.lock b/yarn.lock index fe7c312..ccc5135 100644 --- a/yarn.lock +++ b/yarn.lock @@ -196,6 +196,13 @@ dependencies: "@fortawesome/fontawesome-common-types" "^0.3.0" +"@fortawesome/free-brands-svg-icons@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.0.0.tgz#c69830ec2fad38c95945867f4e6927bf33cce6f8" + integrity sha512-BIhsy2YeGuk8+KQwpqmyayQDWo1lvGMHsMIE+z5ApPRgV7T+zGhmNzYVoBT4IrJMC6ep5WpGrxoHX+IvNxHnkw== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.3.0" + "@fortawesome/free-solid-svg-icons@^6.0.0": version "6.0.0" resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.0.0.tgz#bed4a501b631c6cfa35c09830f7cb63ffca1589d" @@ -203,10 +210,10 @@ dependencies: "@fortawesome/fontawesome-common-types" "^0.3.0" -"@fortawesome/vue-fontawesome@^2.0.6": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-2.0.6.tgz#87e691ed87f28f4667238573a29743f543a087f6" - integrity sha512-V3vT3flY15AKbUS31aZOP12awQI3aAzkr2B1KnqcHLmwrmy51DW3pwyBczKdypV8QxBZ8U68Hl2XxK2nudTxpg== +"@fortawesome/vue-fontawesome@^3.0.0-5": + version "3.0.0-5" + resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.0-5.tgz#6251e6917198362fa56510eb256cfb6aa6d30a32" + integrity sha512-aNmBT4bOecrFsZTog1l6AJDQHPP3ocXV+WQ3Ogy8WZCqstB/ahfhH4CPu5i4N9Hw0MBKXqE+LX+NbUxcj8cVTw== "@hotwired/stimulus@^3.0.1": version "3.0.1" @@ -1086,6 +1093,11 @@ preact@^10.0.0: resolved "https://registry.yarnpkg.com/preact/-/preact-10.6.5.tgz#726d8bd12903a0d51cdd17e2e1b90cc539403e0c" integrity sha512-i+LXM6JiVjQXSt2jG2vZZFapGpCuk1fl8o6ii3G84MA3xgj686FKjs4JFDkmUVhtxyq21+4ay74zqPykz9hU6w== +prettier@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a" + integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg== + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"