diff --git a/.ddev/config.yaml b/.ddev/config.yaml index 2b40f5c40..fff88a9bd 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -171,6 +171,7 @@ webimage_extra_packages: - python3-click - python3-git - python3-colorama + - make # Extra Debian packages that are needed in the webimage can be added here diff --git a/.github/workflows/build-images.yaml b/.github/workflows/build-images.yaml index 9fe0b2969..c85fe8cca 100644 --- a/.github/workflows/build-images.yaml +++ b/.github/workflows/build-images.yaml @@ -52,3 +52,5 @@ jobs: php_version: "8.0" - module: zmsstatistic php_version: "8.0" + - module: zmsticketprinter + php_version: "7.3" diff --git a/cli b/cli index b461bc872..4f20fba07 100755 --- a/cli +++ b/cli @@ -29,6 +29,7 @@ modules = [ "zmsmessaging", "zmsslim", "zmsstatistic", + "zmsticketprinter", ] @@ -54,15 +55,14 @@ def cli_modules_reference_libraries(no_symlink: bool): with open(composer_file_path, "r") as f: composer_content = json.load(f) - composer_content["repositories"] = [ - { - "type": "path", - "url": "../*", - "options": { - "symlink": not no_symlink - } + composer_content["repositories"] = list([i for i in composer_content.get("repositories", []) if i.get("type") != "path" and i.get("url", None) != "../*"]) + composer_content["repositories"].append({ + "type": "path", + "url": "../*", + "options": { + "symlink": not no_symlink } - ] + }) require = composer_content.get("require", []) for dependency_key in require: @@ -75,6 +75,7 @@ def cli_modules_reference_libraries(no_symlink: bool): with open(composer_file_path, "w") as f: json.dump(composer_content, f, indent=4) + f.write("\n") for module in module_dependencies: module_dir = os.path.join(repo_dir, module) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..1a01f0a0a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "html", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/zmsticketprinter/.eslintrc.js b/zmsticketprinter/.eslintrc.js new file mode 100644 index 000000000..c84417900 --- /dev/null +++ b/zmsticketprinter/.eslintrc.js @@ -0,0 +1,30 @@ +module.exports = { + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module", + "ecmaFeatures": { + "impliedStrict": true, + "jsx": true + } + }, + "plugins": [], + "globals": { + "window": true, + "console": true, + "setTimeout": true, + "clearTimeout": true, + "setInterval": true, + "document": true, + "Promise": true + }, + "extends": ["eslint:recommended"], + "rules": { + "complexity": [ + "error", + 11 + ], + "no-console": [ + "off" + ] + } +} diff --git a/zmsticketprinter/.gitattributes b/zmsticketprinter/.gitattributes new file mode 100644 index 000000000..056c1b7f7 --- /dev/null +++ b/zmsticketprinter/.gitattributes @@ -0,0 +1,3 @@ +*.php diff=php +tests export-ignore +composer.lock binary merge=ours diff --git a/zmsticketprinter/.gitignore b/zmsticketprinter/.gitignore new file mode 100644 index 000000000..4e84fc2c9 --- /dev/null +++ b/zmsticketprinter/.gitignore @@ -0,0 +1,18 @@ +vendor +vendor.zmsbase +node_modules +config.php +**.swp +.DS_Store +.sass-cache +bower_components +tests/*.html +public/_tests +cache +vendor.old +vendor.update +#composer.*.lock +#package-lock.json +.cache +.parcel-cache +.phpunit.result.cache diff --git a/zmsticketprinter/.gitlab/route-map.yml b/zmsticketprinter/.gitlab/route-map.yml new file mode 100644 index 000000000..12945dee3 --- /dev/null +++ b/zmsticketprinter/.gitlab/route-map.yml @@ -0,0 +1,3 @@ +# Coverage +- source: /src/Zmsticketprinter/(.+?\.php).*/ + public: '_tests/coverage/\1.html' diff --git a/zmsticketprinter/CHANGELOG.md b/zmsticketprinter/CHANGELOG.md new file mode 100644 index 000000000..35db2a47f --- /dev/null +++ b/zmsticketprinter/CHANGELOG.md @@ -0,0 +1,58 @@ +## 2.25.01 +* #56991 - The curl option for setting up an API proxy server has been added to the configuration + +## v2.24.11 +* #55684 - removed berlin logo from background graphics + +## v2.23.05 + +* #44659 Anzahl der wartenden Kunden bei leerer Warteschlange wurde korrigiert + +## v2.23.04 + +* #39699 Anpassung Javascript Validierung an neue Erfordernisse durch eslint + +## v2.23.03 + +* #39699 Umstellung der Generierung von Javascript und CSS auf ParcelJS + +## v2.23.01 + +* #38445 Bugfix: Anpassung auf Grund eines Updates der Bibliothek slimframework + +## v2.22.00 + +* #36425 Der HTTPS-Redirect wurde entfernt, um eine Nutzung per HTTP zu ermöglichen + +## v2.20.00 + +* #32626 Config für Performance-Optimierung (kann über JSON_COMPRESS_LEVEL=0 deaktiviert werden) +* #36317 Bugfix: Trennung von unterschiedlichen Fehler-Exceptions ab PHP 7.0 implementiert + +## v2.19.05 + +* #35764 Deploy Tokens eingebaut +* #35697 Darstellung der Wartezeit jetzt wie in der Aufrufanzeige mit optimistischer - geschätzter Wartezeit + +## v2.19.03 + +* #35531 Nachträgliche Telefonnummereingabe wird abgebrochen, wenn Termin schon eine Telefonnummer enthält +* #35530 Bugfix: Die SMS Bestätigung enthält nun die Wartenummer anstatt die Vorgangsnummer +* #34579 Wartezeit wird als "unbekannt" angezeigt, wenn virtuelle Sachbearbeiterzahl auf 0 gesetzt ist für einen Standort +* #34481 Anzahl der Wartenden ist die Anzahl der Leute die noch vor dem aktuell aufgerufenen Ticket aufgerufen werden, die Wartezeit ist nun die tatsächliche kalkulierte Wartezeit und nicht die vom letzten Eintrag in der Warteschlange + +## v2.19.02 + +* #35385 Hinweis zum Entwicklungssystem nur wenn ZMS_ENV prod oder dev entspricht + +## v2.19.01 + +* #35228 Security: event-stream Version angepasst +* #31328 Bugfix: Korrektur der Anzahl der Wartenden +* #35007 Bugfix: SMS-Nachtrag nur erlauben wenn SMS in der Behörde aktiviert ist + +## v2.19.00 + +* #35008 Bugfix: Korrektur OK-Button bei mehreren Standorten +* #35007 Bugfix: SMS-Funktion verschwindet, wenn in der Behörde SMS deaktiviert wurde +* #35009 Reset-Funktionalität des Kiosk bei bestimmten Fehlermeldungen (Löscht Cookie) diff --git a/zmsticketprinter/LICENSE b/zmsticketprinter/LICENSE new file mode 100644 index 000000000..8ce8f05aa --- /dev/null +++ b/zmsticketprinter/LICENSE @@ -0,0 +1,293 @@ +For license info about used fonts, see ./scss/layout/fonts/LICENSE + +The other code is under the EUPL v. 1.2, see below. + + +----------------------------------------------------------- + EUROPEAN UNION PUBLIC LICENCE v. 1.2 + EUPL © the European Union 2007, 2016 + +This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined +below) which is provided under the terms of this Licence. Any use of the Work, +other than as authorised under this Licence is prohibited (to the extent such +use is covered by a right of the copyright holder of the Work). + +The Work is provided under the terms of this Licence when the Licensor (as +defined below) has placed the following notice immediately following the +copyright notice for the Work: + + Licensed under the EUPL + +or has expressed by any other means his willingness to license under the EUPL. + +1. Definitions + +In this Licence, the following terms have the following meaning: + +- ‘The Licence’: this Licence. + +- ‘The Original Work’: the work or software distributed or communicated by the + Licensor under this Licence, available as Source Code and also as Executable + Code as the case may be. + +- ‘Derivative Works’: the works or software that could be created by the + Licensee, based upon the Original Work or modifications thereof. This Licence + does not define the extent of modification or dependence on the Original Work + required in order to classify a work as a Derivative Work; this extent is + determined by copyright law applicable in the country mentioned in Article 15. + +- ‘The Work’: the Original Work or its Derivative Works. + +- ‘The Source Code’: the human-readable form of the Work which is the most + convenient for people to study and modify. + +- ‘The Executable Code’: any code which has generally been compiled and which is + meant to be interpreted by a computer as a program. + +- ‘The Licensor’: the natural or legal person that distributes or communicates + the Work under the Licence. + +- ‘Contributor(s)’: any natural or legal person who modifies the Work under the + Licence, or otherwise contributes to the creation of a Derivative Work. + +- ‘The Licensee’ or ‘You’: any natural or legal person who makes any usage of + the Work under the terms of the Licence. + +- ‘Distribution’ or ‘Communication’: any act of selling, giving, lending, + renting, distributing, communicating, transmitting, or otherwise making + available, online or offline, copies of the Work or providing access to its + essential functionalities at the disposal of any other natural or legal + person. + +2. Scope of the rights granted by the Licence + +The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, +sublicensable licence to do the following, for the duration of copyright vested +in the Original Work: + +- use the Work in any circumstance and for all usage, +- reproduce the Work, +- modify the Work, and make Derivative Works based upon the Work, +- communicate to the public, including the right to make available or display + the Work or copies thereof to the public and perform publicly, as the case may + be, the Work, +- distribute the Work or copies thereof, +- lend and rent the Work or copies thereof, +- sublicense rights in the Work or copies thereof. + +Those rights can be exercised on any media, supports and formats, whether now +known or later invented, as far as the applicable law permits so. + +In the countries where moral rights apply, the Licensor waives his right to +exercise his moral right to the extent allowed by law in order to make effective +the licence of the economic rights here above listed. + +The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to +any patents held by the Licensor, to the extent necessary to make use of the +rights granted on the Work under this Licence. + +3. Communication of the Source Code + +The Licensor may provide the Work either in its Source Code form, or as +Executable Code. If the Work is provided as Executable Code, the Licensor +provides in addition a machine-readable copy of the Source Code of the Work +along with each copy of the Work that the Licensor distributes or indicates, in +a notice following the copyright notice attached to the Work, a repository where +the Source Code is easily and freely accessible for as long as the Licensor +continues to distribute or communicate the Work. + +4. Limitations on copyright + +Nothing in this Licence is intended to deprive the Licensee of the benefits from +any exception or limitation to the exclusive rights of the rights owners in the +Work, of the exhaustion of those rights or of other applicable limitations +thereto. + +5. Obligations of the Licensee + +The grant of the rights mentioned above is subject to some restrictions and +obligations imposed on the Licensee. Those obligations are the following: + +Attribution right: The Licensee shall keep intact all copyright, patent or +trademarks notices and all notices that refer to the Licence and to the +disclaimer of warranties. The Licensee must include a copy of such notices and a +copy of the Licence with every copy of the Work he/she distributes or +communicates. The Licensee must cause any Derivative Work to carry prominent +notices stating that the Work has been modified and the date of modification. + +Copyleft clause: If the Licensee distributes or communicates copies of the +Original Works or Derivative Works, this Distribution or Communication will be +done under the terms of this Licence or of a later version of this Licence +unless the Original Work is expressly distributed only under this version of the +Licence — for example by communicating ‘EUPL v. 1.2 only’. The Licensee +(becoming Licensor) cannot offer or impose any additional terms or conditions on +the Work or Derivative Work that alter or restrict the terms of the Licence. + +Compatibility clause: If the Licensee Distributes or Communicates Derivative +Works or copies thereof based upon both the Work and another work licensed under +a Compatible Licence, this Distribution or Communication can be done under the +terms of this Compatible Licence. For the sake of this clause, ‘Compatible +Licence’ refers to the licences listed in the appendix attached to this Licence. +Should the Licensee's obligations under the Compatible Licence conflict with +his/her obligations under this Licence, the obligations of the Compatible +Licence shall prevail. + +Provision of Source Code: When distributing or communicating copies of the Work, +the Licensee will provide a machine-readable copy of the Source Code or indicate +a repository where this Source will be easily and freely available for as long +as the Licensee continues to distribute or communicate the Work. + +Legal Protection: This Licence does not grant permission to use the trade names, +trademarks, service marks, or names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the copyright notice. + +6. Chain of Authorship + +The original Licensor warrants that the copyright in the Original Work granted +hereunder is owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each Contributor warrants that the copyright in the modifications he/she brings +to the Work are owned by him/her or licensed to him/her and that he/she has the +power and authority to grant the Licence. + +Each time You accept the Licence, the original Licensor and subsequent +Contributors grant You a licence to their contributions to the Work, under the +terms of this Licence. + +7. Disclaimer of Warranty + +The Work is a work in progress, which is continuously improved by numerous +Contributors. It is not a finished work and may therefore contain defects or +‘bugs’ inherent to this type of development. + +For the above reason, the Work is provided under the Licence on an ‘as is’ basis +and without warranties of any kind concerning the Work, including without +limitation merchantability, fitness for a particular purpose, absence of defects +or errors, accuracy, non-infringement of intellectual property rights other than +copyright as stated in Article 6 of this Licence. + +This disclaimer of warranty is an essential part of the Licence and a condition +for the grant of any rights to the Work. + +8. Disclaimer of Liability + +Except in the cases of wilful misconduct or damages directly caused to natural +persons, the Licensor will in no event be liable for any direct or indirect, +material or moral, damages of any kind, arising out of the Licence or of the use +of the Work, including without limitation, damages for loss of goodwill, work +stoppage, computer failure or malfunction, loss of data or any commercial +damage, even if the Licensor has been advised of the possibility of such damage. +However, the Licensor will be liable under statutory product liability laws as +far such laws apply to the Work. + +9. Additional agreements + +While distributing the Work, You may choose to conclude an additional agreement, +defining obligations or services consistent with this Licence. However, if +accepting obligations, You may act only on your own behalf and on your sole +responsibility, not on behalf of the original Licensor or any other Contributor, +and only if You agree to indemnify, defend, and hold each Contributor harmless +for any liability incurred by, or claims asserted against such Contributor by +the fact You have accepted any warranty or additional liability. + +10. Acceptance of the Licence + +The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ +placed under the bottom of a window displaying the text of this Licence or by +affirming consent in any other similar way, in accordance with the rules of +applicable law. Clicking on that icon indicates your clear and irrevocable +acceptance of this Licence and all of its terms and conditions. + +Similarly, you irrevocably accept this Licence and all of its terms and +conditions by exercising any rights granted to You by Article 2 of this Licence, +such as the use of the Work, the creation by You of a Derivative Work or the +Distribution or Communication by You of the Work or copies thereof. + +11. Information to the public + +In case of any Distribution or Communication of the Work by means of electronic +communication by You (for example, by offering to download the Work from a +remote location) the distribution channel or media (for example, a website) must +at least provide to the public the information requested by the applicable law +regarding the Licensor, the Licence and the way it may be accessible, concluded, +stored and reproduced by the Licensee. + +12. Termination of the Licence + +The Licence and the rights granted hereunder will terminate automatically upon +any breach by the Licensee of the terms of the Licence. + +Such a termination will not terminate the licences of any person who has +received the Work from the Licensee under the Licence, provided such persons +remain in full compliance with the Licence. + +13. Miscellaneous + +Without prejudice of Article 9 above, the Licence represents the complete +agreement between the Parties as to the Work. + +If any provision of the Licence is invalid or unenforceable under applicable +law, this will not affect the validity or enforceability of the Licence as a +whole. Such provision will be construed or reformed so as necessary to make it +valid and enforceable. + +The European Commission may publish other linguistic versions or new versions of +this Licence or updated versions of the Appendix, so far this is required and +reasonable, without reducing the scope of the rights granted by the Licence. New +versions of the Licence will be published with a unique version number. + +All linguistic versions of this Licence, approved by the European Commission, +have identical value. Parties can take advantage of the linguistic version of +their choice. + +14. Jurisdiction + +Without prejudice to specific agreement between parties, + +- any litigation resulting from the interpretation of this License, arising + between the European Union institutions, bodies, offices or agencies, as a + Licensor, and any Licensee, will be subject to the jurisdiction of the Court + of Justice of the European Union, as laid down in article 272 of the Treaty on + the Functioning of the European Union, + +- any litigation arising between other parties and resulting from the + interpretation of this License, will be subject to the exclusive jurisdiction + of the competent court where the Licensor resides or conducts its primary + business. + +15. Applicable Law + +Without prejudice to specific agreement between parties, + +- this Licence shall be governed by the law of the European Union Member State + where the Licensor has his seat, resides or has his registered office, + +- this licence shall be governed by Belgian law if the Licensor has no seat, + residence or registered office inside a European Union Member State. + +Appendix + +‘Compatible Licences’ according to Article 5 EUPL are: + +- GNU General Public License (GPL) v. 2, v. 3 +- GNU Affero General Public License (AGPL) v. 3 +- Open Software License (OSL) v. 2.1, v. 3.0 +- Eclipse Public License (EPL) v. 1.0 +- CeCILL v. 2.0, v. 2.1 +- Mozilla Public Licence (MPL) v. 2 +- GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 +- Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for + works other than software +- European Union Public Licence (EUPL) v. 1.1, v. 1.2 +- Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong + Reciprocity (LiLiQ-R+). + +The European Commission may update this Appendix to later versions of the above +licences without producing a new version of the EUPL, as long as they provide +the rights granted in Article 2 of this Licence and protect the covered Source +Code from exclusive appropriation. + +All other changes or additions to this Appendix require the production of a new +EUPL version. diff --git a/zmsticketprinter/Makefile b/zmsticketprinter/Makefile new file mode 100644 index 000000000..012023e25 --- /dev/null +++ b/zmsticketprinter/Makefile @@ -0,0 +1,38 @@ +COMPOSER=composer + +help: + grep -P "^\w+:" Makefile|sort|perl -pe 's/^(\w+):([^\#]+)(\#\s*(.*))?/\1\n\t\4\n/' + +now: # Dummy target + +build: css js # Build javascript and css + +update: # update with devel composer.json + COMPOSER=composer.devel.json $(COMPOSER) update + +css: + npm run css + +js: now + npm run js + +watch: + npm run jswatch + +fix: # run code fixing + php vendor/bin/phpcbf --standard=psr2 src/ + php vendor/bin/phpcbf --standard=psr2 tests/ + npm run fix + +live: # init live system + $(COMPOSER) install --no-dev --prefer-dist + +dev: # init development system + $(COMPOSER) update + npm install + +coverage: + php -dzend_extension=xdebug.so vendor/bin/phpunit --coverage-html public/_tests/coverage/ + +paratest: # init parallel unit testing with 5 processes + vendor/bin/paratest --coverage-html public/_tests/coverage/ diff --git a/zmsticketprinter/README.md b/zmsticketprinter/README.md new file mode 100644 index 000000000..935fa8f07 --- /dev/null +++ b/zmsticketprinter/README.md @@ -0,0 +1,58 @@ +[![pipeline status](https://gitlab.berlinonline.net/land-intranet/zmsticketprinter/badges/master/pipeline.svg)](https://gitlab.berlinonline.net/land-intranet/zmsticketprinter/-/commits/master) +[![coverage report](https://gitlab.berlinonline.net/land-intranet/zmsticketprinter/badges/master/coverage.svg)](https://land-intranet.static.berlinonline.net/zmsticketprinter/_tests/coverage/) + +# ZMS Ticketprinter + +## Requirements + +* PHP 5.6+ + +## Installation + +The variable `$WEBROOT` represents the parent path to install the application. + +```bash + cd $WEBROOT + git clone https://gitlab.berlinonline.net/land-intranet/zmsticketprinter.git + cd zmsticketprinter + make live + cp config.example.php config.php +``` + +Edit the `config.php` and add/change settings for accessing the API. + +To enable the application, you have to point the webserver to the public-path in the installation. +The following rewrite rules are required, examples for Apache2: + +```apache + RewriteRule ^/terminvereinbarung/admin/_(.*) $WEBROOT/zmsadmin/public/_$1 + RewriteRule ^/terminvereinbarung/admin/(.*) $WEBROOT/zmsadmin/public/index.php/$1 +``` + + +## Development + +For development, additional modules are required. Commits from a live environment require to ignore the pre-commit hooks. + + make dev + +## Testing + +To test application run the following command: + + bin/test + +## Add SCSS module + +First add DEPENDENCY to bower + + ./node_modules/.bin/bower install --save-dev DEPENDENCY + +Then add `@import()` rules to `scss/admin.scss`. + +Finally generate the CSS: + + make + # or + ./node_modules/.bin/gulp + diff --git a/zmsticketprinter/bin/clean b/zmsticketprinter/bin/clean new file mode 100755 index 000000000..a9f903412 --- /dev/null +++ b/zmsticketprinter/bin/clean @@ -0,0 +1,21 @@ +#!/bin/bash + +REALPATH=$(which realpath || which readlink) +REALPATH=$([[ "$REALPATH" =~ 'readlink' ]] && echo "$REALPATH -e" || echo "$REALPATH") +DIR=$(dirname $($REALPATH ${BASH_SOURCE[0]})) +ROOT=$($REALPATH $DIR/..) + +TWIGCACHE=$(php -r 'include("bootstrap.php"); echo \BO\Slim\Bootstrap::readTwigCacheDir();' ) +CACHEDIR=$(dirname $TWIGCACHE) + +echo "Removing cached files..." +cd $ROOT +if [ -d $TWIGCACHE ] && [ -d $CACHEDIR ] && [ $CACHEDIR != $ROOT ] +then + echo "Remove all files under $CACHEDIR/* (y|N)?" + rm --preserve-root -rIv $CACHEDIR/* +else + echo "No cache dir configured" + exit 1 +fi + diff --git a/zmsticketprinter/bin/configure b/zmsticketprinter/bin/configure new file mode 100755 index 000000000..ac5689271 --- /dev/null +++ b/zmsticketprinter/bin/configure @@ -0,0 +1,17 @@ +#!/bin/bash + +REALPATH=$(which realpath || which readlink) +REALPATH=$([[ "$REALPATH" =~ 'readlink' ]] && echo "$REALPATH -e" || echo "$REALPATH") +DIR=$(dirname $($REALPATH ${BASH_SOURCE[0]})) +ROOT=$($REALPATH $DIR/..) + +echo "Configuring application" +echo $ROOT +mkdir -p $ROOT/.git/hooks +ln -sf $ROOT/bin/test $ROOT/.git/hooks/pre-commit + +if [ ! -e $ROOT/config.php ] +then + cp $ROOT/config.example.php $ROOT/config.php +fi +test -d $ROOT/cache && chmod -fR a+rwX $ROOT/cache || echo "Could not chmod cache files" diff --git a/zmsticketprinter/bin/test b/zmsticketprinter/bin/test new file mode 100755 index 000000000..19b1a8f6a --- /dev/null +++ b/zmsticketprinter/bin/test @@ -0,0 +1,36 @@ +#!/bin/bash + +REALPATH=$(which realpath || which readlink) +REALPATH=$([[ "$REALPATH" =~ 'readlink' ]] && echo "$REALPATH -e" || echo "$REALPATH") +DIR=$(dirname $($REALPATH ${BASH_SOURCE[0]})) +ROOT=$($REALPATH $DIR/..) +BASE=$($REALPATH $DIR/../../../..) +EHIGH="\033[49;1;32m" +EERROR="\033[49;1;31m" +EEND="\033[00m" + +if [ ! -d "$BASE/vendor" ]; then + BASE=$ROOT +fi + +echo "Testing application" +cd $ROOT + +GITFILES=$(git diff --cached --name-only --diff-filter=AM|xargs) +PHPFILES=$(git diff --cached --name-only --diff-filter=AM|grep "\.php"|xargs) +if [[ ! $GITFILES =~ "composer.lock" ]] +then + echo -e "Do not forget to$EERROR update composer.lock$EEND" +fi + +if [ -n "$PHPFILES" ] +then + echo "Checking only: $PHPFILES" + php -l $PHPFILES || exit 1 +else + PHPFILES="src/" + echo "Checking $PHPFILES" +fi +$BASE/vendor/bin/phpcs --standard=psr2 $PHPFILES || exit 1 +$BASE/vendor/bin/phpmd $ROOT/src text phpmd.rules.xml || exit 1 +$BASE/vendor/bin/phpunit || exit 1 diff --git a/zmsticketprinter/bootstrap.php b/zmsticketprinter/bootstrap.php new file mode 100644 index 000000000..80d20f047 --- /dev/null +++ b/zmsticketprinter/bootstrap.php @@ -0,0 +1,41 @@ +getContainer())); +\BO\Zmsclient\Http::$logEnabled = \App::DEBUG; +\BO\Zmsclient\Http::$jsonCompressLevel = \App::JSON_COMPRESS_LEVEL; + + +\App::$now = (\App::$now) ? \App::$now : new \DateTimeImmutable(); + +// load middleware +\App::$slim->add(new \BO\Slim\Middleware\TrailingSlash()); + +// load routing +\BO\Slim\Bootstrap::loadRouting(\App::APP_PATH . '/routing.php'); diff --git a/zmsticketprinter/cache/.gitignore b/zmsticketprinter/cache/.gitignore new file mode 100644 index 000000000..72e8ffc0d --- /dev/null +++ b/zmsticketprinter/cache/.gitignore @@ -0,0 +1 @@ +* diff --git a/zmsticketprinter/composer.json b/zmsticketprinter/composer.json new file mode 100644 index 000000000..443f932e7 --- /dev/null +++ b/zmsticketprinter/composer.json @@ -0,0 +1,60 @@ +{ + "name": "bo/zmsticketprinter", + "description": "Frontend for ticketprinter", + "license": "EUPL-1.2", + "authors": [ + { + "name": "Torsten Kunst", + "email": "torsten.kunst@berlinonline.de" + }, + { + "name": "Philipp G\u00e4bler", + "email": "philipp.gaebler@berlinonline.de" + } + ], + "repositories": [ + { + "type": "path", + "url": "../*", + "options": { + "symlink": true + } + } + ], + "scripts": { + "command": "bin/configure" + }, + "config": { + "platform": { + "php": "7.3" + }, + "allow-plugins": { + "php-http/discovery": true + } + }, + "require-dev": { + "phpmd/phpmd": "@stable", + "squizlabs/php_codesniffer": "*", + "phpunit/phpunit": "^9.5.4", + "helmich/phpunit-psr7-assert": "^4.3.0", + "phpspec/prophecy-phpunit": "^2.0.0" + }, + "require": { + "eappointment/mellon": "@dev", + "eappointment/zmsentities": "@dev", + "eappointment/zmsslim": "@dev", + "eappointment/zmsclient": "@dev", + "ext-json": ">=1.0", + "monolog/monolog": "1.*", + "roave/security-advisories": "dev-master", + "twig/twig": "3.*", + "twig/intl-extra": "^3.4" + }, + "bin": [], + "autoload": { + "psr-4": { + "BO\\Zmsticketprinter\\": "src/Zmsticketprinter/", + "BO\\Zmsticketprinter\\Tests\\": "tests/Zmsticketprinter/" + } + } +} diff --git a/zmsticketprinter/composer.lock b/zmsticketprinter/composer.lock new file mode 100644 index 000000000..0980a3f5d --- /dev/null +++ b/zmsticketprinter/composer.lock @@ -0,0 +1,7333 @@ +{ + "_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": "754bd3994c47c0f27843529eb34216f5", + "packages": [ + { + "name": "aronduby/dump", + "version": "0.9.1", + "source": { + "type": "git", + "url": "https://github.com/aronduby/dump.git", + "reference": "8b3eb9b54248d520e7ad2f9f1295e2862056fb28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aronduby/dump/zipball/8b3eb9b54248d520e7ad2f9f1295e2862056fb28", + "reference": "8b3eb9b54248d520e7ad2f9f1295e2862056fb28", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "": "src/", + "D\\": "src/D/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "authors": [ + { + "name": "Aron Duby", + "email": "aron.duby@gmail.com" + } + ], + "description": "D::ump - a PHP 5.4 print_r/var_dump replacement base on Krumo", + "keywords": [ + "debug", + "debugging", + "dump", + "krumo", + "pretty", + "print", + "print_r", + "var_dump" + ], + "support": { + "issues": "https://github.com/aronduby/dump/issues", + "source": "https://github.com/aronduby/dump/tree/0.9.1" + }, + "time": "2016-09-30T05:02:34+00:00" + }, + { + "name": "clue/stream-filter", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/clue/stream-filter.git", + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7", + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "Clue\\StreamFilter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "A simple and modern approach to stream filtering in PHP", + "homepage": "https://github.com/clue/stream-filter", + "keywords": [ + "bucket brigade", + "callback", + "filter", + "php_user_filter", + "stream", + "stream_filter_append", + "stream_filter_register" + ], + "support": { + "issues": "https://github.com/clue/stream-filter/issues", + "source": "https://github.com/clue/stream-filter/tree/v1.7.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2023-12-20T15:40:13+00:00" + }, + { + "name": "eappointment/mellon", + "version": "dev-zmsticketprinter-integration", + "dist": { + "type": "path", + "url": "../mellon", + "reference": "c60d33715367b2dab76f672f28a3e21b60f8e7cf" + }, + "require": { + "ext-json": ">=0", + "ext-pcre": ">=0", + "php": ">=7.0.0" + }, + "require-dev": { + "phpmd/phpmd": "^2.8.0", + "phpunit/phpunit": "^9.5.4", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "BO\\Mellon\\": "src/Mellon/" + } + }, + "scripts": { + "test": [ + "php -dzend_extension=xdebug.so vendor/bin/phpunit --coverage-html coverage/" + ], + "command": [ + "bin/configure" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Fischer", + "email": "mathias.fischer@berlinonline.de" + } + ], + "description": "Validator for parameters and validation helper", + "transport-options": { + "symlink": true, + "relative": true + } + }, + { + "name": "eappointment/zmsclient", + "version": "dev-zmsticketprinter-integration", + "dist": { + "type": "path", + "url": "../zmsclient", + "reference": "249f1aa96e13e3c2379353bf33539f0174fced53" + }, + "require": { + "aronduby/dump": "^0.9", + "eappointment/mellon": "@dev", + "eappointment/zmsentities": "@dev", + "eappointment/zmsslim": "@dev", + "ext-curl": ">=0", + "ext-json": ">=1.0", + "ext-mbstring": ">=0", + "ext-pcre": ">=0", + "php": ">=7.3.0", + "php-http/curl-client": "^2.2", + "psr/http-message": "^1.0", + "slim/psr7": "^1.5", + "tracy/tracy": "^2.9", + "twig/twig": "3.*" + }, + "require-dev": { + "helmich/phpunit-psr7-assert": "^4.3.0", + "phpmd/phpmd": "@stable", + "phpspec/prophecy-phpunit": "^2.0.0", + "phpunit/phpunit": "^9.5.4", + "squizlabs/php_codesniffer": "^3.5.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "BO\\Zmsclient\\": "src/Zmsclient/", + "BO\\Zmsclient\\Tests\\": "tests/Zmsclient/" + } + }, + "scripts": { + "command": [ + "bin/configure" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Fischer", + "email": "mathias.fischer@berlinonline.de" + } + ], + "description": "Use this library to fetch data from the eappointment API via HTTP.", + "transport-options": { + "symlink": true, + "relative": true + } + }, + { + "name": "eappointment/zmsentities", + "version": "dev-zmsticketprinter-integration", + "dist": { + "type": "path", + "url": "../zmsentities", + "reference": "c60d33715367b2dab76f672f28a3e21b60f8e7cf" + }, + "require": { + "eappointment/mellon": "@dev", + "ext-curl": ">=0", + "ext-json": ">=1.0", + "ext-mbstring": ">=0", + "ext-pcre": ">=0", + "giggsey/libphonenumber-for-php": "^8.8.4", + "league/html-to-markdown": "^5.0", + "league/json-guard": "^1.0", + "php": ">=7.3.0", + "symfony/translation": "^5.4", + "symfony/twig-bridge": "^5.4", + "twig/intl-extra": "^3.4", + "twig/twig": "3.*" + }, + "require-dev": { + "helmich/phpunit-psr7-assert": "^4.3.0", + "league/json-reference": "^1.0", + "phpmd/phpmd": "@stable", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.5.8", + "yuloh/json-guard-cli": "^0.3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "BO\\Zmsentities\\": "src/Zmsentities/", + "BO\\Zmsentities\\Tests\\": "tests/Zmsentities/" + } + }, + "scripts": { + "command": [ + "bin/configure" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Fischer", + "email": "mathias.fischer@berlinonline.de" + } + ], + "description": "Entity definitions for eappoinment", + "transport-options": { + "symlink": true, + "relative": true + } + }, + { + "name": "eappointment/zmsslim", + "version": "dev-zmsticketprinter-integration", + "dist": { + "type": "path", + "url": "../zmsslim", + "reference": "c60d33715367b2dab76f672f28a3e21b60f8e7cf" + }, + "require": { + "eappointment/mellon": "@dev", + "ext-json": "*", + "ext-posix": "*", + "monolog/monolog": "1.*", + "php": ">=7.3.0", + "slim/http-cache": "1.*", + "slim/psr7": "^1.5", + "slim/slim": "4.*", + "slim/twig-view": "3.*", + "stevenmaguire/oauth2-keycloak": "^4.0", + "symfony/translation": "^5.2", + "symfony/twig-bridge": "^5.2", + "tracy/tracy": "^2.9", + "twig/twig": "3.*" + }, + "provide": { + "psr/container-implementation": "2.0" + }, + "require-dev": { + "helmich/phpunit-psr7-assert": "^4.3.0", + "phpmd/phpmd": "@stable", + "phpunit/phpunit": "^9.5.4", + "squizlabs/php_codesniffer": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "BO\\Slim\\": "src/Slim/", + "BO\\Slim\\Tests\\": "tests/Slim/" + } + }, + "scripts": { + "command": [ + "bin/configure" + ] + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Fischer", + "email": "mathias.fischer@berlinonline.de" + } + ], + "description": "Basic configuration for a slim framework", + "transport-options": { + "symlink": true, + "relative": true + } + }, + { + "name": "fig/http-message-util", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message-util.git", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765", + "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "suggest": { + "psr/http-message": "The package containing the PSR-7 interfaces" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Fig\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Utility classes and constants for use with PSR-7 (psr/http-message)", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-message-util/issues", + "source": "https://github.com/php-fig/http-message-util/tree/1.1.5" + }, + "time": "2020-11-24T22:02:12+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v6.4.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/4dd1e007f22a927ac77da5a3fbb067b42d3bc224", + "reference": "4dd1e007f22a927ac77da5a3fbb067b42d3bc224", + "shasum": "" + }, + "require": { + "php": "^7.1||^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.5||^7.4", + "phpspec/prophecy-phpunit": "^1.1", + "phpunit/phpunit": "^7.5||^9.5", + "psr/cache": "^1.0||^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.4.0" + }, + "time": "2023-02-09T21:01:23+00:00" + }, + { + "name": "giggsey/libphonenumber-for-php", + "version": "8.13.28", + "source": { + "type": "git", + "url": "https://github.com/giggsey/libphonenumber-for-php.git", + "reference": "f508ab946a60c1470c92e33cfc0393a0d580b9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/giggsey/libphonenumber-for-php/zipball/f508ab946a60c1470c92e33cfc0393a0d580b9a1", + "reference": "f508ab946a60c1470c92e33cfc0393a0d580b9a1", + "shasum": "" + }, + "require": { + "giggsey/locale": "^1.7|^2.0", + "php": ">=5.3.2", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "pear/pear-core-minimal": "^1.9", + "pear/pear_exception": "^1.0", + "pear/versioncontrol_git": "^0.5", + "phing/phing": "^2.7", + "php-coveralls/php-coveralls": "^1.0|^2.0", + "symfony/console": "^2.8|^3.0|^v4.4|^v5.2", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "libphonenumber\\": "src/" + }, + "exclude-from-classmap": [ + "/src/data/", + "/src/carrier/data/", + "/src/geocoding/data/", + "/src/timezone/data/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Joshua Gigg", + "email": "giggsey@gmail.com", + "homepage": "https://giggsey.com/" + } + ], + "description": "PHP Port of Google's libphonenumber", + "homepage": "https://github.com/giggsey/libphonenumber-for-php", + "keywords": [ + "geocoding", + "geolocation", + "libphonenumber", + "mobile", + "phonenumber", + "validation" + ], + "support": { + "issues": "https://github.com/giggsey/libphonenumber-for-php/issues", + "source": "https://github.com/giggsey/libphonenumber-for-php" + }, + "time": "2024-01-17T08:09:20+00:00" + }, + { + "name": "giggsey/locale", + "version": "2.5", + "source": { + "type": "git", + "url": "https://github.com/giggsey/Locale.git", + "reference": "e6d4540109a01dd2bc7334cdc842d6a6a67cf239" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/giggsey/Locale/zipball/e6d4540109a01dd2bc7334cdc842d6a6a67cf239", + "reference": "e6d4540109a01dd2bc7334cdc842d6a6a67cf239", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "ext-json": "*", + "pear/pear-core-minimal": "^1.9", + "pear/pear_exception": "^1.0", + "pear/versioncontrol_git": "^0.5", + "phing/phing": "^2.7", + "php-coveralls/php-coveralls": "^2.0", + "phpunit/phpunit": "^8.5|^9.5", + "symfony/console": "^5.0|^6.0", + "symfony/filesystem": "^5.0|^6.0", + "symfony/finder": "^5.0|^6.0", + "symfony/process": "^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Giggsey\\Locale\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joshua Gigg", + "email": "giggsey@gmail.com", + "homepage": "https://giggsey.com/" + } + ], + "description": "Locale functions required by libphonenumber-for-php", + "support": { + "issues": "https://github.com/giggsey/Locale/issues", + "source": "https://github.com/giggsey/Locale/tree/2.5" + }, + "time": "2023-11-01T17:19:48+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:35:24+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:19:20+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.6.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2023-12-03T20:05:35+00:00" + }, + { + "name": "league/html-to-markdown", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/0b4066eede55c48f38bcee4fb8f0aa85654390fd", + "reference": "0b4066eede55c48f38bcee4fb8f0aa85654390fd", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "^1.1.0", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^8.5 || ^9.2", + "scrutinizer/ocular": "^1.6", + "unleashedtech/php-coding-standard": "^2.7 || ^3.0", + "vimeo/psalm": "^4.22 || ^5.0" + }, + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ], + "support": { + "issues": "https://github.com/thephpleague/html-to-markdown/issues", + "source": "https://github.com/thephpleague/html-to-markdown/tree/5.1.1" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/html-to-markdown", + "type": "tidelift" + } + ], + "time": "2023-07-12T21:21:09+00:00" + }, + { + "name": "league/json-guard", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/json-guard.git", + "reference": "596059d2c013bcea1a8a1386bd0e60d32ef39eb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/json-guard/zipball/596059d2c013bcea1a8a1386bd0e60d32ef39eb9", + "reference": "596059d2c013bcea1a8a1386bd0e60d32ef39eb9", + "shasum": "" + }, + "require": { + "ext-bcmath": "*", + "php": ">=5.6.0", + "psr/container": "^1.0" + }, + "require-dev": { + "ext-curl": "*", + "json-schema/json-schema-test-suite": "1.2.0", + "league/json-reference": "1.0.0", + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1", + "squizlabs/php_codesniffer": "~2.3" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "League\\JsonGuard\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthew Allan", + "email": "matthew.james.allan@gmail.com", + "homepage": "https://mattallan.org", + "role": "Developer" + } + ], + "description": "A validator for JSON using json-schema.", + "homepage": "https://github.com/thephpleague/json-guard", + "keywords": [ + "json", + "json-schema", + "json-schema.org", + "schema", + "validation" + ], + "support": { + "issues": "https://github.com/thephpleague/json-guard/issues", + "source": "https://github.com/thephpleague/json-guard/tree/master" + }, + "abandoned": true, + "time": "2017-05-03T21:12:30+00:00" + }, + { + "name": "league/oauth2-client", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/oauth2-client.git", + "reference": "160d6274b03562ebeb55ed18399281d8118b76c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/160d6274b03562ebeb55ed18399281d8118b76c8", + "reference": "160d6274b03562ebeb55ed18399281d8118b76c8", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "paragonie/random_compat": "^1 || ^2 || ^9.99", + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.5", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpunit/phpunit": "^5.7 || ^6.0 || ^9.5", + "squizlabs/php_codesniffer": "^2.3 || ^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\OAuth2\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Bilbie", + "email": "hello@alexbilbie.com", + "homepage": "http://www.alexbilbie.com", + "role": "Developer" + }, + { + "name": "Woody Gilk", + "homepage": "https://github.com/shadowhand", + "role": "Contributor" + } + ], + "description": "OAuth 2.0 Client Library", + "keywords": [ + "Authentication", + "SSO", + "authorization", + "identity", + "idp", + "oauth", + "oauth2", + "single sign on" + ], + "support": { + "issues": "https://github.com/thephpleague/oauth2-client/issues", + "source": "https://github.com/thephpleague/oauth2-client/tree/2.7.0" + }, + "time": "2023-04-16T18:19:15+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "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", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "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", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "nikic/fast-route", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/FastRoute.git", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812", + "reference": "181d480e08d9476e61381e04a71b34dc0432e812", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|~5.7" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "FastRoute\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov", + "email": "nikic@php.net" + } + ], + "description": "Fast request router for PHP", + "keywords": [ + "router", + "routing" + ], + "support": { + "issues": "https://github.com/nikic/FastRoute/issues", + "source": "https://github.com/nikic/FastRoute/tree/master" + }, + "time": "2018-02-13T20:26:39+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": "php-http/curl-client", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/php-http/curl-client.git", + "reference": "085570be588f7cbdc4601e78886eea5b7051ad71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/curl-client/zipball/085570be588f7cbdc4601e78886eea5b7051ad71", + "reference": "085570be588f7cbdc4601e78886eea5b7051ad71", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": "^7.1 || ^8.0", + "php-http/discovery": "^1.6", + "php-http/httplug": "^2.0", + "php-http/message": "^1.2", + "psr/http-client": "^1.0", + "psr/http-factory-implementation": "^1.0", + "symfony/options-resolver": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "provide": { + "php-http/async-client-implementation": "1.0", + "php-http/client-implementation": "1.0", + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "guzzlehttp/psr7": "^1.0", + "laminas/laminas-diactoros": "^2.0", + "php-http/client-integration-tests": "^3.0", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^7.5 || ^9.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\Curl\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Михаил Красильников", + "email": "m.krasilnikov@yandex.ru" + } + ], + "description": "PSR-18 and HTTPlug Async client with cURL", + "homepage": "http://php-http.org", + "keywords": [ + "curl", + "http", + "psr-18" + ], + "support": { + "issues": "https://github.com/php-http/curl-client/issues", + "source": "https://github.com/php-http/curl-client/tree/2.3.1" + }, + "time": "2023-11-03T15:32:00+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.19.2", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb", + "reference": "61e1a1eb69c92741f5896d9e05fb8e9d7e8bb0cb", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "symfony/phpunit-bridge": "^6.2" + }, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.19.2" + }, + "time": "2023-11-30T16:49:05+00:00" + }, + { + "name": "php-http/httplug", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "625ad742c360c8ac580fcc647a1541d29e257f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67", + "reference": "625ad742c360c8ac580fcc647a1541d29e257f67", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", + "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/2.4.0" + }, + "time": "2023-04-14T15:10:03+00:00" + }, + { + "name": "php-http/message", + "version": "1.16.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/message.git", + "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message/zipball/47a14338bf4ebd67d317bf1144253d7db4ab55fd", + "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd", + "shasum": "" + }, + "require": { + "clue/stream-filter": "^1.5", + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.6", + "ext-zlib": "*", + "guzzlehttp/psr7": "^1.0 || ^2.0", + "laminas/laminas-diactoros": "^2.0 || ^3.0", + "php-http/message-factory": "^1.0.2", + "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", + "slim/slim": "^3.0" + }, + "suggest": { + "ext-zlib": "Used with compressor/decompressor streams", + "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", + "laminas/laminas-diactoros": "Used with Diactoros Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation" + }, + "type": "library", + "autoload": { + "files": [ + "src/filters.php" + ], + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "HTTP Message related tools", + "homepage": "http://php-http.org", + "keywords": [ + "http", + "message", + "psr-7" + ], + "support": { + "issues": "https://github.com/php-http/message/issues", + "source": "https://github.com/php-http/message/tree/1.16.0" + }, + "time": "2023-05-17T06:43:38+00:00" + }, + { + "name": "php-http/promise", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "2916a606d3b390f4e9e8e2b8dd68581508be0f07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/2916a606d3b390f4e9e8e2b8dd68581508be0f07", + "reference": "2916a606d3b390f4e9e8e2b8dd68581508be0f07", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", + "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.3.0" + }, + "time": "2024-01-04T18:49:48+00:00" + }, + { + "name": "psr/container", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "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/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" + }, + "time": "2023-04-10T20:10:41+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2" + }, + "time": "2023-04-10T20:06:20+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2" + }, + "time": "2023-04-11T06:14:47+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "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/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "roave/security-advisories", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "c9c42c85b30185dd4cafbc8ac45c413babc0f934" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c9c42c85b30185dd4cafbc8ac45c413babc0f934", + "reference": "c9c42c85b30185dd4cafbc8ac45c413babc0f934", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "admidio/admidio": "<4.2.13", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", + "aheinze/cockpit": "<2.2", + "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", + "airesvsg/acf-to-rest-api": "<=3.1", + "akaunting/akaunting": "<2.1.13", + "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", + "alextselegidis/easyappointments": "<1.5", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amazing/media2click": ">=1,<1.3.3", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "amphp/http-client": ">=4,<4.4", + "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", + "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", + "apache-solr-for-typo3/solr": "<2.8.3", + "apereo/phpcas": "<1.6", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3", + "appwrite/server-ce": "<=1.2.1", + "arc/web": "<3", + "area17/twill": "<1.2.5|>=2,<2.5.3", + "artesaos/seotools": "<0.17.2", + "asymmetricrypt/asymmetricrypt": "<9.9.99", + "athlon1600/php-proxy": "<=5.1", + "athlon1600/php-proxy-app": "<=3", + "austintoddj/canvas": "<=3.4.2", + "automad/automad": "<=1.10.9", + "awesome-support/awesome-support": "<=6.0.7", + "aws/aws-sdk-php": "<3.288.1", + "azuracast/azuracast": "<0.18.3", + "backdrop/backdrop": "<1.24.2", + "backpack/crud": "<3.4.9", + "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", + "badaso/core": "<2.7", + "bagisto/bagisto": "<1.3.2", + "barrelstrength/sprout-base-email": "<1.2.7", + "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", + "barzahlen/barzahlen-php": "<2.0.1", + "baserproject/basercms": "<4.8", + "bassjobsen/bootstrap-3-typeahead": ">4.0.2", + "bigfork/silverstripe-form-capture": ">=3,<3.1.1", + "billz/raspap-webgui": "<2.9.5", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "bmarshall511/wordpress_zero_spam": "<5.2.13", + "bolt/bolt": "<3.7.2", + "bolt/core": "<=4.2", + "bottelet/flarepoint": "<2.2.1", + "brightlocal/phpwhois": "<=4.2.5", + "brotkrueml/codehighlight": "<2.7", + "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", + "brotkrueml/typo3-matomo-integration": "<1.3.2", + "buddypress/buddypress": "<7.2.1", + "bugsnag/bugsnag-laravel": "<2.0.2", + "bytefury/crater": "<6.0.2", + "cachethq/cachet": "<2.5.1", + "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cardgate/magento2": "<2.0.33", + "cardgate/woocommerce": "<=3.1.15", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "catfan/medoo": "<1.7.5", + "cecil/cecil": "<7.47.1", + "centreon/centreon": "<22.10.0.0-beta1", + "cesnet/simplesamlphp-module-proxystatistics": "<3.1", + "chriskacerguis/codeigniter-restserver": "<=2.7.1", + "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", + "ckeditor/ckeditor": "<4.17", + "cockpit-hq/cockpit": "<=2.6.3", + "codeception/codeception": "<3.1.3|>=4,<4.1.22", + "codeigniter/framework": "<3.1.9", + "codeigniter4/framework": "<=4.4.2", + "codeigniter4/shield": "<1.0.0.0-beta8", + "codiad/codiad": "<=2.8.4", + "composer/composer": "<1.10.27|>=2,<2.2.22|>=2.3,<2.6.4", + "concrete5/concrete5": "<9.2.3", + "concrete5/core": "<8.5.8|>=9,<9.1", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": "<4.9.42|>=4.10,<4.13.28|>=5,<5.1.10", + "contao/listing-bundle": ">=4,<4.4.8", + "contao/managed-edition": "<=1.5", + "corveda/phpsandbox": "<1.3.5", + "cosenary/instagram": "<=2.3", + "craftcms/cms": "<=4.5.10", + "croogo/croogo": "<4", + "cuyz/valinor": "<0.12", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", + "datadog/dd-trace": ">=0.30,<0.30.2", + "datatables/datatables": "<1.10.10", + "david-garcia/phpwhois": "<=4.3.1", + "dbrisinajumi/d2files": "<1", + "dcat/laravel-admin": "<=2.1.3.0-beta", + "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", + "desperado/xml-bundle": "<=0.1.7", + "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", + "doctrine/annotations": "<1.2.7", + "doctrine/cache": "<1.3.2|>=1.4,<1.4.2", + "doctrine/common": "<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": "<1.0.2", + "doctrine/mongodb-odm-bundle": "<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<18.0.2", + "dompdf/dompdf": "<2.0.4", + "doublethreedigital/guest-entries": "<3.1.2", + "drupal/core": "<9.5.11|>=10,<10.0.11|>=10.1,<10.1.4", + "drupal/drupal": ">=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "duncanmcclean/guest-entries": "<3.1.2", + "dweeves/magmi": "<=0.7.24", + "ec-cube/ec-cube": "<2.4.4", + "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", + "elefant/cms": "<2.0.7", + "elgg/elgg": "<3.3.24|>=4,<4.0.5", + "elijaa/phpmemcacheadmin": "<=1.3", + "encore/laravel-admin": "<=1.8.19", + "endroid/qr-code-bundle": "<3.4.2", + "enshrined/svg-sanitize": "<0.15", + "erusev/parsedown": "<1.7.2", + "ether/logs": "<3.0.4", + "evolutioncms/evolution": "<=3.2.3", + "exceedone/exment": "<4.4.3|>=5,<5.0.3", + "exceedone/laravel-admin": "<2.2.3|==3", + "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", + "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", + "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", + "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.34", + "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", + "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", + "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", + "ezsystems/ezplatform-user": ">=1,<1.0.1", + "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", + "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.06,<=2019.03.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", + "ezyang/htmlpurifier": "<4.1.1", + "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<=2022.08", + "feehi/cms": "<=2.1.1", + "feehi/feehicms": "<=2.1.1", + "fenom/fenom": "<=2.12.1", + "filegator/filegator": "<7.8", + "firebase/php-jwt": "<6", + "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", + "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", + "flarum/core": "<1.8.5", + "flarum/framework": "<1.8.5", + "flarum/mentions": "<1.6.3", + "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", + "flarum/tags": "<=0.1.0.0-beta13", + "floriangaerber/magnesium": "<0.3.1", + "fluidtypo3/vhs": "<5.1.1", + "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", + "fof/upload": "<1.2.3", + "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", + "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.11.1", + "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<11", + "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", + "friendsofsymfony/oauth2-php": "<1.3", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", + "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", + "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1", + "froxlor/froxlor": "<=2.1.1", + "fuel/core": "<1.8.1", + "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", + "gaoming13/wechat-php-sdk": "<=1.10.2", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<=1.7.42.1", + "getkirby/cms": "<3.5.8.3-dev|>=3.6,<3.6.6.3-dev|>=3.7,<3.7.5.2-dev|>=3.8,<3.8.4.1-dev|>=3.9,<3.9.6", + "getkirby/kirby": "<=2.5.12", + "getkirby/panel": "<2.5.14", + "getkirby/starterkit": "<=3.7.0.2", + "gilacms/gila": "<=1.15.4", + "gleez/cms": "<=1.2|==2", + "globalpayments/php-sdk": "<2", + "gogentooss/samlbase": "<1.2.7", + "google/protobuf": "<3.15", + "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", + "gree/jose": "<2.2.1", + "gregwar/rst": "<1.0.3", + "grumpydictator/firefly-iii": "<6.1.1", + "gugoan/economizzer": "<=0.9.0.0-beta1", + "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", + "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", + "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", + "harvesthq/chosen": "<1.8.7", + "helloxz/imgurl": "<=2.31", + "hhxsv5/laravel-s": "<3.7.36", + "hillelcoren/invoice-ninja": "<5.3.35", + "himiklab/yii2-jqgrid-widget": "<1.0.8", + "hjue/justwriting": "<=1", + "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "httpsoft/http-message": "<1.0.12", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/admin-ui": ">=4.2,<4.2.3", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.4", + "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", + "ibexa/post-install": "<=1.0.4", + "ibexa/solr": ">=4.5,<4.5.4", + "ibexa/user": ">=4,<4.4.3", + "icecoder/icecoder": "<=8.1", + "idno/known": "<=1.3.1", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", + "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "impresscms/impresscms": "<=1.4.5", + "impresspages/impresspages": "<=1.0.12", + "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.3", + "in2code/ipandlanguageredirect": "<5.1.2", + "in2code/lux": "<17.6.1|>=18,<24.0.2", + "innologi/typo3-appointments": "<2.0.6", + "intelliants/subrion": "<4.2.2", + "islandora/islandora": ">=2,<2.4.1", + "ivankristianto/phpwhois": "<=4.3", + "jackalope/jackalope-doctrine-dbal": "<1.7.4", + "james-heinrich/getid3": "<1.9.21", + "james-heinrich/phpthumb": "<1.7.12", + "jasig/phpcas": "<1.3.3", + "jcbrand/converse.js": "<3.3.3", + "joomla/application": "<1.0.13", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/framework": ">=2.5.4,<=3.8.12", + "joomla/input": ">=2,<2.0.2", + "joomla/joomla-cms": ">=2.5,<3.9.12", + "joomla/session": "<1.3.1", + "joyqi/hyper-down": "<=2.4.27", + "jsdecena/laracom": "<2.0.9", + "jsmitty12/phpwhois": "<5.1", + "juzaweb/cms": "<=3.4", + "kazist/phpwhois": "<=4.2.6", + "kelvinmo/simplexrd": "<3.1.1", + "kevinpapst/kimai2": "<1.16.7", + "khodakhah/nodcms": "<=3", + "kimai/kimai": "<2.1", + "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", + "klaviyo/magento2-extension": ">=1,<3", + "knplabs/knp-snappy": "<=1.4.2", + "kohana/core": "<3.3.3", + "krayin/laravel-crm": "<1.2.2", + "kreait/firebase-php": ">=3.2,<3.8.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", + "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", + "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "latte/latte": "<2.10.8", + "lavalite/cms": "<=9", + "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", + "league/commonmark": "<0.18.3", + "league/flysystem": "<1.1.4|>=2,<2.1.1", + "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", + "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "librenms/librenms": "<2017.08.18", + "liftkit/database": "<2.13.2", + "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", + "livewire/livewire": ">2.2.4,<2.2.6", + "lms/routes": "<2.1.1", + "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", + "luyadev/yii-helpers": "<1.2.1", + "magento/community-edition": "<2.4.3.0-patch3|>=2.4.4,<2.4.5", + "magento/core": "<=1.9.4.5", + "magento/magento1ce": "<1.9.4.3-dev", + "magento/magento1ee": ">=1,<1.14.4.3-dev", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", + "magneto/core": "<1.9.4.4-dev", + "maikuolan/phpmussel": ">=1,<1.6", + "mainwp/mainwp": "<=4.4.3.3", + "mantisbt/mantisbt": "<=2.25.7", + "marcwillmann/turn": "<0.3.3", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.3", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", + "mediawiki/matomo": "<2.4.3", + "mediawiki/semantic-media-wiki": "<4.0.2", + "melisplatform/melis-asset-manager": "<5.0.1", + "melisplatform/melis-cms": "<5.0.1", + "melisplatform/melis-front": "<5.0.1", + "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", + "mgallegos/laravel-jqgrid": "<=1.3", + "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2.0.0.0-RC1-dev,<2.0.1", + "microsoft/microsoft-graph-beta": "<2.0.1", + "microsoft/microsoft-graph-core": "<2.0.2", + "microweber/microweber": "<=2.0.4", + "miniorange/miniorange-saml": "<1.4.3", + "mittwald/typo3_forum": "<1.2.1", + "mobiledetect/mobiledetectlib": "<2.8.32", + "modx/revolution": "<=2.8.3.0-patch", + "mojo42/jirafeau": "<4.4", + "mongodb/mongodb": ">=1,<1.9.2", + "monolog/monolog": ">=1.8,<1.12", + "moodle/moodle": "<4.3.0.0-RC2-dev", + "mos/cimage": "<0.7.19", + "movim/moxl": ">=0.8,<=0.10", + "mpdf/mpdf": "<=7.1.7", + "munkireport/comment": "<4.1", + "munkireport/managedinstalls": "<2.6", + "munkireport/munkireport": ">=2.5.3,<5.6.3", + "mustache/mustache": ">=2,<2.14.1", + "namshi/jose": "<2.2", + "neoan3-apps/template": "<1.1.1", + "neorazorx/facturascripts": "<2022.04", + "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", + "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", + "nilsteampassnet/teampass": "<3.0.10", + "nonfiction/nterchange": "<4.1.1", + "notrinos/notrinos-erp": "<=0.7", + "noumo/easyii": "<=0.9", + "nukeviet/nukeviet": "<4.5.02", + "nyholm/psr7": "<1.6.1", + "nystudio107/craft-seomatic": "<3.4.12", + "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", + "october/backend": "<1.1.2", + "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", + "october/october": "<=3.4.4", + "october/rain": "<1.0.472|>=1.1,<1.1.2", + "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2", + "omeka/omeka-s": "<4.0.3", + "onelogin/php-saml": "<2.10.4", + "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", + "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev", + "openid/php-openid": "<2.3", + "openmage/magento-lts": "<20.2", + "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", + "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", + "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", + "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", + "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", + "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", + "oro/customer-portal": ">=4.2,<=4.2.8|>=5,<5.0.11|>=5.1,<5.1.1", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<5.0.8", + "oxid-esales/oxideshop-ce": "<4.5", + "packbackbooks/lti-1-3-php-library": "<5", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": "<3", + "pagekit/pagekit": "<=1.0.18", + "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", + "paypal/merchant-sdk-php": "<3.12", + "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", + "pear/pear": "<=1.10.1", + "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", + "personnummer/personnummer": "<3.0.2", + "phanan/koel": "<5.1.4", + "phenx/php-svg-lib": "<0.5.1", + "php-mod/curl": "<2.3.2", + "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1", + "phpems/phpems": ">=6,<=6.1.3", + "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", + "phpmailer/phpmailer": "<6.5", + "phpmussel/phpmussel": ">=1,<1.6", + "phpmyadmin/phpmyadmin": "<5.2.1", + "phpmyfaq/phpmyfaq": "<=3.1.7", + "phpoffice/phpexcel": "<1.8", + "phpoffice/phpspreadsheet": "<1.16", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.34", + "phpservermon/phpservermon": "<3.6", + "phpsysinfo/phpsysinfo": "<3.4.3", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", + "phpwhois/phpwhois": "<=4.2.5", + "phpxmlrpc/extras": "<0.6.1", + "phpxmlrpc/phpxmlrpc": "<4.9.2", + "pi/pi": "<=2.5", + "pimcore/admin-ui-classic-bundle": "<1.2.2", + "pimcore/customer-management-framework-bundle": "<4.0.6", + "pimcore/data-hub": "<1.2.4", + "pimcore/demo": "<10.3", + "pimcore/ecommerce-framework-bundle": "<1.0.10", + "pimcore/perspective-editor": "<1.5.1", + "pimcore/pimcore": "<11.1.1", + "pixelfed/pixelfed": "<=0.11.4", + "plotly/plotly.js": "<2.25.2", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1", + "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", + "pressbooks/pressbooks": "<5.18", + "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/blockreassurance": "<=5.1.3", + "prestashop/blockwishlist": ">=2,<2.1.1", + "prestashop/contactform": ">=1.0.1,<4.3", + "prestashop/gamification": "<2.3.2", + "prestashop/prestashop": "<8.1.3", + "prestashop/productcomments": "<5.0.2", + "prestashop/ps_emailsubscription": "<2.6.1", + "prestashop/ps_facetedsearch": "<3.4.1", + "prestashop/ps_linklist": "<3.1", + "privatebin/privatebin": "<1.4", + "processwire/processwire": "<=3.0.200", + "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", + "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<1.7", + "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", + "ptrofimov/beanstalk_console": "<1.7.14", + "pubnub/pubnub": "<6.1", + "pusher/pusher-php-server": "<2.2.1", + "pwweb/laravel-core": "<=0.3.6.0-beta", + "pyrocms/pyrocms": "<=3.9.1", + "rainlab/blog-plugin": "<1.4.1", + "rainlab/debugbar-plugin": "<3.1", + "rainlab/user-plugin": "<=1.4.5", + "rankmath/seo-by-rank-math": "<=1.0.95", + "rap2hpoutre/laravel-log-viewer": "<0.13", + "react/http": ">=0.7,<1.9", + "really-simple-plugins/complianz-gdpr": "<6.4.2", + "remdex/livehelperchat": "<3.99", + "reportico-web/reportico": "<=7.1.21", + "rhukster/dom-sanitizer": "<1.0.7", + "rmccue/requests": ">=1.6,<1.8", + "robrichards/xmlseclibs": "<3.0.4", + "roots/soil": "<4.1", + "rudloff/alltube": "<3.0.3", + "s-cart/core": "<6.9", + "s-cart/s-cart": "<6.9", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", + "sabre/dav": "<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": "<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "sfroemken/url_redirect": "<=1.2.1", + "sheng/yiicms": "<=1.2", + "shopware/core": "<=6.5.7.3", + "shopware/platform": "<=6.5.7.3", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<=5.7.17", + "shopware/storefront": "<=6.4.8.1", + "shopxo/shopxo": "<2.2.6", + "showdoc/showdoc": "<2.10.4", + "silverstripe-australia/advancedreports": ">=1,<=2", + "silverstripe/admin": "<1.13.19|>=2,<2.1.8", + "silverstripe/assets": ">=1,<1.11.1", + "silverstripe/cms": "<4.11.3", + "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", + "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", + "silverstripe/framework": "<4.13.39|>=5,<5.1.11", + "silverstripe/graphql": "<3.8.2|>=4,<4.3.7|>=5,<5.1.3", + "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", + "silverstripe/recipe-cms": ">=4.5,<4.5.3", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", + "silverstripe/subsites": ">=2,<2.6.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", + "silverstripe/userforms": "<3", + "silverstripe/versioned-admin": ">=1,<1.11.1", + "simple-updates/phpwhois": "<=1", + "simplesamlphp/saml2": "<1.15.4|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12", + "simplesamlphp/simplesamlphp": "<1.18.6", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "simplesamlphp/simplesamlphp-module-openid": "<1", + "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", + "simplesamlphp/xml-security": "==1.6.11", + "simplito/elliptic-php": "<1.0.6", + "sitegeist/fluid-components": "<3.5", + "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", + "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", + "slim/slim": "<2.6", + "slub/slub-events": "<3.0.3", + "smarty/smarty": "<3.1.48|>=4,<4.3.1", + "snipe/snipe-it": "<=6.2.2", + "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", + "spatie/browsershot": "<3.57.4", + "spipu/html2pdf": "<5.2.8", + "spoon/library": "<1.4.1", + "spoonity/tcpdf": "<6.2.22", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "ssddanbrown/bookstack": "<22.02.3", + "statamic/cms": "<4.36", + "stormpath/sdk": "<9.9.99", + "studio-42/elfinder": "<2.1.62", + "subhh/libconnect": "<7.0.8|>=8,<8.1", + "sukohi/surpass": "<1", + "sulu/sulu": "<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8|==2.4.0.0-RC1|>=2.5,<2.5.10", + "sumocoders/framework-user-bundle": "<1.4", + "swag/paypal": "<5.4.4", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "swiftyedit/swiftyedit": "<1.2", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": "<1.10.1", + "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", + "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", + "symbiote/silverstripe-seed": "<6.0.3", + "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfont/process": ">=0", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", + "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8", + "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", + "symfony/symfony": "<4.4.51|>=5,<5.4.31|>=6,<6.3.8", + "symfony/translation": ">=2,<2.0.17", + "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", + "symfony/ux-autocomplete": "<2.11.2", + "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/webhook": ">=6.3,<6.3.8", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "symphonycms/symphony-2": "<2.6.4", + "t3/dce": "<0.11.5|>=2.2,<2.6.2", + "t3g/svg-sanitizer": "<1.0.3", + "t3s/content-consent": "<1.0.3|>=2,<2.0.2", + "tastyigniter/tastyigniter": "<3.3", + "tcg/voyager": "<=1.4", + "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "thinkcmf/thinkcmf": "<=5.1.7", + "thorsten/phpmyfaq": "<3.2.2", + "tikiwiki/tiki-manager": "<=17.1", + "tinymce/tinymce": "<5.10.9|>=6,<6.7.3", + "tinymighty/wiki-seo": "<1.2.2", + "titon/framework": "<9.9.99", + "tobiasbg/tablepress": "<=2.0.0.0-RC1", + "topthink/framework": "<6.0.14", + "topthink/think": "<=6.1.1", + "topthink/thinkphp": "<=3.2.3", + "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", + "tribalsystems/zenario": "<=9.4.59197", + "truckersmp/phpwhois": "<=4.3.1", + "ttskch/pagination-service-provider": "<1", + "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", + "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": "<8.7.55|>=9,<9.5.44|>=10,<10.4.41|>=11,<11.5.33|>=12,<12.4.8", + "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", + "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-install": ">=12.2,<12.4.8", + "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", + "ua-parser/uap-php": "<3.8", + "uasoft-indonesia/badaso": "<=2.9.7", + "unisharp/laravel-filemanager": "<2.6.4", + "userfrosting/userfrosting": ">=0.3.1,<4.6.3", + "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", + "uvdesk/community-skeleton": "<=1.1.1", + "vanilla/safecurl": "<0.9.2", + "verot/class.upload.php": "<=2.1.6", + "vova07/yii2-fileapi-widget": "<0.1.9", + "vrana/adminer": "<4.8.1", + "waldhacker/hcaptcha": "<2.1.2", + "wallabag/tcpdf": "<6.2.22", + "wallabag/wallabag": "<2.6.7", + "wanglelecc/laracms": "<=1.0.3", + "web-auth/webauthn-framework": ">=3.3,<3.3.4", + "webbuilders-group/silverstripe-kapost-bridge": "<0.4", + "webcoast/deferred-image-processing": "<1.0.2", + "webklex/laravel-imap": "<5.3", + "webklex/php-imap": "<5.3", + "webpa/webpa": "<3.1.2", + "wikibase/wikibase": "<=1.39.3", + "wikimedia/parsoid": "<0.12.2", + "willdurand/js-translation-bundle": "<2.1.1", + "winter/wn-backend-module": "<1.2.4", + "winter/wn-system-module": "<1.2.4", + "wintercms/winter": "<1.2.3", + "woocommerce/woocommerce": "<6.6", + "wp-cli/wp-cli": "<2.5", + "wp-graphql/wp-graphql": "<=1.14.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wpcloud/wp-stateless": "<3.2", + "wwbn/avideo": "<=12.4", + "xataface/xataface": "<3", + "xpressengine/xpressengine": "<3.0.15", + "yeswiki/yeswiki": "<4.1", + "yetiforce/yetiforce-crm": "<=6.4", + "yidashi/yii2cmf": "<=2", + "yii2mod/yii2-cms": "<1.9.2", + "yiisoft/yii": "<1.1.29", + "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2-authclient": "<2.2.15", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.43", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<=2.2.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", + "yoast-seo-for-typo3/yoast_seo": "<7.2.3", + "yourls/yourls": "<=1.8.2", + "zencart/zencart": "<=1.5.7.0-beta", + "zendesk/zendesk_api_client_php": "<2.2.11", + "zendframework/zend-cache": "<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": "<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<=3", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": "<2.0.2", + "zendframework/zendrest": "<2.0.2", + "zendframework/zendservice-amazon": "<2.0.3", + "zendframework/zendservice-api": "<1", + "zendframework/zendservice-audioscrobbler": "<2.0.2", + "zendframework/zendservice-nirvanix": "<2.0.2", + "zendframework/zendservice-slideshare": "<2.0.2", + "zendframework/zendservice-technorati": "<2.0.2", + "zendframework/zendservice-windowsazure": "<2.0.2", + "zendframework/zendxml": "<1.0.1", + "zenstruck/collection": "<0.2.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": "<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<=6.1.53" + }, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "keywords": [ + "dev" + ], + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2024-01-23T21:04:12+00:00" + }, + { + "name": "slim/http-cache", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim-HttpCache.git", + "reference": "d1a091aca45695a2159194132872f4a544416bc9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim-HttpCache/zipball/d1a091aca45695a2159194132872f4a544416bc9", + "reference": "d1a091aca45695a2159194132872f4a544416bc9", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.0", + "psr/http-server-middleware": "^1.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.28", + "phpunit/phpunit": "^8.5.13 || ^9.3.8", + "slim/psr7": "^1.1", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\HttpCache\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + } + ], + "description": "Slim Framework HTTP cache middleware and service provider", + "homepage": "https://www.slimframework.com", + "keywords": [ + "cache", + "framework", + "middleware", + "slim" + ], + "support": { + "issues": "https://github.com/slimphp/Slim-HttpCache/issues", + "source": "https://github.com/slimphp/Slim-HttpCache/tree/1.1.0" + }, + "time": "2020-12-08T17:32:05+00:00" + }, + { + "name": "slim/psr7", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim-Psr7.git", + "reference": "2867758fcd4c92c6c767df7c3f5f28ab2df40c1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim-Psr7/zipball/2867758fcd4c92c6c767df7c3f5f28ab2df40c1b", + "reference": "2867758fcd4c92c6c767df7c3f5f28ab2df40c1b", + "shasum": "" + }, + "require": { + "fig/http-message-util": "^1.1.5", + "php": "^7.3 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0", + "symfony/polyfill-php80": "^1.23" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.2", + "ext-json": "*", + "http-interop/http-factory-tests": "^0.9.0", + "php-http/psr7-integration-tests": "dev-master", + "phpspec/prophecy": "^1.14", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^0.12.99", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\Psr7\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + } + ], + "description": "Strict PSR-7 implementation", + "homepage": "https://www.slimframework.com", + "keywords": [ + "http", + "psr-7", + "psr7" + ], + "support": { + "issues": "https://github.com/slimphp/Slim-Psr7/issues", + "source": "https://github.com/slimphp/Slim-Psr7/tree/1.5.1" + }, + "time": "2023-05-10T04:00:28+00:00" + }, + { + "name": "slim/slim", + "version": "4.9.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Slim.git", + "reference": "44d3c9c0bfcc47e52e42b097b6062689d21b904b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Slim/zipball/44d3c9c0bfcc47e52e42b097b6062689d21b904b", + "reference": "44d3c9c0bfcc47e52e42b097b6062689d21b904b", + "shasum": "" + }, + "require": { + "ext-json": "*", + "nikic/fast-route": "^1.3", + "php": "^7.3 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "adriansuter/php-autoload-override": "^1.2", + "ext-simplexml": "*", + "guzzlehttp/psr7": "^2.0", + "laminas/laminas-diactoros": "^2.8", + "nyholm/psr7": "^1.4", + "nyholm/psr7-server": "^1.0", + "phpspec/prophecy": "^1.14", + "phpspec/prophecy-phpunit": "^2.0", + "phpstan/phpstan": "^0.12.99", + "phpunit/phpunit": "^9.5", + "slim/http": "^1.2", + "slim/psr7": "^1.5", + "squizlabs/php_codesniffer": "^3.6" + }, + "suggest": { + "ext-simplexml": "Needed to support XML format in BodyParsingMiddleware", + "ext-xml": "Needed to support XML format in BodyParsingMiddleware", + "php-di/php-di": "PHP-DI is the recommended container library to be used with Slim", + "slim/psr7": "Slim PSR-7 implementation. See https://www.slimframework.com/docs/v4/start/installation.html for more information." + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\": "Slim" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "https://joshlockhart.com" + }, + { + "name": "Andrew Smith", + "email": "a.smith@silentworks.co.uk", + "homepage": "http://silentworks.co.uk" + }, + { + "name": "Rob Allen", + "email": "rob@akrabat.com", + "homepage": "http://akrabat.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + }, + { + "name": "Gabriel Manricks", + "email": "gmanricks@me.com", + "homepage": "http://gabrielmanricks.com" + } + ], + "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs", + "homepage": "https://www.slimframework.com", + "keywords": [ + "api", + "framework", + "micro", + "router" + ], + "support": { + "docs": "https://www.slimframework.com/docs/v4/", + "forum": "https://discourse.slimframework.com/", + "irc": "irc://irc.freenode.net:6667/slimphp", + "issues": "https://github.com/slimphp/Slim/issues", + "rss": "https://www.slimframework.com/blog/feed.rss", + "slack": "https://slimphp.slack.com/", + "source": "https://github.com/slimphp/Slim", + "wiki": "https://github.com/slimphp/Slim/wiki" + }, + "funding": [ + { + "url": "https://opencollective.com/slimphp", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slim/slim", + "type": "tidelift" + } + ], + "time": "2021-10-05T03:00:00+00:00" + }, + { + "name": "slim/twig-view", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/slimphp/Twig-View.git", + "reference": "9ceaff0764ab8e70f9eeee825a9efd0b4e1dfc85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slimphp/Twig-View/zipball/9ceaff0764ab8e70f9eeee825a9efd0b4e1dfc85", + "reference": "9ceaff0764ab8e70f9eeee825a9efd0b4e1dfc85", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.0", + "slim/slim": "^4.7", + "twig/twig": "^3.1" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.58", + "phpunit/phpunit": "^8.5.13 || ^9.3.8", + "psr/http-factory": "^1.0", + "squizlabs/php_codesniffer": "^3.5", + "weirdan/prophecy-shim": "^1.0 || ^2.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Slim\\Views\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Josh Lockhart", + "email": "hello@joshlockhart.com", + "homepage": "http://joshlockhart.com" + }, + { + "name": "Pierre Berube", + "email": "pierre@lgse.com", + "homepage": "http://www.lgse.com" + } + ], + "description": "Slim Framework 4 view helper built on top of the Twig 3 templating component", + "homepage": "https://www.slimframework.com", + "keywords": [ + "framework", + "slim", + "template", + "twig", + "view" + ], + "support": { + "issues": "https://github.com/slimphp/Twig-View/issues", + "source": "https://github.com/slimphp/Twig-View/tree/3.2.0" + }, + "time": "2020-12-08T17:04:14+00:00" + }, + { + "name": "stevenmaguire/oauth2-keycloak", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/stevenmaguire/oauth2-keycloak.git", + "reference": "05ead6bb6bcd2b6f96dfae87c769dcd3e5f6129d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stevenmaguire/oauth2-keycloak/zipball/05ead6bb6bcd2b6f96dfae87c769dcd3e5f6129d", + "reference": "05ead6bb6bcd2b6f96dfae87c769dcd3e5f6129d", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "^4.0 || ^5.0 || ^6.0", + "league/oauth2-client": "^2.0", + "php": "~7.2 || ~8.0" + }, + "require-dev": { + "mockery/mockery": "~1.5.0", + "phpunit/phpunit": "~9.6.4", + "squizlabs/php_codesniffer": "~3.7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Stevenmaguire\\OAuth2\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Steven Maguire", + "email": "stevenmaguire@gmail.com", + "homepage": "https://github.com/stevenmaguire" + } + ], + "description": "Keycloak OAuth 2.0 Client Provider for The PHP League OAuth2-Client", + "keywords": [ + "authorisation", + "authorization", + "client", + "keycloak", + "oauth", + "oauth2" + ], + "support": { + "issues": "https://github.com/stevenmaguire/oauth2-keycloak/issues", + "source": "https://github.com/stevenmaguire/oauth2-keycloak/tree/4.0.0" + }, + "time": "2023-03-14T09:43:47+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-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/v2.5.2" + }, + "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:53:40+00:00" + }, + { + "name": "symfony/intl", + "version": "v5.4.30", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "cd6cce16151ac871071a3495e7a325460b952b5a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/cd6cce16151ac871071a3495e7a325460b952b5a", + "reference": "cd6cce16151ac871071a3495e7a325460b952b5a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "support": { + "source": "https://github.com/symfony/intl/tree/v5.4.30" + }, + "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": "2023-10-28T09:19:54+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "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 an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + }, + "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": "2023-02-14T08:03:56+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-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.28.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": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.4.31", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "ba72f72fceddf36f00bd495966b5873f2d17ad8f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/ba72f72fceddf36f00bd495966b5873f2d17ad8f", + "reference": "ba72f72fceddf36f00bd495966b5873f2d17ad8f", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "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 to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.4.31" + }, + "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": "2023-11-03T16:16:43+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "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 translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + }, + "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-06-27T16:58:25+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v5.4.34", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "4ced0e91705d689b77763678367bd522d79f9f9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/4ced0e91705d689b77763678367bd522d79f9f9a", + "reference": "4ced0e91705d689b77763678367bd522d79f9f9a", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<5.3", + "symfony/form": "<5.4.21|>=6,<6.2.7", + "symfony/http-foundation": "<5.3", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<5.2", + "symfony/workflow": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "egulias/email-validator": "^2.1.10|^3|^4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/console": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/form": "^5.4.21|^6.2.7", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/security-http": "^4.4|^5.0|^6.0", + "symfony/serializer": "^5.2|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^5.2|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/workflow": "^5.2|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "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 integration for Twig with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bridge/tree/v5.4.34" + }, + "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": "2023-12-15T11:59:38+00:00" + }, + { + "name": "tracy/tracy", + "version": "v2.9.8", + "source": { + "type": "git", + "url": "https://github.com/nette/tracy.git", + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/tracy/zipball/d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", + "reference": "d84fb3ca4e9fa5a9352e6d18f0b8cd767f25901e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-session": "*", + "php": ">=7.2 <8.3" + }, + "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.8" + }, + "time": "2023-09-25T10:36:51+00:00" + }, + { + "name": "twig/intl-extra", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/intl-extra.git", + "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/7b3db67c700735f473a265a97e1adaeba3e6ca0c", + "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/intl": "^5.4|^6.0|^7.0", + "twig/twig": "^3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twig\\Extra\\Intl\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Twig extension for Intl", + "homepage": "https://twig.symfony.com", + "keywords": [ + "intl", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/intl-extra/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-11-21T17:27:48+00:00" + }, + { + "name": "twig/twig", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "reference": "9d15f0ac07f44dc4217883ec6ae02fd555c6f71d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php80": "^1.22" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.3|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-11-21T18:54:41+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/pcre", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "b439557066cd445732fa57cbc8d905394b4db8a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/b439557066cd445732fa57cbc8d905394b4db8a0", + "reference": "b439557066cd445732fa57cbc8d905394b4db8a0", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/2.1.1" + }, + "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": "2023-10-11T07:10:55+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "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-02-25T21:32:43+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^11", + "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.30 || ^5.4" + }, + "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.5.0" + }, + "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-12-30T00:15:36+00:00" + }, + { + "name": "helmich/phpunit-json-assert", + "version": "v3.4.3", + "source": { + "type": "git", + "url": "https://github.com/martin-helmich/phpunit-json-assert.git", + "reference": "73d72cc86f427ff247c8f356798b0568a185cf53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/martin-helmich/phpunit-json-assert/zipball/73d72cc86f427ff247c8f356798b0568a185cf53", + "reference": "73d72cc86f427ff247c8f356798b0568a185cf53", + "shasum": "" + }, + "require": { + "justinrainbow/json-schema": "^5.0", + "php": "^7.2 || ^8.0", + "softcreatr/jsonpath": "^0.7.2 || ^0.8" + }, + "conflict": { + "phpunit/phpunit": "<8.0 || >= 10.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Helmich\\JsonAssert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Martin Helmich", + "email": "m.helmich@mittwald.de" + } + ], + "description": "PHPUnit assertions for JSON documents", + "support": { + "issues": "https://github.com/martin-helmich/phpunit-json-assert/issues", + "source": "https://github.com/martin-helmich/phpunit-json-assert/tree/v3.4.3" + }, + "funding": [ + { + "url": "https://donate.helmich.me", + "type": "custom" + }, + { + "url": "https://github.com/martin-helmich", + "type": "github" + } + ], + "time": "2023-02-01T09:41:56+00:00" + }, + { + "name": "helmich/phpunit-psr7-assert", + "version": "v4.3.0", + "source": { + "type": "git", + "url": "https://github.com/martin-helmich/phpunit-psr7-assert.git", + "reference": "dfe594a09f55ea7f87120363d6720ca1a94c0878" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/martin-helmich/phpunit-psr7-assert/zipball/dfe594a09f55ea7f87120363d6720ca1a94c0878", + "reference": "dfe594a09f55ea7f87120363d6720ca1a94c0878", + "shasum": "" + }, + "require": { + "helmich/phpunit-json-assert": "^3.4", + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0 || >= 10.0" + }, + "require-dev": { + "guzzlehttp/psr7": "^1.2", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Helmich\\Psr7Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Martin Helmich", + "email": "m.helmich@mittwald.de" + } + ], + "description": "PHPUnit assertions for testing PSR7-compliant applications", + "support": { + "issues": "https://github.com/martin-helmich/phpunit-psr7-assert/issues", + "source": "https://github.com/martin-helmich/phpunit-psr7-assert/tree/v4.3.0" + }, + "funding": [ + { + "url": "https://donate.helmich.me", + "type": "custom" + }, + { + "url": "https://github.com/martin-helmich", + "type": "github" + } + ], + "time": "2020-12-22T06:27:54+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "v5.2.13", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", + "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/v5.2.13" + }, + "time": "2023-09-26T02:20:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "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.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.18.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0" + }, + "time": "2023-12-10T21:03:43+00:00" + }, + { + "name": "pdepend/pdepend", + "version": "2.16.2", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", + "shasum": "" + }, + "require": { + "php": ">=5.3.7", + "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/polyfill-mbstring": "^1.19" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0|^1.2.3", + "gregwar/rst": "^1.0", + "squizlabs/php_codesniffer": "^2.0.0" + }, + "bin": [ + "src/bin/pdepend" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "PDepend\\": "src/main/php/PDepend" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" + ], + "support": { + "issues": "https://github.com/pdepend/pdepend/issues", + "source": "https://github.com/pdepend/pdepend/tree/2.16.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend", + "type": "tidelift" + } + ], + "time": "2023-12-17T18:09:59+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "77a32518733312af16a44300404e945338981de3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" + }, + "time": "2022-03-15T21:29:03+00:00" + }, + { + "name": "phpmd/phpmd", + "version": "2.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpmd/phpmd.git", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", + "shasum": "" + }, + "require": { + "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", + "ext-xml": "*", + "pdepend/pdepend": "^2.16.1", + "php": ">=5.3.9" + }, + "require-dev": { + "easy-doc/easy-doc": "0.0.0 || ^1.3.2", + "ext-json": "*", + "ext-simplexml": "*", + "gregwar/rst": "^1.0", + "mikey179/vfsstream": "^1.6.8", + "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" + }, + "bin": [ + "src/bin/phpmd" + ], + "type": "library", + "autoload": { + "psr-0": { + "PHPMD\\": "src/main/php" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Manuel Pichler", + "email": "github@manuel-pichler.de", + "homepage": "https://github.com/manuelpichler", + "role": "Project Founder" + }, + { + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" + }, + { + "name": "Other contributors", + "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", + "role": "Contributors" + } + ], + "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", + "homepage": "https://phpmd.org/", + "keywords": [ + "dev", + "mess detection", + "mess detector", + "pdepend", + "phpmd", + "pmd" + ], + "support": { + "irc": "irc://irc.freenode.org/phpmd", + "issues": "https://github.com/phpmd/phpmd/issues", + "source": "https://github.com/phpmd/phpmd/tree/2.15.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd", + "type": "tidelift" + } + ], + "time": "2023-12-11T08:22:20+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.18.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d4f454f7e1193933f04e6500de3e79191648ed0c", + "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2 || ^2.0", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0 || ^5.0", + "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpstan/phpstan": "^1.9", + "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "dev", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.18.0" + }, + "time": "2023-12-07T16:22:33+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "29f8114c2c319a4308e6b070902211e062efa392" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/29f8114c2c319a4308e6b070902211e062efa392", + "reference": "29f8114c2c319a4308e6b070902211e062efa392", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.18", + "phpunit/phpunit": "^9.1 || ^10.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.1.0" + }, + "time": "2023-12-08T12:48:02+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.30", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089", + "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:47:57+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.16", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3767b2c56ce02d01e3491046f33466a1ae60a37f", + "reference": "3767b2c56ce02d01e3491046f33466a1ae60a37f", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.16" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-01-19T07:03:14+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:19:30+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bde739e7565280bda77be70044ac1047bc007e34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-02T09:26:13+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:20:34+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "softcreatr/jsonpath", + "version": "0.7.6", + "source": { + "type": "git", + "url": "https://github.com/SoftCreatR/JSONPath.git", + "reference": "e04c02cb78bcc242c69d17dac5b29436bf3e1076" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/SoftCreatR/JSONPath/zipball/e04c02cb78bcc242c69d17dac5b29436bf3e1076", + "reference": "e04c02cb78bcc242c69d17dac5b29436bf3e1076", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1,<8.0" + }, + "replace": { + "flow/jsonpath": "*" + }, + "require-dev": { + "phpunit/phpunit": ">=7.0", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Flow\\JSONPath\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Frank", + "email": "stephen@flowsa.com", + "homepage": "https://prismaticbytes.com", + "role": "Developer" + }, + { + "name": "Sascha Greuel", + "email": "hello@1-2.dev", + "homepage": "https://1-2.dev", + "role": "Developer" + } + ], + "description": "JSONPath implementation for parsing, searching and flattening arrays", + "support": { + "email": "hello@1-2.dev", + "forum": "https://github.com/SoftCreatR/JSONPath/discussions", + "issues": "https://github.com/SoftCreatR/JSONPath/issues", + "source": "https://github.com/SoftCreatR/JSONPath" + }, + "funding": [ + { + "url": "https://ecologi.com/softcreatr?r=61212ab3fc69b8eb8a2014f4", + "type": "custom" + }, + { + "url": "https://github.com/softcreatr", + "type": "github" + } + ], + "time": "2022-09-27T09:27:12+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.8.1", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/14f5fff1e64118595db5408e946f3a22c75807f7", + "reference": "14f5fff1e64118595db5408e946f3a22c75807f7", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-01-11T20:47:48+00:00" + }, + { + "name": "symfony/config", + "version": "v5.4.31", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "dd5ea39de228813aba0c23c3a4153da2a4cf3cd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/dd5ea39de228813aba0c23c3a4153da2a4cf3cd9", + "reference": "dd5ea39de228813aba0c23c3a4153da2a4cf3cd9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "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": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v5.4.31" + }, + "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": "2023-11-09T08:22:43+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v5.4.34", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "75d568165a65fa7d8124869ec7c3a90424352e6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/75d568165a65fa7d8124869ec7c3a90424352e6c", + "reference": "75d568165a65fa7d8124869ec7c3a90424352e6c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4.26|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "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": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.34" + }, + "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": "2023-12-28T09:31:38+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.4.25", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", + "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "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/v5.4.25" + }, + "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": "2023-05-31T13:04:02+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.28.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": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-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/v2.5.2" + }, + "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-05-30T19:17:29+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2023-11-20T00:12:19+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "eappointment/mellon": 20, + "eappointment/zmsentities": 20, + "eappointment/zmsslim": 20, + "eappointment/zmsclient": 20, + "roave/security-advisories": 20, + "phpmd/phpmd": 0 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "ext-json": ">=1.0" + }, + "platform-dev": [], + "platform-overrides": { + "php": "7.3" + }, + "plugin-api-version": "2.6.0" +} diff --git a/zmsticketprinter/config.example.php b/zmsticketprinter/config.example.php new file mode 100644 index 000000000..a0556f9cd --- /dev/null +++ b/zmsticketprinter/config.example.php @@ -0,0 +1,25 @@ + false, + CURLOPT_TIMEOUT => 25, + CURLOPT_PROXY => ZMS_API_PROXY, + //CURLOPT_VERBOSE => true, + ]; +} + +if (getenv('ZMS_TIMEADJUST')) { + App::$now = new DateTimeImmutable(date(getenv('ZMS_TIMEADJUST')), new DateTimeZone('Europe/Berlin')); +} diff --git a/zmsticketprinter/js/block/digital-clock.js b/zmsticketprinter/js/block/digital-clock.js new file mode 100644 index 000000000..8d6205cd6 --- /dev/null +++ b/zmsticketprinter/js/block/digital-clock.js @@ -0,0 +1,29 @@ +import BaseView from '../lib/baseview'; +import $ from "jquery"; + +class View extends BaseView { + + constructor (element) { + super(element); + this.bindPublicMethods('initClock', 'setInterval'); + console.log("Found digital clock"); + $(function() {this.setInterval}); + } + + initClock () { + var time=new Date(); + var hour=time.getHours(); + var minute=time.getMinutes(); + var second=time.getSeconds(); + var temp=hour; + if (second%2) temp+=((minute<10)? ":0" : ":")+minute; + else temp+=((minute<10)? ":0" : " ")+minute; + this.$.text(temp); + } + + setInterval () { + setInterval(this.initClock, 1000); + } +} + +export default View; diff --git a/zmsticketprinter/js/block/notification-keyboard-handheld.js b/zmsticketprinter/js/block/notification-keyboard-handheld.js new file mode 100644 index 000000000..9f3d82adc --- /dev/null +++ b/zmsticketprinter/js/block/notification-keyboard-handheld.js @@ -0,0 +1,65 @@ + +import BaseView from '../lib/baseview'; +import $ from "jquery"; + +class View extends BaseView { + + + constructor (element) { + super(element); + this.source = this.$.attr('id'); + if (this.source == "waitingNumberPad") { + this.minNumberLength = 1; + } else { + this.minNumberLength = 10; + } + + this.bindPublicMethods('appendNumber', 'deleteNumber', 'clearNumbers', 'checkNumber'); + console.log("Found keyboard-handheld"); + this.$.find('button.ziffer').on('click', this.appendNumber); + this.$.find('button#removelastdigit').on('click', this.deleteNumber); + this.$.find('button#removealldigitsphone').on('click', this.clearNumbers); + this.$numberInput = this.$.find('.nummerneingabe'); + } + + appendNumber (event) { + let $content = $(event.target).closest('button'); + let number = $content.text(); + this.$numberInput.val(this.$numberInput.val() + '' + number); + this.checkNumber(); + return false; + } + + deleteNumber () { + this.$numberInput.val(this.$numberInput.val().replace(/.$/, '')); + this.checkNumber(); + return false; + } + + clearNumbers () { + this.$numberInput.val(''); + this.checkNumber(); + return false; + } + + checkNumber () { + //console.log(this.$numberInput.val()); + var number = this.$numberInput.val(); + if (this.source == 'waitingNumberPad') { + number = number.replace(/^0+/, ''); + } + number = number.replace(/[^\d]/g, ''); + var $button = this.$.find('.nachtrag'); + if (number.length >= this.minNumberLength) { + $button.removeClass('disabled').attr('disabled', false); + } else { + if (!$button.hasClass('disabled')) { + $button.addClass('disabled').attr('disabled', true); + } + } + this.$numberInput.val(number); + } + +} + +export default View; diff --git a/zmsticketprinter/js/element/form/preventFormResubmit.js b/zmsticketprinter/js/element/form/preventFormResubmit.js new file mode 100644 index 000000000..2a7789302 --- /dev/null +++ b/zmsticketprinter/js/element/form/preventFormResubmit.js @@ -0,0 +1,19 @@ +import $ from "jquery"; + +const preventFormResubmit = (element) => { + const $form = $(element) + + $form.on('submit', (ev) => { + if ($form.data('submitted') === true) { + // Previously submitted - don't submit again + ev.stopPropagation(); + ev.preventDefault(); + } else { + // Mark it so that the next submit can be ignored + $form.data('submitted', true); + } + + }) +} + +export default preventFormResubmit diff --git a/zmsticketprinter/js/index.js b/zmsticketprinter/js/index.js new file mode 100644 index 000000000..eef984120 --- /dev/null +++ b/zmsticketprinter/js/index.js @@ -0,0 +1,40 @@ +// -------------------------------------------------------- +// ZMS Ticketprinter behavior +// -------------------------------------------------------- + +// Import base libs +import $ from "jquery"; +import settings from './settings'; +//import { forceHttps } from './lib/utils' + +// Import Views +import Reload from "./page/main"; +import GetHash from "./page/newhash"; +import PrintDialog from "./page/process"; +import DigitalTime from "./block/digital-clock"; +import NotificationKeyboardHandheldView from "./block/notification-keyboard-handheld"; +import preventFormResubmit from './element/form/preventFormResubmit' + +// Bind jQuery on $ for testing +window.$ = $; +window.bo = { + "zmsticketprinter": settings +}; + +// Init Views +$('#newhash').each(function() { new GetHash(this);}); +$('#index, #message, #exception').each(function() { new Reload(this);}); +$('#process').each(function() { new PrintDialog(this);}); +$('.digitaluhr').each(function() { new DigitalTime(this);}); +$('.smsbox').each(function() { new NotificationKeyboardHandheldView(this);}); + +// prevent resubmits +$('form').each(function() { + preventFormResubmit(this); +}) + +// Say hello +console.log("Welcome to the ZMS Ticketprinter interface..."); + +// Force https protocol +//forceHttps(); diff --git a/zmsticketprinter/js/lib/baseview.js b/zmsticketprinter/js/lib/baseview.js new file mode 100644 index 000000000..af04819c9 --- /dev/null +++ b/zmsticketprinter/js/lib/baseview.js @@ -0,0 +1,50 @@ +import $ from "jquery"; +import ErrorHandler from './errorHandler'; +import DialogHandler from './dialogHandler'; +import { lightbox } from './utils'; + +class BaseView extends ErrorHandler { + + constructor(element) { + super(element); + this.$main = $(element); + } + + get $ () { + return this.$main; + } + + static loadCallStatic(url, method = 'GET', data = null) { + const ajaxSettings = { + method + }; + if (method === 'POST' || method === 'PUT') { + ajaxSettings.data = data; + } + return new Promise((resolve, reject) => { + $.ajax(url, ajaxSettings).done(responseData => { + resolve(responseData); + }).fail(err => { + console.log('XHR load error', url, err); + reject(err); + }) + }); + } + + static loadDialogStatic (response, callback) { + const { lightboxContentElement, destroyLightbox } = lightbox(this.$main, () => { + destroyLightbox(), + callback() + }); + new DialogHandler(lightboxContentElement, { + response: response, + callback: () => { + callback(); + destroyLightbox(); + } + }) + } + +} + +export default BaseView; diff --git a/zmsticketprinter/js/lib/bindHandler.js b/zmsticketprinter/js/lib/bindHandler.js new file mode 100644 index 000000000..da149522b --- /dev/null +++ b/zmsticketprinter/js/lib/bindHandler.js @@ -0,0 +1,16 @@ + + +class BindHandler { + + bindPublicMethods (...methods) { + let object = this; + methods.forEach( function (method) { + if (typeof object[method] !== 'function') { + throw "Method not found: " + method; + } + object[method] = object[method].bind(object); + }); + } +} + +export default BindHandler; diff --git a/zmsticketprinter/js/lib/dialogHandler.js b/zmsticketprinter/js/lib/dialogHandler.js new file mode 100644 index 000000000..38d6083bc --- /dev/null +++ b/zmsticketprinter/js/lib/dialogHandler.js @@ -0,0 +1,45 @@ +import $ from 'jquery'; + +class DialogHandler { + + constructor (element, options) { + this.$main = $(element); + this.response = options.response; + this.callback = options.callback || (() => {}); + this.parent = options.parent; + this.handleLightbox = options.handleLightbox || (() => {}); + this.bindEvents(); + this.render(); + } + + render() { + var content = $(this.response).filter('div.dialog'); + if (content.length == 0) { + var message = $(this.response).find('div.dialog'); + if (message.length > 0) { + content = message.get(0).outerHTML; + } + } + this.$main.html(content); + } + + bindEvents() { + this.$main.off().on('click', '.button-ok', (ev) => { + ev.preventDefault(); + ev.stopPropagation(); + this.callback(ev); + }).on('click', '.button-abort', (ev) => { + ev.preventDefault(); + ev.stopPropagation(); + this.handleLightbox(); + }).on('click', '.button-callback', (ev) => { + ev.preventDefault(); + ev.stopPropagation(); + var callback = $(ev.target).data('callback'); + this.callback = this.parent[callback]; + this.callback(ev); + }); + } +} + +export default DialogHandler diff --git a/zmsticketprinter/js/lib/errorHandler.js b/zmsticketprinter/js/lib/errorHandler.js new file mode 100644 index 000000000..dc910bad6 --- /dev/null +++ b/zmsticketprinter/js/lib/errorHandler.js @@ -0,0 +1,18 @@ + +import BindHandler from "./bindHandler"; + +class ErrorHandler extends BindHandler { + constructor() { + super(); + this._errorHandler = function() {}; + } + + get errorHandler () { + return this._errorHandler; + } + set errorHandler (callback) { + this._errorHandler = callback; + } +} + +export default ErrorHandler; diff --git a/zmsticketprinter/js/lib/utils.js b/zmsticketprinter/js/lib/utils.js new file mode 100644 index 000000000..65f24a01e --- /dev/null +++ b/zmsticketprinter/js/lib/utils.js @@ -0,0 +1,53 @@ +import $ from 'jquery' +import Baseview from './baseview'; +import settings from '../settings'; + +const lightboxHtml = '' + +export const lightbox = (parentElement, onBackgroundClick) => { + const lightboxElement = $(lightboxHtml) + + if (!parentElement) { + parentElement = $('body') + lightboxElement.addClass('fixed') + } + + const destroyLightbox = () => { + lightboxElement.off() + lightboxElement.remove() + } + + const lightboxContentElement = lightboxElement.find('.lightbox__content'); + + lightboxElement.on('click', (ev) => { + //console.log('background click', ev); + ev.stopPropagation() + ev.preventDefault() + destroyLightbox() + onBackgroundClick() + }).on('click', '.lightbox__content', (ev) => { + ev.stopPropagation(); + }) + + + if ($(parentElement).find('.lightbox').length) { + $(parentElement).find('.lightbox').remove(); + } + $(parentElement).append(lightboxElement) + + return { + lightboxContentElement, + destroyLightbox + } +} + +export const forceHttps = () => { + if (document.location.protocol !== "https:") { + Baseview.loadCallStatic(`${settings.includeUrl}/dialog/?template=force_https`).then((response) => { + Baseview.loadDialogStatic(response, () => { + document.location.href = "https://" + document.location.href.substring(document.location.protocol.length, document.location.href.length); + }); + }); + } + +} diff --git a/zmsticketprinter/js/page/main.js b/zmsticketprinter/js/page/main.js new file mode 100644 index 000000000..c87ce942f --- /dev/null +++ b/zmsticketprinter/js/page/main.js @@ -0,0 +1,28 @@ +import BaseView from '../lib/baseview'; +import $ from "jquery"; + +class View extends BaseView { + + constructor (element) { + super(element); + this.bindPublicMethods('setInterval', 'reloadPage'); + console.log('Redirect to home url every 30 seconds'); + $(function() {this.setInterval}); + } + + reloadPage () { + window.location.href = this.getUrl('/home/'); + } + + setInterval () { + var reloadTime = window.bo.zmsticketprinter.reloadInterval; + setInterval(this.reloadPage, reloadTime * 1000); + } + + getUrl (relativePath) { + let includepath = window.bo.zmsticketprinter.includepath; + return includepath + relativePath; + } +} + +export default View; diff --git a/zmsticketprinter/js/page/newhash.js b/zmsticketprinter/js/page/newhash.js new file mode 100644 index 000000000..c334dd62d --- /dev/null +++ b/zmsticketprinter/js/page/newhash.js @@ -0,0 +1,32 @@ +import BaseView from '../lib/baseview'; +import cookie from "js-cookie"; +import $ from "jquery"; + +class View extends BaseView { + + constructor (element) { + super(element); + this.bindPublicMethods('load','setTimeout','getUrl','reloadPage'); + $(window).on('load', this.load); + } + + load () { + cookie.remove("Ticketprinter"); + this.setTimeout(); + } + + reloadPage () { + window.location.href = this.getUrl('/home/'); + } + + setTimeout () { + setTimeout(this.reloadPage, 5000); + } + + getUrl (relativePath) { + let includepath = window.bo.zmsticketprinter.includepath; + return includepath + relativePath; + } +} + +export default View; diff --git a/zmsticketprinter/js/page/process.js b/zmsticketprinter/js/page/process.js new file mode 100644 index 000000000..670531d2f --- /dev/null +++ b/zmsticketprinter/js/page/process.js @@ -0,0 +1,52 @@ +import BaseView from '../lib/baseview'; +import $ from "jquery"; + +class View extends BaseView { + + constructor (element) { + super(element); + this.bindPublicMethods('printDialog', 'reload'); + console.log('Print data and redirect to home url after presetted time'); + $(function() {this.printDialog}); + } + + reload () { + window.location.href = this.getUrl('/home/'); + } + + getUrl (relativePath) { + let includepath = window.bo.zmsticketprinter.includepath; + return includepath + relativePath; + } + + printDialog () { + document.title = "Anmeldung an Warteschlange"; + window.print(); + + var beforePrint = () => { + console.log('start printing'); + }; + var afterPrint = () => { + let reloadTime = window.bo.zmsticketprinter.reloadInterval; + setTimeout(() => { + this.reload(); + }, reloadTime * 1000); // default is 30 + }; + + if (window.matchMedia) { + var mediaQueryList = window.matchMedia('print'); + mediaQueryList.addListener(function(mql) { + if (mql.matches) { + beforePrint(); + } else { + afterPrint(); + } + }); + } + + window.onbeforeprint = beforePrint; + window.onafterprint = afterPrint; + } +} + +export default View; diff --git a/zmsticketprinter/js/settings.js b/zmsticketprinter/js/settings.js new file mode 100644 index 000000000..2255983bf --- /dev/null +++ b/zmsticketprinter/js/settings.js @@ -0,0 +1,5 @@ +export default { + 'reloadInterval': 30, + 'animationEnd': 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', + 'includeUrl': '/terminvereinbarung/ticketprinter' +}; \ No newline at end of file diff --git a/zmsticketprinter/package-lock.json b/zmsticketprinter/package-lock.json new file mode 100644 index 000000000..e41d6127d --- /dev/null +++ b/zmsticketprinter/package-lock.json @@ -0,0 +1,4585 @@ +{ + "name": "zmsticketprinter", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "zmsticketprinter", + "version": "1.0.0", + "license": "EUPL-1.2", + "devDependencies": { + "eslint": "^7.32.0", + "jquery": "^3.7.0", + "js-cookie": "^2.2.1", + "parcel-bundler-v2": "git+https://gitlab+deploy-token-134:LvrEUypzSw6XBd1xDNXD@gitlab.berlinonline.net/module/parcel-bunder-v2.git#master" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@lezer/common": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", + "dev": true + }, + "node_modules/@lezer/lr": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", + "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", + "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", + "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", + "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", + "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", + "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", + "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mischnic/json-sourcemap": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", + "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0", + "@lezer/lr": "^1.0.0", + "json5": "^2.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz", + "integrity": "sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz", + "integrity": "sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz", + "integrity": "sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz", + "integrity": "sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz", + "integrity": "sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz", + "integrity": "sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@parcel/bundler-default": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.11.0.tgz", + "integrity": "sha512-ZIs0865Lp871ZK83k5I9L4DeeE26muNMrHa7j8bvls6fKBJKAn8djrhfU4XOLyziU4aAOobcPwXU0+npWqs52g==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/graph": "3.1.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/cache": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.11.0.tgz", + "integrity": "sha512-RSSkGNjO00lJPyftzaC9eaNVs4jMjPSAm0VJNWQ9JSm2n4A9BzQtTFAt1vhJOzzW1UsQvvBge9DdfkB7a2gIOw==", + "dev": true, + "dependencies": { + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/utils": "2.11.0", + "lmdb": "2.8.5" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.11.0.tgz", + "integrity": "sha512-YHs9g/i5af/sd/JrWAojU9YFbKffcJ3Tx2EJaK0ME8OJsye91UaI/3lxSUYLmJG9e4WLNJtqci8V5FBMz//ZPg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.11.0.tgz", + "integrity": "sha512-RArhBPRTCfz77soX2IECH09NUd76UBWujXiPRcXGPIHK+C3L1cRuzsNcA39QeSb3thz3b99JcozMJ1nkC2Bsgw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.11.0.tgz", + "integrity": "sha512-1e2+qcZkm5/0f4eI20p/DemcYiSxq9d/eyjpTXA7PulJaHbL1wonwUAuy3mvnAvDnLOJmAk/obDVgX1ZfxMGtg==", + "dev": true, + "dependencies": { + "@parcel/bundler-default": "2.11.0", + "@parcel/compressor-raw": "2.11.0", + "@parcel/namer-default": "2.11.0", + "@parcel/optimizer-css": "2.11.0", + "@parcel/optimizer-htmlnano": "2.11.0", + "@parcel/optimizer-image": "2.11.0", + "@parcel/optimizer-svgo": "2.11.0", + "@parcel/optimizer-swc": "2.11.0", + "@parcel/packager-css": "2.11.0", + "@parcel/packager-html": "2.11.0", + "@parcel/packager-js": "2.11.0", + "@parcel/packager-raw": "2.11.0", + "@parcel/packager-svg": "2.11.0", + "@parcel/packager-wasm": "2.11.0", + "@parcel/reporter-dev-server": "2.11.0", + "@parcel/resolver-default": "2.11.0", + "@parcel/runtime-browser-hmr": "2.11.0", + "@parcel/runtime-js": "2.11.0", + "@parcel/runtime-react-refresh": "2.11.0", + "@parcel/runtime-service-worker": "2.11.0", + "@parcel/transformer-babel": "2.11.0", + "@parcel/transformer-css": "2.11.0", + "@parcel/transformer-html": "2.11.0", + "@parcel/transformer-image": "2.11.0", + "@parcel/transformer-js": "2.11.0", + "@parcel/transformer-json": "2.11.0", + "@parcel/transformer-postcss": "2.11.0", + "@parcel/transformer-posthtml": "2.11.0", + "@parcel/transformer-raw": "2.11.0", + "@parcel/transformer-react-refresh-wrap": "2.11.0", + "@parcel/transformer-svg": "2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/core": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.11.0.tgz", + "integrity": "sha512-Npe0S6hVaqWEwRL+HI7gtOYOaoE5bJQZTgUDhsDoppWbau51jOlRYOZTXuvRK/jxXnze4/S1sdM24xBYAQ5qkw==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/graph": "3.1.0", + "@parcel/logger": "2.11.0", + "@parcel/package-manager": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/profiler": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", + "abortcontroller-polyfill": "^1.1.9", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "json5": "^2.2.0", + "msgpackr": "^1.9.9", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.11.0.tgz", + "integrity": "sha512-4dJmOXVL5YGGQRRsQosQbSRONBcboB71mSwaeaEgz3pPdq9QXVPLACkGe/jTXSqa3OnAHu3g5vQLpE1g5xqBqw==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.11.0.tgz", + "integrity": "sha512-K6SOjOrQsz1GdNl2qKBktq7KJ3Q3yxK8WXdmQYo10wG39dr051xtMb38aqieTp4eVhL8Yaq2iJgGkdr11fuBnA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/fs": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.11.0.tgz", + "integrity": "sha512-zWckdnnovdrgdFX4QYuQV4bbKCsh6IYCkmwaB4yp47rhw1MP0lkBINLt4yFPHBxWXOpElCfxjL+z69c9xJQRBQ==", + "dev": true, + "dependencies": { + "@parcel/rust": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/graph": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.1.0.tgz", + "integrity": "sha512-d1dTW5C7A52HgDtoXlyvlET1ypSlmIxSIZOJ1xp3R9L9hgo3h1u3jHNyaoTe/WPkGVe2QnFxh0h+UibVJhu9vg==", + "dev": true, + "dependencies": { + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.11.0.tgz", + "integrity": "sha512-HtMEdCq3LKnvv4T2CIskcqlf2gpBvHMm3pkeUFB/hc/7hW/hE1k6/HA2VOQvc0tBsaMpmEx7PCrfrH56usQSyA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.11.0.tgz", + "integrity": "sha512-YA60EWbXi6cLOIzcwRC2wijotPauOGQbUi0vSbu0O6/mjQ68kWCMGz0hwZjDRQcPypQVJEIvTgMymLbvumxwhg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.11.0.tgz", + "integrity": "sha512-DEwBSKSClg4DA2xAWimYkw9bFi7MFb9TdT7/TYZStMTsfYHPWOyyjGR7aVr3Ra4wNb+XX6g4rR41yp3HD6KO7A==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/node-resolver-core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.2.0.tgz", + "integrity": "sha512-XJRSxCkNbGFWjfmwFdcQZ/qlzWZd35qLtvLz2va8euGL7M5OMEQOv7dsvEhl0R+CC2zcnfFzZwxk78q6ezs8AQ==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.11.0.tgz", + "integrity": "sha512-bV97PRxshHV3dMwOpLRgcP1QNhrVWh6VVDfm2gmWULpvsjoykcPS6vrCFksY5CpQsSvNHqJBzQjWS8FubUI76w==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.11.0.tgz", + "integrity": "sha512-c20pz4EFF5DNFmqYgptlIj49eT6xjGLkDTdHH3RRzxKovuSXWfYSPs3GED3ZsjVuQyjNQif+/MAk9547F7hrdQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.11.0.tgz", + "integrity": "sha512-jCaJww5QFG2GuNzYW8nlSW+Ea+Cv47TRnOPJNquFIajgfTLJ5ddsWbaNal0GQsL8yNiCBKWd1AV4W0RH9tG0Jg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/optimizer-svgo": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.11.0.tgz", + "integrity": "sha512-TQpvfBhjV2IsuFHXUolbDS6XWB3DDR2rYTlqlA8LMmuOY7jQd9Bnkl4JnapzWm/bRuzRlzdGjjVCPGL8iShFvA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/@parcel/optimizer-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.11.0.tgz", + "integrity": "sha512-ftf42F3JyZxJb6nnLlgNGyNQ273YOla4dFGH/tWC8iTwObHUpWe7cMbCGcrSJBvAlsLkZfLpFNAXFxUgxdKyHQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "@swc/core": "^1.3.36", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.11.0.tgz", + "integrity": "sha512-QzdsrUYlAwIzb8by7WJjqYnbR1MoMKWbtE1MXUeYsZbFusV8B6pOH+lwqNJKS/BFtddZMRPYFueZS2N2fwzjig==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/node-resolver-core": "3.2.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.11.0.tgz", + "integrity": "sha512-AyIxsp4eL8c22vp2oO2hSRnr3hSVNkARNZc9DG6uXxCc2Is5tUEX0I4PwxWnAx0EI44l+3zX/o414zT8yV9wwQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.11.0.tgz", + "integrity": "sha512-ho5AQ70naTV8IqkKIbKtK+jsXQ5TJfFgtBvmJlyB3YydRMbIc+3g4G0xgIvf15V4uCMw9Md0Sv1W65nQXHPQoA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.11.0.tgz", + "integrity": "sha512-SxjCsd0xQfg5H73YtVJj9VOpr9s0rwMsSoeykjkatbkEla9NsZajsUkd/bfYf+/0WvEKOrB8oUBo15HkGOgKug==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.11.0.tgz", + "integrity": "sha512-2/0JQ8DZrz7cVNXwD6OYoUUtSSnlr4dsz8ZkpFDKsBJhvMHtC78Sq+1EDixDGOMiUcalSEjNsoHtkpq9uNh+Xw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.11.0.tgz", + "integrity": "sha512-2wQBkzLwcaWFGWz8TP+bgsXgiueWPzrjKsWugWdDfq0FbXh8XVeR/599qnus3RFHZy4cH6L6yq/7zxcljtxK8A==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "posthtml": "^0.16.4" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.11.0.tgz", + "integrity": "sha512-tTy4EbDXeeiZ0oB7L2FWaHSD1mbmYZP6R5HXqkvc5dECGUKPU5Jz6ek2C5AM+HfQdQLKXPQ/Xw3eJnI/AmctVg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">=12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.11.0.tgz", + "integrity": "sha512-9npuKBlhnPn7oeUpLJGecceg16GkXbvzbr6MNSZiHhkx3IBeITHQXlZnp2zAjUOFreNsYOfifwEF2S4KsARfBQ==", + "dev": true, + "dependencies": { + "@parcel/types": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/profiler": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.11.0.tgz", + "integrity": "sha512-s10SS09prOdwnaAcjK8M5zO8o+zPJJW5oOqXPNdf6KH4NGD/ue7iOk2xM8QLw6ulSwxE7NDt++lyfW3AXgCZwg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", + "chrome-trace-event": "^1.0.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.11.0.tgz", + "integrity": "sha512-hY0iO0f+LifgJHDUIjGQJnxLFSkk2jlbfy+kIaft5oI3/IM+UljecfGO+14XH8mYlqRXXPsT09TJe8ZKQzp4ZQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "chalk": "^4.1.0", + "cli-progress": "^3.12.0", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.11.0.tgz", + "integrity": "sha512-T4ue1+oLFNdcd9maw8QWQuxzOS2kX2jOrSvYKwYd9oGnqiAr1rpiHYYKJhHng+PF5ybwWkj8dUJfGh2NoQysJA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-tracer": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.11.0.tgz", + "integrity": "sha512-33q4ftO26OPWHkUpEm0bzzSjW2kHEh6q/JFePwf8W6APTQVruj4mV46+Fh6rxX42ixs92K/QoiE0gYgWZQVDHA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "chrome-trace-event": "^1.0.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.11.0.tgz", + "integrity": "sha512-suZNN2lE5W48LPTwAbG7gnj1IeubkCVEm0XspWXcXUtCzglimNJ8PVVBGx171o5CqDpdbGF3AqHjG9N3uOwXag==", + "dev": true, + "dependencies": { + "@parcel/node-resolver-core": "3.2.0", + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.11.0.tgz", + "integrity": "sha512-uVwNBtoLMrlPHLvRS05BVhLseduMOpZT36yiIjS0YSBJcC6/otI9AY7ZiDPYmrB5xTqM0R+D554JhPaJHCuocw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-js": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.11.0.tgz", + "integrity": "sha512-fH3nJoexINz7s4cDzp0Vjsx0k1pMYSa5ch38LbbNqCKTermy0pS0zZuvgfLfHFFP+AMRpFQenrF7h7N3bgDmHw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-react-refresh": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.11.0.tgz", + "integrity": "sha512-Kfnc7gLjhoephLMnjABrkIkzVfzPrpJlxiJFIleY2Fm57YhmCfKsEYxm3lHOutNaYl1VArW0LKClPH/VHG9vfQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "react-error-overlay": "6.0.9", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-service-worker": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.11.0.tgz", + "integrity": "sha512-c8MaSpSbXIKuN5sA/g4UsrsH1BtBZ6Em+eSxt9AYbdPtWrW+qwCioNVZj9lugBRUzDMjVfJz0yK59nS42hABvw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.11.0.tgz", + "integrity": "sha512-UkLWdHOD8Md2YmJDPsqd3yIs9chhdl/ATfV/B/xdPKGmqtNouYpDCRlq+WxMt3mLoYgHEg9UwrWLTebo2rr2iQ==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.11.0.tgz", + "integrity": "sha512-WKGblnp7r426VG+cpeQzc6dj/30EoUaYwyl4OEaigQSJizyuPWTBWTz6FUw+ih1/sg37h+D1BIh9C2FsVzpzbw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-css": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.11.0.tgz", + "integrity": "sha512-nFmBulF/ErNoafO87JbVrBavjBMNwE/kahbCRVxc2Mvlphz4F4lBW4eDRS5l4xBqFJaNkHr9R55ehLBBilF4Jw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-html": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.11.0.tgz", + "integrity": "sha512-90vp7mbvvfqPr9XIINpMcELtywj56f1bxfOkLQgWU1bm22H0FT3i5dqdac++2My0IGDvMwhAEjQfbn4pA579NQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2", + "srcset": "4" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.11.0.tgz", + "integrity": "sha512-QiZj18UHf3lVFsi65Vz8YbS3ydx9Pe9x8ktMxE1oh9qpznN8lD7gE/Z9DxuTZB84EZ9pKytKwcv5WGXP25xIFg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.11.0.tgz", + "integrity": "sha512-G1sv0n8/fJqHqwUs0iVnVdmRY0Kh8kWaDkuWcU/GJBHMGhUnLXKdNwxX2Av9UdBL14bU1nTINfr9qOfnQotXWg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.11.0", + "@parcel/workers": "2.11.0", + "@swc/helpers": "^0.5.0", + "browserslist": "^4.6.6", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.13.7", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@parcel/transformer-json": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.11.0.tgz", + "integrity": "sha512-Wt/wgSBaRWmPL4gpvjkV0bCBRxFOtsuLNzsm8vYA5poxTFhuLY+AoyQ8S2+xXU4VxwBfdppfIr2Ny3SwGs8xbQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "json5": "^2.2.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-postcss": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.11.0.tgz", + "integrity": "sha512-Ugy8XHBaUptGotsvwzq7gPCvkCopTIqqZ0JZ40Jmy9slGms8wnx06pNHA1Be/RcJwkJ2TbSu+7ncZdgmP5x5GQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/utils": "2.11.0", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-posthtml": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.11.0.tgz", + "integrity": "sha512-dMK4p1RRAoIJEjK/Wz9GOLqwHqdD/VQDhMPk+6sUKp5zf2MhSohUstpp5gKsSZivCM3PS2f8k9rgroacJ/ReuA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-raw": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.11.0.tgz", + "integrity": "sha512-2ltp3TgS+cxEqSM1vk5gDtJrYx4KMuRRtbSgSvkdldyOgPhflnLU3/HRz72hXSNGqYOV0/JN0+ocsfPnqR00ug==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.11.0.tgz", + "integrity": "sha512-6pY0CdIgIpXC6XpsDWizf+zLgiuEsJ106HjWLwF7/R72BrvDhLPZ6jRu4UTrnd6bM89KahPw9fZZzjKoA5Efcw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/utils": "2.11.0", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-sass": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.11.0.tgz", + "integrity": "sha512-caVIj1UANPgtlZOXcsBrQ++ouAy04hcq+wTwxJrf5t3XA4pdXQmkiLs5WIIUUGBp5hwkV6/BSwc4ht87MunA0g==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.11.0", + "@parcel/source-map": "^2.1.1", + "sass": "^1.38.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.11.0.tgz", + "integrity": "sha512-GrTNi04OoQSXsyrB7FqQPeYREscEXFhIBPkyQ0q7WDG/yYynWljiA0kwITCtMjPfv2EDVks292dvM3EcnERRIA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/plugin": "2.11.0", + "@parcel/rust": "2.11.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.11.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.11.0.tgz", + "integrity": "sha512-lN5XlfV9b1s2rli8q1LqsLtu+D4ZwNI3sKmNcL/3tohSfQcF2EgF+MaiANGo9VzXOzoWFHt4dqWjO4OcdyC5tg==", + "dev": true, + "dependencies": { + "@parcel/cache": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/package-manager": "2.11.0", + "@parcel/source-map": "^2.1.1", + "@parcel/workers": "2.11.0", + "utility-types": "^3.10.0" + } + }, + "node_modules/@parcel/utils": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.11.0.tgz", + "integrity": "sha512-AcL70cXlIyE7eQdvjQbYxegN5l+skqvlJllxTWg4YkIZe9p8Gmv74jLAeLWh5F+IGl5WRn0TSy9JhNJjIMQGwQ==", + "dev": true, + "dependencies": { + "@parcel/codeframe": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/markdown-ansi": "2.11.0", + "@parcel/rust": "2.11.0", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.0.tgz", + "integrity": "sha512-XJLGVL0DEclX5pcWa2N9SX1jCGTDd8l972biNooLFtjneuGqodupPQh6XseXIBBeVIMaaJ7bTcs3qGvXwsp4vg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.0", + "@parcel/watcher-darwin-arm64": "2.4.0", + "@parcel/watcher-darwin-x64": "2.4.0", + "@parcel/watcher-freebsd-x64": "2.4.0", + "@parcel/watcher-linux-arm-glibc": "2.4.0", + "@parcel/watcher-linux-arm64-glibc": "2.4.0", + "@parcel/watcher-linux-arm64-musl": "2.4.0", + "@parcel/watcher-linux-x64-glibc": "2.4.0", + "@parcel/watcher-linux-x64-musl": "2.4.0", + "@parcel/watcher-win32-arm64": "2.4.0", + "@parcel/watcher-win32-ia32": "2.4.0", + "@parcel/watcher-win32-x64": "2.4.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.0.tgz", + "integrity": "sha512-+fPtO/GsbYX1LJnCYCaDVT3EOBjvSFdQN9Mrzh9zWAOOfvidPWyScTrHIZHHfJBvlHzNA0Gy0U3NXFA/M7PHUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.0.tgz", + "integrity": "sha512-T/At5pansFuQ8VJLRx0C6C87cgfqIYhW2N/kBfLCUvDhCah0EnLLwaD/6MW3ux+rpgkpQAnMELOCTKlbwncwiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.0.tgz", + "integrity": "sha512-vZMv9jl+szz5YLsSqEGCMSllBl1gU1snfbRL5ysJU03MEa6gkVy9OMcvXV1j4g0++jHEcvzhs3Z3LpeEbVmY6Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.0.tgz", + "integrity": "sha512-dHTRMIplPDT1M0+BkXjtMN+qLtqq24sLDUhmU+UxxLP2TEY2k8GIoqIJiVrGWGomdWsy5IO27aDV1vWyQ6gfHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.0.tgz", + "integrity": "sha512-9NQXD+qk46RwATNC3/UB7HWurscY18CnAPMTFcI9Y8CTbtm63/eex1SNt+BHFinEQuLBjaZwR2Lp+n7pmEJPpQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.0.tgz", + "integrity": "sha512-QuJTAQdsd7PFW9jNGaV9Pw+ZMWV9wKThEzzlY3Lhnnwy7iW23qtQFPql8iEaSFMCVI5StNNmONUopk+MFKpiKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.0.tgz", + "integrity": "sha512-oyN+uA9xcTDo/45bwsd6TFHa7Lc7hKujyMlvwrCLvSckvWogndCEoVYFNfZ6JJ2KNL/6fFiGPcbjp8jJmEh5Ng==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.0.tgz", + "integrity": "sha512-KphV8awJmxU3q52JQvJot0QMu07CIyEjV+2Tb2ZtbucEgqyRcxOBDMsqp1JNq5nuDXtcCC0uHQICeiEz38dPBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.0.tgz", + "integrity": "sha512-7jzcOonpXNWcSijPpKD5IbC6xC7yTibjJw9jviVzZostYLGxbz8LDJLUnLzLzhASPlPGgpeKLtFUMjAAzM+gSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.0.tgz", + "integrity": "sha512-NOej2lqlq8bQNYhUMnOD0nwvNql8ToQF+1Zhi9ULZoG+XTtJ9hNnCFfyICxoZLXor4bBPTOnzs/aVVoefYnjIg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.0.tgz", + "integrity": "sha512-IO/nM+K2YD/iwjWAfHFMBPz4Zqn6qBDqZxY4j2n9s+4+OuTSRM/y/irksnuqcspom5DjkSeF9d0YbO+qpys+JA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.0.tgz", + "integrity": "sha512-pAUyUVjfFjWaf/pShmJpJmNxZhbMvJASUpdes9jL6bTEJ+gDxPRSpXTIemNyNsb9AtbiGXs9XduP1reThmd+dA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/workers": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.11.0.tgz", + "integrity": "sha512-wjybqdSy6Nk0N9iBGsFcp7739W2zvx0WGfVxPVShqhz46pIkPOiFF/iSn+kFu5EmMKTRWeUif42+a6rRZ7pCnQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/profiler": "2.11.0", + "@parcel/types": "2.11.0", + "@parcel/utils": "2.11.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.11.0" + } + }, + "node_modules/@swc/core": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.106.tgz", + "integrity": "sha512-++QPSPkFq2qELYVScxNHJC42hKQChjiTWS2P0QQ5JWT4NHb9lmNSfrc1ylFIyImwRnxsW2MTBALLYLf95EFAsg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.106", + "@swc/core-darwin-x64": "1.3.106", + "@swc/core-linux-arm-gnueabihf": "1.3.106", + "@swc/core-linux-arm64-gnu": "1.3.106", + "@swc/core-linux-arm64-musl": "1.3.106", + "@swc/core-linux-x64-gnu": "1.3.106", + "@swc/core-linux-x64-musl": "1.3.106", + "@swc/core-win32-arm64-msvc": "1.3.106", + "@swc/core-win32-ia32-msvc": "1.3.106", + "@swc/core-win32-x64-msvc": "1.3.106" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.106.tgz", + "integrity": "sha512-XYcbViNyHnnm7RWOAO1YipMmthM7m2aXF32b0y+JMLYFBEyFpjVX9btLkzeL7wRx/5B3I35yJNhE+xyx0Q1Gkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.106.tgz", + "integrity": "sha512-YKDPhUdfuwhmOUS9+CaIwl/0Tp+f1b73BH2EIESuxSNsogZf18a8HQ8O0fQEwdiwmA5LEqw47cj+kfOWV/0+kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.106.tgz", + "integrity": "sha512-bHxxJXogvFfocLL5inZxxtx/x/WgKozigp80Vbx0viac1fPDJrqKBw2X4MzpMiuTRAGVQ03jJI6pDwbSBf+yDw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.106.tgz", + "integrity": "sha512-c7jue++CHLgtpeaakEukoCLT9eNrImizbleE9Y7Is8CHqLq/7DG4s+7ma9DFKXIzW2MpTg9byIEQfpqSphVW6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.106.tgz", + "integrity": "sha512-51EaC3Q8qAhLtWVnAVqoYX/gk3tK31cCBzUpwCcmhianhEBM2/WtKRAS4MqPhE8VVZuN3WjO2c2JaF2mX0yuoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.106.tgz", + "integrity": "sha512-tOUi8BB6jAeCXgx7ESLNnX7nrbMVKQ/XajK77v7Ad4SXf9HYArnimBJpXUUyVFJTXLSv4e6c7s6XHHqXb5Lwcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.106.tgz", + "integrity": "sha512-binLw4Lbd83NPy4/m/teH2nbaifxveSD+sKDvpxywRbvYW2I0w/iCBpUBcbnl16TQF4TPOGpq5YwG9lVxPVw5g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.106.tgz", + "integrity": "sha512-n4ttBWr8tM7DPzwcEOIBTyTMHZTzCmbic/HTtxEsPyMAf/Daen+yrTKzjPP6k2usfSrjkxA780RSJJxI1N8r2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.106.tgz", + "integrity": "sha512-GhDNIwxE5FhkujESI6h/4ysT3wxwmrzTUlZYaR8rRui6a6SdX9feIPUHPEE5o5hpyp+xqlmvRxKkRxOnwsq8iA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.106", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.106.tgz", + "integrity": "sha512-2M6yWChuMS1+/MPo3Dor0SOMkvmiugonWlzsZBAu/oZboH2xKrHSRv7brsBujb2Oe47r+NsbV+vq9tnnP9Vl1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true + }, + "node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001580", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz", + "integrity": "sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cli-progress": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz", + "integrity": "sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==", + "dev": true, + "dependencies": { + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.647", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.647.tgz", + "integrity": "sha512-Z/fTNGwc45WrYQhPaEcz5tAJuZZ8G7S/DBnhS6Kgp4BxnS40Z/HqlJ0hHg3Z79IGVzuVartIlTcjw/cQbPLgOw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlnano": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz", + "integrity": "sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.0.0", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^6.0.0", + "postcss": "^8.3.11", + "purgecss": "^5.0.0", + "relateurl": "^0.2.7", + "srcset": "4.0.0", + "svgo": "^3.0.2", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "dev": true + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.23.0.tgz", + "integrity": "sha512-SEArWKMHhqn/0QzOtclIwH5pXIYQOUEkF8DgICd/105O+GCgd7jxjNod/QPnBCSWvpRHQBGVz5fQ9uScby03zA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.23.0", + "lightningcss-darwin-x64": "1.23.0", + "lightningcss-freebsd-x64": "1.23.0", + "lightningcss-linux-arm-gnueabihf": "1.23.0", + "lightningcss-linux-arm64-gnu": "1.23.0", + "lightningcss-linux-arm64-musl": "1.23.0", + "lightningcss-linux-x64-gnu": "1.23.0", + "lightningcss-linux-x64-musl": "1.23.0", + "lightningcss-win32-x64-msvc": "1.23.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.23.0.tgz", + "integrity": "sha512-kl4Pk3Q2lnE6AJ7Qaij47KNEfY2/UXRZBT/zqGA24B8qwkgllr/j7rclKOf1axcslNXvvUdztjo4Xqh39Yq1aA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.23.0.tgz", + "integrity": "sha512-KeRFCNoYfDdcolcFXvokVw+PXCapd2yHS1Diko1z1BhRz/nQuD5XyZmxjWdhmhN/zj5sH8YvWsp0/lPLVzqKpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.23.0.tgz", + "integrity": "sha512-xhnhf0bWPuZxcqknvMDRFFo2TInrmQRWZGB0f6YoAsZX8Y+epfjHeeOIGCfAmgF0DgZxHwYc8mIR5tQU9/+ROA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.23.0.tgz", + "integrity": "sha512-fBamf/bULvmWft9uuX+bZske236pUZEoUlaHNBjnueaCTJ/xd8eXgb0cEc7S5o0Nn6kxlauMBnqJpF70Bgq3zg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.23.0.tgz", + "integrity": "sha512-RS7sY77yVLOmZD6xW2uEHByYHhQi5JYWmgVumYY85BfNoVI3DupXSlzbw+b45A9NnVKq45+oXkiN6ouMMtTwfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.23.0.tgz", + "integrity": "sha512-cU00LGb6GUXCwof6ACgSMKo3q7XYbsyTj0WsKHLi1nw7pV0NCq8nFTn6ZRBYLoKiV8t+jWl0Hv8KkgymmK5L5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.23.0.tgz", + "integrity": "sha512-q4jdx5+5NfB0/qMbXbOmuC6oo7caPnFghJbIAV90cXZqgV8Am3miZhC4p+sQVdacqxfd+3nrle4C8icR3p1AYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.23.0.tgz", + "integrity": "sha512-G9Ri3qpmF4qef2CV/80dADHKXRAQeQXpQTLx7AiQrBYQHqBjB75oxqj06FCIe5g4hNCqLPnM9fsO4CyiT1sFSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.23.0.tgz", + "integrity": "sha512-1rcBDJLU+obPPJM6qR5fgBUiCdZwZLafZM5f9kwjFLkb/UBNIzmae39uCSmh71nzPCTXZqHbvwu23OWnWEz+eg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lmdb": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", + "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.9.5", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.1.1", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.8.5", + "@lmdb/lmdb-darwin-x64": "2.8.5", + "@lmdb/lmdb-linux-arm": "2.8.5", + "@lmdb/lmdb-linux-arm64": "2.8.5", + "@lmdb/lmdb-linux-x64": "2.8.5", + "@lmdb/lmdb-win32-x64": "2.8.5" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/msgpackr": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.10.1.tgz", + "integrity": "sha512-r5VRLv9qouXuLiIBrLpl2d5ZvPt8svdQTl5/vMvE4nzDMyEX4sgW5yWhuBBj5UmgwOTWj8CIdSXn5sAfsHAWIQ==", + "dev": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz", + "integrity": "sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.7" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.2" + } + }, + "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz", + "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "dev": true, + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordered-binary": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", + "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", + "dev": true + }, + "node_modules/parcel": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.11.0.tgz", + "integrity": "sha512-H/RI1/DmuOkL8RuG/EpNPvtzrbF+7jA/R56ydEEm+lqFbYktKB4COR7JXdHkZXRgbSJyimrFB8d0r9+SaRnj0Q==", + "dev": true, + "dependencies": { + "@parcel/config-default": "2.11.0", + "@parcel/core": "2.11.0", + "@parcel/diagnostic": "2.11.0", + "@parcel/events": "2.11.0", + "@parcel/fs": "2.11.0", + "@parcel/logger": "2.11.0", + "@parcel/package-manager": "2.11.0", + "@parcel/reporter-cli": "2.11.0", + "@parcel/reporter-dev-server": "2.11.0", + "@parcel/reporter-tracer": "2.11.0", + "@parcel/utils": "2.11.0", + "chalk": "^4.1.0", + "commander": "^7.0.0", + "get-port": "^4.2.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parcel-bundler-v2": { + "name": "parcel-bunder-v2", + "version": "1.0.0", + "resolved": "git+https://gitlab+deploy-token-134:LvrEUypzSw6XBd1xDNXD@gitlab.berlinonline.net/module/parcel-bunder-v2.git#e3c95e4db71ad3354abc8069dbb83d7b9865f743", + "dev": true, + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@parcel/transformer-sass": "^2.0.0-nightly.776", + "parcel": "^2.0.0-nightly.776" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", + "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/sass": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", + "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svgo": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz", + "integrity": "sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/zmsticketprinter/package.json b/zmsticketprinter/package.json new file mode 100644 index 000000000..d9ee7aebb --- /dev/null +++ b/zmsticketprinter/package.json @@ -0,0 +1,39 @@ +{ + "name": "zmsticketprinter", + "version": "1.0.0", + "description": "zms ticketprinter frontend ", + "main": "index.js", + "private": true, + "keywords": [ + "zms", + "eappointment" + ], + "author": "BerlinOnline GmbH & Co. KG", + "license": "EUPL-1.2", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "lint": "eslint js/", + "fix": "eslint --fix js/", + "css": "parcel build scss/ticketprinter.scss --log-level verbose --detailed-report --target css", + "js": "parcel build js/index.js --log-level verbose --detailed-report --target js", + "csswatch": "parcel watch scss/ticketprinter.scss --log-level verbose --target css", + "jswatch": "parcel watch js/index.js --log-level verbose --no-hmr --target js", + "watch": "npm run jswatch & npm run csswatch &" + }, + "targets": { + "js": { + "publicUrl": "./", + "distDir": "public/_js/" + }, + "css": { + "publicUrl": "./", + "distDir": "public/_css/" + } + }, + "devDependencies": { + "eslint": "^7.32.0", + "jquery": "^3.7.0", + "js-cookie": "^2.2.1", + "parcel-bundler-v2": "git+https://gitlab+deploy-token-134:LvrEUypzSw6XBd1xDNXD@gitlab.berlinonline.net/module/parcel-bunder-v2.git#master" + } +} diff --git a/zmsticketprinter/phpmd.rules.xml b/zmsticketprinter/phpmd.rules.xml new file mode 100644 index 000000000..81e3a2067 --- /dev/null +++ b/zmsticketprinter/phpmd.rules.xml @@ -0,0 +1,13 @@ + + + Rulesets without controversial rules but including the check for superglobals + + + + + + diff --git a/zmsticketprinter/phpunit.xml b/zmsticketprinter/phpunit.xml new file mode 100644 index 000000000..58dec07a7 --- /dev/null +++ b/zmsticketprinter/phpunit.xml @@ -0,0 +1,28 @@ + + + + + + ./tests/Zmsticketprinter/ + + + + + ./src + + + + diff --git a/zmsticketprinter/public/_css/abbrechen.070433a8.png b/zmsticketprinter/public/_css/abbrechen.070433a8.png new file mode 100644 index 000000000..2264460d7 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen.070433a8.png differ diff --git a/zmsticketprinter/public/_css/abbrechen.7e22ca91.png b/zmsticketprinter/public/_css/abbrechen.7e22ca91.png new file mode 100644 index 000000000..2264460d7 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen.7e22ca91.png differ diff --git a/zmsticketprinter/public/_css/abbrechen.9455b46f.png b/zmsticketprinter/public/_css/abbrechen.9455b46f.png new file mode 100644 index 000000000..2264460d7 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen.9455b46f.png differ diff --git a/zmsticketprinter/public/_css/abbrechen.e1c491a3.png b/zmsticketprinter/public/_css/abbrechen.e1c491a3.png new file mode 100644 index 000000000..2264460d7 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen.e1c491a3.png differ diff --git a/zmsticketprinter/public/_css/abbrechen_a.08574efa.png b/zmsticketprinter/public/_css/abbrechen_a.08574efa.png new file mode 100644 index 000000000..9bc314ac8 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen_a.08574efa.png differ diff --git a/zmsticketprinter/public/_css/abbrechen_a.5a01cf8c.png b/zmsticketprinter/public/_css/abbrechen_a.5a01cf8c.png new file mode 100644 index 000000000..9bc314ac8 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen_a.5a01cf8c.png differ diff --git a/zmsticketprinter/public/_css/abbrechen_a.b18fdc6d.png b/zmsticketprinter/public/_css/abbrechen_a.b18fdc6d.png new file mode 100644 index 000000000..9bc314ac8 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen_a.b18fdc6d.png differ diff --git a/zmsticketprinter/public/_css/abbrechen_a.c1c76ee1.png b/zmsticketprinter/public/_css/abbrechen_a.c1c76ee1.png new file mode 100644 index 000000000..9bc314ac8 Binary files /dev/null and b/zmsticketprinter/public/_css/abbrechen_a.c1c76ee1.png differ diff --git a/zmsticketprinter/public/_css/background_eingabe.b451d7fc.png b/zmsticketprinter/public/_css/background_eingabe.b451d7fc.png new file mode 100644 index 000000000..6006ad896 Binary files /dev/null and b/zmsticketprinter/public/_css/background_eingabe.b451d7fc.png differ diff --git a/zmsticketprinter/public/_css/handynummer_nachtragen.1fbd03d4.png b/zmsticketprinter/public/_css/handynummer_nachtragen.1fbd03d4.png new file mode 100644 index 000000000..5ab6dd905 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_nachtragen.1fbd03d4.png differ diff --git a/zmsticketprinter/public/_css/handynummer_nachtragen.89c87dc3.png b/zmsticketprinter/public/_css/handynummer_nachtragen.89c87dc3.png new file mode 100644 index 000000000..5ab6dd905 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_nachtragen.89c87dc3.png differ diff --git a/zmsticketprinter/public/_css/handynummer_nachtragen.9c614106.png b/zmsticketprinter/public/_css/handynummer_nachtragen.9c614106.png new file mode 100644 index 000000000..5ab6dd905 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_nachtragen.9c614106.png differ diff --git a/zmsticketprinter/public/_css/handynummer_nachtragen.d6fe8b17.png b/zmsticketprinter/public/_css/handynummer_nachtragen.d6fe8b17.png new file mode 100644 index 000000000..5ab6dd905 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_nachtragen.d6fe8b17.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln.19134754.png b/zmsticketprinter/public/_css/handynummer_uebermitteln.19134754.png new file mode 100644 index 000000000..96f975077 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln.19134754.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln.409a90b4.png b/zmsticketprinter/public/_css/handynummer_uebermitteln.409a90b4.png new file mode 100644 index 000000000..96f975077 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln.409a90b4.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln.717299f7.png b/zmsticketprinter/public/_css/handynummer_uebermitteln.717299f7.png new file mode 100644 index 000000000..96f975077 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln.717299f7.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln.c0f38bb3.png b/zmsticketprinter/public/_css/handynummer_uebermitteln.c0f38bb3.png new file mode 100644 index 000000000..96f975077 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln.c0f38bb3.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_a.252894e6.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.252894e6.png new file mode 100644 index 000000000..7d633f650 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.252894e6.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_a.85d89036.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.85d89036.png new file mode 100644 index 000000000..7d633f650 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.85d89036.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_a.c40c8a63.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.c40c8a63.png new file mode 100644 index 000000000..7d633f650 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.c40c8a63.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_a.fefbbbd8.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.fefbbbd8.png new file mode 100644 index 000000000..7d633f650 Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_a.fefbbbd8.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_i.05dfaa48.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.05dfaa48.png new file mode 100644 index 000000000..2bf17802e Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.05dfaa48.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_i.4318f88d.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.4318f88d.png new file mode 100644 index 000000000..2bf17802e Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.4318f88d.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_i.503086e7.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.503086e7.png new file mode 100644 index 000000000..2bf17802e Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.503086e7.png differ diff --git a/zmsticketprinter/public/_css/handynummer_uebermitteln_i.fa02afc9.png b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.fa02afc9.png new file mode 100644 index 000000000..2bf17802e Binary files /dev/null and b/zmsticketprinter/public/_css/handynummer_uebermitteln_i.fa02afc9.png differ diff --git a/zmsticketprinter/public/_css/invisible_Mauszeiger.1837db88.cur b/zmsticketprinter/public/_css/invisible_Mauszeiger.1837db88.cur new file mode 100644 index 000000000..8ba93283a Binary files /dev/null and b/zmsticketprinter/public/_css/invisible_Mauszeiger.1837db88.cur differ diff --git a/zmsticketprinter/public/_css/invisible_Mauszeiger.6181f13e.cur b/zmsticketprinter/public/_css/invisible_Mauszeiger.6181f13e.cur new file mode 100644 index 000000000..8ba93283a Binary files /dev/null and b/zmsticketprinter/public/_css/invisible_Mauszeiger.6181f13e.cur differ diff --git a/zmsticketprinter/public/_css/invisible_Mauszeiger.e28f8c73.cur b/zmsticketprinter/public/_css/invisible_Mauszeiger.e28f8c73.cur new file mode 100644 index 000000000..8ba93283a Binary files /dev/null and b/zmsticketprinter/public/_css/invisible_Mauszeiger.e28f8c73.cur differ diff --git a/zmsticketprinter/public/_css/invisible_Mauszeiger.e2f2051c.cur b/zmsticketprinter/public/_css/invisible_Mauszeiger.e2f2051c.cur new file mode 100644 index 000000000..8ba93283a Binary files /dev/null and b/zmsticketprinter/public/_css/invisible_Mauszeiger.e2f2051c.cur differ diff --git a/zmsticketprinter/public/_css/ja_nein.6ffffbf5.png b/zmsticketprinter/public/_css/ja_nein.6ffffbf5.png new file mode 100644 index 000000000..e3630b61c Binary files /dev/null and b/zmsticketprinter/public/_css/ja_nein.6ffffbf5.png differ diff --git a/zmsticketprinter/public/_css/multibutton.8895f510.png b/zmsticketprinter/public/_css/multibutton.8895f510.png new file mode 100644 index 000000000..dd2d55786 Binary files /dev/null and b/zmsticketprinter/public/_css/multibutton.8895f510.png differ diff --git a/zmsticketprinter/public/_css/multibutton_disabled.ded1f1e1.png b/zmsticketprinter/public/_css/multibutton_disabled.ded1f1e1.png new file mode 100644 index 000000000..81e218b99 Binary files /dev/null and b/zmsticketprinter/public/_css/multibutton_disabled.ded1f1e1.png differ diff --git a/zmsticketprinter/public/_css/naechster_kunde.34f1134e.png b/zmsticketprinter/public/_css/naechster_kunde.34f1134e.png new file mode 100644 index 000000000..b1f6538bb Binary files /dev/null and b/zmsticketprinter/public/_css/naechster_kunde.34f1134e.png differ diff --git a/zmsticketprinter/public/_css/naechster_kunde.5902d80f.png b/zmsticketprinter/public/_css/naechster_kunde.5902d80f.png new file mode 100644 index 000000000..b1f6538bb Binary files /dev/null and b/zmsticketprinter/public/_css/naechster_kunde.5902d80f.png differ diff --git a/zmsticketprinter/public/_css/naechster_kunde.d114d62f.png b/zmsticketprinter/public/_css/naechster_kunde.d114d62f.png new file mode 100644 index 000000000..b1f6538bb Binary files /dev/null and b/zmsticketprinter/public/_css/naechster_kunde.d114d62f.png differ diff --git a/zmsticketprinter/public/_css/naechster_kunde.e9efb60d.png b/zmsticketprinter/public/_css/naechster_kunde.e9efb60d.png new file mode 100644 index 000000000..b1f6538bb Binary files /dev/null and b/zmsticketprinter/public/_css/naechster_kunde.e9efb60d.png differ diff --git a/zmsticketprinter/public/_css/print.css b/zmsticketprinter/public/_css/print.css new file mode 100644 index 000000000..3fff4b9ba --- /dev/null +++ b/zmsticketprinter/public/_css/print.css @@ -0,0 +1,67 @@ +body { + text-align: center; + font-family: Arial; + font-size: 19px; + padding: 0; } + +.hinweis { + font-size: 14px; + text-align: center; } + +.msg_ihre_nummernanzeige { + font-size: 38pt !important; + font-weight: bold; + color: #993300; + text-align: center; + margin: 10px; } + +.printausgabe { + font-size: 24px; + display: block; + width: 7cm; + text-align: center; } + +.kleineSchrift { + font-size: 11px; } + +.center { + margin: 0px; + text-align: left; } + +.box { + margin: 3px; + padding: 4px; + background: #FFFFFF; + display: none; } + +.boxontop { + margin-top: 0px; + padding-top: 0px; + text-align: center; + width: 7cm; + margin: auto; } + +.ueberschrift { + display: none; } + +div.label { + text-align: right; + float: left; + padding-right: 6px; } + +div.input { + margin: 0px 0px 6px 170px; } + +div.eingabe { + text-align: right; + float: left; + padding-right: 6px; } + +div.nummernblock { + float: left; + padding-right: 6px; } + +.noprint { + display: none; } + +/*# sourceMappingURL=print.css.map */ diff --git a/zmsticketprinter/public/_css/print.css.map b/zmsticketprinter/public/_css/print.css.map new file mode 100644 index 000000000..c2543b557 --- /dev/null +++ b/zmsticketprinter/public/_css/print.css.map @@ -0,0 +1 @@ +{"version":3,"file":"print.css","sources":["print.scss"],"sourcesContent":["body {\ntext-align: center;\nfont-family: Arial;\nfont-size: 19px;\npadding:0;\n}\n\n.hinweis {\nfont-size: 14px;\ntext-align: center;\n}\n\n.msg_ihre_nummernanzeige{\nfont-size: 38pt !important;\nfont-weight: bold;\ncolor:#993300;\ntext-align: center;\nmargin:10px;\n}\n\n.printausgabe\n{\n\tfont-size:24px;\n\tdisplay:block;\n width: 7cm;\n\ttext-align: center;\n}\n\n.kleineSchrift\n{\n\tfont-size: 11px;\n}\n.center {\n\tmargin: 0px;\n\ttext-align: left;\n}\n\n.box {\n\tmargin: 3px;\n\tpadding: 4px;\n\tbackground: #FFFFFF;\n display: none;\n}\n.boxontop {\n\tmargin-top: 0px;\n padding-top: 0px;\n\t text-align: center;\n\t width: 7cm;\n\t margin: auto;\n}\n.ueberschrift {\n display: none;\n}\n\ndiv.label {\ntext-align: right;\nfloat: left;\npadding-right: 6px;\n}\n\ndiv.input {\nmargin: 0px 0px 6px 170px;\n}\n\ndiv.eingabe {\ntext-align: right;\nfloat: left;\npadding-right: 6px;\n}\n\ndiv.nummernblock {\nfloat: left;\npadding-right: 6px;\n}\n\n.noprint {\n\tdisplay: none;\n}"],"mappings":"AAAA,AAAA,IAAI,CAAC;EACL,UAAU,EAAE,MAAO;EACnB,WAAW,EAAE,KAAM;EACnB,SAAS,EAAE,IAAK;EAChB,OAAO,EAAC,CAAE,GACT;;AAED,AAAA,QAAQ,CAAC;EACT,SAAS,EAAE,IAAK;EAChB,UAAU,EAAE,MAAO,GAClB;;AAED,AAAA,wBAAwB,CAAA;EACxB,SAAS,EAAE,eAAgB;EAC3B,WAAW,EAAE,IAAK;EAClB,KAAK,EAAC,OAAQ;EACd,UAAU,EAAE,MAAO;EACnB,MAAM,EAAC,IAAK,GACX;;AAED,AAAA,aAAa,CACb;EACC,SAAS,EAAC,IAAK;EACf,OAAO,EAAC,KAAM;EACX,KAAK,EAAE,GAAI;EACd,UAAU,EAAE,MAAO,GACnB;;AAED,AAAA,cAAc,CACd;EACC,SAAS,EAAE,IAAK,GAChB;;AACD,AAAA,OAAO,CAAC;EACP,MAAM,EAAE,GAAI;EACZ,UAAU,EAAE,IAAK,GACjB;;AAED,AAAA,IAAI,CAAC;EACJ,MAAM,EAAE,GAAI;EACZ,OAAO,EAAE,GAAI;EACb,UAAU,EAAE,OAAQ;EACjB,OAAO,EAAE,IAAK,GACjB;;AACD,AAAA,SAAS,CAAC;EACT,UAAU,EAAE,GAAI;EACb,WAAW,EAAE,GAAI;EACnB,UAAU,EAAE,MAAO;EACnB,KAAK,EAAE,GAAI;EACX,MAAM,EAAE,IAAK,GACd;;AACD,AAAA,aAAa,CAAC;EACV,OAAO,EAAE,IAAK,GACjB;;AAED,AAAG,GAAA,AAAA,MAAM,CAAC;EACV,UAAU,EAAE,KAAM;EAClB,KAAK,EAAE,IAAK;EACZ,aAAa,EAAE,GAAI,GAClB;;AAED,AAAG,GAAA,AAAA,MAAM,CAAC;EACV,MAAM,EAAE,iBAAkB,GACzB;;AAED,AAAG,GAAA,AAAA,QAAQ,CAAC;EACZ,UAAU,EAAE,KAAM;EAClB,KAAK,EAAE,IAAK;EACZ,aAAa,EAAE,GAAI,GAClB;;AAED,AAAG,GAAA,AAAA,aAAa,CAAC;EACjB,KAAK,EAAE,IAAK;EACZ,aAAa,EAAE,GAAI,GAClB;;AAED,AAAA,QAAQ,CAAC;EACR,OAAO,EAAE,IAAK,GACd","names":[]} \ No newline at end of file diff --git a/zmsticketprinter/public/_css/textflaeche_gross.27f8e9e3.png b/zmsticketprinter/public/_css/textflaeche_gross.27f8e9e3.png new file mode 100644 index 000000000..afd0fd39b Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_gross.27f8e9e3.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_gross.471ae39e.png b/zmsticketprinter/public/_css/textflaeche_gross.471ae39e.png new file mode 100644 index 000000000..afd0fd39b Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_gross.471ae39e.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_gross.aea52c3f.png b/zmsticketprinter/public/_css/textflaeche_gross.aea52c3f.png new file mode 100644 index 000000000..afd0fd39b Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_gross.aea52c3f.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_gross.dab4858b.png b/zmsticketprinter/public/_css/textflaeche_gross.dab4858b.png new file mode 100644 index 000000000..afd0fd39b Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_gross.dab4858b.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_klein.50280aa2.png b/zmsticketprinter/public/_css/textflaeche_klein.50280aa2.png new file mode 100644 index 000000000..cfcf42582 Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_klein.50280aa2.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_klein.8f3ac408.png b/zmsticketprinter/public/_css/textflaeche_klein.8f3ac408.png new file mode 100644 index 000000000..cfcf42582 Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_klein.8f3ac408.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_klein.c157c19f.png b/zmsticketprinter/public/_css/textflaeche_klein.c157c19f.png new file mode 100644 index 000000000..cfcf42582 Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_klein.c157c19f.png differ diff --git a/zmsticketprinter/public/_css/textflaeche_klein.fcffe681.png b/zmsticketprinter/public/_css/textflaeche_klein.fcffe681.png new file mode 100644 index 000000000..cfcf42582 Binary files /dev/null and b/zmsticketprinter/public/_css/textflaeche_klein.fcffe681.png differ diff --git a/zmsticketprinter/public/_css/ticketprinter.css b/zmsticketprinter/public/_css/ticketprinter.css new file mode 100644 index 000000000..561334cdd --- /dev/null +++ b/zmsticketprinter/public/_css/ticketprinter.css @@ -0,0 +1,2 @@ +@media print{body{font-family:Arial;font-size:19px;padding:0}.hinweis,body{text-align:center}.hinweis{font-size:14px}.msg_ihre_nummernanzeige{color:#930;font-size:38pt!important;font-weight:700;margin:10px;text-align:center}.printausgabe{display:block;font-size:24px;text-align:center;width:7cm}.kleineSchrift{font-size:11px}.center{margin:0;text-align:left}.box{background:#fff;display:none;margin:3px;padding:4px}.boxontop{margin:auto;padding-top:0;text-align:center;width:7cm}.ueberschrift{display:none}div.label{float:left;padding-right:6px;text-align:right}div.input{margin:0 0 6px 170px}div.eingabe{text-align:right}div.eingabe,div.nummernblock{float:left;padding-right:6px}.noprint{display:none}}@media screen{#main{background-color:#fff;margin:0 auto auto;max-width:1024px;padding:0}html{background:url(background_eingabe.b451d7fc.png) 0 0 no-repeat #c8d5e6;color:#494c4a;display:block;font-family:Arial,sans-serif;font-size:28px;font-weight:700;line-height:36px}body,html{margin:0;padding:0}body{height:768px;overflow:hidden;width:1024px}#main-header{color:#fff;font-size:14px;line-height:18px}#main-header .adressangabe{color:#fff;font-size:22px;line-height:23px;margin:16px 0 0 36px}.alert{font-size:14px;line-height:18px}.alert.alert-info{background-color:#d9edf7;border:1px solid #c0e1f2;border-radius:4px;color:#000;margin-bottom:1.385em;padding:.7em 1em;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.devhint{position:absolute;right:10px;top:10px;width:300px}.textile{font-size:14px;line-height:18px;width:800px}.digitaluhr{color:#fff;font-size:20px;font-weight:400;left:922px;position:absolute;text-align:left;top:56px}.content{height:600px;margin:110px 0 0 160px;overflow-y:auto;padding:0;width:800px}.content p{width:85%}.print{display:none}div.wartebuttonbereich_einzeilig{left:160px;position:absolute;top:295px;width:875px}div.wartebuttonbereich_zweizeilig{left:95px;position:absolute;top:180px;width:875px}div.wartebuttonbereich_zweizeilig_tief{left:95px;position:absolute;top:295px;width:875px}div.warteschlangebutton_gross a.eintragen,div.warteschlangebutton_gross button.eintragen{background:url(wartenummer_anfordern.3712e954.png) 0 24px no-repeat;border:0;color:#fff;display:block;font-family:Arial,sans-serif;font-size:42px;font-weight:700;height:195px;padding:0 35px;text-align:center;width:660px}div.variablerwarteschlangebutton{float:left;margin-right:25px}div.variablerwarteschlangebutton a.eintragen,div.variablerwarteschlangebutton button.eintragen{background:url(multibutton.8895f510.png) 0 24px no-repeat;border:0;color:#fff;display:block;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:158px;line-height:36px;padding-bottom:0;padding-right:10px;padding-top:15px;width:385px}div.variablerwarteschlangebutton a.eintragen,div.warteschlangebutton_gross a.eintragen{display:table-cell;margin:0;padding:0;text-align:center;text-decoration:none;vertical-align:middle}div.variablerwarteschlangebutton button.disabled{background:url(multibutton_disabled.ded1f1e1.png) 0 24px no-repeat;color:#999}button.buttonTelefonnummernachtragen{background:url(handynummer_nachtragen.1fbd03d4.png) 0 24px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:105px;left:96px;padding:38px 121px;position:absolute;top:665px;width:800px}a.button{display:table-cell;line-height:auto;text-align:center;text-decoration:none;vertical-align:middle}.ja_nein,a.button.ja_nein{background:url(ja_nein.6ffffbf5.png) 0 5px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-size:42px;font-weight:700;height:141px;width:314px}.smsbuttons{display:table;left:155px;position:absolute;top:545px;width:700px}.smsbuttons .nachtrag{background:url(handynummer_uebermitteln.409a90b4.png) 5px 10px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:80px;margin:0;padding:0;width:439px}.smsbuttons .nachtrag.active{background:url(handynummer_uebermitteln_a.85d89036.png) 5px 10px no-repeat}.smsbuttons .nachtrag.disabled{background:url(handynummer_uebermitteln_i.503086e7.png) 5px 10px no-repeat}.smsbuttons .abbrechen{font-size:28px}#message .back,.smsbuttons .abbrechen{background:url(abbrechen.e1c491a3.png) 5px 10px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-weight:700;height:80px;line-height:80px;width:210px}#message .back{font-size:20px}.smsbuttons .abbrechen.active{background:url(abbrechen_a.b18fdc6d.png) 5px 10px no-repeat}.smsbuttons .hilfe{font-size:20px;margin-top:20px}.wartenummern .kleineAusdruckRueckmeldung,.wartenummern .kleineAusgabeFehlermeldung,.wartenummern .kleineSMSDruckRueckmeldung,.wartenummern .kleineSMSRueckmeldung{background:url(textflaeche_gross.dab4858b.png) no-repeat 0 0;border:0;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:117px;left:62px;line-height:60px;margin:0 5px 0 6px;padding:1px 0 0;position:absolute;text-align:center;top:85px;width:830px}.wartenummern .AusdruckRueckmeldung,.wartenummern .AusgabeFehlermeldung,.wartenummern .SMSDruckRueckmeldung,.wartenummern .SMSRueckmeldung{background:url(textflaeche_gross.dab4858b.png) no-repeat 0 0;border:0;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:155px;left:62px;line-height:30px;padding:1px 0 0;position:absolute;text-align:center;top:150px;width:857px}.wartenummern{height:758px;width:1014px}.hiddencursor,button,input,select{cursor:url(invisible_Mauszeiger.e28f8c73.cur),crosshair!important}.wartenummern .werbeblock_oben{position:absolute;top:150px}.wartenummern .werbeblock_mehrfachkiosk_oben{left:95px;position:absolute;top:130px;width:800px}.wartenummern .nummernanzeige{color:#004376;font-family:Arial,sans-serif;font-size:112px;font-weight:700;line-height:149px;text-align:center}.wartenummern div.smsoptionbutton{display:table;margin-top:10px}.wartenummern div.smsoptionbutton form{display:table-cell;margin-top:0}.wartenummern .content{font-family:Arial,sans-serif;font-size:28px;font-weight:700;line-height:36px}.box{font-size:24px;line-height:24px;width:780px}.debug{color:#000;font-size:14px;height:800px;left:1024px;line-height:18px;margin-left:20px;overflow:auto;position:fixed;top:8em;width:800px}.ticketprinterhash{color:#a5bad6;color:#fff;font-size:.4em;font-weight:400;left:1010px;position:absolute;top:720px;transform:rotate(270deg);transform-origin:left;width:500px;z-index:0}.lightbox{background-color:hsla(0,0%,100%,.8);bottom:0;display:flex;justify-content:center;left:0;padding-top:100px;position:fixed;right:0;top:0;z-index:10}.lightbox.fixed{align-items:center;padding-top:0;position:fixed}.lightbox .lightbox__content{display:table;max-width:90%;min-width:500px;overflow:auto}.lightbox .lightbox__content .loader{border-left:1.1em solid #ddd;margin:0!important;position:relative}.lightbox .lightbox__content div.table-responsive{max-width:600px}.dialog{font-size:16px;font-weight:400;line-height:1em}.dialog .header{background-color:#d60c22;color:#fff;margin-bottom:0;padding:.4em .7em;position:relative}.dialog .header .title{display:inline-block;font-size:1em;line-height:1.25em;margin:0 .5em 0 0;padding:0}.dialog .body{background-color:#f0f0f0;border:1px solid #d2d2d2;border-top:0 solid #d2d2d2;max-height:33.7em;overflow:auto;padding:.4em .7em;position:relative}.dialog .form-actions{margin:1.429em 0;max-width:100%}.dialog .form-actions .btn{background-color:#fff;border:1px solid #d2d2d2;box-shadow:1px 1px 0 0 #333;color:#000;cursor:pointer;display:inline-block;float:right;font-size:1em;margin:0;overflow:visible;padding:4px 9px;text-align:center;text-decoration:none;vertical-align:middle}.wartenummern .smshinweis{left:160px;position:absolute;top:129px;width:400px}.wartenummern .sms_bestaetigung{left:160px;position:absolute;top:640px;width:640px}.wartenummern form.smseintragen .label{display:none}.wartenummern .anleitung{left:160px;position:absolute;top:227px;width:400px}.wartenummern .anleitung .radioauswahl{border:#000;border-style:outset;border-width:5px;font-size:18px;margin-top:20px;padding:5px}.wartenummern .disclaimer{left:160px;position:absolute;top:397px;width:410px}.wartenummern .nummernblock{left:621px;position:absolute;top:223px;width:400px}.wartenummern .nummernblock .ziffer{background:url(zahl.4ee8f23b.png) 9px 10px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-size:28px;font-weight:700;height:80px;margin:-8px 0 0 -19px;padding:0;width:80px}.wartenummern .nummernblock .ziffer.active{background:url(zahl_a.a1676563.png) 9px 10px no-repeat}.wartenummern .eingabe{background:url(textflaeche_klein.50280aa2.png) 0 0 no-repeat;height:60px;left:610px;position:absolute;top:135px;width:200px}.wartenummern .nummerneingabe{background:transparent;border:0;color:#4c4c4c;font-family:Arial,sans-serif;font-size:20px;font-weight:700;margin:16px 10px;width:180px}.wartenummern .sms_next{background:url(naechster_kunde.5902d80f.png) 0 10px no-repeat;border:0;color:#fff;font-family:Arial,sans-serif;font-size:42px;font-weight:700;height:166px;margin:54px 0 0 -1px;padding:0;width:660px}} +/*# sourceMappingURL=ticketprinter.css.map */ diff --git a/zmsticketprinter/public/_css/ticketprinter.css.map b/zmsticketprinter/public/_css/ticketprinter.css.map new file mode 100644 index 000000000..55aff70fa --- /dev/null +++ b/zmsticketprinter/public/_css/ticketprinter.css.map @@ -0,0 +1 @@ +{"mappings":"AAOA,aCPA,KAEA,iBAAA,CACA,cAAA,CACA,SCQE,CDLF,cANA,iBCgBE,CDVF,SACA,cCSE,CDLF,yBAGA,UAAA,CAFA,wBAAA,CACA,eAAA,CAGA,WAAA,CADA,iBCSE,CDLF,cAGC,aAAA,CADA,cAAA,CAGA,iBAAA,CADG,SCQF,CDJF,eAEC,cCMC,CDJF,QACC,QAAA,CACA,eCOC,CDJF,KAGC,eAAA,CACG,YAAA,CAHH,UAAA,CACA,WCSC,CDLF,UAKE,WAAA,CAHE,aAAA,CACF,iBAAA,CACA,SCSA,CDNF,cACI,YCSF,CDNF,UAEA,UAAA,CACA,iBAAA,CAFA,gBCWE,CDNF,UACA,oBCSE,CDNF,YACA,gBCWE,CDNF,6BAJA,UAAA,CACA,iBCcE,CDNF,SACC,YCSC,CACF,CF5EA,cGRA,MAII,qBAAA,CAHA,kBAAA,CACA,gBAAA,CACA,SDwFF,CCpFF,KAMI,sFAAA,CACA,aAAA,CAFA,aAAA,CAJA,4BAAA,CAEA,cAAA,CACA,eAAA,CAFA,gBD8FF,CCpFF,UAJI,QAAA,CACA,SD+FF,CC5FF,KAEI,YAAA,CACA,eAAA,CAFH,YD2FC,CEjHF,aAGC,UAAA,CAFA,cAAA,CACA,gBFqHC,CEjHF,2BACC,UAAA,CACG,cAAA,CACA,gBAAA,CACA,oBFoHF,CG9HF,OACC,cAAA,CACA,gBHiIC,CG9HF,kBACC,wBAAA,CAMG,wBAAA,CALA,iBAAA,CACA,UAAA,CAEA,qBAAA,CADA,gBAAA,CAEA,sCHkIF,CG9HF,SACC,iBAAA,CACA,UAAA,CACA,QAAA,CACA,WHiIC,CG9HF,SAEC,cAAA,CACA,gBAAA,CAFA,WHmIC,CI1JF,YAMI,UAAA,CADA,cAAA,CADA,eAAA,CAFA,UAAA,CADA,iBAAA,CAMA,eAAA,CAJA,QJiKF,CKpKF,SAGI,YAAA,CACA,sBAAA,CAHA,eAAA,CAIA,SAAA,CAHA,WL0KF,CKpKF,WACC,SLuKC,CKpKF,OACC,YLuKC,CMpLF,iCAII,UAAA,CAHA,iBAAA,CACA,SAAA,CACA,WNwLF,CMpLF,kCAKC,SAAA,CAHA,iBAAA,CACA,SAAA,CACA,WNuLC,CMnLF,uCAII,SAAA,CAHA,iBAAA,CACA,SAAA,CACA,WNuLF,CMnLF,yFAEI,oFAAA,CACA,QAAA,CACA,UAAA,CAMA,aAAA,CAJA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CAIA,cAAA,CADA,iBAAA,CAFA,WNyLF,CMnLF,iCACI,UAAA,CACA,iBNsLF,CMnLF,+FAEI,0EAAA,CACA,QAAA,CACA,UAAA,CAUA,aAAA,CALA,4BAAA,CAFA,cAAA,CAGA,eAAA,CACA,YAAA,CAHA,gBAAA,CAHA,gBAAA,CAOA,kBAAA,CANA,gBAAA,CAOA,WNuLF,CMnLF,uFAGC,kBAAA,CAGG,QAAA,CADA,SAAA,CAHH,iBAAA,CAKG,oBAAA,CAHA,qBNyLF,CMnLF,iDAEC,mFAAA,CADA,UNuLC,CMnLF,qCAEI,qFAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CAEA,SAAA,CAEA,kBAAA,CACA,iBAAA,CAFA,SAAA,CAFA,WNyLF,CMlLF,SACC,kBAAA,CAGG,gBAAA,CAFA,iBAAA,CAGA,oBAAA,CAFA,qBNuLF,CMlLF,0BACI,qEAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CACA,WNqLF,CMlLF,YAMI,aAAA,CAJA,UAAA,CACA,iBAAA,CACA,SAAA,CACA,WNqLF,CMlLF,sBAEI,yFAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,WAAA,CACA,QAAA,CACA,SAAA,CACA,WNoLF,CMjLF,6BAEI,2FNmLF,CMhLF,+BAEI,2FNkLF,CM/KF,uBAKI,cNsLF,CM9KF,sCAXI,0EAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CACA,eAAA,CACA,WAAA,CAEA,gBAAA,CADA,WN8LF,CM1LF,eAKI,cNqLF,CM7KF,8BAEI,4EN+KF,CM7KF,mBAGI,cAAA,CADH,eNgLC,CO7VF,mKAII,6EAAA,CACA,QAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CAOA,SAAA,CANA,gBAAA,CAEA,kBAAA,CADA,eAAA,CAIA,iBAAA,CAFA,iBAAA,CAIA,QAAA,CAHA,WPmWF,CO7VF,2IAII,6EAAA,CACA,QAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CAMA,SAAA,CALA,gBAAA,CACA,eAAA,CAGA,iBAAA,CAFA,iBAAA,CAIA,SAAA,CAHA,WPmWF,CQpYF,cACI,YAAA,CAIA,YRoYF,CQjYF,kCACI,kFRoYF,CQjYF,+BACI,iBAAA,CACA,SRoYF,CQjYF,6CAGI,SAAA,CAFA,iBAAA,CACA,SAAA,CAEA,WRoYF,CQjYF,8BACI,aAAA,CAEA,4BAAA,CADA,eAAA,CAEA,eAAA,CACA,iBAAA,CACA,iBRoYF,CQjYF,kCACC,aAAA,CACA,eRoYC,CQjYF,uCACC,kBAAA,CACA,YRoYC,CQjYF,uBAEI,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,gBRoYF,CSnbF,KAEI,cAAA,CADA,gBAAA,CAEA,WTsbF,CUzbF,OAGC,UAAA,CAFA,cAAA,CAQG,YAAA,CAHA,WAAA,CAJH,gBAAA,CAEA,gBAAA,CAMG,aAAA,CALA,cAAA,CAEA,OAAA,CACA,WV8bF,CWtcF,mBAOI,aAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CAPA,WAAA,CADA,iBAAA,CAEA,SAAA,CAOA,wBAAA,CACA,qBAAA,CAPA,WAAA,CACA,SX8cF,CYpdF,UAWE,mCAAA,CAPA,QAAA,CAHA,YAAA,CAOA,sBAAA,CAHA,MAAA,CAIA,iBAAA,CAPA,cAAA,CAIA,OAAA,CAHA,KAAA,CASA,UZqdA,CYndA,gBAEE,kBAAA,CACA,aAAA,CAFA,cZudF,CYhdF,6BAII,aAAA,CAFA,aAAA,CACA,eAAA,CAFA,aZsdF,CYldE,qCAGI,4BAAA,CAFA,kBAAA,CACA,iBZqdN,CYhdF,kDACI,eZmdF,CatfF,QACI,cAAA,CACA,eAAA,CACA,ebyfF,CaxfE,gBAEE,wBAAA,CAEA,UAAA,CACA,eAAA,CAJA,iBAAA,CAEA,iBb4fJ,CazfI,uBAKE,oBAAA,CAJA,aAAA,CACA,kBAAA,CAIA,iBAAA,CAFA,Sb6fN,CaxfE,cACE,wBAAA,CAEA,wBAAA,CAAA,0BAAA,CAGA,iBAAA,CACA,aAAA,CAFA,iBAAA,CADA,iBb6fJ,CaxfE,sBACI,gBAAA,CACA,cb0fN,CazfM,2BAeI,qBAAA,CACA,wBAAA,CAdA,2BAAA,CAUA,UAAA,CAFA,cAAA,CAJA,oBAAA,CALA,WAAA,CAIA,aAAA,CAIA,QAAA,CAIA,gBAAA,CACA,eAAA,CANA,iBAAA,CAGA,oBAAA,CAJA,qBbogBV,Cc1iBF,0BAEI,UAAA,CACA,iBAAA,CACA,SAAA,CACA,Wd4iBF,Cc1iBF,gCAEI,UAAA,CACA,iBAAA,CACA,SAAA,CACA,Wd4iBF,Cc1iBF,uCAEI,Yd4iBF,Cc1iBF,yBAEI,UAAA,CACA,iBAAA,CACA,SAAA,CACA,Wd4iBF,Cc1iBF,uCAII,WAAA,CAEA,mBAAA,CADA,gBAAA,CAFA,cAAA,CADA,eAAA,CAKA,Wd4iBF,CcviBF,0BAEI,UAAA,CACA,iBAAA,CACA,SAAA,CACA,WdyiBF,CctiBF,4BAEI,UAAA,CACA,iBAAA,CACA,SAAA,CACA,WdwiBF,CctiBF,oCAEI,qEAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,WAAA,CACA,qBAAA,CACA,SAAA,CACA,UdwiBF,CctiBF,2CAEI,uEdwiBF,CctiBF,uBACI,6EAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,SAAA,CACA,WdyiBF,CcviBF,8BAGI,sBAAA,CADA,QAAA,CAEA,aAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,gBAAA,CACA,WdyiBF,CcviBF,wBAEI,8EAAA,CACA,QAAA,CACA,UAAA,CAEA,4BAAA,CADA,cAAA,CAEA,eAAA,CACA,YAAA,CACA,oBAAA,CACA,SAAA,CACA,WdyiBF,CACF","sources":["scss/ticketprinter.scss","scss/layout/print.scss","%3Cinput%20css%20euOGOp%3E","scss/layout/main.scss","scss/block/header.scss","scss/block/alerts.scss","scss/block/timer.scss","scss/block/content.scss","scss/block/buttons.scss","scss/block/feedback.scss","scss/block/wartenummern.scss","scss/block/box.scss","scss/block/debug.scss","scss/block/ticketprinterhash.scss","scss/block/lightbox.scss","scss/block/dialog.scss","scss/page/notification.scss"],"sourcesContent":["@import \"settings\";\n\n/**\n * Import our css\n */\n\n// Main site grid and global layout rules\n@media print {\n\t@import \"layout/print\";\n}\n@media screen {\n\t@import \"layout/main\";\n\t// Element rules\n\t//@import \"element/button\";\n\n\t// Block rules\n\t@import \"block/header\";\n\t@import \"block/alerts\";\n\t@import \"block/timer\";\n\t@import \"block/content\";\n\t@import \"block/buttons\";\n\t@import \"block/feedback\";\n\t@import \"block/wartenummern\";\n\t@import \"block/box\";\n\t@import \"block/debug\";\n\t@import \"block/ticketprinterhash\";\n @import \"block/lightbox\";\n\t@import \"block/dialog\";\n\n\t//page rules\n\t@import \"page/notification\";\n}\n","body {\ntext-align: center;\nfont-family: Arial;\nfont-size: 19px;\npadding:0;\n}\n\n.hinweis {\nfont-size: 14px;\ntext-align: center;\n}\n\n.msg_ihre_nummernanzeige{\nfont-size: 38pt !important;\nfont-weight: bold;\ncolor:#993300;\ntext-align: center;\nmargin:10px;\n}\n\n.printausgabe\n{\n\tfont-size:24px;\n\tdisplay:block;\n width: 7cm;\n\ttext-align: center;\n}\n\n.kleineSchrift\n{\n\tfont-size: 11px;\n}\n.center {\n\tmargin: 0px;\n\ttext-align: left;\n}\n\n.box {\n\tmargin: 3px;\n\tpadding: 4px;\n\tbackground: #FFFFFF;\n display: none;\n}\n.boxontop {\n\tmargin-top: 0px;\n padding-top: 0px;\n\t text-align: center;\n\t width: 7cm;\n\t margin: auto;\n}\n.ueberschrift {\n display: none;\n}\n\ndiv.label {\ntext-align: right;\nfloat: left;\npadding-right: 6px;\n}\n\ndiv.input {\nmargin: 0px 0px 6px 170px;\n}\n\ndiv.eingabe {\ntext-align: right;\nfloat: left;\npadding-right: 6px;\n}\n\ndiv.nummernblock {\nfloat: left;\npadding-right: 6px;\n}\n\n.noprint {\n\tdisplay: none;\n}","/**\n * OUR SETTINGS\n */\n/**\n * Import our css\n */\n@media print {\n body {\n text-align: center;\n font-family: Arial;\n font-size: 19px;\n padding: 0;\n }\n\n .hinweis {\n font-size: 14px;\n text-align: center;\n }\n\n .msg_ihre_nummernanzeige {\n font-size: 38pt !important;\n font-weight: bold;\n color: #993300;\n text-align: center;\n margin: 10px;\n }\n\n .printausgabe {\n font-size: 24px;\n display: block;\n width: 7cm;\n text-align: center;\n }\n\n .kleineSchrift {\n font-size: 11px;\n }\n\n .center {\n margin: 0px;\n text-align: left;\n }\n\n .box {\n margin: 3px;\n padding: 4px;\n background: #FFFFFF;\n display: none;\n }\n\n .boxontop {\n margin-top: 0px;\n padding-top: 0px;\n text-align: center;\n width: 7cm;\n margin: auto;\n }\n\n .ueberschrift {\n display: none;\n }\n\n div.label {\n text-align: right;\n float: left;\n padding-right: 6px;\n }\n\n div.input {\n margin: 0px 0px 6px 170px;\n }\n\n div.eingabe {\n text-align: right;\n float: left;\n padding-right: 6px;\n }\n\n div.nummernblock {\n float: left;\n padding-right: 6px;\n }\n\n .noprint {\n display: none;\n }\n}\n@media screen {\n #main {\n margin: 0 auto auto;\n max-width: 1024px;\n padding: 0;\n background-color: #FFFFFF;\n }\n\n html {\n font-family: Arial, sans-serif;\n line-height: 36px;\n font-size: 28px;\n font-weight: bold;\n display: block;\n background: url(background_eingabe.b451d7fc.png) top left no-repeat #C8D5E6;\n color: #494C4A;\n margin: 0;\n padding: 0;\n }\n\n body {\n width: 1024px;\n height: 768px;\n overflow: hidden;\n margin: 0;\n padding: 0;\n }\n\n #main-header {\n font-size: 14px;\n line-height: 18px;\n color: #FFFFFF;\n }\n\n #main-header .adressangabe {\n color: #FFFFFF;\n font-size: 22px;\n line-height: 23px;\n margin: 16px 0px 0px 36px;\n }\n\n .alert {\n font-size: 14px;\n line-height: 18px;\n }\n\n .alert.alert-info {\n background-color: #d9edf7;\n border-radius: 4px;\n color: #000000;\n padding: 0.7em 1em;\n margin-bottom: 1.385em;\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);\n border: 1px solid #c0e1f2;\n }\n\n .devhint {\n position: absolute;\n right: 10px;\n top: 10px;\n width: 300px;\n }\n\n .textile {\n width: 800px;\n font-size: 14px;\n line-height: 18px;\n }\n\n .digitaluhr {\n position: absolute;\n left: 922px;\n top: 56px;\n font-weight: normal;\n font-size: 20px;\n color: #FFFFFF;\n text-align: left;\n }\n\n .content {\n overflow-y: auto;\n width: 800px;\n height: 600px;\n margin: 110px 0px 0px 160px;\n padding: 0px;\n }\n\n .content p {\n width: 85%;\n }\n\n .print {\n display: none;\n }\n\n div.wartebuttonbereich_einzeilig {\n position: absolute;\n top: 295px;\n width: 875px;\n left: 160px;\n }\n\n div.wartebuttonbereich_zweizeilig {\n position: absolute;\n top: 180px;\n width: 875px;\n left: 95px;\n }\n\n div.wartebuttonbereich_zweizeilig_tief {\n position: absolute;\n top: 295px;\n width: 875px;\n left: 95px;\n }\n\n div.warteschlangebutton_gross button.eintragen,\ndiv.warteschlangebutton_gross a.eintragen {\n background: url(wartenummer_anfordern.3712e954.png) 0 24px no-repeat;\n border: 0;\n color: #fff;\n font-size: 42px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 195px;\n width: 660px;\n display: block;\n text-align: center;\n padding: 0px 35px;\n }\n\n div.variablerwarteschlangebutton {\n float: left;\n margin-right: 25px;\n }\n\n div.variablerwarteschlangebutton button.eintragen,\ndiv.variablerwarteschlangebutton a.eintragen {\n background: url(multibutton.8895f510.png) 0 24px no-repeat;\n border: 0;\n color: #fff;\n padding-bottom: 0px;\n padding-top: 15px;\n font-size: 28px;\n line-height: 36px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 158px;\n padding-right: 10px;\n width: 385px;\n display: block;\n }\n\n div.variablerwarteschlangebutton a.eintragen,\ndiv.warteschlangebutton_gross a.eintragen {\n text-align: center;\n display: table-cell;\n vertical-align: middle;\n padding: 0px;\n margin: 0px;\n text-decoration: none;\n }\n\n div.variablerwarteschlangebutton button.disabled {\n color: #999;\n background: url(multibutton_disabled.ded1f1e1.png) 0 24px no-repeat;\n }\n\n button.buttonTelefonnummernachtragen {\n background: url(handynummer_nachtragen.1fbd03d4.png) 0 24px no-repeat;\n border: 0;\n color: #fff;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 105px;\n width: 800px;\n left: 96px;\n top: 665px;\n padding: 38px 121px;\n position: absolute;\n }\n\n a.button {\n display: table-cell;\n text-align: center;\n vertical-align: middle;\n line-height: auto;\n text-decoration: none;\n }\n\n a.button.ja_nein, .ja_nein {\n background: url(ja_nein.6ffffbf5.png) 0 5px no-repeat;\n border: 0;\n color: #fff;\n font-size: 42px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 141px;\n width: 314px;\n }\n\n .smsbuttons {\n left: 155px;\n position: absolute;\n top: 545px;\n width: 700px;\n display: table;\n }\n\n .smsbuttons .nachtrag {\n background: url(handynummer_uebermitteln.409a90b4.png) 5px 10px no-repeat;\n border: 0;\n color: #fff;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 80px;\n margin: 0px 0 0 0px;\n padding: 0;\n width: 439px;\n }\n\n .smsbuttons .nachtrag.active {\n background: url(handynummer_uebermitteln_a.85d89036.png) 5px 10px no-repeat;\n }\n\n .smsbuttons .nachtrag.disabled {\n background: url(handynummer_uebermitteln_i.503086e7.png) 5px 10px no-repeat;\n }\n\n .smsbuttons .abbrechen {\n background: url(abbrechen.e1c491a3.png) 5px 10px no-repeat;\n border: 0;\n color: #fff;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 80px;\n width: 210px;\n line-height: 80px;\n }\n\n #message .back {\n background: url(abbrechen.e1c491a3.png) 5px 10px no-repeat;\n border: 0;\n color: #fff;\n font-size: 20px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 80px;\n width: 210px;\n line-height: 80px;\n }\n\n .smsbuttons .abbrechen.active {\n background: url(abbrechen_a.b18fdc6d.png) 5px 10px no-repeat;\n }\n\n .smsbuttons .hilfe {\n margin-top: 20px;\n font-size: 20px;\n }\n\n .wartenummern .kleineSMSRueckmeldung,\n.wartenummern .kleineAusdruckRueckmeldung,\n.wartenummern .kleineAusgabeFehlermeldung,\n.wartenummern .kleineSMSDruckRueckmeldung {\n background: url(textflaeche_gross.dab4858b.png) no-repeat 0 0px;\n border: 0;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 117px;\n line-height: 60px;\n padding: 1px 0 0;\n margin: 0px 5px 0px 6px;\n text-align: center;\n width: 830px;\n position: absolute;\n left: 62px;\n top: 85px;\n }\n\n .wartenummern .SMSRueckmeldung,\n.wartenummern .AusdruckRueckmeldung,\n.wartenummern .AusgabeFehlermeldung,\n.wartenummern .SMSDruckRueckmeldung {\n background: url(textflaeche_gross.dab4858b.png) no-repeat 0 0px;\n border: 0;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 155px;\n line-height: 30px;\n padding: 1px 0 0;\n text-align: center;\n width: 857px;\n position: absolute;\n left: 62px;\n top: 150px;\n }\n\n .wartenummern {\n height: 758px;\n width: 1014px;\n }\n\n .hiddencursor, button, input, select {\n cursor: url(invisible_Mauszeiger.e28f8c73.cur), crosshair !important;\n }\n\n .wartenummern .werbeblock_oben {\n position: absolute;\n top: 150px;\n }\n\n .wartenummern .werbeblock_mehrfachkiosk_oben {\n position: absolute;\n top: 130px;\n left: 95px;\n width: 800px;\n }\n\n .wartenummern .nummernanzeige {\n color: #004376;\n font-size: 112px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 149px;\n text-align: center;\n }\n\n .wartenummern div.smsoptionbutton {\n display: table;\n margin-top: 10px;\n }\n\n .wartenummern div.smsoptionbutton form {\n display: table-cell;\n margin-top: 0px;\n }\n\n .wartenummern .content {\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n line-height: 36px;\n }\n\n .box {\n line-height: 24px;\n font-size: 24px;\n width: 780px;\n }\n\n .debug {\n font-size: 14px;\n line-height: 18px;\n color: #000000;\n margin-left: 20px;\n position: fixed;\n left: 1024px;\n top: 8em;\n width: 800px;\n height: 800px;\n overflow: auto;\n }\n\n .ticketprinterhash {\n position: absolute;\n left: 1010px;\n top: 720px;\n width: 500px;\n z-index: 0;\n color: #a5bad6;\n color: white;\n font-size: 0.4em;\n font-weight: normal;\n transform: rotate(270deg);\n transform-origin: left;\n }\n\n .lightbox {\n display: flex;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n justify-content: center;\n padding-top: 100px;\n background-color: rgba(255, 255, 255, 0.8);\n z-index: 10;\n }\n .lightbox.fixed {\n position: fixed;\n align-items: center;\n padding-top: 0;\n }\n\n .lightbox .lightbox__content {\n overflow: auto;\n max-width: 90%;\n min-width: 500px;\n display: table;\n }\n .lightbox .lightbox__content .loader {\n margin: 0 !important;\n position: relative;\n border-left: 1.1em solid #ddd;\n }\n\n .lightbox .lightbox__content div.table-responsive {\n max-width: 600px;\n }\n\n .dialog {\n font-size: 16px;\n font-weight: normal;\n line-height: 1em;\n }\n .dialog .header {\n padding: 0.4em 0.7em;\n background-color: #D60C22;\n position: relative;\n color: #FFFFFF;\n margin-bottom: 0;\n }\n .dialog .header .title {\n font-size: 1em;\n line-height: 1.25em;\n margin: 0;\n padding: 0;\n display: inline-block;\n margin-right: 0.5em;\n }\n .dialog .body {\n background-color: #F0F0F0;\n border: 1px solid #D2D2D2;\n border-width: 0 1px 1px 1px;\n position: relative;\n padding: 0.4em 0.7em;\n max-height: 33.7em;\n overflow: auto;\n }\n .dialog .form-actions {\n margin: 1.429em 0;\n max-width: 100%;\n }\n .dialog .form-actions .btn {\n float: right;\n box-shadow: 1px 1px 0px 0px #333333;\n margin: 0.5em;\n padding: 0.286em 0.643em;\n font-size: 1em;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n margin: 0;\n cursor: pointer;\n text-decoration: none;\n color: #000000;\n overflow: visible;\n padding: 4px 9px;\n background-color: #FFFFFF;\n border: 1px solid #D2D2D2;\n }\n\n .wartenummern .smshinweis {\n left: 160px;\n position: absolute;\n top: 129px;\n width: 400px;\n }\n\n .wartenummern .sms_bestaetigung {\n left: 160px;\n position: absolute;\n top: 640px;\n width: 640px;\n }\n\n .wartenummern form.smseintragen .label {\n display: none;\n }\n\n .wartenummern .anleitung {\n left: 160px;\n position: absolute;\n top: 227px;\n width: 400px;\n }\n\n .wartenummern .anleitung .radioauswahl {\n margin-top: 20px;\n font-size: 18px;\n border: black;\n border-width: 5px;\n border-style: outset;\n padding: 5px;\n }\n\n .wartenummern .disclaimer {\n left: 160px;\n position: absolute;\n top: 397px;\n width: 410px;\n }\n\n .wartenummern .nummernblock {\n left: 621px;\n position: absolute;\n top: 223px;\n width: 400px;\n }\n\n .wartenummern .nummernblock .ziffer {\n background: url(zahl.4ee8f23b.png) 9px 10px no-repeat;\n border: 0;\n color: #fff;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 80px;\n margin: -8px 0 0 -19px;\n padding: 0;\n width: 80px;\n }\n\n .wartenummern .nummernblock .ziffer.active {\n background: url(zahl_a.a1676563.png) 9px 10px no-repeat;\n }\n\n .wartenummern .eingabe {\n background: url(textflaeche_klein.50280aa2.png) 0px 0px no-repeat;\n height: 60px;\n left: 610px;\n position: absolute;\n top: 135px;\n width: 200px;\n }\n\n .wartenummern .nummerneingabe {\n border: 0;\n background: transparent;\n color: #4C4C4C;\n font-size: 20px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n margin: 16px 10px;\n width: 180px;\n }\n\n .wartenummern .sms_next {\n background: url(naechster_kunde.5902d80f.png) 0px 10px no-repeat;\n border: 0;\n color: #fff;\n font-size: 42px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 166px;\n margin: 54px 0 0 -1px;\n padding: 0;\n width: 660px;\n }\n}\n/*# sourceMappingURL=ticketprinter.css.map */\n","// Base site layout and grid\n\n#main {\n margin: 0 auto auto;\n max-width: $pageMaxWidth;\n padding: 0;\n background-color: $white;\n}\n\nhtml {\n font-family: $base-font-family;\n line-height: $base-line-height;\n font-size:\t\t\t$base-font-size;\n font-weight:\t\tbold;\n display:\t\t\tblock;\n background: \t\turl(img/background_eingabe.png) top left no-repeat #C8D5E6;\n color:\t\t\t\t$baseTextColor;\n margin:\t\t\t\t0;\n padding:\t\t\t0;\n}\n\nbody {\n\twidth: \t\t\t\t$pageMaxWidth;\n height: \t\t\t$pageMaxHeight;\n overflow: \t\t hidden;\n margin:\t\t\t\t0;\n padding:\t\t\t0;\n}\n","#main-header {\n\tfont-size: \t\t\t$alert-font-size;\n\tline-height: \t\t$alert-line-height;\n\tcolor:\t\t\t\t$white;\n}\n\n#main-header .adressangabe {\n\tcolor: \t\t\t\t$white;\n font-size: \t\t\t22px; \n line-height: \t\t23px;\n margin: 16px 0px 0px 36px;\n}",".alert {\n\tfont-size: \t\t\t$alert-font-size;\n\tline-height: \t\t$alert-line-height;\n}\n\n.alert.alert-info {\n\tbackground-color: \t#d9edf7;\n border-radius: \t\t4px;\n color: \t\t\t\t$black;\n padding: \t\t\t.7em 1em;\n margin-bottom: \t\t1.385em;\n text-shadow: \t\t0 1px 0 rgba(255,255,255,0.5);\n border: \t\t\t1px solid #c0e1f2;\n}\n\n.devhint {\n\tposition:absolute;\n\tright:10px;\n\ttop:10px;\n\twidth:300px;\n}\n\n.textile {\n\twidth:\t\t\t\t$contentMaxWidth;\n\tfont-size:\t\t\t14px;\n\tline-height:\t\t18px;\n}",".digitaluhr {\n position: \t\t\t\tabsolute;\n left: \t\t\t\t\t922px;\n top: \t\t\t\t\t56px;\n font-weight: \t\t\tnormal;\n font-size: \t\t\t\t20px;\n color: \t\t\t\t\t$white;\n text-align: \t\t\tleft;\n}",".content {\n overflow-y: auto;\n width: 800px;\n height: 600px;\n margin: 110px 0px 0px 160px;\n padding: 0px;\n}\n\n.content p {\n\twidth:85%;\n}\n\n.print {\n\tdisplay:none;\n}","div.wartebuttonbereich_einzeilig {\n position: absolute;\n top: 295px;\n width: 875px;\n left: 160px;\n}\n\ndiv.wartebuttonbereich_zweizeilig\n{\n\tposition: absolute;\n\ttop:180px;\n\twidth:875px;\n\tleft:95px;\n}\n\ndiv.wartebuttonbereich_zweizeilig_tief {\n position: absolute;\n top: 295px;\n width: 875px;\n left: 95px;\n}\n\ndiv.warteschlangebutton_gross button.eintragen,\ndiv.warteschlangebutton_gross a.eintragen {\n background: url(img/wartenummer_anfordern.png) 0 24px no-repeat;\n border: 0;\n color: #fff;\n font-size: 42px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 195px;\n width: 660px;\n display:block;\n text-align:center;\n padding: 0px 35px;\n}\n\ndiv.variablerwarteschlangebutton {\n float: left;\n margin-right: 25px;\n}\n\ndiv.variablerwarteschlangebutton button.eintragen,\ndiv.variablerwarteschlangebutton a.eintragen {\n background: url(img/multibutton.png) 0 24px no-repeat;\n border: 0;\n color: #fff;\n padding-bottom: 0px;\n padding-top: 15px;\n font-size: 28px;\n line-height: 36px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 158px;\n padding-right: 10px;\n width: 385px;\n display:block;\n}\n\ndiv.variablerwarteschlangebutton a.eintragen,\ndiv.warteschlangebutton_gross a.eintragen {\n\ttext-align:center;\n\tdisplay: table-cell;\n vertical-align: middle;\n padding:0px;\n margin:0px;\n text-decoration:none;\n}\n\ndiv.variablerwarteschlangebutton button.disabled {\n\tcolor:#999;\n\tbackground: url(img/multibutton_disabled.png) 0 24px no-repeat;\n}\n\nbutton.buttonTelefonnummernachtragen\n{\n background: url(img/handynummer_nachtragen.png) 0 24px no-repeat;\n border:0;\n color:#fff;\n font-size:28px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 105px;\n width: 800px;\n left: 96px;\n top: 665px;\n padding: 38px 121px;\n position:absolute;\n}\n\na.button {\n\tdisplay: table-cell;\n text-align: center;\n vertical-align: middle;\n line-height: auto;\n text-decoration:none;\n}\n\na.button.ja_nein, .ja_nein {\n background: url(img/ja_nein.png) 0 5px no-repeat;\n border: 0;\n color: #fff;\n font-size: 42px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 141px;\n width: 314px;\n}\n\n.smsbuttons\n{\n left:155px;\n position:absolute;\n top:545px;\n width:700px;\n display:table;\n}\n.smsbuttons .nachtrag\n{\n background: url(img/handynummer_uebermitteln.png) 5px 10px no-repeat;\n border:0;\n color:#fff;\n font-size:28px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 80px;\n margin: 0px 0 0 0px;\n padding:0;\n width: 439px;\n}\n\n.smsbuttons .nachtrag.active\n{\n background: url(img/handynummer_uebermitteln_a.png) 5px 10px no-repeat;\n}\n\n.smsbuttons .nachtrag.disabled\n{\n background: url(img/handynummer_uebermitteln_i.png) 5px 10px no-repeat;\n}\n\n.smsbuttons .abbrechen\n{\n background: url(img/abbrechen.png) 5px 10px no-repeat;\n border:0;\n color:#fff;\n font-size:28px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 80px;\n width: 210px;\n line-height: 80px;\n}\n\n#message .back\n{\n background: url(img/abbrechen.png) 5px 10px no-repeat;\n border:0;\n color:#fff;\n font-size:20px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 80px;\n width: 210px;\n line-height: 80px;\n}\n\n.smsbuttons .abbrechen.active\n{\n background: url(img/abbrechen_a.png) 5px 10px no-repeat;\n}\n.smsbuttons .hilfe\n{\n\tmargin-top: 20px;\n font-size: 20px;\n}\n",".wartenummern .kleineSMSRueckmeldung, \n.wartenummern .kleineAusdruckRueckmeldung, \n.wartenummern .kleineAusgabeFehlermeldung, \n.wartenummern .kleineSMSDruckRueckmeldung {\n background: url(img/textflaeche_gross.png) no-repeat 0 0px;\n border: 0;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 117px;\n line-height: 60px;\n padding: 1px 0 0;\n margin: 0px 5px 0px 6px;\n text-align: center;\n width: 830px;\n position: absolute;\n left: 62px;\n top: 85px;\n}\n\n.wartenummern .SMSRueckmeldung, \n.wartenummern .AusdruckRueckmeldung, \n.wartenummern .AusgabeFehlermeldung, \n.wartenummern .SMSDruckRueckmeldung {\n background: url(img/textflaeche_gross.png) no-repeat 0 0px;\n border: 0;\n font-size: 28px;\n font-family: Arial, sans-serif;\n font-weight: bold;\n height: 155px;\n line-height: 30px;\n padding: 1px 0 0;\n text-align: center;\n width: 857px;\n position: absolute;\n left: 62px;\n top: 150px;\n}",".wartenummern {\n height: \t758px;\n //left: \t\t0;\n //position: \tabsolute;\n //top: \t\t0;\n width: \t\t1014px;\n}\n\n.hiddencursor, button, input, select {\n cursor: url(img/invisible_Mauszeiger.cur),crosshair !important;\n}\n\n.wartenummern .werbeblock_oben {\n position: \tabsolute;\n top: \t\t150px;\n}\n\n.wartenummern .werbeblock_mehrfachkiosk_oben {\n position: \tabsolute;\n top: \t\t130px;\n left: \t\t95px;\n width: \t\t800px;\n}\n\n.wartenummern .nummernanzeige {\n color: \t\t\t#D60C22;\n font-size: \t\t112px;\n font-family: \tArial, sans-serif;\n font-weight: \tbold;\n line-height: \t149px;\n text-align: \tcenter;\n}\n\n.wartenummern div.smsoptionbutton {\n\tdisplay:table;\n\tmargin-top:10px;\n}\n\n.wartenummern div.smsoptionbutton form {\n\tdisplay: table-cell;\n\tmargin-top:0px;\n}\n\n.wartenummern .content {\n font-size: \t\t28px;\n font-family: \tArial, sans-serif;\n font-weight: \tbold;\n line-height: \t36px;\n}\n",".box {\n line-height: 24px;\n font-size: 24px;\n width: 780px;\n}",".debug {\n\tfont-size: \t\t\t$alert-font-size;\n\tline-height: \t\t$alert-line-height;\n\tcolor:\t\t\t\t$black;\n\tmargin-left:\t\t20px;\n position: fixed;\n left: 1024px;\n top: 8em;\n width: 800px;\n height: 800px;\n overflow: auto;\n}\n",".ticketprinterhash {\n\n position: absolute;\n left: 1010px;\n top: 720px;\n width: 500px;\n z-index: 0;\n color: darken(#c8d5e6, 10%);\n color: white;\n font-size: 0.4em;\n font-weight: normal;\n transform: rotate(270deg);\n transform-origin: left;\n}\n",".lightbox {\n display: flex;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n justify-content: center;\n padding-top: 100px;\n\n background-color: rgba(255, 255, 255, 0.8);\n z-index: 10;\n\n &.fixed {\n position: fixed;\n align-items: center;\n padding-top: 0;\n }\n}\n\n\n.lightbox .lightbox__content {\n overflow: auto;\n max-width: 90%;\n min-width: 500px;\n display: table;\n .loader {\n margin: 0 !important;\n position: relative;\n border-left: 1.1em solid #ddd;\n }\n}\n\n.lightbox .lightbox__content div.table-responsive {\n max-width:600px;\n}\n",".dialog {\n font-size: 16px;\n font-weight: normal;\n line-height:1em;\n .header {\n padding: 0.4em 0.7em;\n background-color: #D60C22;\n position: relative;\n color: #FFFFFF;\n margin-bottom: 0;\n .title {\n font-size: 1em;\n line-height: 1.25em;\n margin: 0;\n padding: 0;\n display: inline-block;\n margin-right: 0.5em;\n }\n }\n .body {\n background-color: #F0F0F0;\n border: 1px solid #D2D2D2;\n border-width: 0 1px 1px 1px;\n position: relative;\n padding: 0.4em 0.7em;\n max-height: 33.7em;\n overflow: auto;\n }\n .form-actions {\n margin: 1.429em 0;\n max-width: 100%;\n .btn {\n float: right;\n box-shadow: 1px 1px 0px 0px #333333;\n margin: 0.5em;\n padding: 0.286em 0.643em;\n font-size: 1em;\n display: inline-block;\n vertical-align: middle;\n text-align: center;\n margin: 0;\n cursor: pointer;\n text-decoration: none;\n color: #000000;\n overflow: visible;\n padding: 4px 9px;\n background-color: #FFFFFF;\n border: 1px solid #D2D2D2;\n }\n }\n\n}\n",".wartenummern .smshinweis\n{\n left:160px;\n position:absolute;\n top:129px;\n width:400px;\n}\n.wartenummern .sms_bestaetigung\n{\n left:160px;\n position:absolute;\n top:640px;\n width:640px;\n}\n.wartenummern form.smseintragen .label\n{\n display:none;\n}\n.wartenummern .anleitung\n{\n left:160px;\n position:absolute;\n top:227px;\n width:400px;\n}\n.wartenummern .anleitung .radioauswahl\n{\n margin-top:20px;\n font-size:18px;\n border: black;\n border-width:5px;\n border-style:outset;\n padding:5px;\n}\n.wartenummern .anleitung .radioauswahl .radiobutton\n{\n}\n.wartenummern .disclaimer\n{\n left:160px;\n position:absolute;\n top:397px;\n width:410px;\n}\n\n.wartenummern .nummernblock\n{\n left:621px;\n position:absolute;\n top:223px;\n width:400px;\n}\n.wartenummern .nummernblock .ziffer\n{\n background: url(img/zahl.png) 9px 10px no-repeat;\n border:0;\n color:#fff;\n font-size:28px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 80px;\n margin: -8px 0 0 -19px;\n padding:0;\n width: 80px;\n}\n.wartenummern .nummernblock .ziffer.active\n{\n background: url(img/zahl_a.png) 9px 10px no-repeat;\n}\n.wartenummern .eingabe {\n background: url(img/textflaeche_klein.png) 0px 0px no-repeat;\n height: 60px;\n left:610px;\n position:absolute;\n top:135px;\n width: 200px;\n}\n.wartenummern .nummerneingabe\n{\n border:0;\n background:transparent;\n color:#4C4C4C;\n font-size:20px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n margin: 16px 10px;\n width: 180px;\n}\n.wartenummern .sms_next\n{\n background: url(img/naechster_kunde.png) 0px 10px no-repeat;\n border:0;\n color:#fff;\n font-size:42px;\n font-family: Arial, sans-serif;\n font-weight:bold;\n height: 166px;\n margin: 54px 0 0 -1px;\n padding:0;\n width: 660px;\n}"],"names":[],"version":3,"file":"ticketprinter.css.map"} \ No newline at end of file diff --git a/zmsticketprinter/public/_css/wartenummer_anfordern.104ebf2b.png b/zmsticketprinter/public/_css/wartenummer_anfordern.104ebf2b.png new file mode 100644 index 000000000..d6a06cb54 Binary files /dev/null and b/zmsticketprinter/public/_css/wartenummer_anfordern.104ebf2b.png differ diff --git a/zmsticketprinter/public/_css/wartenummer_anfordern.3712e954.png b/zmsticketprinter/public/_css/wartenummer_anfordern.3712e954.png new file mode 100644 index 000000000..d6a06cb54 Binary files /dev/null and b/zmsticketprinter/public/_css/wartenummer_anfordern.3712e954.png differ diff --git a/zmsticketprinter/public/_css/wartenummer_anfordern.7db5426b.png b/zmsticketprinter/public/_css/wartenummer_anfordern.7db5426b.png new file mode 100644 index 000000000..d6a06cb54 Binary files /dev/null and b/zmsticketprinter/public/_css/wartenummer_anfordern.7db5426b.png differ diff --git a/zmsticketprinter/public/_css/wartenummer_anfordern.aa67bca5.png b/zmsticketprinter/public/_css/wartenummer_anfordern.aa67bca5.png new file mode 100644 index 000000000..d6a06cb54 Binary files /dev/null and b/zmsticketprinter/public/_css/wartenummer_anfordern.aa67bca5.png differ diff --git a/zmsticketprinter/public/_css/zahl.4ee8f23b.png b/zmsticketprinter/public/_css/zahl.4ee8f23b.png new file mode 100644 index 000000000..0ca5b601b Binary files /dev/null and b/zmsticketprinter/public/_css/zahl.4ee8f23b.png differ diff --git a/zmsticketprinter/public/_css/zahl.7b637de5.png b/zmsticketprinter/public/_css/zahl.7b637de5.png new file mode 100644 index 000000000..0ca5b601b Binary files /dev/null and b/zmsticketprinter/public/_css/zahl.7b637de5.png differ diff --git a/zmsticketprinter/public/_css/zahl.7cbb43b7.png b/zmsticketprinter/public/_css/zahl.7cbb43b7.png new file mode 100644 index 000000000..0ca5b601b Binary files /dev/null and b/zmsticketprinter/public/_css/zahl.7cbb43b7.png differ diff --git a/zmsticketprinter/public/_css/zahl.bd8cc4dd.png b/zmsticketprinter/public/_css/zahl.bd8cc4dd.png new file mode 100644 index 000000000..0ca5b601b Binary files /dev/null and b/zmsticketprinter/public/_css/zahl.bd8cc4dd.png differ diff --git a/zmsticketprinter/public/_css/zahl_a.463b235e.png b/zmsticketprinter/public/_css/zahl_a.463b235e.png new file mode 100644 index 000000000..1f34150bb Binary files /dev/null and b/zmsticketprinter/public/_css/zahl_a.463b235e.png differ diff --git a/zmsticketprinter/public/_css/zahl_a.97811f46.png b/zmsticketprinter/public/_css/zahl_a.97811f46.png new file mode 100644 index 000000000..1f34150bb Binary files /dev/null and b/zmsticketprinter/public/_css/zahl_a.97811f46.png differ diff --git a/zmsticketprinter/public/_css/zahl_a.a1676563.png b/zmsticketprinter/public/_css/zahl_a.a1676563.png new file mode 100644 index 000000000..1f34150bb Binary files /dev/null and b/zmsticketprinter/public/_css/zahl_a.a1676563.png differ diff --git a/zmsticketprinter/public/_css/zahl_a.e1088f12.png b/zmsticketprinter/public/_css/zahl_a.e1088f12.png new file mode 100644 index 000000000..1f34150bb Binary files /dev/null and b/zmsticketprinter/public/_css/zahl_a.e1088f12.png differ diff --git a/zmsticketprinter/public/_js/index.js b/zmsticketprinter/public/_js/index.js new file mode 100644 index 000000000..5a546baa7 --- /dev/null +++ b/zmsticketprinter/public/_js/index.js @@ -0,0 +1,26 @@ +!function(){function e(e){return e&&e.__esModule?e.default:e}var t,n,r={}; +/*! + * jQuery JavaScript Library v3.6.0 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2021-03-02T17:08Z + */t="undefined"!=typeof window?window:r,n=function(e,t){"use strict";var n=[],r=Object.getPrototypeOf,i=n.slice,o=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},a=n.push,s=n.indexOf,u={},l=u.toString,c=u.hasOwnProperty,f=c.toString,d=f.call(Object),p={},h=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},g=function(e){return null!=e&&e===e.window},v=e.document,m={type:!0,src:!0,nonce:!0,noModule:!0};function y(e,t,n){var r,i,o=(n=n||v).createElement("script");if(o.text=e,t)for(r in m)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[l.call(e)]||"object":typeof e}var b="3.6.0",w=function(e,t){return new w.fn.init(e,t)};function T(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!h(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}w.fn=w.prototype={jquery:b,constructor:w,length:0,toArray:function(){return i.call(this)},get:function(e){return null==e?i.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(i.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(w.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(w.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),z=new RegExp(M+"|>"),X=new RegExp(W),V=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+$),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+I+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,J=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){d()},ae=be((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{H.apply(j=P.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){H={apply:j.length?function(e,t){q.apply(e,P.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(e,t,r,i){var o,s,l,c,f,h,m,y=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(d(t),t=t||p,g)){if(11!==w&&(f=Z.exec(e)))if(o=f[1]){if(9===w){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(y&&(l=y.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return H.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return H.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!N[e+" "]&&(!v||!v.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(m=e,y=t,1===w&&(z.test(e)||U.test(e))){for((y=ee.test(e)&&me(t.parentNode)||t)===t&&n.scope||((c=t.getAttribute("id"))?c=c.replace(re,ie):t.setAttribute("id",c=b)),s=(h=a(e)).length;s--;)h[s]=(c?"#"+c:":scope")+" "+xe(h[s]);m=h.join(",")}try{return H.apply(r,y.querySelectorAll(m)),r}catch(t){N(e,!0)}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ue(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function le(e){return e[b]=!0,e}function ce(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ae(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ve(e){return le((function(t){return t=+t,le((function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))}))}))}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=se.support={},o=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},d=se.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!=p&&9===a.nodeType&&a.documentElement?(h=(p=a).documentElement,g=!o(p),w!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=ce((function(e){return h.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ce((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ce((function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=K.test(p.getElementsByClassName),n.getById=ce((function(e){return h.appendChild(e).id=b,!p.getElementsByName||!p.getElementsByName(b).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},m=[],v=[],(n.qsa=K.test(p.querySelectorAll))&&(ce((function(e){var t;h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+I+")"),e.querySelectorAll("[id~="+b+"-]").length||v.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")})),ce((function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")}))),(n.matchesSelector=K.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ce((function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),m.push("!=",W)})),v=v.length&&new RegExp(v.join("|")),m=m.length&&new RegExp(m.join("|")),t=K.test(h.compareDocumentPosition),x=t||K.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},A=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==p||e.ownerDocument==w&&x(w,e)?-1:t==p||t.ownerDocument==w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==p?-1:t==p?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==w?-1:s[r]==w?1:0},p):p},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(d(e),n.matchesSelector&&g&&!N[t+" "]&&(!m||!m.test(t))&&(!v||!v.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){N(t,!0)}return se(t,p,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=p&&d(e),x(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(A),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=se.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=k[e+" "];return t||(t=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+e+"("+M+"|$)"),k(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})))},ATTR:function(e,t,n){return function(r){var i=se.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,m=s&&t.nodeName.toLowerCase(),y=!u&&!s,x=!1;if(v){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===m:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(x=(p=(l=(c=(f=(d=v)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],d=p&&v.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[T,p,x];break}}else if(y&&(x=p=(l=(c=(f=(d=t)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==m:1!==d.nodeType)||!++x||(y&&((c=(f=d[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[T,x]),d!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?le((function(e,n){for(var r,o=i(e,t),a=o.length;a--;)e[r=O(e,o[a])]=!(n[r]=o[a])})):function(e){return i(e,0,n)}):i}},pseudos:{not:le((function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?le((function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:le((function(e){return function(t){return se(e,t).length>0}})),contains:le((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:le((function(e){return V.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve((function(){return[0]})),last:ve((function(e,t){return[t-1]})),eq:ve((function(e,t,n){return[n<0?n+t:n]})),even:ve((function(e,t){for(var n=0;nt?t:n;--r>=0;)e.push(r);return e})),gt:ve((function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s-1&&(o[l]=!(a[l]=f))}}else m=Te(m===a?m.splice(h,m.length):m),i?i(null,a,m,u):H.apply(a,m)}))}function ke(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=be((function(e){return e===t}),s,!0),f=be((function(e){return O(t,e)>-1}),s,!0),d=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&we(d),u>1&&xe(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,v,m=0,y="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),k=T+=null==w?1:Math.random()||.1,E=C.length;for(c&&(l=a==p||a||c);y!==E&&null!=(f=C[y]);y++){if(i&&f){for(h=0,a||f.ownerDocument==p||(d(f),s=!g);v=e[h++];)if(v(f,a||p,s)){u.push(f);break}c&&(T=k)}n&&((f=!v&&f)&&m--,o&&x.push(f))}if(m+=y,n&&y!==m){for(h=0;v=t[h++];)v(x,b,a,s);if(o){if(m>0)for(;y--;)x[y]||b[y]||(b[y]=L.call(u));b=Te(b)}H.apply(u,b),c&&!o&&b.length>0&&m+t.length>1&&se.uniqueSort(u)}return c&&(T=k,l=w),x};return n?le(o):o}(o,i))).selector=e}return s},u=se.select=function(e,t,n,i){var o,u,l,c,f,d="function"==typeof e&&e,p=!i&&a(e=d.selector||e);if(n=n||[],1===p.length){if((u=p[0]=p[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(te,ne),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=G.needsContext.test(e)?0:u.length;o--&&(l=u[o],!r.relative[c=l.type]);)if((f=r.find[c])&&(i=f(l.matches[0].replace(te,ne),ee.test(u[0].type)&&me(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&xe(u)))return H.apply(n,i),n;break}}return(d||s(e,p))(i,t,!g,n,!t||ee.test(e)&&me(t.parentNode)||t),n},n.sortStable=b.split("").sort(A).join("")===b,n.detectDuplicates=!!f,d(),n.sortDetached=ce((function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))})),ce((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||fe("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ce((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||fe("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ce((function(e){return null==e.getAttribute("disabled")}))||fe(I,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),se}(e);w.find=C,w.expr=C.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=C.uniqueSort,w.text=C.getText,w.isXMLDoc=C.isXML,w.contains=C.contains,w.escapeSelector=C.escape;var k=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},E=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},S=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,t,n){return h(t)?w.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?w.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?w.grep(e,(function(e){return s.call(t,e)>-1!==n})):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,(function(e){return 1===e.nodeType})))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter((function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&S.test(e)?w(e):e||[],!1).length}});var j,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),A.test(r[1])&&w.isPlainObject(t))for(r in t)h(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=v.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):h(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,j=w(v);var q=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?s.call(w(e),this[0]):s.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return E((e.parentNode||{}).firstChild,e)},children:function(e){return E(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},(function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(H[e]||w.uniqueSort(i),q.test(e)&&i.reverse()),this.pushStack(i)}}));var O=/[^\x20\t\r\n\f]+/g;function I(e){return e}function M(e){throw e}function R(e,t,n,r){var i;try{e&&h(i=e.promise)?i.call(e).done(t).fail(n):e&&h(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return w.each(e.match(O)||[],(function(e,n){t[n]=!0})),t}(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1)for(n=a.shift();++s-1;)o.splice(n,1),n<=s&&s--})),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred((function(t){w.each(n,(function(n,r){var i=h(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&h(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==M&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred((function(e){n[0][3].add(a(0,e,h(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,h(t)?t:I)),n[2][3].add(a(0,e,h(r)?r:M))})).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,(function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add((function(){r=s}),n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith})),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),o=i.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,o[e]=arguments.length>1?i.call(arguments):n,--t||a.resolveWith(r,o)}};if(t<=1&&(R(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||h(o[n]&&o[n].then)))return a.then();for(;n--;)R(o[n],s(n),a.reject);return a.promise()}});var $=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&$.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout((function(){throw t}))};var W=w.Deferred();function F(){v.removeEventListener("DOMContentLoaded",F),e.removeEventListener("load",F),w.ready()}w.fn.ready=function(e){return W.then(e).catch((function(e){w.readyException(e)})),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||W.resolveWith(v,[w]))}}),w.ready.then=W.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?e.setTimeout(w.ready):(v.addEventListener("DOMContentLoaded",F),e.addEventListener("load",F));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,h(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){w.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:w.Callbacks("once memory").add((function(){Y.remove(e,[t+"queue",n])}))})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,ge=/^$|^module$|\/(?:java|ecma)script/i;fe=v.createDocumentFragment().appendChild(v.createElement("div")),(de=v.createElement("input")).setAttribute("type","radio"),de.setAttribute("checked","checked"),de.setAttribute("name","t"),fe.appendChild(de),p.checkClone=fe.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.innerHTML="",p.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue,fe.innerHTML="",p.option=!!fe.lastChild;var ve={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function me(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var xe=/<|&#?\w+;/;function be(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),d=[],p=0,h=e.length;p-1)i&&i.push(o);else if(l=ie(o),a=me(f.appendChild(o),"script"),l&&ye(a),n)for(c=0;o=a[c++];)ge.test(o.type||"")&&n.push(o);return f}var we=/^([^.]*)(?:\.(.+)|)/;function Te(){return!0}function Ce(){return!1}function ke(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ce;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each((function(){w.event.add(this,t,i,r,n)}))}function Se(e,t,n){n?(Y.set(e,t,!1),w.event.add(e,t,{namespace:!1,handler:function(e){var r,o,a=Y.get(this,t);if(1&e.isTrigger&&this[t]){if(a.length)(w.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=i.call(arguments),Y.set(this,t,a),r=n(this,t),this[t](),a!==(o=Y.get(this,t))||r?Y.set(this,t,!1):o={},a!==o)return e.stopImmediatePropagation(),e.preventDefault(),o&&o.value}else a.length&&(Y.set(this,t,{value:w.event.trigger(w.extend(a[0],w.Event.prototype),a.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,t)&&w.event.add(e,t,Te)}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Y.get(e);if(V(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(re,i),n.guid||(n.guid=w.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(t){return void 0!==w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(O)||[""]).length;l--;)p=g=(s=we.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p&&(f=w.event.special[p]||{},p=(i?f.delegateType:f.bindType)||p,f=w.event.special[p]||{},c=w.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(d=u[p])||((d=u[p]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(p,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,c):d.push(c),w.event.global[p]=!0)},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(O)||[""]).length;l--;)if(p=g=(s=we.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),p){for(f=w.event.special[p]||{},d=u[p=(r?f.delegateType:f.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=d.length;o--;)c=d[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(d.splice(o,1),c.selector&&d.delegateCount--,f.remove&&f.remove.call(e,c));a&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||w.removeEvent(e,p,v.handle),delete u[p])}else for(p in u)w.event.remove(e,p+t[l],n,r,!0);w.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=w.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=w.event.special[u.type]||{};for(s[0]=u,t=1;t=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\s*$/g;function je(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&w(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n1&&"string"==typeof v&&!p.checkClone&&Ae.test(v))return e.each((function(i){var o=e.eq(i);m&&(t[0]=v.call(this,i,o.html())),Pe(o,t,n,r)}));if(d&&(a=(i=be(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=a),a||r)){for(u=(s=w.map(me(i,"script"),Le)).length;f0&&ye(a,!f&&me(e,"script")),c},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[J.expando]&&(n[J.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,(function(e){return void 0===e?w.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Pe(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)}))},prepend:function(){return Pe(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Pe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Pe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(me(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return w.clone(this,e,t)}))},html:function(e){return B(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ve[(he.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ke(e,t,n){var r=Me(e),i=(!p.boxSizingReliable()||n)&&"border-box"===w.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Ie.test(a)){if(!n)return a;a="auto"}return(!p.boxSizingReliable()&&i||!p.reliableTrDimensions()&&N(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===w.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===w.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ze(e,t,n,r,i){return new Ze.prototype.init(e,t,n,r,i)}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ve.test(t),l=e.style;if(u||(t=ze(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),p.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ve.test(t)||(t=ze(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ye&&(i=Ye[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],(function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!Xe.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ke(e,t,r):Re(e,Ge,(function(){return Ke(e,t,r)}))},set:function(e,n,r){var i,o=Me(e),a=!p.scrollboxSize()&&"absolute"===o.position,s=(a||r)&&"border-box"===w.css(e,"boxSizing",!1,o),u=r?Qe(e,t,r,s,o):0;return s&&a&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Qe(e,t,"border",!1,o)-.5)),u&&(i=te.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Je(0,n,u)}}})),w.cssHooks.marginLeft=Fe(p.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Re(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),w.each({margin:"",padding:"",border:"Width"},(function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ne[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Je)})),w.fn.extend({css:function(e,t){return B(this,(function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a1)}}),w.Tween=Ze,Ze.prototype={constructor:Ze,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=Ze.propHooks[this.prop];return e&&e.get?e.get(this):Ze.propHooks._default.get(this)},run:function(e){var t,n=Ze.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ze.propHooks._default.set(this),this}},Ze.prototype.init.prototype=Ze.prototype,Ze.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||!w.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},Ze.propHooks.scrollTop=Ze.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=Ze.prototype.init,w.fx.step={};var et,tt,nt=/^(?:toggle|show|hide)$/,rt=/queueHooks$/;function it(){tt&&(!1===v.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(it):e.setTimeout(it,w.fx.interval),w.fx.tick())}function ot(){return e.setTimeout((function(){et=void 0})),et=Date.now()}function at(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function st(e,t,n){for(var r,i=(ut.tweeners[t]||[]).concat(ut.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each((function(){w.removeAttr(this,e)}))}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?lt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!p.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(O);if(i&&1===e.nodeType)for(;n=i[r++];)e.removeAttribute(n)}}),lt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=ct[t]||w.find.attr;ct[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ct[a],ct[a]=i,i=null!=n(e,t,r)?a:null,ct[a]=o),i}}));var ft=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function pt(e){return(e.match(O)||[]).join(" ")}function ht(e){return e.getAttribute&&e.getAttribute("class")||""}function gt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(O)||[]}w.fn.extend({prop:function(e,t){return B(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[w.propFix[e]||e]}))}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):ft.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),p.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){w.propFix[this.toLowerCase()]=this})),w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(h(e))return this.each((function(t){w(this).addClass(e.call(this,t,ht(this)))}));if((t=gt(e)).length)for(;n=this[u++];)if(i=ht(n),r=1===n.nodeType&&" "+pt(i)+" "){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=pt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(h(e))return this.each((function(t){w(this).removeClass(e.call(this,t,ht(this)))}));if(!arguments.length)return this.attr("class","");if((t=gt(e)).length)for(;n=this[u++];)if(i=ht(n),r=1===n.nodeType&&" "+pt(i)+" "){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");i!==(s=pt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):h(e)?this.each((function(n){w(this).toggleClass(e.call(this,n,ht(this),t),t)})):this.each((function(){var t,i,o,a;if(r)for(i=0,o=w(this),a=gt(e);t=a[i++];)o.hasClass(t)?o.removeClass(t):o.addClass(t);else void 0!==e&&"boolean"!==n||((t=ht(this))&&Y.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+pt(ht(n))+" ").indexOf(t)>-1)return!0;return!1}});var vt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];return arguments.length?(r=h(e),this.each((function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,(function(e){return null==e?"":e+""}))),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))}))):i?(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(vt,""):null==n?"":n:void 0}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:pt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],(function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},p.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),p.focusin="onfocusin"in e;var mt=/^(?:focusinfocus|focusoutblur)$/,yt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,r,i){var o,a,s,u,l,f,d,p,m=[r||v],y=c.call(t,"type")?t.type:t,x=c.call(t,"namespace")?t.namespace.split("."):[];if(a=p=s=r=r||v,3!==r.nodeType&&8!==r.nodeType&&!mt.test(y+w.event.triggered)&&(y.indexOf(".")>-1&&(x=y.split("."),y=x.shift(),x.sort()),l=y.indexOf(":")<0&&"on"+y,(t=t[w.expando]?t:new w.Event(y,"object"==typeof t&&t)).isTrigger=i?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[y]||{},i||!d.trigger||!1!==d.trigger.apply(r,n))){if(!i&&!d.noBubble&&!g(r)){for(u=d.delegateType||y,mt.test(u+y)||(a=a.parentNode);a;a=a.parentNode)m.push(a),s=a;s===(r.ownerDocument||v)&&m.push(s.defaultView||s.parentWindow||e)}for(o=0;(a=m[o++])&&!t.isPropagationStopped();)p=a,t.type=o>1?u:d.bindType||y,(f=(Y.get(a,"events")||Object.create(null))[t.type]&&Y.get(a,"handle"))&&f.apply(a,n),(f=l&&a[l])&&f.apply&&V(a)&&(t.result=f.apply(a,n),!1===t.result&&t.preventDefault());return t.type=y,i||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(m.pop(),n)||!V(r)||l&&h(r[y])&&!g(r)&&((s=r[l])&&(r[l]=null),w.event.triggered=y,t.isPropagationStopped()&&p.addEventListener(y,yt),r[y](),t.isPropagationStopped()&&p.removeEventListener(y,yt),w.event.triggered=void 0,s&&(r[l]=s)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each((function(){w.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),p.focusin||w.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this.document||this,i=Y.access(r,t);i||r.addEventListener(e,n,!0),Y.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this.document||this,i=Y.access(r,t)-1;i?Y.access(r,t,i):(r.removeEventListener(e,n,!0),Y.remove(r,t))}}}));var xt=e.location,bt={guid:Date.now()},wt=/\?/;w.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){}return r=n&&n.getElementsByTagName("parsererror")[0],n&&!r||w.error("Invalid XML: "+(r?w.map(r.childNodes,(function(e){return e.textContent})).join("\n"):t)),n};var Tt=/\[\]$/,Ct=/\r?\n/g,kt=/^(?:submit|button|image|reset|file)$/i,Et=/^(?:input|select|textarea|keygen)/i;function St(e,t,n,r){var i;if(Array.isArray(t))w.each(t,(function(t,i){n||Tt.test(e)?r(e,i):St(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)}));else if(n||"object"!==x(t))r(e,t);else for(i in t)St(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=h(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,(function(){i(this.name,this.value)}));else for(n in e)St(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&Et.test(this.nodeName)&&!kt.test(e)&&(this.checked||!pe.test(e))})).map((function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,(function(e){return{name:t.name,value:e.replace(Ct,"\r\n")}})):{name:t.name,value:n.replace(Ct,"\r\n")}})).get()}});var Nt=/%20/g,At=/#.*$/,Dt=/([?&])_=[^&]*/,jt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,qt=/^\/\//,Ht={},Pt={},Ot="*/".concat("*"),It=v.createElement("a");function Mt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(O)||[];if(h(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function Rt(e,t,n,r){var i={},o=e===Pt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],(function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)})),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function $t(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}It.href=xt.href,w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(xt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ot,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,w.ajaxSettings),t):$t(w.ajaxSettings,e)},ajaxPrefilter:Mt(Ht),ajaxTransport:Mt(Pt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var r,i,o,a,s,u,l,c,f,d,p=w.ajaxSetup({},n),h=p.context||p,g=p.context&&(h.nodeType||h.jquery)?w(h):w.event,m=w.Deferred(),y=w.Callbacks("once memory"),x=p.statusCode||{},b={},T={},C="canceled",k={readyState:0,getResponseHeader:function(e){var t;if(l){if(!a)for(a={};t=jt.exec(o);)a[t[1].toLowerCase()+" "]=(a[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=a[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return l?o:null},setRequestHeader:function(e,t){return null==l&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==l&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)k.always(e[k.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return r&&r.abort(t),E(0,t),this}};if(m.promise(k),p.url=((t||p.url||xt.href)+"").replace(qt,xt.protocol+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(O)||[""],null==p.crossDomain){u=v.createElement("a");try{u.href=p.url,u.href=u.href,p.crossDomain=It.protocol+"//"+It.host!=u.protocol+"//"+u.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=w.param(p.data,p.traditional)),Rt(Ht,p,n,k),l)return k;for(f in(c=w.event&&p.global)&&0==w.active++&&w.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Lt.test(p.type),i=p.url.replace(At,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Nt,"+")):(d=p.url.slice(i.length),p.data&&(p.processData||"string"==typeof p.data)&&(i+=(wt.test(i)?"&":"?")+p.data,delete p.data),!1===p.cache&&(i=i.replace(Dt,"$1"),d=(wt.test(i)?"&":"?")+"_="+bt.guid+++d),p.url=i+d),p.ifModified&&(w.lastModified[i]&&k.setRequestHeader("If-Modified-Since",w.lastModified[i]),w.etag[i]&&k.setRequestHeader("If-None-Match",w.etag[i])),(p.data&&p.hasContent&&!1!==p.contentType||n.contentType)&&k.setRequestHeader("Content-Type",p.contentType),k.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Ot+"; q=0.01":""):p.accepts["*"]),p.headers)k.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(!1===p.beforeSend.call(h,k,p)||l))return k.abort();if(C="abort",y.add(p.complete),k.done(p.success),k.fail(p.error),r=Rt(Pt,p,n,k)){if(k.readyState=1,c&&g.trigger("ajaxSend",[k,p]),l)return k;p.async&&p.timeout>0&&(s=e.setTimeout((function(){k.abort("timeout")}),p.timeout));try{l=!1,r.send(b,E)}catch(e){if(l)throw e;E(-1,e)}}else E(-1,"No Transport");function E(t,n,a,u){var f,d,v,b,T,C=n;l||(l=!0,s&&e.clearTimeout(s),r=void 0,o=u||"",k.readyState=t>0?4:0,f=t>=200&&t<300||304===t,a&&(b=function(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(p,k,a)),!f&&w.inArray("script",p.dataTypes)>-1&&w.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),b=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(p,b,k,f),f?(p.ifModified&&((T=k.getResponseHeader("Last-Modified"))&&(w.lastModified[i]=T),(T=k.getResponseHeader("etag"))&&(w.etag[i]=T)),204===t||"HEAD"===p.type?C="nocontent":304===t?C="notmodified":(C=b.state,d=b.data,f=!(v=b.error))):(v=C,!t&&C||(C="error",t<0&&(t=0))),k.status=t,k.statusText=(n||C)+"",f?m.resolveWith(h,[d,C,k]):m.rejectWith(h,[k,C,v]),k.statusCode(x),x=void 0,c&&g.trigger(f?"ajaxSuccess":"ajaxError",[k,p,f?d:v]),y.fireWith(h,[k,C]),c&&(g.trigger("ajaxComplete",[k,p]),--w.active||w.event.trigger("ajaxStop")))}return k},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],(function(e,t){w[t]=function(e,n,r,i){return h(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}})),w.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),w._evalUrl=function(e,t,n){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){w.globalEval(e,t,n)}})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(h(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return h(e)?this.each((function(t){w(this).wrapInner(e.call(this,t))})):this.each((function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=h(e);return this.each((function(n){w(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){w(this).replaceWith(this.childNodes)})),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Wt={0:200,1223:204},Ft=w.ajaxSettings.xhr();p.cors=!!Ft&&"withCredentials"in Ft,p.ajax=Ft=!!Ft,w.ajaxTransport((function(t){var n,r;if(p.cors||Ft&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];for(a in t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest"),i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Wt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout((function(){n&&r()}))},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}})),w.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),w.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(r,i){t=w(" + + + {% if ticketprinter.reload %} + + {% endif %} + {% if debug %} +
+ {{ dumpHttpLog() }} +
+ {% endif %} + + diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_cluster_290.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_cluster_290.twig new file mode 100644 index 000000000..85e4e5654 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_cluster_290.twig @@ -0,0 +1,15 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/IntroText.twig" %} +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% set buttonLabelPrefix = "Wartenummer für " %} + {{ block(buttonDisplay) }} + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_department_104.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_department_104.twig new file mode 100644 index 000000000..83a0e806c --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_department_104.twig @@ -0,0 +1,25 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% set buttonLabelPrefix = "Wartenummer für " %} + {{ block("button_single") }} + {% else %} + {{ block("IntroMultiButtonText") }} + {{ block("button_multi_deep") }} + {% endif %} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_department_128.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_department_128.twig new file mode 100644 index 000000000..5e3ed3dd5 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_department_128.twig @@ -0,0 +1,24 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + {% if buttonDisplay == "button_single" %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% set buttonLabelPrefix = "Wartenummer für " %} + {{ block("button_single") }} + {% else %} + {{ block("IntroMultiButtonText") }} + {{ block("button_multi_deep") }} + {% endif %} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_scope_185.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_185.twig new file mode 100644 index 000000000..85dbe3687 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_185.twig @@ -0,0 +1,24 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_scope_297.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_297.twig new file mode 100644 index 000000000..85dbe3687 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_297.twig @@ -0,0 +1,24 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_scope_403.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_403.twig new file mode 100644 index 000000000..85dbe3687 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_403.twig @@ -0,0 +1,24 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_scope_559.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_559.twig new file mode 100644 index 000000000..5de6887be --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_559.twig @@ -0,0 +1,19 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/IntroText.twig" %} +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + +
+ {{ block("estimatedWaitingClients") }} +
+ + {{ block("button_single") }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/buttonDisplay_scope_615.twig b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_615.twig new file mode 100644 index 000000000..5de6887be --- /dev/null +++ b/zmsticketprinter/templates/page/customized/buttonDisplay_scope_615.twig @@ -0,0 +1,19 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/IntroText.twig" %} +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + +
+ {{ block("estimatedWaitingClients") }} +
+ + {{ block("button_single") }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/default.twig b/zmsticketprinter/templates/page/customized/default.twig new file mode 100644 index 000000000..1f95e75f5 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/default.twig @@ -0,0 +1,25 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} +
+
+ {% set buttonLabelPrefix = "Wartenummer für " %} + {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {% if department.preferences.notifications.enabled %} + {{ block("button_append_notification") }} + {% endif %} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/time.twig b/zmsticketprinter/templates/page/customized/time.twig new file mode 100644 index 000000000..7cf7e184b --- /dev/null +++ b/zmsticketprinter/templates/page/customized/time.twig @@ -0,0 +1,26 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} + {% if waitingClients >= 0 %} +
+ {{ block("estimatedWaitingTime") }} +
+ {% endif %} + {% set buttonLabelPrefix = "Wartenummer für " %} + {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/timewait.twig b/zmsticketprinter/templates/page/customized/timewait.twig new file mode 100644 index 000000000..df3a82181 --- /dev/null +++ b/zmsticketprinter/templates/page/customized/timewait.twig @@ -0,0 +1,27 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} + {% if waitingClients >= 0 %} +
+ {{ block("estimatedWaitingClients") }} + {{ block("estimatedWaitingTime") }} +
+ {% endif %} + {% set buttonLabelPrefix = "Wartenummer für " %} + {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/customized/wait.twig b/zmsticketprinter/templates/page/customized/wait.twig new file mode 100644 index 000000000..486ec4daa --- /dev/null +++ b/zmsticketprinter/templates/page/customized/wait.twig @@ -0,0 +1,26 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/buttons.twig" %} +{% use "block/content/estimatedWaitingTime.twig" %} +{% use "block/content/estimatedWaitingClients.twig" %} +{% use "block/content/IntroText.twig" %} + +{% block pageid %}index{% endblock %} +{% block pagetype %}customized{% endblock %} +{% block content %} + + {% if buttonDisplay == "button_single" %} + {% if waitingClients >= 0 %} +
+ {{ block("estimatedWaitingClients") }} +
+ {% endif %} + {% set buttonLabelPrefix = "Wartenummer für " %} + {% else %} + {{ block("IntroMultiButtonText") }} + {% endif %} + + {{ block(buttonDisplay) }} + + {{ block("button_append_notification") }} +{% endblock %} diff --git a/zmsticketprinter/templates/page/message.twig b/zmsticketprinter/templates/page/message.twig new file mode 100644 index 000000000..977e202a5 --- /dev/null +++ b/zmsticketprinter/templates/page/message.twig @@ -0,0 +1,19 @@ +{% extends "layout/main.twig" %} + +{% from 'element/helper/form.twig' import custombutton %} + +{% block pageid %}message{% endblock %} +{% block content %} + + {% for message in messages %} + {% include "block/messages/" ~ message ~ ".twig" %} + {% endfor %} + + {% if homeRedirect %} + {% set label = "Zur Startseite" %} + {{ custombutton({ "type":"submit", "href":urlGet('Home', {}, {}), "class": "button back", "name": "submit_no", "label":label|trans }) }} + {% endif %} + +{% endblock %} + + diff --git a/zmsticketprinter/templates/page/notification.twig b/zmsticketprinter/templates/page/notification.twig new file mode 100644 index 000000000..2022731c6 --- /dev/null +++ b/zmsticketprinter/templates/page/notification.twig @@ -0,0 +1,61 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/numberpad.twig" %} + +{% from 'element/helper/form.twig' import formbutton, custombutton, hiddenfield, inputfield %} + +{% block pageid %}notification{% endblock %} +{% block content %} +
+
+
+
+ Bitte geben Sie hier
Ihre Handynummer ein: +
+ {% if scope.preferences.ticketprinter.confirmationEnabled %} +
+ Zur Bestätigung des Eintrags erhalten Sie eine SMS mit Ihrer Wartenummer. +
+ {% endif %} + +
+
+ Handynummer: +
+
+ {{ inputfield({ "name": "telephone", "id": "numberInput", "class": "nummerneingabe", "value": "" }) }} +
+ {% if process.id %} + {{ hiddenfield({ "name": "processId", "value": process.id }) }} + {{ hiddenfield({ "name": "authKey", "value": process.authKey }) }} + {% endif %} + + {{ block("numberpad") }} + +
+ Mit der Taste "<" können Sie die letzte Ziffer löschen, mit der "C"-Taste löschen Sie Ihre komplette Eingabe. +
+
+ Ihre Handynummer wird nur zu diesem Zweck gespeichert und anschließend gelöscht. +
+
+ + {% if hasProcess %} + {% set message = "process_notification_amendment_canceled" %} + {% else %} + {% set message = "notification_amendment_canceled" %} + {% endif %} +
+ {{ hiddenfield({ "name": "scopeId", "value": process.scope.id }) }} +
+
+ {% set label = "Handynummer übermitteln" %} + {{ formbutton({ "type":"submit", "disabled": "1", "name": "Telefonnachtragen", "formTarget":"postNotification", "id":"Telefonnachtragen", "class": "button nachtrag disabled", "label":label|trans, "value": label|trans }) }} + + {% set label = "Abbrechen" %} + {{ formbutton({ "type":"submit", "name": "Telefonnachtragen", "formTarget":"postCancel", "id":"Telefonnachtragen", "class": "button abbrechen", "label":label|trans, "value": label|trans }) }} +
+
+
+
+{% endblock %} diff --git a/zmsticketprinter/templates/page/notificationAmendment.twig b/zmsticketprinter/templates/page/notificationAmendment.twig new file mode 100644 index 000000000..c8afb71b5 --- /dev/null +++ b/zmsticketprinter/templates/page/notificationAmendment.twig @@ -0,0 +1,50 @@ +{% extends "layout/main.twig" %} + +{% use "block/content/numberpad.twig" %} + +{% from 'element/helper/form.twig' import formbutton, custombutton, hiddenfield, inputfield %} + +{% block pageid %}notification{% endblock %} +{% block content %} +
+
+
+
+ Bitte geben Sie hier Ihre Wartenummer ein: +
+ +
+
+ Wartenummer: +
+
+ {{ inputfield({ "name": "waitingNumber", "id": "numberInput", "class": "nummerneingabe" }) }} +
+ {% if scope %} + {{ hiddenfield({ "name": "scopeId", "value": scope.id }) }} + {% endif %} + + {{ block("numberpad") }} +
+ +
+ Mit der Taste "<" können Sie die letzte Eingabe löschen, mit der "C"-Taste löschen Sie Ihre komplette Eingabe. +
+ +
+ {% if scope %} + {{ hiddenfield({ "name": "scopeId", "value": scope.id }) }} + {% endif %} +
+ +
+ {% set label = "Wartenummer übermitteln" %} + {{ formbutton({ "type":"submit", "disabled": "1", "name": "Wartenummereintragen", "formTarget":"postQueueNumber", "id":"waitingNumberSubmit", "class": "button nachtrag disabled", "label":label|trans, "value": label|trans }) }} + + {% set label = "Abbrechen" %} + {{ formbutton({ "type":"submit", "name": "Telefonnachtragen", "formTarget":"postCancel", "id":"waitingNumberAbort", "class": "button abbrechen", "label":label|trans, "value": label|trans }) }} +
+
+
+
+{% endblock %} diff --git a/zmsticketprinter/templates/page/process.twig b/zmsticketprinter/templates/page/process.twig new file mode 100644 index 000000000..a6aedec70 --- /dev/null +++ b/zmsticketprinter/templates/page/process.twig @@ -0,0 +1,90 @@ +{% extends "layout/main.twig" %} + +{% from 'element/helper/form.twig' import formbutton, custombutton, hiddenfield %} +{% use "block/content/print.twig" %} + +{% block pageid %}process{% endblock %} +{% block content %} + +
+ {{ block("print") }} + +
+ + {% trans %}Ihre Wartenummer lautet{% endtrans %}:
+
+
+ {{ process.queue.number }} +
+ + {% if waitingClients >= 1 %} + {% if waitingClients == 1 %} + Es wartet 1 Kunde vor Ihnen. + {% else %} + Es warten {{ waitingClients }} Kunden vor Ihnen. + {% endif %} + + {% else %} + Es wartet niemand vor Ihnen. + {% endif %} + +
+ + {% trans %}Voraussichtliche Wartezeit{% endtrans %}: + {% if waitingTime %} + {% if waitingTime < 120 %} + {{ waitingTime }} {% trans %}Minuten{% endtrans %} + {% else %} + {{ (waitingTime / 60)|round(0, 'floor') }} {% trans %}Stunden{% endtrans %} + {% endif %} + {% else %} + {% trans %}keine{% endtrans %} + {% endif %} + + {% if + waitingTime > (scope.preferences.ticketprinter.notificationsDelay)|round() and + process.scope.preferences.ticketprinter.notificationsEnabled and department.preferences.notifications.enabled + %} + {% set headsUpTime = config.notifications.erinnerungsvorlauf %} + {% if process.scope.preferences.notifications.headsUpTime %} + {% set headsUpTime = process.scope.preferences.notifications.headsUpTime %} + {% endif %} +

Wartenummer wird im Anschluss ausgedruckt.

+ + Wünschen Sie eine SMS-Benachrichtigung
+ {{ headsUpTime }} Minuten vor ihrem Aufruf? +
+ +
+ {{ hiddenfield({ "name": "waitingNumber", "value": process.queue.number }) }} + {{ hiddenfield({ "name": "scopeId", "value": process.scope.id }) }} + {{ hiddenfield({ "name": "organisationId", "value": organisation.id }) }} +
+ +
+ {{ hiddenfield({ "name": "scopeId", "value": process.scope.id }) }} +
+ +
+ {% set label = "Ja" %} + {{ formbutton({ "type":"submit", "name": "processWithNotifiation", "formTarget":"postNotification", "class": "button ja_nein", "label":label|trans, "value": 1 }) }} + + {% set label = "Nein" %} + {{ formbutton({ "type":"submit", "name": "processWithNotification", "formTarget":"postCancel", "class": "button ja_nein option_nein", "label":label|trans, "value": 0 }) }} +
+ + {% else %} +

Ihre Wartenummer wird gedruckt.

+ {{ hiddenfield({ "name": "scopeId", "value": process.scope.id }) }} + {{ hiddenfield({ "name": "status", "value": "process_success" }) }} + + {% set label = "OK" %} + {{ custombutton({ "type":"submit", "href":urlGet('Home', {}, {}), "class": "button ja_nein", "name": "submit_ok", "label":label|trans, "value": label|trans }) }} + {% endif %} +
+
+{% endblock %} diff --git a/zmsticketprinter/templates/page/reset.twig b/zmsticketprinter/templates/page/reset.twig new file mode 100644 index 000000000..a1e558dd3 --- /dev/null +++ b/zmsticketprinter/templates/page/reset.twig @@ -0,0 +1,8 @@ +{% extends "layout/main.twig" %} + +{% from 'element/helper/form.twig' import custombutton, inputfield %} + +{% block pageid %}message{% endblock %} +{% block content %} +

Die Apparat-ID wurde zurückgesetzt

+{% endblock %} \ No newline at end of file diff --git a/zmsticketprinter/templates/page/status.twig b/zmsticketprinter/templates/page/status.twig new file mode 100644 index 000000000..32b2f95bd --- /dev/null +++ b/zmsticketprinter/templates/page/status.twig @@ -0,0 +1,54 @@ +{% extends "layout/main.twig" %} + + +{% block pageid %}status{% endblock %} +{% block title %}{% trans %}Status{% endtrans %}{% endblock %} + +{% block content %} +

{{ title }}

+ +
+
+

Ticketprinter Settings

+ + + + + + + + + + + + + + + + + + + + + + +
Aktiviert: + {{ status.ticketprinter.enabled ? 1 : 0 }}
Homeurl: + {{ status.homeurl }}
Hash: + {{ status.ticketprinter.hash }}
Reload Intervall: + {{ status.ticketprinter.reload }}
Id: + {{ status.ticketprinter.id }}
Name: + {{ status.ticketprinter.name }}
Zuletzt geändert: + {{ status.ticketprinter.lastUpdate|format_date(pattern="EE dd. MMMM Y, HH:mm") }} Uhr
+

Request Cookies

+
+ {% for name, value in cookies %} + + + + {% endfor %} +
{{ name }}: + {{ value }}
+
+
+{% endblock %} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/Base.php b/zmsticketprinter/tests/Zmsticketprinter/Base.php new file mode 100644 index 000000000..a2c68133c --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/Base.php @@ -0,0 +1,25 @@ + 'readGetResult', + 'url' => '/scope/615/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/710caa9f2e7547a52106d6b00868c5cf3a/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single_615.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/615/department/', + 'response' => $this->readFixture("GET_department_127.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/615/queue/', + 'response' => $this->readFixture("GET_queuelist_312.json"), //Bürgeramt 1 in Köpenick + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ + 'scopeId' => 615 + ], [ + '__cookie' => [ + 'Ticketprinter' => '710caa9f2e7547a52106d6b00868c5cf3a', + ] + ], [ ]); + $this->assertEquals('200', $response->getStatusCode()); + $this->assertStringContainsString('Ordnungsamt Charlottenburg-Wilmersdorf', (string) $response->getBody()); + $this->assertStringNotContainsString('Wartenummer für', (string) $response->getBody()); + } + + public function testTemplateNotFound() + { + $this->expectException('\BO\Zmsticketprinter\Exception\TemplateNotFound'); + $this->expectExceptionCode(404); + $this->render([ + 'scopeId' => 615 + ], [ + '__cookie' => [ + 'Ticketprinter' => '710caa9f2e7547a52106d6b00868c5cf3a', + ], + 'template' => 'notfound' + ], [ ]); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/DialogHandlerTest.php b/zmsticketprinter/tests/Zmsticketprinter/DialogHandlerTest.php new file mode 100644 index 000000000..e95ff8aba --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/DialogHandlerTest.php @@ -0,0 +1,23 @@ + 'force_https']; + + protected $classname = "\BO\Zmsticketprinter\Helper\DialogHandler"; + + public function testRendering() + { + $response = $this->render([], $this->parameters, []); + $this->assertStringContainsString('Unsicheres Protokoll verwendet', (string)$response->getBody()); + $this->assertStringContainsString( + 'Die Nutzung dieser Seiten ist ausschließlich mit dem sicheren HTTPS-Protokoll gestattet.', + (string)$response->getBody() + ); + $this->assertEquals(200, $response->getStatusCode()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/HealthcheckTest.php b/zmsticketprinter/tests/Zmsticketprinter/HealthcheckTest.php new file mode 100644 index 000000000..28837f954 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/HealthcheckTest.php @@ -0,0 +1,31 @@ + 'readGetResult', + 'url' => '/status/', + 'parameters' => ['includeProcessStats' => 0], + 'response' => $this->readFixture("GET_status.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ ], [ ], [ ]); + $this->assertStringContainsString('WARN', (string)$response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/HomeTest.php b/zmsticketprinter/tests/Zmsticketprinter/HomeTest.php new file mode 100644 index 000000000..877c04c1a --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/HomeTest.php @@ -0,0 +1,31 @@ +render([ ], [ ], [ ]); + $homeUrl = \BO\Zmsclient\Ticketprinter::getHomeUrl(); + $this->assertEquals($homeUrl, 'http://service.berlin.de/terminvereinbarung/ticketprinter/scope/141/'); + } + + public function testFailed() + { + $request = static::createBasicRequest('GET', '/'); + \BO\Zmsclient\Ticketprinter::setHomeUrl('', $request); + $this->expectException('\BO\Zmsticketprinter\Exception\HomeNotFound'); + $response = $this->render([ ], [ ], [ ]); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/HomeUrlTest.php b/zmsticketprinter/tests/Zmsticketprinter/HomeUrlTest.php new file mode 100644 index 000000000..36b861871 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/HomeUrlTest.php @@ -0,0 +1,112 @@ +setApiCalls( + [ + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_multi.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json") + ] + ] + ); + $request = static::createBasicRequest('GET', '/'); + \BO\Zmsclient\Ticketprinter::setHomeUrl("", $request); + $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's141,l[http://www.berlin.de/|Portal berlin.de]', + 'home' => 'http://service.berlin.de/terminvereinbarung/ticketprinter/scope/141/' + ] + ], [ ]); + + $homeUrl = \BO\Zmsclient\Ticketprinter::getHomeUrl(); + $this->assertEquals($homeUrl, 'http://service.berlin.de/terminvereinbarung/ticketprinter/scope/141/'); + } + + public function testRedirectToSingleScopePage() + { + $this->setApiCalls( + [ + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single_home.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ] + ); + $request = static::createBasicRequest('GET', '/'); + \BO\Zmsclient\Ticketprinter::setHomeUrl("", $request); + $response = $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's141', + 'home' => 'http://service.berlin.de/home/' + ] + ], [ ]); + $homeUrl = \BO\Zmsclient\Ticketprinter::getHomeUrl(); + $queryString = urlencode('ticketprinter[home]') . '=' . urlencode($homeUrl); + $this->assertRedirect($response, '/scope/141/?'. $queryString); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/Index2ButtonsTest.php b/zmsticketprinter/tests/Zmsticketprinter/Index2ButtonsTest.php new file mode 100644 index 000000000..95130a82e --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/Index2ButtonsTest.php @@ -0,0 +1,59 @@ + 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_2.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's141' + ] + ], [ ]); + $this->assertStringContainsString('wartebuttonbereich_zweizeilig_tief', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/IndexCustomizedByDepartmentTest.php b/zmsticketprinter/tests/Zmsticketprinter/IndexCustomizedByDepartmentTest.php new file mode 100644 index 000000000..5d8e5b32d --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/IndexCustomizedByDepartmentTest.php @@ -0,0 +1,59 @@ + 'readGetResult', + 'url' => '/scope/637/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_70.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_2.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's637' + ] + ], [ ]); + $this->assertStringContainsString('customized', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/IndexRedirectSingleScopeTest.php b/zmsticketprinter/tests/Zmsticketprinter/IndexRedirectSingleScopeTest.php new file mode 100644 index 000000000..1543dd80a --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/IndexRedirectSingleScopeTest.php @@ -0,0 +1,59 @@ + 'readGetResult', + 'url' => '/scope/312/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_78.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/312/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's312' + ] + ], [ ]); + $this->assertRedirect($response, '/scope/312/'); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/IndexTest.php b/zmsticketprinter/tests/Zmsticketprinter/IndexTest.php new file mode 100644 index 000000000..a40000c95 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/IndexTest.php @@ -0,0 +1,61 @@ + 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_multi.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json") + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'ticketprinter' => [ + 'buttonlist' => 's141,l[http://www.berlin.de/|Portal berlin.de]' + ] + ], [ ]); + $this->assertStringContainsString('fordern Sie eine Wartenummer', (string) $response->getBody()); + $this->assertStringContainsString('Bürgeramt Hohenzollerndamm', (string) $response->getBody()); + $this->assertStringContainsString('Portal berlin.de', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/MessageTest.php b/zmsticketprinter/tests/Zmsticketprinter/MessageTest.php new file mode 100644 index 000000000..cfd854d35 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/MessageTest.php @@ -0,0 +1,47 @@ + 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + ]; + } + + public function testRendering() + { + $response = $this->render([ + 'status' => 'process_success', + ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141 + ], [ ]); + $this->assertStringContainsString('Wartenummernausdruck erfolgt!', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/NotificationAmendmentTest.php b/zmsticketprinter/tests/Zmsticketprinter/NotificationAmendmentTest.php new file mode 100644 index 000000000..98a2d1e33 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/NotificationAmendmentTest.php @@ -0,0 +1,50 @@ + 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/', + 'response' => $this->readFixture("GET_scope_lessdata.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + ]; + } + + public function testRendering() + { + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141 + ], [ ]); + $this->assertStringContainsString('Bitte geben Sie hier Ihre Wartenummer ein:', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignFailedTest.php b/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignFailedTest.php new file mode 100644 index 000000000..f4dae685e --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignFailedTest.php @@ -0,0 +1,36 @@ + 'readGetResult', + 'url' => '/process/100044/57c2/', + 'response' => $this->readFixture("GET_process_100044_57c2.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'processId' => 100044, + 'authKey' => '57c2', + 'telephone' => '017123456' + ], [ ]); + $this->assertRedirect($response, '/message/process_notification_number_unvalid/?scopeId=141¬Home=1'); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignTest.php b/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignTest.php new file mode 100644 index 000000000..329aac56b --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/NotificationAssignTest.php @@ -0,0 +1,51 @@ + 'readGetResult', + 'url' => '/process/100044/57c2/', + 'response' => $this->readFixture("GET_process_100044_57c2.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/', + 'response' => $this->readFixture("GET_queuelist_141.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/process/100044/57c2/', + 'response' => $this->readFixture("GET_process_100044_57c2_updated.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/process/100044/57c2/confirmation/notification/', + 'response' => $this->readFixture("GET_process_100044_57c2_notification_queued.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'processId' => 100044, + 'authKey' => '57c2', + 'telephone' => '017123456789' + ], [ ]); + $this->assertRedirect($response, '/message/process_notification_success/?scopeId=141'); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/NotificationByScopeTest.php b/zmsticketprinter/tests/Zmsticketprinter/NotificationByScopeTest.php new file mode 100644 index 000000000..5c3e522d9 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/NotificationByScopeTest.php @@ -0,0 +1,51 @@ + 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/2/', + 'response' => $this->readFixture("GET_process_with_waitingnumber.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141, + 'waitingNumber' => 2 + ], [ ]); + $this->assertStringContainsString('Bitte geben Sie hier
Ihre Handynummer ein', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/NotificationFailedTest.php b/zmsticketprinter/tests/Zmsticketprinter/NotificationFailedTest.php new file mode 100644 index 000000000..f9c918b23 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/NotificationFailedTest.php @@ -0,0 +1,59 @@ +setApiCalls([ + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ] + ]); + $response = $this->render( + [], + [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141 + ], + [ ] + ); + $this->assertRedirect( + $response, + '/message/process_notification_amendment_waitingnumber_unvalid/?scopeId=141¬Home=1' + ); + } + + public function testFailedWithException() + { + $this->expectException('\BO\Zmsticketprinter\Exception\ScopeNotFound'); + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'waitingNumber' => 2 + ], [ ]); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/OldRedirectTest.php b/zmsticketprinter/tests/Zmsticketprinter/OldRedirectTest.php new file mode 100644 index 000000000..4dffd7789 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/OldRedirectTest.php @@ -0,0 +1,23 @@ +render([ ], [ + 'auswahlstandortid' => array(363,141,142), + 'auswahlclusterid' => array(109), + 'OID' => 71 + ], [ ]); + $this->assertRedirect($response, '/?ticketprinter%5Bbuttonlist%5D=s363%2Cs141%2Cs142%2Cc109'); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeTest.php b/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeTest.php new file mode 100644 index 000000000..7aabf4556 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeTest.php @@ -0,0 +1,68 @@ + 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/waitingnumber/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_process_100044_57c2.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/', + 'response' => $this->readFixture("GET_queuelist_141.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141, + ], [ ]); + $this->assertStringContainsString('Es warten', (string) $response->getBody()); + $this->assertStringContainsString('Ihre Wartenummer wird gedruckt', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeWithNotificationTest.php b/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeWithNotificationTest.php new file mode 100644 index 000000000..b9319c3a1 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/ProcessByScopeWithNotificationTest.php @@ -0,0 +1,121 @@ +setApiCalls( + [ + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single_notification.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/waitingnumber/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_process_100044_57c2_with_notifications.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/', + 'response' => $this->readFixture("GET_queuelist_141.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ] + ); + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141, + ], [ ]); + $this->assertStringContainsString('Wünschen Sie eine SMS-Benachrichtigung', (string) $response->getBody()); + $this->assertStringContainsString('30 Minuten vor ihrem Aufruf?', (string) $response->getBody()); + } + + public function testWithoutNotificationEnabled() + { + $this->setApiCalls( + [ + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single_notification.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_74_withoutNotificationEnabled.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/waitingnumber/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_process_100044_57c2_with_notifications.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/', + 'response' => $this->readFixture("GET_queuelist_141.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ] + ); + $response = $this->render([], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ], + 'scopeId' => 141, + ], [ ]); + $this->assertStringNotContainsString('Wünschen Sie eine SMS-Benachrichtigung', (string) $response->getBody()); + $this->assertStringNotContainsString('30 Minuten vor ihrem Aufruf?', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/RoutingTest.php b/zmsticketprinter/tests/Zmsticketprinter/RoutingTest.php new file mode 100644 index 000000000..17e53c877 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/RoutingTest.php @@ -0,0 +1,43 @@ +assertEmpty(\BO\Slim\Bootstrap::loadRouting(\App::APP_PATH . '/routing.php')); + } + + public function testErrorHandlerWithExceptionTemplateData() + { + $request = static::createBasicRequest('GET', '/'); + \App::$language = new \BO\Slim\Language($request, \App::$supportedLanguages); + $exception = new \BO\Zmsticketprinter\Exception\ScopeNotFound(); + $container = \App::$slim->getContainer()->get('errorHandler'); + $response = $container($request, $this->getResponse(), $exception); + $this->assertStringContainsString( + 'Es konnte zu den angegeben Daten kein Standort gefunden werden.', + (string)$response->getBody() + ); + } + + public function testErrorHandlerWithCustomTemplate() + { + $request = static::createBasicRequest('GET', '/'); + $exception = new \BO\Zmsclient\Exception(); + $exception->template = 'BO\Zmsapi\Exception\Organisation\OrganisationNotFound'; + $exception->data = ['scope' => new \BO\Zmsentities\Scope(['id' => 141])]; + $container = \App::$slim->getContainer()->get('errorHandler'); + $response = $container($request, $this->getResponse(), $exception); + $this->assertStringContainsString('Ein Fehler ist aufgetreten', (string)$response->getBody()); + $this->assertStringContainsString( + 'Zu dieser Auswahl konnte keine Organisation gefunden werden. Bitte prüfen Sie Ihre Angaben.', + (string)$response->getBody() + ); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeTest.php b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeTest.php new file mode 100644 index 000000000..7cf78ee1a --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeTest.php @@ -0,0 +1,65 @@ + 'readGetResult', + 'url' => '/scope/312/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_78.json"), //Treptow Köpenick + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/312/department/', + 'response' => $this->readFixture("GET_department_127.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/312/queue/', + 'response' => $this->readFixture("GET_queuelist_312.json"), //Bürgeramt 1 in Köpenick + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ + 'scopeId' => 312 + ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ] + ], [ ]); + $this->assertStringContainsString('Wartenummer für', (string) $response->getBody()); + $this->assertStringContainsString('Köpenick', (string) $response->getBody()); + $this->assertStringNotContainsString('Handynummer nachträglich eintragen', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithNotificationTest.php b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithNotificationTest.php new file mode 100644 index 000000000..73dd76ef4 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithNotificationTest.php @@ -0,0 +1,65 @@ + 'readGetResult', + 'url' => '/scope/141/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_71.json"), //Treptow Köpenick + ], + [ + 'function' => 'readGetResult', + 'url' => '/ticketprinter/71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2/', + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single_notification.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/department/', + 'response' => $this->readFixture("GET_department_127.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/141/queue/', + 'response' => $this->readFixture("GET_queuelist_141.json"), //Bürgeramt 1 in Köpenick + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $response = $this->render([ + 'scopeId' => 141 + ], [ + '__cookie' => [ + 'Ticketprinter' => '71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2', + ] + ], [ ]); + $this->assertStringContainsString('Wartenummer für', (string) $response->getBody()); + $this->assertStringContainsString('Heerstraße', (string) $response->getBody()); + $this->assertStringContainsString('Handynummer nachträglich eintragen', (string) $response->getBody()); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithoutHashTest.php b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithoutHashTest.php new file mode 100644 index 000000000..628f15f38 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/TicketprinterByScopeWithoutHashTest.php @@ -0,0 +1,60 @@ + 'readGetResult', + 'url' => '/scope/312/organisation/', + 'parameters' => ['resolveReferences' => 2], + 'response' => $this->readFixture("GET_organisation_78.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/organisation/78/hash/', + 'parameters' => ['name' => ''], + 'response' => $this->readFixture("GET_ticketprinter.json"), + ], + [ + 'function' => 'readPostResult', + 'url' => '/ticketprinter/', + 'response' => $this->readFixture("GET_ticketprinter_buttonlist_single.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/312/department/', + 'response' => $this->readFixture("GET_department_127.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/scope/312/queue/', + 'response' => $this->readFixture("GET_queuelist_312.json"), + ], + [ + 'function' => 'readGetResult', + 'url' => '/config/', + 'parameters' => [], + 'xtoken' => 'a9b215f1-e460-490c-8a0b-6d42c274d5e4', + 'response' => $this->readFixture("GET_config.json"), + ] + ]; + } + + public function testRendering() + { + $this->render([ + 'scopeId' => 312 + ], [ ], [ ]); + $this->assertTrue('71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2' == $_COOKIE['Ticketprinter']); + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_config.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_config.json new file mode 100644 index 000000000..70ea09437 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_config.json @@ -0,0 +1,49 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2017-07-03T18:12:38+02:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/config.json", + "appointments": { + "urlChange": "https://service.berlin.de/terminvereinbarung/termin/manage/", + "urlAppointments": "https://service.berlin.de/terminvereinbarung/" + }, + "notifications": { + "kommandoAbsage": "Storno", + "kommandoAbfrage": "Berlin", + "number": "0174-8882288", + "absage": "0", + "gateway": "mail", + "gatewayUrl": "", + "eMailkonfigurierbar": "0", + "benachrichtigungsfrist": "10", + "headsUpContent": "Sie sind in Kürze an der Reihe. Bitte kommen Sie zum Schalter. Ihre Vorgangsnr. ist", + "confirmationContent": "Ihre Telefonnummer wurde erfolgreich registriert. Ihre Wartenr. lautet:", + "costs": "0.15", + "erinnerungsvorlauf": "180" + }, + "ticketprinter": { + "baseUrl": "/terminvereinbarung/ticketprinter/" + }, + "calldisplay": { + "baseUrl": "/terminvereinbarung/calldisplay/" + }, + "emergency": { + "refreshInterval": "5" + } + }, + "profiler": [ + { + "duration": 0.00011301040649414, + "function": "perform", + "statement": " SELECT * FROM config ", + "bind_values": [ + + ] + } + ] +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_127.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_127.json new file mode 100644 index 000000000..7b9036dc2 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_127.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2017-06-12T13:43:54+02:00", + "server": "Zmsapi-ENV", + "reducedData": true + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/department.json", + "id": "127", + "name": "Ordnungsamt", + "preferences": { + "notifications": { + "enabled": true + } + } + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74.json new file mode 100644 index 000000000..dea24d21e --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://127.0.0.1/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2018-10-24T13:29:55+02:00", + "server": "Zmsapi-ENV (v2.18.02-25-gc214cea)" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/department.json", + "id": "74", + "scopes": [ + { + "id": "380", + "source": "dldb", + "contact": { + "name": "Bürgeramt Halemweg (Außenstelle)" + }, + "$ref": "/scope/380/" + } + ], + "links": [ + { + "name": "Bürgerämter Charlottenburg-Wilmersdorf", + "url": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "target": "1", + "id": "119" + } + ], + "dayoff": [ + { + "id": "1590", + "date": 1478041200, + "lastChange": 1540372571, + "name": "Personalversammlung" + } + ], + "name": "Bürgeramt", + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "preferences": { + "notifications": { + "enabled": "1", + "identification": "support@berlin.de", + "sendConfirmationEnabled": "1", + "sendReminderEnabled": "1" + } + }, + "clusters": [ + { + "scopes": [ + { + "id": "141", + "source": "dldb", + "$ref": "/scope/141/" + } + ], + "id": "109", + "name": "Bürgeramt Heerstraße", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + }, + { + "scopes": [ + { + "id": "140", + "source": "dldb", + "$ref": "/scope/140/" + } + ], + "id": "110", + "name": "Bürgeramt Hohenzollerndamm", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + }, + { + "scopes": [ + { + "id": "142", + "source": "dldb", + "$ref": "/scope/142/" + } + ], + "id": "192", + "name": "Bürgeramt Wilmersdorfer Str.", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + } + ] + } + } \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74_withoutNotificationEnabled.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74_withoutNotificationEnabled.json new file mode 100644 index 000000000..e36f6f266 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_department_74_withoutNotificationEnabled.json @@ -0,0 +1,99 @@ +{ + "$schema": "https://127.0.0.1/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2018-10-24T13:29:55+02:00", + "server": "Zmsapi-ENV (v2.18.02-25-gc214cea)" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/department.json", + "id": "74", + "scopes": [ + { + "id": "380", + "source": "dldb", + "contact": { + "name": "Bürgeramt Halemweg (Außenstelle)" + }, + "$ref": "/scope/380/" + } + ], + "links": [ + { + "name": "Bürgerämter Charlottenburg-Wilmersdorf", + "url": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "target": "1", + "id": "119" + } + ], + "dayoff": [ + { + "id": "1590", + "date": 1478041200, + "lastChange": 1540372571, + "name": "Personalversammlung" + } + ], + "name": "Bürgeramt", + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "preferences": { + "notifications": { + "enabled": "0", + "identification": "support@berlin.de", + "sendConfirmationEnabled": "1", + "sendReminderEnabled": "1" + } + }, + "clusters": [ + { + "scopes": [ + { + "id": "141", + "source": "dldb", + "$ref": "/scope/141/" + } + ], + "id": "109", + "name": "Bürgeramt Heerstraße", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + }, + { + "scopes": [ + { + "id": "140", + "source": "dldb", + "$ref": "/scope/140/" + } + ], + "id": "110", + "name": "Bürgeramt Hohenzollerndamm", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + }, + { + "scopes": [ + { + "id": "142", + "source": "dldb", + "$ref": "/scope/142/" + } + ], + "id": "192", + "name": "Bürgeramt Wilmersdorfer Str.", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "" + } + ] + } + } \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_70.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_70.json new file mode 100644 index 000000000..469f8243e --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_70.json @@ -0,0 +1,140 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-25T08:57:28+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/organisation.json", + "name": "Lichtenberg", + "id": "70", + "contact": { + "city": "", + "street": "", + "country": "Germany", + "name": "Lichtenberg" + }, + "preferences": { + "ticketPrinterProtectionEnabled": "0" + }, + "departments": [ + { + "email": "post.buergeramt@lichtenberg.berlin.de", + "id": "72", + "name": "Bürgeramt", + "contact": { + "city": "Egon-Erwin-Kisch-Str.", + "street": "Egon-Erwin-Kisch-Str.", + "country": "Germany", + "name": "Frau Bräuer" + }, + "clusters": [ + { + "id": "30", + "name": "Bürgeramt 4", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen \r\nin Berlin Lichtenberg\r\n=====================\r\nTermin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-lichtenberg/\r\noder \r\nden Service des Bürgertelefons:\r\n115", + "scopes": [ + { + "id": 0, + "$ref": "/scope/133/" + } + ] + }, + { + "id": "60", + "name": "Bürgeramt 1", + "hint": "Bürgeramt 1", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen \r\nin Berlin Lichtenberg\r\n=====================\r\nTermin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-lichtenberg/\r\noder \r\nden Service des Bürgertelefons:\r\n115", + "scopes": [ + { + "id": 0, + "$ref": "/scope/134/" + } + ] + }, + { + "id": "28", + "name": "Bürgeramt 2", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen \r\nin Berlin Lichtenberg\r\n=====================\r\nTermin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-lichtenberg/\r\noder \r\nden Service des Berlintelefon:\r\n115", + "scopes": [ + { + "id": 0, + "$ref": "/scope/135/" + } + ] + }, + { + "id": "29", + "name": "Bürgeramt 3", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen \r\nin Berlin Lichtenberg\r\n=====================\r\nTermin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-lichtenberg/\r\noder \r\nden Service des Bürgertelefons:\r\n115", + "scopes": [ + { + "id": 0, + "$ref": "/scope/136/" + } + ] + } + ], + "scopes": [ + { + "id": "133", + "$ref": "/scope/133/" + }, + { + "id": "134", + "$ref": "/scope/134/" + }, + { + "id": "135", + "$ref": "/scope/135/" + }, + { + "id": "136", + "$ref": "/scope/136/" + } + ] + }, + { + "email": "zms.ordnungsamt@lichtenberg.berlin.de", + "id": "128", + "name": "Ordnungsamt", + "contact": { + "city": "Berlin", + "street": "Große-Leege-Str. 103, 13055 Berlin", + "country": "Germany", + "name": "Frau Elke Fischer" + }, + "clusters": [ + { + "id": "283", + "name": "Ordnungsamt Lichtenberg", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen im Ordnungsamt Lichtenberg\r\n\r\nUnsere Sprechzeiten:\r\n\r\nMontag, Dienstag\r\n09:00-13:00 Uhr\r\nDonnerstag\r\n14:00-18:00 Uhr\r\nFreitag\r\n09:00-12:00 Uhr", + "scopes": [ + { + "id": 0, + "$ref": "/scope/637/" + } + ] + } + ], + "scopes": [ + { + "id": "637", + "$ref": "/scope/637/" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_71.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_71.json new file mode 100644 index 000000000..3b5d9b38f --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_71.json @@ -0,0 +1,143 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/organisation.json", + "name": "Charlottenburg-Wilmersdorf", + "id": "71", + "contact": { + "city": "", + "street": "", + "country": "Germany", + "name": "Charlottenburg-Wilmersdorf" + }, + "preferences": { + "ticketPrinterProtectionEnabled": "0" + }, + "departments": [ + { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "id": "74", + "name": "Bürgeramt", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "preferences": { + "notifications": { + "enabled": "1", + "identification": "support@berlin.de", + "sendConfirmationEnabled": "1", + "sendReminderEnabled": "1" + } + }, + "clusters": [ + { + "id": "110", + "name": "Bürgeramt Hohenzollerndamm", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/140/" + } + ] + }, + { + "id": "109", + "name": "Bürgeramt Heerstraße", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/141/" + } + ] + }, + { + "id": "192", + "name": "Bürgeramt Wilmersdorfer Str.", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/142/" + } + ] + } + ], + "scopes": [ + { + "id": "140", + "$ref": "/scope/140/" + }, + { + "id": "141", + "$ref": "/scope/141/" + }, + { + "id": "142", + "$ref": "/scope/142/" + }, + { + "id": "380", + "$ref": "/scope/380/" + } + ] + }, + { + "id": "127", + "name": "Ordnungsamt", + "contact": { + "city": "174/177", + "street": "Hohenzollerndamm 174/177", + "country": "Germany", + "name": "Herr Pflücker" + }, + "clusters": [ + { + "id": "290", + "name": "Ordnungsamt -ZAB-", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/615/" + } + ] + } + ], + "scopes": [ + { + "id": "615", + "$ref": "/scope/615/" + } + ] + } + ], + "ticketprinters": [ + { + "enabled": "1", + "hash": "710caa9f2e7547a52106d6b00868c5cf3a", + "id": "2", + "lastUpdate": "1481533240", + "name": "" + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_78.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_78.json new file mode 100644 index 000000000..5171d9cbf --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_organisation_78.json @@ -0,0 +1,222 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-25T08:57:28+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/organisation.json", + "contact": { + "city": "", + "street": "", + "country": "Germany", + "name": "Treptow-Köpenick" + }, + "name": "Treptow-Köpenick", + "id": "78", + "preferences": { + "ticketPrinterProtectionEnabled": "0" + }, + "departments": [ + { + "contact": { + "city": "", + "street": "", + "country": "Germany", + "name": "" + }, + "email": "buergeraemter@ba-tk.berlin.de", + "id": "96", + "name": "Bürgeramt", + "clusters": [ + { + "id": "78", + "name": "Bürgeramt Köpenick", + "hint": "Gute Tag", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen im Bürgeramt Köpenick\r\n\r\n", + "scopes": [ + { + "hint": "Bürgeramt | ", + "id": "312", + "contact": { + "name": "Bürgeramt I in Köpenick", + "street": "Alt-Köpenick 21, 12555 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "20", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "https://service.berlin.de", + "amendmentActivated": "1", + "amendmentLabel": "", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "", + "headsUpTime": "0" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nim Bürgeramt Köpenick\r\n======================", + "firstNumber": "1", + "lastNumber": "399", + "processingTimeAverage": "12", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt I in Köpenick", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "35", + "lastGivenNumber": "36", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122208", + "$ref": "/provider/122208/" + } + } + ] + }, + { + "id": "76", + "name": "Bürgeramt Schöneweide", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "Herzlich Willkommen \r\nim Bürgeramt Schöneweide\r\n=====================\r\n\r\nDokumentenausgabe:\r\nneben der Information\r\nPlatz 1-2 Erdgeschoss\r\n\r\nPlätze 10-16\r\n1. Etage\r\n\r\nPlätze 20-28\r\n2. Etage", + "scopes": [ + { + "hint": "Bürgeramt | ", + "id": "313", + "contact": { + "name": "Bürgeramt II in Schöneweide", + "street": "Michael-Brückner-Str. 1, 12439 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "20", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "1", + "amendmentLabel": "", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "", + "headsUpTime": "0" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nim Bürgeramt Schöneweide\r\n=====================\r\n\r\nDokumentenausgabe:\r\nPlatz 1-2 Erdgeschoss\r\n\r\nPlätze 10-16\r\n1. Etage\r\n\r\nPlätze 20-28\r\n2. Etage", + "firstNumber": "1", + "lastNumber": "399", + "processingTimeAverage": "12", + "publishWaitingTimeEnabled": "0", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt II in Schöneweide", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "72", + "lastGivenNumber": "73", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122226", + "$ref": "/provider/122226/" + } + } + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2.json new file mode 100644 index 000000000..031124208 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2.json @@ -0,0 +1,1568 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "exception": null, + "generated": "2016-09-08T15:25:50+02:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "amendment": null, + "id": "100044", + "appointments": [ + { + "date": "1464605400", + "scope": { + "id": "141" + }, + "slotCount": "1", + "availability": { + "id": "94666", + "scope": { + "id": "141" + }, + "bookable": { + "startInDays": "0", + "endInDays": "60" + }, + "description": "", + "startDate": "1463954400", + "startTime": "08:00:00", + "endDate": "1609365600", + "endTime": "15:50:00", + "multipleSlotsAllowed": "0", + "repeat": { + "afterWeeks": "1", + "weekOfMonth": "0" + }, + "slotTimeInMinutes": "10", + "weekday": { + "monday": "2", + "tuesday": "0", + "wednesday": "0", + "thursday": "0", + "friday": "0", + "saturday": "0", + "sunday": "0" + }, + "workstationCount": { + "callcenter": "2", + "intern": "2", + "public": "2" + } + } + } + ], + "scope": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "enabled": "1", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": "1447925159" + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "city": "Berlin", + "country": "Germany", + "name": "Bürgeramt Heerstraße", + "postalCode": "14052", + "region": "Berlin", + "street": "Heerstr.", + "streetNumber": "12" + }, + "source": "dldb", + "link": "https://service.berlin.de/standort/122217/", + "name": "Bürgeramt Heerstraße", + "data": { + "services": [ + { + "contact": [], + "service": "120656", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120658", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120658", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120665", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120671", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120678", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120678", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120682", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120682", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120702", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120702", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120703", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120726", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120726", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120732", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120732", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120877", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120877", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120926", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120926", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121151", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121151", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121153", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121153", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121368", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121368", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121469", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121469", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121543", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121575", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121575", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121589", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121589", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121591", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121591", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121593", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121593", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121598", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121598", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121615", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121615", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121616", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121616", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121622", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121622", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121627", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121627", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121629", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121629", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121634", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121634", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121637", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121637", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121701", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121701", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121721", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121721", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121742", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121874", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121874", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "124556", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=124556", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150169", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=150169", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150177", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "158142", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=158142", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "297016", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=297016", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "319141", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324269", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324269", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324280", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324280", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324325", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324389", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324389", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324450", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324450", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324573", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324921", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324921", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "325147", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "327044", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=327044", + "slots": "0", + "external": false, + "allowed": true + } + } + ], + "transit": { + "bus": "Württembergallee: 218, 349, M49\r\nReichsstraße/ Kastanienallee: 104, N2", + "sbahn": false, + "tram": false, + "ubahn": "U Theodor-Heuss-Platz: U2", + "vbb": { + "api": false, + "distance": 2000, + "limit": 10 + } + }, + "address": { + "house_number": "12", + "city": "Berlin", + "postal_code": "14052", + "street": "Heerstr." + }, + "note": "Sie finden uns nahe Theodor-Heuss-Platz, Haupteingang, Erdgeschoss, auf der linken Seite.
\nFür die Abholung fertiggestellter Reisepässe und Personalausweise ist keine Terminvereinbarung möglich.", + "meta": { + "lastupdate": "2016-02-12T14:05:00+01:00", + "locale": "de", + "keywords": "Bürgeramt, Bürgerämter, Bürgeramt Heerstraße, Meldestelle Heerstaße, Meldestellen, Meldeamt Heerstraße, Meldeämter, Einwohnermeldeamt Heerstraße, Einwohnermeldeämter, Heerstraße 12/ 14, Heerstraße 12 - 14" + }, + "accessibility": { + "elevator": "0", + "access": "rollstuhlgerecht", + "parking": "1", + "wc": "3", + "note": false + }, + "authority": { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf" + }, + "office": "buergeramt", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "fax": "(030) 9029-17780", + "phone": "(030) 115", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buea_heerstr.html", + "competence": "" + }, + "payment": "Am Standort kann nur mit girocard (mit PIN) bezahlt werden.", + "paymentcode": "2", + "appointment": { + "note": "", + "multiple": "1" + }, + "id": "122217", + "geo": { + "lat": "52.50938000", + "lon": "13.26766000" + }, + "name": "Bürgeramt Heerstraße", + "opening_times": { + "tuesday": "11.00-18.00 Uhr - nur mit Termin*", + "thursday": "10.00-18.00 Uhr - nur mit Termin*", + "friday": "08.00-14.00 Uhr - nur mit Termin*", + "wednesday": "08.00-13.00 Uhr - nur mit Termin*", + "monday": "08.00-16.00 Uhr - nur mit Termin*", + "saturday": false, + "sunday": false, + "special": "Das Bürgeramt Heerstraße ist ein reiner Terminstandort!*
\n
\n
  • *einige Dienstleistungen erfordern keinen Termin. Achten Sie auf die Hinweise unter "Zuständige Behörden" bei der jeweiligen Dienstleistung oder informieren Sie sich auf unserer Homepage.

  • \n
Auskünfte und Berlinpässe erhalten Sie beim Empfang. Dort sind auch Terminvereinbarungen möglich." + } + } + }, + "department": { + "id": "74", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "name": "Bürgeramt", + "preferences": { + "notifications": { + "enabled": null, + "identification": null, + "sendConfirmationEnabled": null, + "sendReminderEnabled": null + } + } + } + }, + "authKey": "57c2", + "clients": [ + { + "email": "unittest@service.berlinonline.de", + "emailSendCount": "1", + "familyName": "BO", + "notificationsSendCount": "0", + "surveyAccepted": null, + "telephone": null + } + ], + "createIP": "", + "createTimestamp": "1473340535", + "queue": { + "arrivalTime": 1459510800, + "callCount": "0", + "callTime": 0, + "number": "100044", + "waitingTimeEstimate": 49, + "waitingTimeOptimistic": 27, + "waitingTime": 24, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + "workstation": { + "id": "0" + }, + "reminderTimestamp": "0", + "requests": { + "0": { + "$schema": "https://schema.berlin.de/queuemanagement/request.json", + "id": "120703", + "link": "https://service.berlin.de/dienstleistung/120703/", + "name": "Personalausweis beantragen", + "source": "dldb", + "data": { + "authorities": [ + { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/" + }, + { + "id": "12668", + "name": "Bezirksamt Friedrichshain - Kreuzberg", + "webinfo": "http://www.berlin.de/ba-friedrichshain-kreuzberg/" + }, + { + "id": "12669", + "name": "Bezirksamt Lichtenberg", + "webinfo": "http://www.berlin.de/ba-lichtenberg/" + }, + { + "id": "12670", + "name": "Bezirksamt Marzahn - Hellersdorf", + "webinfo": "http://www.berlin.de/ba-marzahn-hellersdorf/" + }, + { + "id": "12671", + "name": "Bezirksamt Mitte", + "webinfo": "http://www.berlin.de/ba-mitte/" + }, + { + "id": "12672", + "name": "Bezirksamt Neukölln", + "webinfo": "http://www.berlin.de/ba-neukoelln/" + }, + { + "id": "12673", + "name": "Bezirksamt Pankow", + "webinfo": "http://www.berlin.de/ba-pankow/" + }, + { + "id": "12674", + "name": "Bezirksamt Reinickendorf", + "webinfo": "http://www.berlin.de/ba-reinickendorf/" + }, + { + "id": "12675", + "name": "Bezirksamt Spandau", + "webinfo": "http://www.berlin.de/ba-spandau/" + }, + { + "id": "12676", + "name": "Bezirksamt Steglitz-Zehlendorf", + "webinfo": "http://www.berlin.de/ba-steglitz-zehlendorf/" + }, + { + "id": "12677", + "name": "Bezirksamt Tempelhof-Schöneberg", + "webinfo": "http://www.berlin.de/ba-tempelhof-schoeneberg/" + }, + { + "id": "12678", + "name": "Bezirksamt Treptow-Köpenick", + "webinfo": "http://www.berlin.de/ba-treptow-koepenick/" + } + ], + "locations": [ + { + "location": "122231", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122231&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122252", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122252&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122260", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122260&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122238", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122238&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122262", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122262&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122243", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122243&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122254", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122254&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122271", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122271&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327278", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122291", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122291&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122210", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122210&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122217", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122312", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122312&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122273", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122273&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327274", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122219", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122219&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122208", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122208&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122226", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122226&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "150230", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=150230&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122276", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122276&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122246", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122246&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122314", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122314&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122277", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122277&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327276", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122301", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122301&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122297", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122297&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122280", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122280&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122285", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122285&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122304", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122304&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122282", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122282&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122311", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122311&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122251", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122251&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122286", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122286&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122281", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122281&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327352", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "324414", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324414&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122283", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122283&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122279", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122279&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327354", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122274", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122274&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122309", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122309&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122257", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122257&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122284", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122284&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122294", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122294&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122227", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122227&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122267", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122267&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122296", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122296&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327262", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "317869", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=317869&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324433", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324433&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325341", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=325341&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324434", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324434&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325657", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + } + ], + "meta": { + "lastupdate": "2015-07-31T17:35:21+02:00", + "locale": "de", + "keywords": "Personaldokument, PA, Ausweisantrag, Personalausweisantrag, Reisen, ausweispflicht, befreiung, Personalausweis, Personalausweiss, Personalausweiß" + }, + "process_time": "etwa 3 bis 4 Wochen
\n
\nIm Einzelfall kann die Herstellung des Personalausweises deutlich länger dauern. Bitte fragen Sie nach, wenn Sie den Antrag stellen.
\nFalls Sie dringend einen Personalausweis benötigen, können Sie zusätzlich einen vorläufigen Personalausweis beantragen. Mehr zum Thema: Personalausweis vorläufig beantragen", + "requirements": [ + { + "description": "Das Foto muss aktuell sein. Es muss die Anforderungen an Fotos für elektronische Reisepässe erfüllen. Die einzelnen Anforderungen enthält die Foto-Mustertafel der Bundesdruckerei.", + "name": "Aktuelles, biometrisches Passfoto ", + "link": "" + }, + { + "description": "Falls Sie einen alten Personalausweis haben, bringen Sie diesen bitte mit, auch wenn er schon abgelaufen ist.", + "name": "Falls vorhanden: Ihr alter Personalausweis", + "link": "" + }, + { + "description": "Bitte bringen Sie Ihren Reisepass mit, falls
\n
  • Sie noch nie einen Personalausweis hatten oder
  • Sie Ihren alten Personalausweis nicht mehr haben.
", + "name": "Unter Umständen: Ihr Reisepass, falls vorhanden", + "link": "" + }, + { + "description": "Bringen Sie bitte eine Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde mit, falls
\n
  • Sie noch nie einen Personalausweis oder einen Reisepass hatten,
  • Ihre Angaben zu Ihrer Person abweichen von den Daten, die im Melderegister gespeichert sind. Das kann zum Beispiel nach einer Heirat oder nach einer Namensänderung sein.
Mehr zum Thema:
\n", + "name": "Unter Umständen: Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde", + "link": "" + }, + { + "description": "Dies ist nicht erforderlich, falls Sie alleine sorgeberechtigt sind oder falls beide Elternteile anwesend sind.
\nBitte nutzen Sie für die Zustimmung das Formular „Zustimmung zum Antrag auf einen Personalausweis für mein Kind“, siehe Abschnitt „Formulare“.", + "name": "Bei Anträgen eines gesetzlichen Vertreters: schriftliche Zustimmung des anderen gesetzlichen Vertreters", + "link": "" + } + ], + "responsibility": "alle Bürgerämter", + "forms": [ + { + "description": false, + "name": "Zustimmung zum Antrag auf einen Personalausweis für mein Kind", + "link": "http://www.berlin.de/formularserver/formular.php?362420" + }, + { + "description": "Bitte nehmen Sie Kontakt zu Ihrem Bürgeramt auf.", + "name": "Antrag auf Befreiung von der Ausweispflicht", + "link": "http://www.berlin.de/formularserver/formular.php?70259" + } + ], + "fees": "
  • wenn Sie jünger als 24 Jahre sind: 22,80 Euro
  • wenn Sie 24 Jahre oder älter sind: 28,80 Euro
  • zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro
", + "prerequisites": [ + { + "description": false, + "name": "Deutsche Staatsangehörigkeit", + "link": "" + }, + { + "description": "Den Antrag können Sie nur vor Ort stellen.", + "name": "Persönliches Erscheinen", + "link": "" + }, + { + "description": "Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein.", + "name": "Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter", + "link": "" + }, + { + "description": "Sie wohnen in Berlin und sind hier gemeldet.
\nEin Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.
\nWenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland", + "name": "Wohnsitz in Berlin (Ausnahmen möglich)", + "link": "" + } + ], + "id": "120703", + "description": "Mit einem Personalausweis können Sie sich ausweisen.
\n
\nWann brauchen Sie einen Personalausweis?
\nEinen Personalausweis brauchen alle Deutschen ab 16 Jahren, die keinen gültigen Reisepass haben.
\n
\nIn folgenden Fällen sollten Sie einen Personalausweis beantragen:
\n
  • Sie werden 16 Jahre alt (siehe Hinweis am Ende dieser Beschreibung);
  • Ihr alter Personalausweises ist nicht mehr gültig;
  • Sie haben Ihren alten Personalausweis nicht mehr, zum Beispiel weil er gestohlen wurde oder weil Sie ihn verloren haben;
  • Sie haben einen neuen Namen bekommen, zum Beispiel nach einer Heirat.

  • \n
Gibt es Ausnahmen?
\nIn folgenden Fällen brauchen Sie keinen Personalausweis:
\n
\nHinweis:
\nMit Vollendung des 16. Lebensjahres beginnt die sogenannte Ausweispflicht.
\nAuf Antrag seiner gesetzlichen Vertreter kann aber auch für Kinder unter 16 Jahren ein Personalausweis ausgestellt werden. Hierzu berät Sie gern Ihr Bürgeramt.", + "leika": "99008001012001", + "links": [ + { + "description": false, + "name": "Der neue Personalausweis (Informationsseite des Bundes-Innenministeriums)", + "link": "http://www.personalausweisportal.de/" + }, + { + "description": false, + "name": "Reiseratgeber des Auswärtigen Amtes", + "link": "http://www.auswaertiges-amt.de/sid_824A236A96E4E3F4D9A1E605B60000DF/DE/Laenderinformationen/SicherheitshinweiseA-Z-Laenderauswahlseite_node.html" + }, + { + "description": false, + "name": "Foto-Mustertafel der Bundesdruckerei ", + "link": "http://www.personalausweisportal.de/SharedDocs/Downloads/DE/Weitere-Informationen/Fotomustertafel.pdf?__blob=publicationFile" + } + ], + "responsibility_all": true, + "name": "Personalausweis beantragen", + "onlineprocessing": { + "description": false, + "link": "" + }, + "publications": [], + "legal": [ + { + "description": "Seit 1.11.2010 gilt diese gesetzliche Grundlage", + "name": "Personalausweisgesetz (PAuswG)", + "link": "http://www.gesetze-im-internet.de/pauswg/" + } + ], + "relation": { + "root_topic": "324835" + }, + "appointment": { + "link": "" + } + } + } + }, + "status": "confirmed" + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_notification_queued.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_notification_queued.json new file mode 100644 index 000000000..59684aa3d --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_notification_queued.json @@ -0,0 +1,1602 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "exception": null, + "generated": "2016-09-08T17:12:15+02:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/mail.json", + "process": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "amendment": null, + "appointments": [ + { + "date": "1464605400", + "scope": { + "id": "141" + }, + "slotCount": "1", + "availability": { + "id": "94666", + "scope": { + "id": "141" + }, + "bookable": { + "startInDays": "0", + "endInDays": "60" + }, + "description": "", + "startDate": "1463954400", + "startTime": "08:00:00", + "endDate": "1609365600", + "endTime": "15:50:00", + "multipleSlotsAllowed": "0", + "repeat": { + "afterWeeks": "1", + "weekOfMonth": "0" + }, + "slotTimeInMinutes": "10", + "weekday": { + "monday": "2", + "tuesday": "0", + "wednesday": "0", + "thursday": "0", + "friday": "0", + "saturday": "0", + "sunday": "0" + }, + "workstationCount": { + "callcenter": "2", + "intern": "2", + "public": "2" + } + } + } + ], + "authKey": "57c2", + "clients": [ + { + "email": "mathias.fischer@berlinonline.de", + "emailSendCount": "1", + "familyName": "BO", + "notificationsSendCount": "0", + "surveyAccepted": null, + "telephone": null + } + ], + "createIP": "", + "createTimestamp": "1473340535", + "id": "100044", + "queue": { + "arrivalTime": "00:00:00", + "callCount": "0", + "callTime": "00:00:00", + "number": "0", + "waitingTime": null + }, + "reminderTimestamp": "0", + "requests": [ + { + "$schema": "https://schema.berlin.de/queuemanagement/request.json", + "id": "120703", + "link": "https://service.berlin.de/dienstleistung/120703/", + "name": "Personalausweis beantragen", + "source": "dldb", + "data": { + "authorities": [ + { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/" + }, + { + "id": "12668", + "name": "Bezirksamt Friedrichshain - Kreuzberg", + "webinfo": "http://www.berlin.de/ba-friedrichshain-kreuzberg/" + }, + { + "id": "12669", + "name": "Bezirksamt Lichtenberg", + "webinfo": "http://www.berlin.de/ba-lichtenberg/" + }, + { + "id": "12670", + "name": "Bezirksamt Marzahn - Hellersdorf", + "webinfo": "http://www.berlin.de/ba-marzahn-hellersdorf/" + }, + { + "id": "12671", + "name": "Bezirksamt Mitte", + "webinfo": "http://www.berlin.de/ba-mitte/" + }, + { + "id": "12672", + "name": "Bezirksamt Neukölln", + "webinfo": "http://www.berlin.de/ba-neukoelln/" + }, + { + "id": "12673", + "name": "Bezirksamt Pankow", + "webinfo": "http://www.berlin.de/ba-pankow/" + }, + { + "id": "12674", + "name": "Bezirksamt Reinickendorf", + "webinfo": "http://www.berlin.de/ba-reinickendorf/" + }, + { + "id": "12675", + "name": "Bezirksamt Spandau", + "webinfo": "http://www.berlin.de/ba-spandau/" + }, + { + "id": "12676", + "name": "Bezirksamt Steglitz-Zehlendorf", + "webinfo": "http://www.berlin.de/ba-steglitz-zehlendorf/" + }, + { + "id": "12677", + "name": "Bezirksamt Tempelhof-Schöneberg", + "webinfo": "http://www.berlin.de/ba-tempelhof-schoeneberg/" + }, + { + "id": "12678", + "name": "Bezirksamt Treptow-Köpenick", + "webinfo": "http://www.berlin.de/ba-treptow-koepenick/" + } + ], + "locations": [ + { + "location": "122231", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122231&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122252", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122252&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122260", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122260&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122238", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122238&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122262", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122262&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122243", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122243&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122254", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122254&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122271", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122271&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327278", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122291", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122291&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122210", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122210&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122217", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122312", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122312&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122273", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122273&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327274", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122219", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122219&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122208", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122208&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122226", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122226&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "150230", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=150230&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122276", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122276&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122246", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122246&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122314", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122314&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122277", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122277&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327276", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122301", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122301&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122297", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122297&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122280", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122280&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122285", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122285&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122304", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122304&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122282", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122282&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122311", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122311&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122251", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122251&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122286", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122286&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122281", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122281&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327352", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "324414", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324414&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122283", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122283&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122279", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122279&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327354", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122274", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122274&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122309", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122309&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122257", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122257&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122284", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122284&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122294", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122294&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122227", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122227&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122267", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122267&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122296", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122296&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327262", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "317869", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=317869&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324433", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324433&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325341", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=325341&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324434", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324434&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325657", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + } + ], + "meta": { + "lastupdate": "2015-07-31T17:35:21+02:00", + "locale": "de", + "keywords": "Personaldokument, PA, Ausweisantrag, Personalausweisantrag, Reisen, ausweispflicht, befreiung, Personalausweis, Personalausweiss, Personalausweiß" + }, + "process_time": "etwa 3 bis 4 Wochen
\n
\nIm Einzelfall kann die Herstellung des Personalausweises deutlich länger dauern. Bitte fragen Sie nach, wenn Sie den Antrag stellen.
\nFalls Sie dringend einen Personalausweis benötigen, können Sie zusätzlich einen vorläufigen Personalausweis beantragen. Mehr zum Thema: Personalausweis vorläufig beantragen", + "requirements": [ + { + "description": "Das Foto muss aktuell sein. Es muss die Anforderungen an Fotos für elektronische Reisepässe erfüllen. Die einzelnen Anforderungen enthält die Foto-Mustertafel der Bundesdruckerei.", + "name": "Aktuelles, biometrisches Passfoto ", + "link": "" + }, + { + "description": "Falls Sie einen alten Personalausweis haben, bringen Sie diesen bitte mit, auch wenn er schon abgelaufen ist.", + "name": "Falls vorhanden: Ihr alter Personalausweis", + "link": "" + }, + { + "description": "Bitte bringen Sie Ihren Reisepass mit, falls
\n
  • Sie noch nie einen Personalausweis hatten oder
  • Sie Ihren alten Personalausweis nicht mehr haben.
", + "name": "Unter Umständen: Ihr Reisepass, falls vorhanden", + "link": "" + }, + { + "description": "Bringen Sie bitte eine Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde mit, falls
\n
  • Sie noch nie einen Personalausweis oder einen Reisepass hatten,
  • Ihre Angaben zu Ihrer Person abweichen von den Daten, die im Melderegister gespeichert sind. Das kann zum Beispiel nach einer Heirat oder nach einer Namensänderung sein.
Mehr zum Thema:
\n", + "name": "Unter Umständen: Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde", + "link": "" + }, + { + "description": "Dies ist nicht erforderlich, falls Sie alleine sorgeberechtigt sind oder falls beide Elternteile anwesend sind.
\nBitte nutzen Sie für die Zustimmung das Formular „Zustimmung zum Antrag auf einen Personalausweis für mein Kind“, siehe Abschnitt „Formulare“.", + "name": "Bei Anträgen eines gesetzlichen Vertreters: schriftliche Zustimmung des anderen gesetzlichen Vertreters", + "link": "" + } + ], + "responsibility": "alle Bürgerämter", + "forms": [ + { + "description": false, + "name": "Zustimmung zum Antrag auf einen Personalausweis für mein Kind", + "link": "http://www.berlin.de/formularserver/formular.php?362420" + }, + { + "description": "Bitte nehmen Sie Kontakt zu Ihrem Bürgeramt auf.", + "name": "Antrag auf Befreiung von der Ausweispflicht", + "link": "http://www.berlin.de/formularserver/formular.php?70259" + } + ], + "fees": "
  • wenn Sie jünger als 24 Jahre sind: 22,80 Euro
  • wenn Sie 24 Jahre oder älter sind: 28,80 Euro
  • zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro
", + "prerequisites": [ + { + "description": false, + "name": "Deutsche Staatsangehörigkeit", + "link": "" + }, + { + "description": "Den Antrag können Sie nur vor Ort stellen.", + "name": "Persönliches Erscheinen", + "link": "" + }, + { + "description": "Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein.", + "name": "Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter", + "link": "" + }, + { + "description": "Sie wohnen in Berlin und sind hier gemeldet.
\nEin Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.
\nWenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland", + "name": "Wohnsitz in Berlin (Ausnahmen möglich)", + "link": "" + } + ], + "id": "120703", + "description": "Mit einem Personalausweis können Sie sich ausweisen.
\n
\nWann brauchen Sie einen Personalausweis?
\nEinen Personalausweis brauchen alle Deutschen ab 16 Jahren, die keinen gültigen Reisepass haben.
\n
\nIn folgenden Fällen sollten Sie einen Personalausweis beantragen:
\n
  • Sie werden 16 Jahre alt (siehe Hinweis am Ende dieser Beschreibung);
  • Ihr alter Personalausweises ist nicht mehr gültig;
  • Sie haben Ihren alten Personalausweis nicht mehr, zum Beispiel weil er gestohlen wurde oder weil Sie ihn verloren haben;
  • Sie haben einen neuen Namen bekommen, zum Beispiel nach einer Heirat.

  • \n
Gibt es Ausnahmen?
\nIn folgenden Fällen brauchen Sie keinen Personalausweis:
\n
\nHinweis:
\nMit Vollendung des 16. Lebensjahres beginnt die sogenannte Ausweispflicht.
\nAuf Antrag seiner gesetzlichen Vertreter kann aber auch für Kinder unter 16 Jahren ein Personalausweis ausgestellt werden. Hierzu berät Sie gern Ihr Bürgeramt.", + "leika": "99008001012001", + "links": [ + { + "description": false, + "name": "Der neue Personalausweis (Informationsseite des Bundes-Innenministeriums)", + "link": "http://www.personalausweisportal.de/" + }, + { + "description": false, + "name": "Reiseratgeber des Auswärtigen Amtes", + "link": "http://www.auswaertiges-amt.de/sid_824A236A96E4E3F4D9A1E605B60000DF/DE/Laenderinformationen/SicherheitshinweiseA-Z-Laenderauswahlseite_node.html" + }, + { + "description": false, + "name": "Foto-Mustertafel der Bundesdruckerei ", + "link": "http://www.personalausweisportal.de/SharedDocs/Downloads/DE/Weitere-Informationen/Fotomustertafel.pdf?__blob=publicationFile" + } + ], + "responsibility_all": true, + "name": "Personalausweis beantragen", + "onlineprocessing": { + "description": false, + "link": "" + }, + "publications": [], + "legal": [ + { + "description": "Seit 1.11.2010 gilt diese gesetzliche Grundlage", + "name": "Personalausweisgesetz (PAuswG)", + "link": "http://www.gesetze-im-internet.de/pauswg/" + } + ], + "relation": { + "root_topic": "324835" + }, + "appointment": { + "link": "" + } + } + } + ], + "scope": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "enabled": "1", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": "1447925159" + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "city": "Berlin", + "country": "Germany", + "name": "Bürgeramt Heerstraße", + "postalCode": "14052", + "region": "Berlin", + "street": "Heerstr.", + "streetNumber": "12" + }, + "source": "dldb", + "link": "https://service.berlin.de/standort/122217/", + "name": "Bürgeramt Heerstraße", + "data": { + "services": [ + { + "contact": [], + "service": "120656", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120658", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120658", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120665", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120671", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120678", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120678", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120682", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120682", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120702", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120702", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120703", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120726", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120726", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120732", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120732", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120877", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120877", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120926", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120926", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121151", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121151", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121153", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121153", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121368", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121368", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121469", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121469", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121543", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121575", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121575", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121589", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121589", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121591", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121591", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121593", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121593", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121598", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121598", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121615", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121615", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121616", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121616", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121622", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121622", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121627", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121627", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121629", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121629", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121634", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121634", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121637", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121637", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121701", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121701", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121721", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121721", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121742", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121874", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121874", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "124556", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=124556", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150169", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=150169", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150177", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "158142", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=158142", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "297016", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=297016", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "319141", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324269", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324269", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324280", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324280", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324325", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324389", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324389", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324450", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324450", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324573", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324921", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324921", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "325147", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "327044", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=327044", + "slots": "0", + "external": false, + "allowed": true + } + } + ], + "transit": { + "bus": "Württembergallee: 218, 349, M49\r\nReichsstraße/ Kastanienallee: 104, N2", + "sbahn": false, + "tram": false, + "ubahn": "U Theodor-Heuss-Platz: U2", + "vbb": { + "api": false, + "distance": 2000, + "limit": 10 + } + }, + "address": { + "house_number": "12", + "city": "Berlin", + "postal_code": "14052", + "street": "Heerstr." + }, + "note": "Sie finden uns nahe Theodor-Heuss-Platz, Haupteingang, Erdgeschoss, auf der linken Seite.
\nFür die Abholung fertiggestellter Reisepässe und Personalausweise ist keine Terminvereinbarung möglich.", + "meta": { + "lastupdate": "2016-02-12T14:05:00+01:00", + "locale": "de", + "keywords": "Bürgeramt, Bürgerämter, Bürgeramt Heerstraße, Meldestelle Heerstaße, Meldestellen, Meldeamt Heerstraße, Meldeämter, Einwohnermeldeamt Heerstraße, Einwohnermeldeämter, Heerstraße 12/ 14, Heerstraße 12 - 14" + }, + "accessibility": { + "elevator": "0", + "access": "rollstuhlgerecht", + "parking": "1", + "wc": "3", + "note": false + }, + "authority": { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf" + }, + "office": "buergeramt", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "fax": "(030) 9029-17780", + "phone": "(030) 115", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buea_heerstr.html", + "competence": "" + }, + "payment": "Am Standort kann nur mit girocard (mit PIN) bezahlt werden.", + "paymentcode": "2", + "appointment": { + "note": "", + "multiple": "1" + }, + "id": "122217", + "geo": { + "lat": "52.50938000", + "lon": "13.26766000" + }, + "name": "Bürgeramt Heerstraße", + "opening_times": { + "tuesday": "11.00-18.00 Uhr - nur mit Termin*", + "thursday": "10.00-18.00 Uhr - nur mit Termin*", + "friday": "08.00-14.00 Uhr - nur mit Termin*", + "wednesday": "08.00-13.00 Uhr - nur mit Termin*", + "monday": "08.00-16.00 Uhr - nur mit Termin*", + "saturday": false, + "sunday": false, + "special": "Das Bürgeramt Heerstraße ist ein reiner Terminstandort!*
\n
\n
  • *einige Dienstleistungen erfordern keinen Termin. Achten Sie auf die Hinweise unter "Zuständige Behörden" bei der jeweiligen Dienstleistung oder informieren Sie sich auf unserer Homepage.

  • \n
Auskünfte und Berlinpässe erhalten Sie beim Empfang. Dort sind auch Terminvereinbarungen möglich." + } + } + }, + "department": { + "id": "74", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "name": "Bürgeramt", + "preferences": { + "notifications": { + "enabled": null, + "identification": null, + "sendConfirmationEnabled": null, + "sendReminderEnabled": null + } + } + } + }, + "status": "confirmed", + "workstation": { + "id": "0" + } + }, + "subject": "Terminbestaetigung", + "createIP": "", + "department": { + "id": "74", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "name": "Bürgeramt", + "preferences": { + "notifications": { + "enabled": null, + "identification": null, + "sendConfirmationEnabled": null, + "sendReminderEnabled": null + } + } + }, + "multipart": [ + { + "mime": "text/html", + "content": "Sehr geehrte/r Frau oder Herr BO\n

\nhiermit bestätigen wir Ihnen Ihren gebuchten Termin am Mo. 30. Mai 2016 um 12:50 Uhr
\nOrt: Bürgeramt Heerstraße Heerstr., 14052 Berlin
\n(Bürgeramt Nr. wird zum Termin aufgerufen)\n

\nIhre Vorgangsnummer ist die \"100044\"
\nIhr Code zur Terminabsage oder -änderung lautet \"57c2\"

\nZahlungshinweis: Am Standort kann nur mit girocard (mit PIN) bezahlt werden.

\nSie haben folgende Dienstleistung ausgewählt:\n
\n

Personalausweis beantragen

\n
\n

Voraussetzungen

\n \n
    \n
  • \n Deutsche Staatsangehörigkeit\n
  • \n
  • \n Persönliches Erscheinen\n
    \n
    \n Den Antrag können Sie nur vor Ort stellen.\n
    \n
  • \n
  • \n Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter\n
    \n
    \n Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein.\n
    \n
  • \n
  • \n Wohnsitz in Berlin (Ausnahmen möglich)\n
    \n
    \n Sie wohnen in Berlin und sind hier gemeldet.
    \nEin Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.
    \nWenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland\n
    \n
  • \n
\n \n
\n
\n

Gebühren

\n
  • wenn Sie jünger als 24 Jahre sind: 22,80 Euro
  • wenn Sie 24 Jahre oder älter sind: 28,80 Euro
  • zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro
\n

\n\nSollten Sie den Termin nicht wahrnehmen können, sagen Sie ihn bitte ab.\n

\nDies können Sie über unsere Internetbuchungsseite https://service-berlin/terminvereinbarung/termin/manage/100044/ unter Angabe Ihrer Vorgangsnummer \"100044\" und Ihres persönlichen Absage-Codes \"57c2\" erledigen.

\n
\nMit freundlichem Gruß
\nIhre Terminverwaltung des Landes Berlin\n

\nhttps://service-berlin/terminvereinbarung/\n", + "base64": false + }, + { + "mime": "text/plain", + "content": "Sehr geehrte/r Frau oder Herr BO \\n\\n hiermit bestätigen wir Ihnen Ihren gebuchten Termin am Mo. 30. Mai 2016 um 12:50 Uhr\\n Ort: Bürgeramt Heerstraße Heerstr., 14052 Berlin\\n (Bürgeramt Nr. wird zum Termin aufgerufen) \\n\\n Ihre Vorgangsnummer ist die \"100044\"\\n Ihr Code zur Terminabsage oder -änderung lautet \"57c2\"\\n\\n Zahlungshinweis: Am Standort kann nur mit girocard (mit PIN) bezahlt werden.\\n\\n Sie haben folgende Dienstleistung ausgewählt: \\n \\nPersonalausweis beantragen\\n \\nVoraussetzungen\\n \\n- Deutsche Staatsangehörigkeit \\n- Persönliches Erscheinen Den Antrag können Sie nur vor Ort stellen. \\n- Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein. \\n- Wohnsitz in Berlin (Ausnahmen möglich) Sie wohnen in Berlin und sind hier gemeldet.\\n Ein Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.\\n Wenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland \\nGebühren\\n \\n- wenn Sie jünger als 24 Jahre sind: 22,80 Euro\\n- wenn Sie 24 Jahre oder älter sind: 28,80 Euro\\n- zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro \\n Sollten Sie den Termin nicht wahrnehmen können, sagen Sie ihn bitte ab. \\n\\n Dies können Sie über unsere Internetbuchungsseite https://service-berlin/terminvereinbarung/termin/manage/100044/ unter Angabe Ihrer Vorgangsnummer \"100044\" und Ihres persönlichen Absage-Codes \"57c2\" erledigen.\\n\\n \\n Mit freundlichem Gruß\\n Ihre Terminverwaltung des Landes Berlin \\n\\n https://service-berlin/terminvereinbarung/ ", + "base64": false + }, + { + "mime": "text/calendar", + "content": "BEGIN:VCALENDAR\nX-LOTUS-CHARSET:UTF-8\nVERSION:2.0\nPRODID:ZMS-Berlin\nBEGIN:VTIMEZONE\nTZID:Europe/Berlin\nX-LIC-LOCATION:Europe/Berlin\nBEGIN:DAYLIGHT\nTZOFFSETFROM:+0100\nTZOFFSETTO:+0200\nTZNAME:CEST\nDTSTART:19700329T020000\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3\nEND:DAYLIGHT\nBEGIN:STANDARD\nTZOFFSETFROM:+0200\nTZOFFSETTO:+0100\nTZNAME:CET\nDTSTART:19701025T030000\nRRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10\nEND:STANDARD\nEND:VTIMEZONE\nMETHOD:PUBLISH\nBEGIN:VEVENT\nCLASS:PUBLIC\nDTSTART;TZID=Europe/Berlin:20160530T125000\nDTEND;TZID=Europe/Berlin:20160530T130000\nDTSTAMP:20160908T171215Z\nLOCATION:Bürgeramt Heerstraße Heerstr., 14052 Berlin\nSUMMARY:Berlin-Termin: 100044\nDESCRIPTION: Sehr geehrte/r Frau oder Herr BO \\n\\n hiermit bestätigen wir Ihnen Ihren gebuchten Termin am Mo. 30. Mai 2016 um 12:50 Uhr\\n Ort: Bürgeramt Heerstraße Heerstr., 14052 Berlin\\n (Bürgeramt Nr. wird zum Termin aufgerufen) \\n\\n Ihre Vorgangsnummer ist die \"100044\"\\n Ihr Code zur Terminabsage oder -änderung lautet \"57c2\"\\n\\n Zahlungshinweis: Am Standort kann nur mit girocard (mit PIN) bezahlt werden.\\n\\n Sie haben folgende Dienstleistung ausgewählt: \\n \\nPersonalausweis beantragen\\n \\nVoraussetzungen\\n \\n- Deutsche Staatsangehörigkeit \\n- Persönliches Erscheinen Den Antrag können Sie nur vor Ort stellen. \\n- Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein. \\n- Wohnsitz in Berlin (Ausnahmen möglich) Sie wohnen in Berlin und sind hier gemeldet.\\n Ein Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.\\n Wenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland \\nGebühren\\n \\n- wenn Sie jünger als 24 Jahre sind: 22,80 Euro\\n- wenn Sie 24 Jahre oder älter sind: 28,80 Euro\\n- zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro \\n Sollten Sie den Termin nicht wahrnehmen können, sagen Sie ihn bitte ab. \\n\\n Dies können Sie über unsere Internetbuchungsseite https://service-berlin/terminvereinbarung/termin/manage/100044/ unter Angabe Ihrer Vorgangsnummer \"100044\" und Ihres persönlichen Absage-Codes \"57c2\" erledigen.\\n\\n \\n Mit freundlichem Gruß\\n Ihre Terminverwaltung des Landes Berlin \\n\\n https://service-berlin/terminvereinbarung/ \nBEGIN:VALARM\nACTION:DISPLAY\nTRIGGER:-P1D\nDESCRIPTION:Erinnerung\nEND:VALARM\nEND:VEVENT\nEND:VCALENDAR\n", + "base64": false + } + ], + "id": "9" + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_updated.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_updated.json new file mode 100644 index 000000000..81d5e3bae --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_updated.json @@ -0,0 +1,1560 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "exception": null, + "generated": "2016-09-08T15:25:50+02:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "amendment": null, + "id": "100044", + "appointments": [ + { + "date": "1464605400", + "scope": { + "id": "141" + }, + "slotCount": "1", + "availability": { + "id": "94666", + "scope": { + "id": "141" + }, + "bookable": { + "startInDays": "0", + "endInDays": "60" + }, + "description": "", + "startDate": "1463954400", + "startTime": "08:00:00", + "endDate": "1609365600", + "endTime": "15:50:00", + "multipleSlotsAllowed": "0", + "repeat": { + "afterWeeks": "1", + "weekOfMonth": "0" + }, + "slotTimeInMinutes": "10", + "weekday": { + "monday": "2", + "tuesday": "0", + "wednesday": "0", + "thursday": "0", + "friday": "0", + "saturday": "0", + "sunday": "0" + }, + "workstationCount": { + "callcenter": "2", + "intern": "2", + "public": "2" + } + } + } + ], + "scope": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "enabled": "1", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": "1447925159" + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "city": "Berlin", + "country": "Germany", + "name": "Bürgeramt Heerstraße", + "postalCode": "14052", + "region": "Berlin", + "street": "Heerstr.", + "streetNumber": "12" + }, + "source": "dldb", + "link": "https://service.berlin.de/standort/122217/", + "name": "Bürgeramt Heerstraße", + "data": { + "services": [ + { + "contact": [], + "service": "120656", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120658", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120658", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120665", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120671", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120678", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120678", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120682", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120682", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120702", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120702", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120703", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120726", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120726", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120732", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120732", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120877", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120877", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120926", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120926", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121151", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121151", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121153", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121153", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121368", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121368", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121469", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121469", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121543", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121575", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121575", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121589", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121589", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121591", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121591", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121593", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121593", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121598", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121598", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121615", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121615", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121616", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121616", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121622", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121622", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121627", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121627", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121629", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121629", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121634", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121634", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121637", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121637", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121701", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121701", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121721", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121721", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121742", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121874", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121874", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "124556", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=124556", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150169", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=150169", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150177", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "158142", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=158142", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "297016", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=297016", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "319141", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324269", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324269", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324280", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324280", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324325", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324389", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324389", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324450", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324450", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324573", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324921", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324921", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "325147", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "327044", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=327044", + "slots": "0", + "external": false, + "allowed": true + } + } + ], + "transit": { + "bus": "Württembergallee: 218, 349, M49\r\nReichsstraße/ Kastanienallee: 104, N2", + "sbahn": false, + "tram": false, + "ubahn": "U Theodor-Heuss-Platz: U2", + "vbb": { + "api": false, + "distance": 2000, + "limit": 10 + } + }, + "address": { + "house_number": "12", + "city": "Berlin", + "postal_code": "14052", + "street": "Heerstr." + }, + "note": "Sie finden uns nahe Theodor-Heuss-Platz, Haupteingang, Erdgeschoss, auf der linken Seite.
\nFür die Abholung fertiggestellter Reisepässe und Personalausweise ist keine Terminvereinbarung möglich.", + "meta": { + "lastupdate": "2016-02-12T14:05:00+01:00", + "locale": "de", + "keywords": "Bürgeramt, Bürgerämter, Bürgeramt Heerstraße, Meldestelle Heerstaße, Meldestellen, Meldeamt Heerstraße, Meldeämter, Einwohnermeldeamt Heerstraße, Einwohnermeldeämter, Heerstraße 12/ 14, Heerstraße 12 - 14" + }, + "accessibility": { + "elevator": "0", + "access": "rollstuhlgerecht", + "parking": "1", + "wc": "3", + "note": false + }, + "authority": { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf" + }, + "office": "buergeramt", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "fax": "(030) 9029-17780", + "phone": "(030) 115", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buea_heerstr.html", + "competence": "" + }, + "payment": "Am Standort kann nur mit girocard (mit PIN) bezahlt werden.", + "paymentcode": "2", + "appointment": { + "note": "", + "multiple": "1" + }, + "id": "122217", + "geo": { + "lat": "52.50938000", + "lon": "13.26766000" + }, + "name": "Bürgeramt Heerstraße", + "opening_times": { + "tuesday": "11.00-18.00 Uhr - nur mit Termin*", + "thursday": "10.00-18.00 Uhr - nur mit Termin*", + "friday": "08.00-14.00 Uhr - nur mit Termin*", + "wednesday": "08.00-13.00 Uhr - nur mit Termin*", + "monday": "08.00-16.00 Uhr - nur mit Termin*", + "saturday": false, + "sunday": false, + "special": "Das Bürgeramt Heerstraße ist ein reiner Terminstandort!*
\n
\n
  • *einige Dienstleistungen erfordern keinen Termin. Achten Sie auf die Hinweise unter "Zuständige Behörden" bei der jeweiligen Dienstleistung oder informieren Sie sich auf unserer Homepage.

  • \n
Auskünfte und Berlinpässe erhalten Sie beim Empfang. Dort sind auch Terminvereinbarungen möglich." + } + } + }, + "department": { + "id": "74", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "name": "Bürgeramt", + "preferences": { + "notifications": { + "enabled": null, + "identification": null, + "sendConfirmationEnabled": null, + "sendReminderEnabled": null + } + } + } + }, + "authKey": "57c2", + "clients": [ + { + "email": "unittest@service.berlinonline.de", + "emailSendCount": "1", + "familyName": "BO", + "notificationsSendCount": "0", + "surveyAccepted": null, + "telephone": "017123456789" + } + ], + "createIP": "", + "createTimestamp": "1473340535", + "queue": { + "arrivalTime": "00:00:00", + "callCount": "0", + "callTime": "00:00:00", + "number": "0", + "waitingTime": null + }, + "workstation": { + "id": "0" + }, + "reminderTimestamp": "0", + "requests": { + "0": { + "$schema": "https://schema.berlin.de/queuemanagement/request.json", + "id": "120703", + "link": "https://service.berlin.de/dienstleistung/120703/", + "name": "Personalausweis beantragen", + "source": "dldb", + "data": { + "authorities": [ + { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/" + }, + { + "id": "12668", + "name": "Bezirksamt Friedrichshain - Kreuzberg", + "webinfo": "http://www.berlin.de/ba-friedrichshain-kreuzberg/" + }, + { + "id": "12669", + "name": "Bezirksamt Lichtenberg", + "webinfo": "http://www.berlin.de/ba-lichtenberg/" + }, + { + "id": "12670", + "name": "Bezirksamt Marzahn - Hellersdorf", + "webinfo": "http://www.berlin.de/ba-marzahn-hellersdorf/" + }, + { + "id": "12671", + "name": "Bezirksamt Mitte", + "webinfo": "http://www.berlin.de/ba-mitte/" + }, + { + "id": "12672", + "name": "Bezirksamt Neukölln", + "webinfo": "http://www.berlin.de/ba-neukoelln/" + }, + { + "id": "12673", + "name": "Bezirksamt Pankow", + "webinfo": "http://www.berlin.de/ba-pankow/" + }, + { + "id": "12674", + "name": "Bezirksamt Reinickendorf", + "webinfo": "http://www.berlin.de/ba-reinickendorf/" + }, + { + "id": "12675", + "name": "Bezirksamt Spandau", + "webinfo": "http://www.berlin.de/ba-spandau/" + }, + { + "id": "12676", + "name": "Bezirksamt Steglitz-Zehlendorf", + "webinfo": "http://www.berlin.de/ba-steglitz-zehlendorf/" + }, + { + "id": "12677", + "name": "Bezirksamt Tempelhof-Schöneberg", + "webinfo": "http://www.berlin.de/ba-tempelhof-schoeneberg/" + }, + { + "id": "12678", + "name": "Bezirksamt Treptow-Köpenick", + "webinfo": "http://www.berlin.de/ba-treptow-koepenick/" + } + ], + "locations": [ + { + "location": "122231", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122231&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122252", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122252&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122260", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122260&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122238", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122238&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122262", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122262&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122243", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122243&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122254", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122254&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122271", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122271&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327278", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122291", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122291&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122210", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122210&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122217", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122312", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122312&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122273", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122273&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327274", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122219", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122219&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122208", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122208&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122226", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122226&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "150230", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=150230&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122276", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122276&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122246", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122246&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122314", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122314&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122277", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122277&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327276", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122301", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122301&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122297", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122297&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122280", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122280&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122285", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122285&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122304", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122304&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122282", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122282&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122311", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122311&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122251", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122251&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122286", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122286&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122281", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122281&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327352", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "324414", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324414&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122283", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122283&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122279", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122279&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327354", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122274", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122274&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122309", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122309&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122257", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122257&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122284", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122284&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122294", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122294&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122227", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122227&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122267", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122267&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122296", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122296&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327262", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "317869", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=317869&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324433", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324433&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325341", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=325341&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324434", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324434&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325657", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + } + ], + "meta": { + "lastupdate": "2015-07-31T17:35:21+02:00", + "locale": "de", + "keywords": "Personaldokument, PA, Ausweisantrag, Personalausweisantrag, Reisen, ausweispflicht, befreiung, Personalausweis, Personalausweiss, Personalausweiß" + }, + "process_time": "etwa 3 bis 4 Wochen
\n
\nIm Einzelfall kann die Herstellung des Personalausweises deutlich länger dauern. Bitte fragen Sie nach, wenn Sie den Antrag stellen.
\nFalls Sie dringend einen Personalausweis benötigen, können Sie zusätzlich einen vorläufigen Personalausweis beantragen. Mehr zum Thema: Personalausweis vorläufig beantragen", + "requirements": [ + { + "description": "Das Foto muss aktuell sein. Es muss die Anforderungen an Fotos für elektronische Reisepässe erfüllen. Die einzelnen Anforderungen enthält die Foto-Mustertafel der Bundesdruckerei.", + "name": "Aktuelles, biometrisches Passfoto ", + "link": "" + }, + { + "description": "Falls Sie einen alten Personalausweis haben, bringen Sie diesen bitte mit, auch wenn er schon abgelaufen ist.", + "name": "Falls vorhanden: Ihr alter Personalausweis", + "link": "" + }, + { + "description": "Bitte bringen Sie Ihren Reisepass mit, falls
\n
  • Sie noch nie einen Personalausweis hatten oder
  • Sie Ihren alten Personalausweis nicht mehr haben.
", + "name": "Unter Umständen: Ihr Reisepass, falls vorhanden", + "link": "" + }, + { + "description": "Bringen Sie bitte eine Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde mit, falls
\n
  • Sie noch nie einen Personalausweis oder einen Reisepass hatten,
  • Ihre Angaben zu Ihrer Person abweichen von den Daten, die im Melderegister gespeichert sind. Das kann zum Beispiel nach einer Heirat oder nach einer Namensänderung sein.
Mehr zum Thema:
\n", + "name": "Unter Umständen: Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde", + "link": "" + }, + { + "description": "Dies ist nicht erforderlich, falls Sie alleine sorgeberechtigt sind oder falls beide Elternteile anwesend sind.
\nBitte nutzen Sie für die Zustimmung das Formular „Zustimmung zum Antrag auf einen Personalausweis für mein Kind“, siehe Abschnitt „Formulare“.", + "name": "Bei Anträgen eines gesetzlichen Vertreters: schriftliche Zustimmung des anderen gesetzlichen Vertreters", + "link": "" + } + ], + "responsibility": "alle Bürgerämter", + "forms": [ + { + "description": false, + "name": "Zustimmung zum Antrag auf einen Personalausweis für mein Kind", + "link": "http://www.berlin.de/formularserver/formular.php?362420" + }, + { + "description": "Bitte nehmen Sie Kontakt zu Ihrem Bürgeramt auf.", + "name": "Antrag auf Befreiung von der Ausweispflicht", + "link": "http://www.berlin.de/formularserver/formular.php?70259" + } + ], + "fees": "
  • wenn Sie jünger als 24 Jahre sind: 22,80 Euro
  • wenn Sie 24 Jahre oder älter sind: 28,80 Euro
  • zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro
", + "prerequisites": [ + { + "description": false, + "name": "Deutsche Staatsangehörigkeit", + "link": "" + }, + { + "description": "Den Antrag können Sie nur vor Ort stellen.", + "name": "Persönliches Erscheinen", + "link": "" + }, + { + "description": "Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein.", + "name": "Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter", + "link": "" + }, + { + "description": "Sie wohnen in Berlin und sind hier gemeldet.
\nEin Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.
\nWenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland", + "name": "Wohnsitz in Berlin (Ausnahmen möglich)", + "link": "" + } + ], + "id": "120703", + "description": "Mit einem Personalausweis können Sie sich ausweisen.
\n
\nWann brauchen Sie einen Personalausweis?
\nEinen Personalausweis brauchen alle Deutschen ab 16 Jahren, die keinen gültigen Reisepass haben.
\n
\nIn folgenden Fällen sollten Sie einen Personalausweis beantragen:
\n
  • Sie werden 16 Jahre alt (siehe Hinweis am Ende dieser Beschreibung);
  • Ihr alter Personalausweises ist nicht mehr gültig;
  • Sie haben Ihren alten Personalausweis nicht mehr, zum Beispiel weil er gestohlen wurde oder weil Sie ihn verloren haben;
  • Sie haben einen neuen Namen bekommen, zum Beispiel nach einer Heirat.

  • \n
Gibt es Ausnahmen?
\nIn folgenden Fällen brauchen Sie keinen Personalausweis:
\n
\nHinweis:
\nMit Vollendung des 16. Lebensjahres beginnt die sogenannte Ausweispflicht.
\nAuf Antrag seiner gesetzlichen Vertreter kann aber auch für Kinder unter 16 Jahren ein Personalausweis ausgestellt werden. Hierzu berät Sie gern Ihr Bürgeramt.", + "leika": "99008001012001", + "links": [ + { + "description": false, + "name": "Der neue Personalausweis (Informationsseite des Bundes-Innenministeriums)", + "link": "http://www.personalausweisportal.de/" + }, + { + "description": false, + "name": "Reiseratgeber des Auswärtigen Amtes", + "link": "http://www.auswaertiges-amt.de/sid_824A236A96E4E3F4D9A1E605B60000DF/DE/Laenderinformationen/SicherheitshinweiseA-Z-Laenderauswahlseite_node.html" + }, + { + "description": false, + "name": "Foto-Mustertafel der Bundesdruckerei ", + "link": "http://www.personalausweisportal.de/SharedDocs/Downloads/DE/Weitere-Informationen/Fotomustertafel.pdf?__blob=publicationFile" + } + ], + "responsibility_all": true, + "name": "Personalausweis beantragen", + "onlineprocessing": { + "description": false, + "link": "" + }, + "publications": [], + "legal": [ + { + "description": "Seit 1.11.2010 gilt diese gesetzliche Grundlage", + "name": "Personalausweisgesetz (PAuswG)", + "link": "http://www.gesetze-im-internet.de/pauswg/" + } + ], + "relation": { + "root_topic": "324835" + }, + "appointment": { + "link": "" + } + } + } + }, + "status": "confirmed" + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_with_notifications.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_with_notifications.json new file mode 100644 index 000000000..6c782c71a --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_100044_57c2_with_notifications.json @@ -0,0 +1,1561 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "exception": null, + "generated": "2016-09-08T15:25:50+02:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "amendment": null, + "id": "100044", + "appointments": [ + { + "date": "1464605400", + "scope": { + "id": "141" + }, + "slotCount": "1", + "availability": { + "id": "94666", + "scope": { + "id": "141" + }, + "bookable": { + "startInDays": "0", + "endInDays": "60" + }, + "description": "", + "startDate": "1463954400", + "startTime": "08:00:00", + "endDate": "1609365600", + "endTime": "15:50:00", + "multipleSlotsAllowed": "0", + "repeat": { + "afterWeeks": "1", + "weekOfMonth": "0" + }, + "slotTimeInMinutes": "10", + "weekday": { + "monday": "2", + "tuesday": "0", + "wednesday": "0", + "thursday": "0", + "friday": "0", + "saturday": "0", + "sunday": "0" + }, + "workstationCount": { + "callcenter": "2", + "intern": "2", + "public": "2" + } + } + } + ], + "scope": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "enabled": "1", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": "1447925159" + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "city": "Berlin", + "country": "Germany", + "name": "Bürgeramt Heerstraße", + "postalCode": "14052", + "region": "Berlin", + "street": "Heerstr.", + "streetNumber": "12" + }, + "source": "dldb", + "link": "https://service.berlin.de/standort/122217/", + "name": "Bürgeramt Heerstraße", + "data": { + "services": [ + { + "contact": [], + "service": "120656", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120658", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120658", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120665", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120671", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "120678", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120678", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120682", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120682", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120702", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120702", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120703", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120726", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120726", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120732", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120732", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120877", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120877", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "120926", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120926", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121151", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121151", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121153", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121153", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121368", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121368", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121469", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121469", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121543", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121575", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121575", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121589", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121589", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121591", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121591", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121593", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121593", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121598", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121598", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121615", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121615", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121616", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121616", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121622", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121622", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121627", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121627", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121629", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121629", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121634", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121634", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121637", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121637", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121701", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121701", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121721", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121721", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "121742", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "121874", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=121874", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "124556", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=124556", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150169", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=150169", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "150177", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "158142", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=158142", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "297016", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=297016", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "319141", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324269", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324269", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324280", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324280", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324325", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324389", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324389", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324450", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324450", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "324573", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "324921", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=324921", + "slots": "0", + "external": false, + "allowed": true + } + }, + { + "contact": [], + "service": "325147", + "hint": "", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "allowed": false + } + }, + { + "contact": [], + "service": "327044", + "hint": "", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=327044", + "slots": "0", + "external": false, + "allowed": true + } + } + ], + "transit": { + "bus": "Württembergallee: 218, 349, M49\r\nReichsstraße/ Kastanienallee: 104, N2", + "sbahn": false, + "tram": false, + "ubahn": "U Theodor-Heuss-Platz: U2", + "vbb": { + "api": false, + "distance": 2000, + "limit": 10 + } + }, + "address": { + "house_number": "12", + "city": "Berlin", + "postal_code": "14052", + "street": "Heerstr." + }, + "note": "Sie finden uns nahe Theodor-Heuss-Platz, Haupteingang, Erdgeschoss, auf der linken Seite.
\nFür die Abholung fertiggestellter Reisepässe und Personalausweise ist keine Terminvereinbarung möglich.", + "meta": { + "lastupdate": "2016-02-12T14:05:00+01:00", + "locale": "de", + "keywords": "Bürgeramt, Bürgerämter, Bürgeramt Heerstraße, Meldestelle Heerstaße, Meldestellen, Meldeamt Heerstraße, Meldeämter, Einwohnermeldeamt Heerstraße, Einwohnermeldeämter, Heerstraße 12/ 14, Heerstraße 12 - 14" + }, + "accessibility": { + "elevator": "0", + "access": "rollstuhlgerecht", + "parking": "1", + "wc": "3", + "note": false + }, + "authority": { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf" + }, + "office": "buergeramt", + "contact": { + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "fax": "(030) 9029-17780", + "phone": "(030) 115", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buea_heerstr.html", + "competence": "" + }, + "payment": "Am Standort kann nur mit girocard (mit PIN) bezahlt werden.", + "paymentcode": "2", + "appointment": { + "note": "", + "multiple": "1" + }, + "id": "122217", + "geo": { + "lat": "52.50938000", + "lon": "13.26766000" + }, + "name": "Bürgeramt Heerstraße", + "opening_times": { + "tuesday": "11.00-18.00 Uhr - nur mit Termin*", + "thursday": "10.00-18.00 Uhr - nur mit Termin*", + "friday": "08.00-14.00 Uhr - nur mit Termin*", + "wednesday": "08.00-13.00 Uhr - nur mit Termin*", + "monday": "08.00-16.00 Uhr - nur mit Termin*", + "saturday": false, + "sunday": false, + "special": "Das Bürgeramt Heerstraße ist ein reiner Terminstandort!*
\n
\n
  • *einige Dienstleistungen erfordern keinen Termin. Achten Sie auf die Hinweise unter "Zuständige Behörden" bei der jeweiligen Dienstleistung oder informieren Sie sich auf unserer Homepage.

  • \n
Auskünfte und Berlinpässe erhalten Sie beim Empfang. Dort sind auch Terminvereinbarungen möglich." + } + } + }, + "department": { + "id": "74", + "contact": { + "city": "Berlin", + "street": "Otto-Suhr-Allee 100, 10585 Berlin", + "country": "Germany", + "name": "Fr. Krause-Jentsch" + }, + "email": "buergeramt@charlottenburg-wilmersdorf.de", + "name": "Bürgeramt", + "preferences": { + "notifications": { + "enabled": null, + "identification": null, + "sendConfirmationEnabled": null, + "sendReminderEnabled": null + } + } + } + }, + "authKey": "57c2", + "clients": [ + { + "email": "unittest@service.berlinonline.de", + "emailSendCount": "1", + "familyName": "BO", + "notificationsSendCount": "0", + "surveyAccepted": null, + "telephone": null + } + ], + "createIP": "", + "createTimestamp": "1473340535", + "queue": { + "arrivalTime": "00:00:00", + "callCount": "0", + "callTime": "00:00:00", + "number": "0", + "waitingTime": null + }, + "workstation": { + "id": "0" + }, + "reminderTimestamp": "0", + "requests": { + "0": { + "$schema": "https://schema.berlin.de/queuemanagement/request.json", + "id": "120703", + "link": "https://service.berlin.de/dienstleistung/120703/", + "name": "Personalausweis beantragen", + "source": "dldb", + "data": { + "authorities": [ + { + "id": "12667", + "name": "Bezirksamt Charlottenburg - Wilmersdorf", + "webinfo": "http://www.berlin.de/ba-charlottenburg-wilmersdorf/" + }, + { + "id": "12668", + "name": "Bezirksamt Friedrichshain - Kreuzberg", + "webinfo": "http://www.berlin.de/ba-friedrichshain-kreuzberg/" + }, + { + "id": "12669", + "name": "Bezirksamt Lichtenberg", + "webinfo": "http://www.berlin.de/ba-lichtenberg/" + }, + { + "id": "12670", + "name": "Bezirksamt Marzahn - Hellersdorf", + "webinfo": "http://www.berlin.de/ba-marzahn-hellersdorf/" + }, + { + "id": "12671", + "name": "Bezirksamt Mitte", + "webinfo": "http://www.berlin.de/ba-mitte/" + }, + { + "id": "12672", + "name": "Bezirksamt Neukölln", + "webinfo": "http://www.berlin.de/ba-neukoelln/" + }, + { + "id": "12673", + "name": "Bezirksamt Pankow", + "webinfo": "http://www.berlin.de/ba-pankow/" + }, + { + "id": "12674", + "name": "Bezirksamt Reinickendorf", + "webinfo": "http://www.berlin.de/ba-reinickendorf/" + }, + { + "id": "12675", + "name": "Bezirksamt Spandau", + "webinfo": "http://www.berlin.de/ba-spandau/" + }, + { + "id": "12676", + "name": "Bezirksamt Steglitz-Zehlendorf", + "webinfo": "http://www.berlin.de/ba-steglitz-zehlendorf/" + }, + { + "id": "12677", + "name": "Bezirksamt Tempelhof-Schöneberg", + "webinfo": "http://www.berlin.de/ba-tempelhof-schoeneberg/" + }, + { + "id": "12678", + "name": "Bezirksamt Treptow-Köpenick", + "webinfo": "http://www.berlin.de/ba-treptow-koepenick/" + } + ], + "locations": [ + { + "location": "122231", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122231&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122252", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122252&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122260", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122260&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122238", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122238&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122262", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122262&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122243", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122243&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122254", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122254&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122271", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122271&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327278", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122291", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122291&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122210", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122210&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122217", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122217&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122312", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122312&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122273", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122273&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327274", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122219", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122219&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122208", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122208&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122226", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122226&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "150230", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=150230&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122276", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122276&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122246", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122246&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122314", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122314&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122277", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122277&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327276", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122301", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122301&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122297", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122297&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122280", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122280&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122285", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122285&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122304", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122304&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122282", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122282&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122311", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122311&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122251", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122251&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122286", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122286&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122281", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122281&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327352", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "324414", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324414&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122283", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122283&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122279", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122279&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327354", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "122274", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122274&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122309", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122309&anliegen[]=120703", + "slots": "2", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122257", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122257&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122284", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122284&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "122294", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122294&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122227", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122227&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122267", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122267&anliegen[]=120703", + "slots": "1", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "122296", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=122296&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "1", + "allowed": true + }, + "hint": "" + }, + { + "location": "327262", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + }, + { + "location": "317869", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=317869&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324433", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324433&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325341", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=325341&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "324434", + "appointment": { + "link": "https://service.berlin.de/terminvereinbarung/termin/tag.php?termin=1&dienstleister=324434&anliegen[]=120703", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": true + }, + "hint": "" + }, + { + "location": "325657", + "appointment": { + "link": "", + "slots": "0", + "external": false, + "multiple": "0", + "allowed": false + }, + "hint": "" + } + ], + "meta": { + "lastupdate": "2015-07-31T17:35:21+02:00", + "locale": "de", + "keywords": "Personaldokument, PA, Ausweisantrag, Personalausweisantrag, Reisen, ausweispflicht, befreiung, Personalausweis, Personalausweiss, Personalausweiß" + }, + "process_time": "etwa 3 bis 4 Wochen
\n
\nIm Einzelfall kann die Herstellung des Personalausweises deutlich länger dauern. Bitte fragen Sie nach, wenn Sie den Antrag stellen.
\nFalls Sie dringend einen Personalausweis benötigen, können Sie zusätzlich einen vorläufigen Personalausweis beantragen. Mehr zum Thema: Personalausweis vorläufig beantragen", + "requirements": [ + { + "description": "Das Foto muss aktuell sein. Es muss die Anforderungen an Fotos für elektronische Reisepässe erfüllen. Die einzelnen Anforderungen enthält die Foto-Mustertafel der Bundesdruckerei.", + "name": "Aktuelles, biometrisches Passfoto ", + "link": "" + }, + { + "description": "Falls Sie einen alten Personalausweis haben, bringen Sie diesen bitte mit, auch wenn er schon abgelaufen ist.", + "name": "Falls vorhanden: Ihr alter Personalausweis", + "link": "" + }, + { + "description": "Bitte bringen Sie Ihren Reisepass mit, falls
\n
  • Sie noch nie einen Personalausweis hatten oder
  • Sie Ihren alten Personalausweis nicht mehr haben.
", + "name": "Unter Umständen: Ihr Reisepass, falls vorhanden", + "link": "" + }, + { + "description": "Bringen Sie bitte eine Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde mit, falls
\n
  • Sie noch nie einen Personalausweis oder einen Reisepass hatten,
  • Ihre Angaben zu Ihrer Person abweichen von den Daten, die im Melderegister gespeichert sind. Das kann zum Beispiel nach einer Heirat oder nach einer Namensänderung sein.
Mehr zum Thema:
\n", + "name": "Unter Umständen: Geburtsurkunde oder Eheurkunde oder Lebenspartnerschaftsurkunde", + "link": "" + }, + { + "description": "Dies ist nicht erforderlich, falls Sie alleine sorgeberechtigt sind oder falls beide Elternteile anwesend sind.
\nBitte nutzen Sie für die Zustimmung das Formular „Zustimmung zum Antrag auf einen Personalausweis für mein Kind“, siehe Abschnitt „Formulare“.", + "name": "Bei Anträgen eines gesetzlichen Vertreters: schriftliche Zustimmung des anderen gesetzlichen Vertreters", + "link": "" + } + ], + "responsibility": "alle Bürgerämter", + "forms": [ + { + "description": false, + "name": "Zustimmung zum Antrag auf einen Personalausweis für mein Kind", + "link": "http://www.berlin.de/formularserver/formular.php?362420" + }, + { + "description": "Bitte nehmen Sie Kontakt zu Ihrem Bürgeramt auf.", + "name": "Antrag auf Befreiung von der Ausweispflicht", + "link": "http://www.berlin.de/formularserver/formular.php?70259" + } + ], + "fees": "
  • wenn Sie jünger als 24 Jahre sind: 22,80 Euro
  • wenn Sie 24 Jahre oder älter sind: 28,80 Euro
  • zusätzlich, wenn Berlin Ihr Zweit-Wohnsitz ist: 13,00 Euro
", + "prerequisites": [ + { + "description": false, + "name": "Deutsche Staatsangehörigkeit", + "link": "" + }, + { + "description": "Den Antrag können Sie nur vor Ort stellen.", + "name": "Persönliches Erscheinen", + "link": "" + }, + { + "description": "Für Kinder unter 16 Jahren können nur die gesetzlichen Vertreter den Antrag stellen. Die gesetzlichen Vertreter sind im Normalfall die Eltern. Bei der Antragstellung muss das Kind ebenfalls anwesend sein.", + "name": "Für Kinder unter 16 Jahren: Antrag der gesetzlichen Vertreter", + "link": "" + }, + { + "description": "Sie wohnen in Berlin und sind hier gemeldet.
\nEin Zweit-Wohnsitz in Berlin reicht aus. In diesem Fall kostet der Personalausweis jedoch mehr, weil die Gemeinde Ihres Haupt-Wohnsitzes zustimmen muss; siehe Abschnitt „Gebühren“.
\nWenn Sie in Deutschland keinen festen Wohnsitz haben, können den Personalausweis dennoch bekommen; mehr zum Thema: Personalausweis für in Berlin nicht gemeldete Personen, Touristen und Deutsche mit Wohnsitz im Ausland", + "name": "Wohnsitz in Berlin (Ausnahmen möglich)", + "link": "" + } + ], + "id": "120703", + "description": "Mit einem Personalausweis können Sie sich ausweisen.
\n
\nWann brauchen Sie einen Personalausweis?
\nEinen Personalausweis brauchen alle Deutschen ab 16 Jahren, die keinen gültigen Reisepass haben.
\n
\nIn folgenden Fällen sollten Sie einen Personalausweis beantragen:
\n
  • Sie werden 16 Jahre alt (siehe Hinweis am Ende dieser Beschreibung);
  • Ihr alter Personalausweises ist nicht mehr gültig;
  • Sie haben Ihren alten Personalausweis nicht mehr, zum Beispiel weil er gestohlen wurde oder weil Sie ihn verloren haben;
  • Sie haben einen neuen Namen bekommen, zum Beispiel nach einer Heirat.

  • \n
Gibt es Ausnahmen?
\nIn folgenden Fällen brauchen Sie keinen Personalausweis:
\n
\nHinweis:
\nMit Vollendung des 16. Lebensjahres beginnt die sogenannte Ausweispflicht.
\nAuf Antrag seiner gesetzlichen Vertreter kann aber auch für Kinder unter 16 Jahren ein Personalausweis ausgestellt werden. Hierzu berät Sie gern Ihr Bürgeramt.", + "leika": "99008001012001", + "links": [ + { + "description": false, + "name": "Der neue Personalausweis (Informationsseite des Bundes-Innenministeriums)", + "link": "http://www.personalausweisportal.de/" + }, + { + "description": false, + "name": "Reiseratgeber des Auswärtigen Amtes", + "link": "http://www.auswaertiges-amt.de/sid_824A236A96E4E3F4D9A1E605B60000DF/DE/Laenderinformationen/SicherheitshinweiseA-Z-Laenderauswahlseite_node.html" + }, + { + "description": false, + "name": "Foto-Mustertafel der Bundesdruckerei ", + "link": "http://www.personalausweisportal.de/SharedDocs/Downloads/DE/Weitere-Informationen/Fotomustertafel.pdf?__blob=publicationFile" + } + ], + "responsibility_all": true, + "name": "Personalausweis beantragen", + "onlineprocessing": { + "description": false, + "link": "" + }, + "publications": [], + "legal": [ + { + "description": "Seit 1.11.2010 gilt diese gesetzliche Grundlage", + "name": "Personalausweisgesetz (PAuswG)", + "link": "http://www.gesetze-im-internet.de/pauswg/" + } + ], + "relation": { + "root_topic": "324835" + }, + "appointment": { + "link": "" + } + } + } + }, + "status": "confirmed" + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_with_waitingnumber.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_with_waitingnumber.json new file mode 100644 index 000000000..686754244 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_process_with_waitingnumber.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "id": "100009", + "authKey": "52ec", + "createIP": "", + "createTimestamp": "1459504500", + "reminderTimestamp": "0", + "appointments": [ + { + "date": 1459461600, + "scope": { + "id": "141" + }, + "slotCount": "1" + } + ], + "scope": { + "id": "141" + }, + "clients": [ + { + "email": "", + "emailSendCount": "0", + "familyName": "", + "notificationsSendCount": "0", + "telephone": "" + } + ], + "queue": { + "arrivalTime": 1459504500, + "callCount": "0", + "callTime": 0, + "number": "2", + "withAppointment": "0" + } + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_141.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_141.json new file mode 100644 index 000000000..e4ce39b2f --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_141.json @@ -0,0 +1,1765 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2019-02-06T15:04:17+01:00", + "server": "Zmsapi-ENV (v2.19.02-31-gf48253b)" + }, + "data": [ + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "1", + "callTime": 0, + "number": "82252", + "waitingTimeEstimate": 0, + "waitingTimeOptimistic": 0, + "waitingTime": 364, + "status": "pending", + "lastCallTime": 0, + "destination": "Ausgabe", + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "0", + "callTime": 0, + "number": "156285", + "waitingTimeEstimate": 0, + "waitingTimeOptimistic": 0, + "waitingTime": 364, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "0", + "callTime": 0, + "number": "157017", + "waitingTimeEstimate": 1, + "waitingTimeOptimistic": 0, + "waitingTime": 364, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491000, + "callCount": "0", + "callTime": 0, + "number": "159015", + "waitingTimeEstimate": 1, + "waitingTimeOptimistic": 0, + "waitingTime": 354, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491000, + "callCount": "0", + "callTime": 0, + "number": "161275", + "waitingTimeEstimate": 2, + "waitingTimeOptimistic": 0, + "waitingTime": 354, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491000, + "callCount": "0", + "callTime": 0, + "number": "12293716", + "waitingTimeEstimate": 2, + "waitingTimeOptimistic": 0, + "waitingTime": 354, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491600, + "callCount": "0", + "callTime": 0, + "number": "161983", + "waitingTimeEstimate": 3, + "waitingTimeOptimistic": 0, + "waitingTime": 344, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491600, + "callCount": "0", + "callTime": 0, + "number": "163657", + "waitingTimeEstimate": 3, + "waitingTimeOptimistic": 0, + "waitingTime": 344, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491600, + "callCount": "0", + "callTime": 0, + "number": "194778", + "waitingTimeEstimate": 4, + "waitingTimeOptimistic": 0, + "waitingTime": 344, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "166252", + "waitingTimeEstimate": 4, + "waitingTimeOptimistic": 0, + "waitingTime": 334, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "176782", + "waitingTimeEstimate": 5, + "waitingTimeOptimistic": 0, + "waitingTime": 334, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "177478", + "waitingTimeEstimate": 5, + "waitingTimeOptimistic": 0, + "waitingTime": 334, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492800, + "callCount": "0", + "callTime": 0, + "number": "177389", + "waitingTimeEstimate": 6, + "waitingTimeOptimistic": 0, + "waitingTime": 324, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492800, + "callCount": "0", + "callTime": 0, + "number": "177883", + "waitingTimeEstimate": 6, + "waitingTimeOptimistic": 0, + "waitingTime": 324, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492800, + "callCount": "0", + "callTime": 0, + "number": "195588", + "waitingTimeEstimate": 7, + "waitingTimeOptimistic": 0, + "waitingTime": 324, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493400, + "callCount": "0", + "callTime": 0, + "number": "182910", + "waitingTimeEstimate": 7, + "waitingTimeOptimistic": 0, + "waitingTime": 314, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493400, + "callCount": "0", + "callTime": 0, + "number": "189654", + "waitingTimeEstimate": 8, + "waitingTimeOptimistic": 0, + "waitingTime": 314, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493400, + "callCount": "0", + "callTime": 0, + "number": "192069", + "waitingTimeEstimate": 8, + "waitingTimeOptimistic": 0, + "waitingTime": 314, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "188928", + "waitingTimeEstimate": 9, + "waitingTimeOptimistic": 0, + "waitingTime": 304, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "193008", + "waitingTimeEstimate": 9, + "waitingTimeOptimistic": 0, + "waitingTime": 304, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "194692", + "waitingTimeEstimate": 10, + "waitingTimeOptimistic": 0, + "waitingTime": 304, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494600, + "callCount": "0", + "callTime": 0, + "number": "178064", + "waitingTimeEstimate": 10, + "waitingTimeOptimistic": 0, + "waitingTime": 294, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494600, + "callCount": "0", + "callTime": 0, + "number": "193401", + "waitingTimeEstimate": 11, + "waitingTimeOptimistic": 0, + "waitingTime": 294, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494600, + "callCount": "0", + "callTime": 0, + "number": "193649", + "waitingTimeEstimate": 11, + "waitingTimeOptimistic": 0, + "waitingTime": 294, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495200, + "callCount": "0", + "callTime": 0, + "number": "189212", + "waitingTimeEstimate": 12, + "waitingTimeOptimistic": 0, + "waitingTime": 284, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495200, + "callCount": "0", + "callTime": 0, + "number": "189795", + "waitingTimeEstimate": 12, + "waitingTimeOptimistic": 0, + "waitingTime": 284, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495200, + "callCount": "0", + "callTime": 0, + "number": "196182", + "waitingTimeEstimate": 13, + "waitingTimeOptimistic": 0, + "waitingTime": 284, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "116351", + "waitingTimeEstimate": 13, + "waitingTimeOptimistic": 0, + "waitingTime": 274, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "195237", + "waitingTimeEstimate": 14, + "waitingTimeOptimistic": 0, + "waitingTime": 274, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "200908", + "waitingTimeEstimate": 14, + "waitingTimeOptimistic": 0, + "waitingTime": 274, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496400, + "callCount": "0", + "callTime": 0, + "number": "116409", + "waitingTimeEstimate": 14, + "waitingTimeOptimistic": 0, + "waitingTime": 264, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496400, + "callCount": "0", + "callTime": 0, + "number": "182948", + "waitingTimeEstimate": 15, + "waitingTimeOptimistic": 0, + "waitingTime": 264, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496400, + "callCount": "0", + "callTime": 0, + "number": "195924", + "waitingTimeEstimate": 15, + "waitingTimeOptimistic": 0, + "waitingTime": 264, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497000, + "callCount": "0", + "callTime": 0, + "number": "116505", + "waitingTimeEstimate": 16, + "waitingTimeOptimistic": 1, + "waitingTime": 254, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497000, + "callCount": "0", + "callTime": 0, + "number": "193945", + "waitingTimeEstimate": 16, + "waitingTimeOptimistic": 1, + "waitingTime": 254, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497000, + "callCount": "0", + "callTime": 0, + "number": "12298063", + "waitingTimeEstimate": 17, + "waitingTimeOptimistic": 1, + "waitingTime": 254, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "116548", + "waitingTimeEstimate": 17, + "waitingTimeOptimistic": 2, + "waitingTime": 244, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "196123", + "waitingTimeEstimate": 18, + "waitingTimeOptimistic": 2, + "waitingTime": 244, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "201023", + "waitingTimeEstimate": 18, + "waitingTimeOptimistic": 3, + "waitingTime": 244, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498200, + "callCount": "0", + "callTime": 0, + "number": "194447", + "waitingTimeEstimate": 19, + "waitingTimeOptimistic": 3, + "waitingTime": 234, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498200, + "callCount": "0", + "callTime": 0, + "number": "194469", + "waitingTimeEstimate": 19, + "waitingTimeOptimistic": 3, + "waitingTime": 234, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498200, + "callCount": "0", + "callTime": 0, + "number": "194742", + "waitingTimeEstimate": 20, + "waitingTimeOptimistic": 4, + "waitingTime": 234, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498800, + "callCount": "0", + "callTime": 0, + "number": "194575", + "waitingTimeEstimate": 20, + "waitingTimeOptimistic": 4, + "waitingTime": 224, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498800, + "callCount": "0", + "callTime": 0, + "number": "12299146", + "waitingTimeEstimate": 21, + "waitingTimeOptimistic": 5, + "waitingTime": 224, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498800, + "callCount": "0", + "callTime": 0, + "number": "12299212", + "waitingTimeEstimate": 21, + "waitingTimeOptimistic": 5, + "waitingTime": 224, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "29400", + "waitingTimeEstimate": 22, + "waitingTimeOptimistic": 5, + "waitingTime": 214, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "39574", + "waitingTimeEstimate": 22, + "waitingTimeOptimistic": 6, + "waitingTime": 214, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "194863", + "waitingTimeEstimate": 23, + "waitingTimeOptimistic": 6, + "waitingTime": 214, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500000, + "callCount": "0", + "callTime": 0, + "number": "39595", + "waitingTimeEstimate": 23, + "waitingTimeOptimistic": 6, + "waitingTime": 204, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500000, + "callCount": "0", + "callTime": 0, + "number": "195174", + "waitingTimeEstimate": 24, + "waitingTimeOptimistic": 7, + "waitingTime": 204, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500000, + "callCount": "0", + "callTime": 0, + "number": "196725", + "waitingTimeEstimate": 24, + "waitingTimeOptimistic": 7, + "waitingTime": 204, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500600, + "callCount": "0", + "callTime": 0, + "number": "39625", + "waitingTimeEstimate": 25, + "waitingTimeOptimistic": 8, + "waitingTime": 194, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500600, + "callCount": "0", + "callTime": 0, + "number": "98277", + "waitingTimeEstimate": 25, + "waitingTimeOptimistic": 8, + "waitingTime": 194, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500600, + "callCount": "0", + "callTime": 0, + "number": "193704", + "waitingTimeEstimate": 26, + "waitingTimeOptimistic": 8, + "waitingTime": 194, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "194104", + "waitingTimeEstimate": 26, + "waitingTimeOptimistic": 9, + "waitingTime": 184, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "194573", + "waitingTimeEstimate": 27, + "waitingTimeOptimistic": 9, + "waitingTime": 184, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "195233", + "waitingTimeEstimate": 27, + "waitingTimeOptimistic": 10, + "waitingTime": 184, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501800, + "callCount": "0", + "callTime": 0, + "number": "158401", + "waitingTimeEstimate": 28, + "waitingTimeOptimistic": 10, + "waitingTime": 174, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501800, + "callCount": "0", + "callTime": 0, + "number": "158722", + "waitingTimeEstimate": 28, + "waitingTimeOptimistic": 10, + "waitingTime": 174, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501800, + "callCount": "0", + "callTime": 0, + "number": "158935", + "waitingTimeEstimate": 29, + "waitingTimeOptimistic": 11, + "waitingTime": 174, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502400, + "callCount": "0", + "callTime": 0, + "number": "159029", + "waitingTimeEstimate": 29, + "waitingTimeOptimistic": 11, + "waitingTime": 164, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502400, + "callCount": "0", + "callTime": 0, + "number": "184784", + "waitingTimeEstimate": 29, + "waitingTimeOptimistic": 12, + "waitingTime": 164, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502400, + "callCount": "0", + "callTime": 0, + "number": "194597", + "waitingTimeEstimate": 30, + "waitingTimeOptimistic": 12, + "waitingTime": 164, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "112086", + "waitingTimeEstimate": 30, + "waitingTimeOptimistic": 12, + "waitingTime": 154, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "185959", + "waitingTimeEstimate": 31, + "waitingTimeOptimistic": 13, + "waitingTime": 154, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "192254", + "waitingTimeEstimate": 31, + "waitingTimeOptimistic": 13, + "waitingTime": 154, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503600, + "callCount": "0", + "callTime": 0, + "number": "186230", + "waitingTimeEstimate": 32, + "waitingTimeOptimistic": 13, + "waitingTime": 144, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503600, + "callCount": "0", + "callTime": 0, + "number": "197082", + "waitingTimeEstimate": 32, + "waitingTimeOptimistic": 14, + "waitingTime": 144, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503600, + "callCount": "0", + "callTime": 0, + "number": "12299908", + "waitingTimeEstimate": 33, + "waitingTimeOptimistic": 14, + "waitingTime": 144, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504200, + "callCount": "0", + "callTime": 0, + "number": "34118", + "waitingTimeEstimate": 33, + "waitingTimeOptimistic": 15, + "waitingTime": 134, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504200, + "callCount": "0", + "callTime": 0, + "number": "194029", + "waitingTimeEstimate": 34, + "waitingTimeOptimistic": 15, + "waitingTime": 134, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504200, + "callCount": "0", + "callTime": 0, + "number": "195883", + "waitingTimeEstimate": 34, + "waitingTimeOptimistic": 15, + "waitingTime": 134, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "55662", + "waitingTimeEstimate": 35, + "waitingTimeOptimistic": 16, + "waitingTime": 124, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "115560", + "waitingTimeEstimate": 35, + "waitingTimeOptimistic": 16, + "waitingTime": 124, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "187812", + "waitingTimeEstimate": 36, + "waitingTimeOptimistic": 17, + "waitingTime": 124, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505400, + "callCount": "0", + "callTime": 0, + "number": "55677", + "waitingTimeEstimate": 36, + "waitingTimeOptimistic": 17, + "waitingTime": 114, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505400, + "callCount": "0", + "callTime": 0, + "number": "120585", + "waitingTimeEstimate": 37, + "waitingTimeOptimistic": 17, + "waitingTime": 114, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505400, + "callCount": "0", + "callTime": 0, + "number": "194063", + "waitingTimeEstimate": 37, + "waitingTimeOptimistic": 18, + "waitingTime": 114, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506000, + "callCount": "0", + "callTime": 0, + "number": "55756", + "waitingTimeEstimate": 38, + "waitingTimeOptimistic": 18, + "waitingTime": 104, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506000, + "callCount": "0", + "callTime": 0, + "number": "69084", + "waitingTimeEstimate": 38, + "waitingTimeOptimistic": 18, + "waitingTime": 104, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "44841", + "waitingTimeEstimate": 39, + "waitingTimeOptimistic": 19, + "waitingTime": 94, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "195726", + "waitingTimeEstimate": 39, + "waitingTimeOptimistic": 19, + "waitingTime": 94, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "195911", + "waitingTimeEstimate": 40, + "waitingTimeOptimistic": 20, + "waitingTime": 94, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507200, + "callCount": "0", + "callTime": 1459507380, + "number": "31316", + "waitingTimeEstimate": 40, + "waitingTimeOptimistic": 20, + "waitingTime": 84, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507200, + "callCount": "0", + "callTime": 0, + "number": "161695", + "waitingTimeEstimate": 41, + "waitingTimeOptimistic": 20, + "waitingTime": 84, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507200, + "callCount": "0", + "callTime": 0, + "number": "11932561", + "waitingTimeEstimate": 41, + "waitingTimeOptimistic": 21, + "waitingTime": 84, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507800, + "callCount": "0", + "callTime": 0, + "number": "44958", + "waitingTimeEstimate": 42, + "waitingTimeOptimistic": 21, + "waitingTime": 74, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507800, + "callCount": "0", + "callTime": 0, + "number": "12299479", + "waitingTimeEstimate": 42, + "waitingTimeOptimistic": 22, + "waitingTime": 74, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507800, + "callCount": "0", + "callTime": 0, + "number": "12301651", + "waitingTimeEstimate": 43, + "waitingTimeOptimistic": 22, + "waitingTime": 74, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459508400, + "callCount": "0", + "callTime": 0, + "number": "193255", + "waitingTimeEstimate": 43, + "waitingTimeOptimistic": 22, + "waitingTime": 64, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459508400, + "callCount": "0", + "callTime": 0, + "number": "195116", + "waitingTimeEstimate": 44, + "waitingTimeOptimistic": 23, + "waitingTime": 64, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459508400, + "callCount": "0", + "callTime": 0, + "number": "196825", + "waitingTimeEstimate": 44, + "waitingTimeOptimistic": 23, + "waitingTime": 64, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509000, + "callCount": "0", + "callTime": 0, + "number": "195248", + "waitingTimeEstimate": 44, + "waitingTimeOptimistic": 24, + "waitingTime": 54, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509000, + "callCount": "0", + "callTime": 0, + "number": "197031", + "waitingTimeEstimate": 45, + "waitingTimeOptimistic": 24, + "waitingTime": 54, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509600, + "callCount": "0", + "callTime": 0, + "number": "194901", + "waitingTimeEstimate": 45, + "waitingTimeOptimistic": 24, + "waitingTime": 44, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509600, + "callCount": "0", + "callTime": 0, + "number": "12299191", + "waitingTimeEstimate": 46, + "waitingTimeOptimistic": 25, + "waitingTime": 44, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510200, + "callCount": "0", + "callTime": 0, + "number": "92940", + "waitingTimeEstimate": 46, + "waitingTimeOptimistic": 25, + "waitingTime": 34, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510200, + "callCount": "0", + "callTime": 0, + "number": "193784", + "waitingTimeEstimate": 47, + "waitingTimeOptimistic": 25, + "waitingTime": 34, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510200, + "callCount": "0", + "callTime": 0, + "number": "194552", + "waitingTimeEstimate": 47, + "waitingTimeOptimistic": 26, + "waitingTime": 34, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510800, + "callCount": "0", + "callTime": 0, + "number": "166070", + "waitingTimeEstimate": 48, + "waitingTimeOptimistic": 26, + "waitingTime": 24, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510800, + "callCount": "0", + "callTime": 0, + "number": "184432", + "waitingTimeEstimate": 48, + "waitingTimeOptimistic": 27, + "waitingTime": 24, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510800, + "callCount": "0", + "callTime": 0, + "number": "188835", + "waitingTimeEstimate": 49, + "waitingTimeOptimistic": 27, + "waitingTime": 24, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510800, + "callCount": "0", + "callTime": 0, + "number": "100044", + "waitingTimeEstimate": 49, + "waitingTimeOptimistic": 27, + "waitingTime": 24, + "status": "confirmed", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": true + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493700, + "callCount": "0", + "callTime": 0, + "number": "14", + "waitingTimeEstimate": 49, + "waitingTimeOptimistic": 27, + "waitingTime": 309, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506626, + "callCount": "0", + "callTime": 0, + "number": "16", + "waitingTimeEstimate": 50, + "waitingTimeOptimistic": 28, + "waitingTime": 93, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506635, + "callCount": "0", + "callTime": 0, + "number": "17", + "waitingTimeEstimate": 50, + "waitingTimeOptimistic": 28, + "waitingTime": 93, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507400, + "callCount": "0", + "callTime": 0, + "number": "18", + "waitingTimeEstimate": 51, + "waitingTimeOptimistic": 29, + "waitingTime": 80, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507486, + "callCount": "0", + "callTime": 0, + "number": "19", + "waitingTimeEstimate": 51, + "waitingTimeOptimistic": 29, + "waitingTime": 79, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459508963, + "callCount": "0", + "callTime": 0, + "number": "20", + "waitingTimeEstimate": 52, + "waitingTimeOptimistic": 29, + "waitingTime": 54, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509185, + "callCount": "0", + "callTime": 0, + "number": "21", + "waitingTimeEstimate": 52, + "waitingTimeOptimistic": 30, + "waitingTime": 51, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509554, + "callCount": "0", + "callTime": 0, + "number": "22", + "waitingTimeEstimate": 53, + "waitingTimeOptimistic": 30, + "waitingTime": 45, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509759, + "callCount": "0", + "callTime": 0, + "number": "23", + "waitingTimeEstimate": 53, + "waitingTimeOptimistic": 30, + "waitingTime": 41, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459509901, + "callCount": "0", + "callTime": 0, + "number": "24", + "waitingTimeEstimate": 54, + "waitingTimeOptimistic": 31, + "waitingTime": 39, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510639, + "callCount": "0", + "callTime": 0, + "number": "25", + "waitingTimeEstimate": 54, + "waitingTimeOptimistic": 31, + "waitingTime": 26, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459510900, + "callCount": "0", + "callTime": 0, + "number": "26", + "waitingTimeEstimate": 55, + "waitingTimeOptimistic": 32, + "waitingTime": 22, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459511069, + "callCount": "0", + "callTime": 0, + "number": "27", + "waitingTimeEstimate": 55, + "waitingTimeOptimistic": 32, + "waitingTime": 19, + "status": "queued", + "lastCallTime": 0, + "destination": null, + "destinationHint": null, + "withAppointment": false + }, + { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459512257, + "callCount": 0, + "callTime": 0, + "number": -1, + "waitingTimeEstimate": 56, + "waitingTimeOptimistic": 32, + "waitingTime": 0, + "status": "fake", + "withAppointment": false, + "destination": "", + "destinationHint": "1" + } + ] +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_312.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_312.json new file mode 100644 index 000000000..7e6e3ccd8 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_queuelist_312.json @@ -0,0 +1,607 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-25T08:56:32+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "0": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459488600, + "callCount": "0", + "callTime": 0, + "number": "79142", + "withAppointment": true, + "waitingTimeEstimate": 0, + "status": "queued" + }, + "1": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459488600, + "callCount": "0", + "callTime": 0, + "number": "150666", + "withAppointment": true, + "waitingTimeEstimate": 12, + "status": "queued" + }, + "2": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459488600, + "callCount": "0", + "callTime": 0, + "number": "196249", + "withAppointment": true, + "waitingTimeEstimate": 24 + }, + "3": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459489500, + "callCount": "0", + "callTime": 0, + "number": "12291058", + "withAppointment": true, + "waitingTimeEstimate": 36 + }, + "4": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459489500, + "callCount": "0", + "callTime": 0, + "number": "12291157", + "withAppointment": true, + "waitingTimeEstimate": 48 + }, + "5": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459489500, + "callCount": "0", + "callTime": 0, + "number": "196838", + "withAppointment": true, + "waitingTimeEstimate": 60 + }, + "6": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "0", + "callTime": 0, + "number": "61832", + "withAppointment": true, + "waitingTimeEstimate": 72 + }, + "7": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "0", + "callTime": 0, + "number": "157818", + "withAppointment": true, + "waitingTimeEstimate": 84 + }, + "8": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459490400, + "callCount": "0", + "callTime": 0, + "number": "197049", + "withAppointment": true, + "waitingTimeEstimate": 96 + }, + "9": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491300, + "callCount": "0", + "callTime": 0, + "number": "12291961", + "withAppointment": true, + "waitingTimeEstimate": 108 + }, + "10": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491300, + "callCount": "0", + "callTime": 0, + "number": "159779", + "withAppointment": true, + "waitingTimeEstimate": 120 + }, + "11": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459491300, + "callCount": "0", + "callTime": 0, + "number": "197922", + "withAppointment": true, + "waitingTimeEstimate": 132 + }, + "12": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "59766", + "withAppointment": true, + "waitingTimeEstimate": 144 + }, + "13": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "159491", + "withAppointment": true, + "waitingTimeEstimate": 156 + }, + "14": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459492200, + "callCount": "0", + "callTime": 0, + "number": "198573", + "withAppointment": true, + "waitingTimeEstimate": 168 + }, + "15": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493100, + "callCount": "0", + "callTime": 0, + "number": "161322", + "withAppointment": true, + "waitingTimeEstimate": 180 + }, + "16": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493100, + "callCount": "0", + "callTime": 0, + "number": "198878", + "withAppointment": true, + "waitingTimeEstimate": 192 + }, + "17": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459493100, + "callCount": "0", + "callTime": 0, + "number": "160977", + "withAppointment": true, + "waitingTimeEstimate": 204 + }, + "18": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "116368", + "withAppointment": true, + "waitingTimeEstimate": 216 + }, + "19": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "161167", + "withAppointment": true, + "waitingTimeEstimate": 228 + }, + "20": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494000, + "callCount": "0", + "callTime": 0, + "number": "199004", + "withAppointment": true, + "waitingTimeEstimate": 240 + }, + "21": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494900, + "callCount": "0", + "callTime": 0, + "number": "199053", + "withAppointment": true, + "waitingTimeEstimate": 252 + }, + "22": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494900, + "callCount": "0", + "callTime": 0, + "number": "116526", + "withAppointment": true, + "waitingTimeEstimate": 264 + }, + "23": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459494900, + "callCount": "0", + "callTime": 0, + "number": "173222", + "withAppointment": true, + "waitingTimeEstimate": 276 + }, + "24": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "12301471", + "withAppointment": true, + "waitingTimeEstimate": 288 + }, + "25": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "48103", + "withAppointment": true, + "waitingTimeEstimate": 300 + }, + "26": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459495800, + "callCount": "0", + "callTime": 0, + "number": "116875", + "withAppointment": true, + "waitingTimeEstimate": 312 + }, + "27": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496700, + "callCount": "0", + "callTime": 0, + "number": "80185", + "withAppointment": true, + "waitingTimeEstimate": 324 + }, + "28": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496700, + "callCount": "0", + "callTime": 0, + "number": "163452", + "withAppointment": true, + "waitingTimeEstimate": 336 + }, + "29": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459496700, + "callCount": "0", + "callTime": 0, + "number": "199073", + "withAppointment": true, + "waitingTimeEstimate": 348 + }, + "30": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "194301", + "withAppointment": true, + "waitingTimeEstimate": 360 + }, + "31": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "80302", + "withAppointment": true, + "waitingTimeEstimate": 372 + }, + "32": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459497600, + "callCount": "0", + "callTime": 0, + "number": "158338", + "withAppointment": true, + "waitingTimeEstimate": 384 + }, + "33": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498500, + "callCount": "0", + "callTime": 0, + "number": "12291175", + "withAppointment": true, + "waitingTimeEstimate": 396 + }, + "34": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498500, + "callCount": "0", + "callTime": 0, + "number": "11745", + "withAppointment": true, + "waitingTimeEstimate": 408 + }, + "35": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459498500, + "callCount": "0", + "callTime": 0, + "number": "194335", + "withAppointment": true, + "waitingTimeEstimate": 420 + }, + "36": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "156694", + "withAppointment": true, + "waitingTimeEstimate": 432 + }, + "37": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "173583", + "withAppointment": true, + "waitingTimeEstimate": 444 + }, + "38": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459499400, + "callCount": "0", + "callTime": 0, + "number": "199219", + "withAppointment": true, + "waitingTimeEstimate": 456 + }, + "39": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500300, + "callCount": "0", + "callTime": 0, + "number": "157373", + "withAppointment": true, + "waitingTimeEstimate": 468 + }, + "40": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500300, + "callCount": "0", + "callTime": 0, + "number": "170826", + "withAppointment": true, + "waitingTimeEstimate": 480 + }, + "41": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459500300, + "callCount": "0", + "callTime": 0, + "number": "198289", + "withAppointment": true, + "waitingTimeEstimate": 492 + }, + "42": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "195171", + "withAppointment": true, + "waitingTimeEstimate": 504 + }, + "43": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "88698", + "withAppointment": true, + "waitingTimeEstimate": 516 + }, + "44": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459501200, + "callCount": "0", + "callTime": 0, + "number": "195149", + "withAppointment": true, + "waitingTimeEstimate": 528 + }, + "45": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502100, + "callCount": "0", + "callTime": 0, + "number": "195199", + "withAppointment": true, + "waitingTimeEstimate": 540 + }, + "46": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502100, + "callCount": "0", + "callTime": 0, + "number": "12301702", + "withAppointment": true, + "waitingTimeEstimate": 552 + }, + "47": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459502100, + "callCount": "0", + "callTime": 0, + "number": "13115741", + "withAppointment": true, + "waitingTimeEstimate": 564 + }, + "48": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "188068", + "withAppointment": true, + "waitingTimeEstimate": 576 + }, + "49": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "197248", + "withAppointment": true, + "waitingTimeEstimate": 588 + }, + "50": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503000, + "callCount": "0", + "callTime": 0, + "number": "95867", + "withAppointment": true, + "waitingTimeEstimate": 600 + }, + "51": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503900, + "callCount": "0", + "callTime": 0, + "number": "195929", + "withAppointment": true, + "waitingTimeEstimate": 612 + }, + "52": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503900, + "callCount": "0", + "callTime": 0, + "number": "120238", + "withAppointment": true, + "waitingTimeEstimate": 624 + }, + "53": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459503900, + "callCount": "0", + "callTime": 0, + "number": "195223", + "withAppointment": true, + "waitingTimeEstimate": 636 + }, + "54": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "55293", + "withAppointment": true, + "waitingTimeEstimate": 648 + }, + "55": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "195180", + "withAppointment": true, + "waitingTimeEstimate": 660 + }, + "56": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459504800, + "callCount": "0", + "callTime": 0, + "number": "198615", + "withAppointment": true, + "waitingTimeEstimate": 672 + }, + "57": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505700, + "callCount": "0", + "callTime": 0, + "number": "197355", + "withAppointment": true, + "waitingTimeEstimate": 684 + }, + "58": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505700, + "callCount": "0", + "callTime": 0, + "number": "12299659", + "withAppointment": true, + "waitingTimeEstimate": 696 + }, + "59": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459505700, + "callCount": "0", + "callTime": 0, + "number": "195036", + "withAppointment": true, + "waitingTimeEstimate": 708 + }, + "60": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "199543", + "withAppointment": true, + "waitingTimeEstimate": 720 + }, + "61": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "67346", + "withAppointment": true, + "waitingTimeEstimate": 732 + }, + "62": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459506600, + "callCount": "0", + "callTime": 0, + "number": "199453", + "withAppointment": true, + "waitingTimeEstimate": 744 + }, + "63": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507500, + "callCount": "0", + "callTime": 0, + "number": "195468", + "withAppointment": true, + "waitingTimeEstimate": 756 + }, + "64": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507500, + "callCount": "0", + "callTime": 0, + "number": "199459", + "withAppointment": true, + "waitingTimeEstimate": 768 + }, + "65": { + "$schema": "https://schema.berlin.de/queuemanagement/queue.json", + "arrivalTime": 1459507500, + "callCount": "0", + "callTime": 0, + "number": "195413", + "withAppointment": true, + "waitingTimeEstimate": 780 + } + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_141.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_141.json new file mode 100644 index 000000000..da2fa1610 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_141.json @@ -0,0 +1,95 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-21T16:04:34+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "1", + "amendmentLabel": "1", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "1" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "1", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "1", + "deactivatedText": "", + "notificationsAmendmentEnabled": "1", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "2", + "lastGivenNumber": "2", + "lastGivenNumberTimestamp": 1459461600 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + } + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_312.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_312.json new file mode 100644 index 000000000..3304d5c62 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_312.json @@ -0,0 +1,312 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-21T16:04:34+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "312", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + }, + "dayoff": [ + { + "date": 1458860400, + "name": "Karfreitag" + }, + { + "date": 1459116000, + "name": "Ostermontag" + }, + { + "date": 1462053600, + "name": "Maifeiertag" + }, + { + "date": 1462399200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1463349600, + "name": "Pfingstmontag" + }, + { + "date": 1475445600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1482620400, + "name": "1. Weihnachtstag" + }, + { + "date": 1482706800, + "name": "2. Weihnachtstag" + }, + { + "date": 1483225200, + "name": "Neujahr" + }, + { + "date": 1492120800, + "name": "Karfreitag" + }, + { + "date": 1492380000, + "name": "Ostermontag" + }, + { + "date": 1493589600, + "name": "Maifeiertag" + }, + { + "date": 1495663200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1496613600, + "name": "Pfingstmontag" + }, + { + "date": 1506981600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1514156400, + "name": "1. Weihnachtstag" + }, + { + "date": 1514242800, + "name": "2. Weihnachtstag" + }, + { + "date": 1514761200, + "name": "Neujahr" + }, + { + "date": 1522360800, + "name": "Karfreitag" + }, + { + "date": 1522620000, + "name": "Ostermontag" + }, + { + "date": 1525125600, + "name": "Maifeiertag" + }, + { + "date": 1525903200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1526853600, + "name": "Pfingstmontag" + }, + { + "date": 1538517600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1545692400, + "name": "1. Weihnachtstag" + }, + { + "date": 1545778800, + "name": "2. Weihnachtstag" + }, + { + "date": 1546297200, + "name": "Neujahr" + }, + { + "date": 1555624800, + "name": "Karfreitag" + }, + { + "date": 1555884000, + "name": "Ostermontag" + }, + { + "date": 1556661600, + "name": "Maifeiertag" + }, + { + "date": 1559167200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1560117600, + "name": "Pfingstmontag" + }, + { + "date": 1570053600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1577228400, + "name": "1. Weihnachtstag" + }, + { + "date": 1577314800, + "name": "2. Weihnachtstag" + }, + { + "date": 1577833200, + "name": "Neujahr" + }, + { + "date": 1586469600, + "name": "Karfreitag" + }, + { + "date": 1586728800, + "name": "Ostermontag" + }, + { + "date": 1588284000, + "name": "Maifeiertag" + }, + { + "date": 1590012000, + "name": "Christi Himmelfahrt" + }, + { + "date": 1590962400, + "name": "Pfingstmontag" + }, + { + "date": 1601676000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1608850800, + "name": "1. Weihnachtstag" + }, + { + "date": 1608937200, + "name": "2. Weihnachtstag" + }, + { + "date": 1609455600, + "name": "Neujahr" + }, + { + "date": 1617314400, + "name": "Karfreitag" + }, + { + "date": 1617573600, + "name": "Ostermontag" + }, + { + "date": 1619820000, + "name": "Maifeiertag" + }, + { + "date": 1620856800, + "name": "Christi Himmelfahrt" + }, + { + "date": 1621807200, + "name": "Pfingstmontag" + }, + { + "date": 1633212000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1640386800, + "name": "1. Weihnachtstag" + }, + { + "date": 1640473200, + "name": "2. Weihnachtstag" + }, + { + "date": 1478041200, + "name": "Personalversammlung" + } + ] + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_615.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_615.json new file mode 100644 index 000000000..f8fb10eb1 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_615.json @@ -0,0 +1,312 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-21T16:04:34+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "615", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + }, + "dayoff": [ + { + "date": 1458860400, + "name": "Karfreitag" + }, + { + "date": 1459116000, + "name": "Ostermontag" + }, + { + "date": 1462053600, + "name": "Maifeiertag" + }, + { + "date": 1462399200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1463349600, + "name": "Pfingstmontag" + }, + { + "date": 1475445600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1482620400, + "name": "1. Weihnachtstag" + }, + { + "date": 1482706800, + "name": "2. Weihnachtstag" + }, + { + "date": 1483225200, + "name": "Neujahr" + }, + { + "date": 1492120800, + "name": "Karfreitag" + }, + { + "date": 1492380000, + "name": "Ostermontag" + }, + { + "date": 1493589600, + "name": "Maifeiertag" + }, + { + "date": 1495663200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1496613600, + "name": "Pfingstmontag" + }, + { + "date": 1506981600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1514156400, + "name": "1. Weihnachtstag" + }, + { + "date": 1514242800, + "name": "2. Weihnachtstag" + }, + { + "date": 1514761200, + "name": "Neujahr" + }, + { + "date": 1522360800, + "name": "Karfreitag" + }, + { + "date": 1522620000, + "name": "Ostermontag" + }, + { + "date": 1525125600, + "name": "Maifeiertag" + }, + { + "date": 1525903200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1526853600, + "name": "Pfingstmontag" + }, + { + "date": 1538517600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1545692400, + "name": "1. Weihnachtstag" + }, + { + "date": 1545778800, + "name": "2. Weihnachtstag" + }, + { + "date": 1546297200, + "name": "Neujahr" + }, + { + "date": 1555624800, + "name": "Karfreitag" + }, + { + "date": 1555884000, + "name": "Ostermontag" + }, + { + "date": 1556661600, + "name": "Maifeiertag" + }, + { + "date": 1559167200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1560117600, + "name": "Pfingstmontag" + }, + { + "date": 1570053600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1577228400, + "name": "1. Weihnachtstag" + }, + { + "date": 1577314800, + "name": "2. Weihnachtstag" + }, + { + "date": 1577833200, + "name": "Neujahr" + }, + { + "date": 1586469600, + "name": "Karfreitag" + }, + { + "date": 1586728800, + "name": "Ostermontag" + }, + { + "date": 1588284000, + "name": "Maifeiertag" + }, + { + "date": 1590012000, + "name": "Christi Himmelfahrt" + }, + { + "date": 1590962400, + "name": "Pfingstmontag" + }, + { + "date": 1601676000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1608850800, + "name": "1. Weihnachtstag" + }, + { + "date": 1608937200, + "name": "2. Weihnachtstag" + }, + { + "date": 1609455600, + "name": "Neujahr" + }, + { + "date": 1617314400, + "name": "Karfreitag" + }, + { + "date": 1617573600, + "name": "Ostermontag" + }, + { + "date": 1619820000, + "name": "Maifeiertag" + }, + { + "date": 1620856800, + "name": "Christi Himmelfahrt" + }, + { + "date": 1621807200, + "name": "Pfingstmontag" + }, + { + "date": 1633212000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1640386800, + "name": "1. Weihnachtstag" + }, + { + "date": 1640473200, + "name": "2. Weihnachtstag" + }, + { + "date": 1478041200, + "name": "Personalversammlung" + } + ] + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_lessdata.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_lessdata.json new file mode 100644 index 000000000..32eeb70a1 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_lessdata.json @@ -0,0 +1,312 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-11-21T16:04:34+01:00", + "server": "Zmsapi-ENV" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/scope.json", + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "46", + "lastGivenNumber": "47", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + }, + "dayoff": [ + { + "date": 1458860400, + "name": "Karfreitag" + }, + { + "date": 1459116000, + "name": "Ostermontag" + }, + { + "date": 1462053600, + "name": "Maifeiertag" + }, + { + "date": 1462399200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1463349600, + "name": "Pfingstmontag" + }, + { + "date": 1475445600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1482620400, + "name": "1. Weihnachtstag" + }, + { + "date": 1482706800, + "name": "2. Weihnachtstag" + }, + { + "date": 1483225200, + "name": "Neujahr" + }, + { + "date": 1492120800, + "name": "Karfreitag" + }, + { + "date": 1492380000, + "name": "Ostermontag" + }, + { + "date": 1493589600, + "name": "Maifeiertag" + }, + { + "date": 1495663200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1496613600, + "name": "Pfingstmontag" + }, + { + "date": 1506981600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1514156400, + "name": "1. Weihnachtstag" + }, + { + "date": 1514242800, + "name": "2. Weihnachtstag" + }, + { + "date": 1514761200, + "name": "Neujahr" + }, + { + "date": 1522360800, + "name": "Karfreitag" + }, + { + "date": 1522620000, + "name": "Ostermontag" + }, + { + "date": 1525125600, + "name": "Maifeiertag" + }, + { + "date": 1525903200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1526853600, + "name": "Pfingstmontag" + }, + { + "date": 1538517600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1545692400, + "name": "1. Weihnachtstag" + }, + { + "date": 1545778800, + "name": "2. Weihnachtstag" + }, + { + "date": 1546297200, + "name": "Neujahr" + }, + { + "date": 1555624800, + "name": "Karfreitag" + }, + { + "date": 1555884000, + "name": "Ostermontag" + }, + { + "date": 1556661600, + "name": "Maifeiertag" + }, + { + "date": 1559167200, + "name": "Christi Himmelfahrt" + }, + { + "date": 1560117600, + "name": "Pfingstmontag" + }, + { + "date": 1570053600, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1577228400, + "name": "1. Weihnachtstag" + }, + { + "date": 1577314800, + "name": "2. Weihnachtstag" + }, + { + "date": 1577833200, + "name": "Neujahr" + }, + { + "date": 1586469600, + "name": "Karfreitag" + }, + { + "date": 1586728800, + "name": "Ostermontag" + }, + { + "date": 1588284000, + "name": "Maifeiertag" + }, + { + "date": 1590012000, + "name": "Christi Himmelfahrt" + }, + { + "date": 1590962400, + "name": "Pfingstmontag" + }, + { + "date": 1601676000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1608850800, + "name": "1. Weihnachtstag" + }, + { + "date": 1608937200, + "name": "2. Weihnachtstag" + }, + { + "date": 1609455600, + "name": "Neujahr" + }, + { + "date": 1617314400, + "name": "Karfreitag" + }, + { + "date": 1617573600, + "name": "Ostermontag" + }, + { + "date": 1619820000, + "name": "Maifeiertag" + }, + { + "date": 1620856800, + "name": "Christi Himmelfahrt" + }, + { + "date": 1621807200, + "name": "Pfingstmontag" + }, + { + "date": 1633212000, + "name": "Tag der Deutschen Einheit" + }, + { + "date": 1640386800, + "name": "1. Weihnachtstag" + }, + { + "date": 1640473200, + "name": "2. Weihnachtstag" + }, + { + "date": 1478041200, + "name": "Personalversammlung" + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_waitingnumber.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_waitingnumber.json new file mode 100644 index 000000000..b6c4d87b8 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_scope_waitingnumber.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/process.json", + "amendment": "", + "appointments": [ + { + "date": 1459461600, + "scope": { + "id": "141" + }, + "slotCount": 1 + } + ], + "authKey": "52ec", + "clients": [ + { + "familyName": "", + "email": "", + "emailSendCount": 0, + "notificationsSendCount": 0, + "surveyAccepted": false, + "telephone": "" + } + ], + "createIP": "", + "createTimestamp": 1459504500, + "id": "100009", + "queue": { + "arrivalTime": 1459504500, + "callCount": 0, + "callTime": 0, + "number": 2, + "waitingTime": 0 + }, + "reminderTimestamp": 0, + "scope": { + "hint": "Nr. wird zum Termin aufgerufen", + "id": "141", + "shortName": "", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "0", + "amendmentLabel": "0", + "emailRequired": "0", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": 2, + "lastGivenNumber": 2, + "lastGivenNumberTimestamp": 1459504500 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + } + }, + "status": "reserved" + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_status.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_status.json new file mode 100644 index 000000000..bee5b024b --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_status.json @@ -0,0 +1,47 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2018-04-11T14:46:50+02:00", + "server": "Zmsapi-ENV (v2.15.03)" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/status.json", + "database": { + "nodeConnections": 0.01, + "clusterStatus": "OFF", + "logbin": "OFF", + "problems": "tmp_table_size should be at least 32MB; max_heap_table_size should be at least 32MB", + "locks": "0", + "threads": "1" + }, + "processes": { + "confirmed": "86861", + "deleted": "3", + "missed": "6", + "reserved": "10", + "lastInsert": "2018-04-11 09:38:26" + }, + "mail": { + "queueCount": "50", + "oldestSeconds": "17952", + "newestSeconds": "11903" + }, + "notification": { + "queueCount": "4", + "oldestSeconds": "81051", + "newestSeconds": "81051" + }, + "sources": { + "dldb": { + "last": "2018-04-10T14:47:06+02:00" + } + }, + "version": { + "major": "2", + "minor": "15", + "patch": "03" + } + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter.json new file mode 100644 index 000000000..0184f0ddb --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https:\/\/schema.berlin.de\/queuemanagement\/ticketprinter.json", + "enabled": "1", + "hash": "71ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141" + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_2.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_2.json new file mode 100644 index 000000000..770d29551 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_2.json @@ -0,0 +1,36 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": "1", + "hash": "ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141", + "buttons": [{ + "type": "scope", + "url": "/scope/141/", + "scope": { + "id": 141 + }, + "enabled": true, + "name": "Bürgeramt Heerstraße" + }, + { + "type": "cluster", + "url": "/cluster/110/", + "cluster": { + "id": 110 + }, + "enabled": true, + "name": "Bürgeramt Hohenzollerndamm" + }] +} +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_283.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_283.json new file mode 100644 index 000000000..2759f78c9 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_283.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": true, + "reload": 30, + "buttonlist": "c283", + "hash": "710caa9f2e7547a52106d6b00868c5cf3a", + "lastUpdate": 1447925326000, + "id": 2, + "name": "", + "buttons": [ + { + "type": "cluster", + "url": "/cluster/283/", + "cluster": { + "id": "283", + "name": "Ordnungsamt Lichtenberg", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/637/" + } + ] + }, + "enabled": true, + "name": "Ordnungsamt Lichtenberg" + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_290.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_290.json new file mode 100644 index 000000000..818e15fbd --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_cluster_290.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": true, + "reload": 30, + "buttonlist": "c290", + "hash": "710caa9f2e7547a52106d6b00868c5cf3a", + "lastUpdate": 1447925326000, + "id": 2, + "name": "", + "buttons": [ + { + "type": "cluster", + "url": "/cluster/290/", + "cluster": { + "id": "290", + "name": "Ordnungsamt -ZAB-", + "hint": "", + "shortNameEnabled": "1", + "callDisplayText": "", + "scopes": [ + { + "id": 0, + "$ref": "/scope/615/" + } + ] + }, + "enabled": true, + "name": "Ordnungsamt -ZAB-" + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_multi.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_multi.json new file mode 100644 index 000000000..497363df7 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_multi.json @@ -0,0 +1,45 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": "1", + "hash": "ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141", + "buttons": [{ + "type": "scope", + "url": "/scope/141/", + "scope": { + "id": 141 + }, + "enabled": true, + "name": "Bürgeramt Heerstraße" + }, + { + "type": "cluster", + "url": "/cluster/110/", + "cluster": { + "id": 110 + }, + "enabled": true, + "name": "Bürgeramt Hohenzollerndamm" + }, + { + "type": "link", + "url": "http://www.berlin.de/", + "scope": { + "id": 110 + }, + "enabled": true, + "name": "Portal berlin.de" + }] +} +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single.json new file mode 100644 index 000000000..5f5b73993 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": "1", + "hash": "ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141", + "buttons": [ + { + "type": "scope", + "url": "/scope/141/", + "scope": { + "hint": "Bürgeramt | ", + "id": "312", + "contact": { + "name": "Bürgeramt I in Köpenick", + "street": "Alt-Köpenick 21, 12555 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "20", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "https://service.berlin.de", + "amendmentActivated": "1", + "amendmentLabel": "", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "", + "headsUpTime": "0" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nim Bürgeramt Köpenick\r\n======================", + "firstNumber": "1", + "lastNumber": "399", + "processingTimeAverage": "12", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt I in Köpenick", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "35", + "lastGivenNumber": "36", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122208", + "$ref": "/provider/122208/" + } + }, + "enabled": true, + "name": "Bürgeramt Heerstraße" + } + ] + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_615.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_615.json new file mode 100644 index 000000000..59a5a950a --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_615.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": true, + "reload": 30, + "buttonlist": "s615", + "hash": "710caa9f2e7547a52106d6b00868c5cf3a", + "lastUpdate": 1447925326000, + "id": 2, + "name": "", + "buttons": [ + { + "type": "scope", + "url": "/scope/615/", + "scope": { + "hint": "Bitte gehen Sie zum Raum 2001", + "id": "615", + "shortName": "", + "contact": { + "name": "Ordnungsamt Charlottenburg-Wilmersdorf (Zentrale Anlauf- und Beratungsstelle)", + "street": "Hohenzollerndamm 174-177, 10713 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "30", + "endInDaysDefault": "21", + "multipleSlotsEnabled": "0", + "reservationDuration": "20", + "startInDaysDefault": "2" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "1", + "amendmentLabel": "1", + "emailRequired": "1", + "telephoneActivated": "0", + "telephoneRequired": "0" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "", + "headsUpTime": "0" + }, + "pickup": { + "alternateName": "", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Antragstellung und Beratung für Gaststättenbetriebe mit Ausschank alkoholischer Getränke ist ab sofort nur mit Terminvereinbarung möglich!\r\n\r\nBitte vereinbaren Sie einen Termin per E-Mail: ordnungsamt@charlottenburg-wilmersdorf.de", + "firstNumber": "1", + "lastNumber": "999", + "processingTimeAverage": "7", + "publishWaitingTimeEnabled": "0", + "statisticsEnabled": "0" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Ordnungsamt Charlottenburg-Wilmersdorf (Zentrale Anlauf- und Beratungsstelle)", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "0" + } + }, + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "ghostWorkstationCount": "-1", + "givenNumberCount": "1", + "lastGivenNumber": "1", + "lastGivenNumberTimestamp": 1459461600 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122058", + "$ref": "/provider/122058/" + } + }, + "enabled": true, + "name": "Ordnungsamt Charlottenburg-Wilmersdorf (Zentrale Anlauf- und Beratungsstelle)" + } + ] + } +} \ No newline at end of file diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_home.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_home.json new file mode 100644 index 000000000..e94f8d9ec --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_home.json @@ -0,0 +1,110 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https://schema.berlin.de/queuemanagement/ticketprinter.json", + "enabled": "1", + "hash": "ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141", + "buttons": [ + { + "type": "scope", + "url": "/scope/141/", + "scope": { + "hint": "Bürgeramt | ", + "id": "141", + "contact": { + "name": "Bürgeramt I in Köpenick", + "street": "Alt-Köpenick 21, 12555 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "20", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0" + }, + "client": { + "alternateAppointmentUrl": "https://service.berlin.de", + "amendmentActivated": "1", + "amendmentLabel": "", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "", + "headsUpTime": "0" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "0" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nim Bürgeramt Köpenick\r\n======================", + "firstNumber": "1", + "lastNumber": "399", + "processingTimeAverage": "12", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "0", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt I in Köpenick", + "confirmationEnabled": "0", + "deactivatedText": "", + "notificationsAmendmentEnabled": "0", + "notificationsEnabled": "0", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "35", + "lastGivenNumber": "36", + "lastGivenNumberTimestamp": 1458774000 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122208", + "$ref": "/provider/122208/" + } + }, + "enabled": true, + "name": "Bürgeramt Heerstraße" + } + ], + "home": "http://service.berlin.de/home/" + } +} diff --git a/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_notification.json b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_notification.json new file mode 100644 index 000000000..9cb7dae57 --- /dev/null +++ b/zmsticketprinter/tests/Zmsticketprinter/fixtures/GET_ticketprinter_buttonlist_single_notification.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://localhost/terminvereinbarung/api/2/", + "meta": { + "$schema": "https://schema.berlin.de/queuemanagement/metaresult.json", + "error": false, + "generated": "2016-04-29T11:53:31+02:00", + "server": "Zmsapi-unconfigured" + }, + "data": { + "$schema": "https:\/\/schema.berlin.de\/queuemanagement\/ticketprinter.json", + "enabled": "1", + "hash": "ac9df1f2983c3f94aebc1a9bd121bfecf5b374f2", + "id": "1", + "lastUpdate": "1477661416", + "name": "Test Ticketprinter", + "buttonlist": "s141", + "buttons": [{ + "type": "scope", + "url": "\/scope\/141\/", + "scope": { + "hint": "Bürgeramt | Nr. wird zum Termin aufgerufen", + "id": "141", + "contact": { + "name": "Bürgeramt Heerstraße", + "street": "Heerstr. 12, 14052 Berlin", + "email": "", + "country": "Germany" + }, + "preferences": { + "appointment": { + "deallocationDuration": "10", + "endInDaysDefault": "60", + "multipleSlotsEnabled": "1", + "reservationDuration": "20", + "startInDaysDefault": "0", + "notificationConfirmationEnabled": "1", + "notificationHeadsUpEnabled": "1" + }, + "client": { + "alternateAppointmentUrl": "", + "amendmentActivated": "1", + "amendmentLabel": "1", + "emailRequired": "1", + "telephoneActivated": "1", + "telephoneRequired": "1" + }, + "notifications": { + "confirmationContent": "", + "headsUpContent": "Ihre Wartezeit beträgt noch ca. 30 Min., bitte informieren Sie sich über die Aufrufanzeige im Bürgeramt, in welchem Raum Sie erwartet werden. Wartenr:", + "headsUpTime": "30" + }, + "pickup": { + "alternateName": "Ausgabe", + "isDefault": "1" + }, + "queue": { + "callCountMax": "0", + "callDisplayText": "Herzlich Willkommen \r\nin Charlottenburg-Wilmersdorf\r\n=====================\r\nTIP: Termin statt Wartezeit!\r\n=====================\r\nNutzen Sie die Online Terminvergabe unter:\r\nhttp://www.berlin.de/ba-charlottenburg-wilmersdorf/org/buergerdienste/buergeraemter.html", + "firstNumber": "1", + "lastNumber": "499", + "processingTimeAverage": "15", + "publishWaitingTimeEnabled": "1", + "statisticsEnabled": "1" + }, + "survey": { + "emailContent": "", + "enabled": "1", + "label": "" + }, + "ticketprinter": { + "buttonName": "Bürgeramt Heerstraße", + "confirmationEnabled": "1", + "deactivatedText": "", + "notificationsAmendmentEnabled": "1", + "notificationsEnabled": "1", + "notificationsDelay": "0" + }, + "workstation": { + "emergencyEnabled": "1" + } + }, + "shortName": "", + "status": { + "emergency": { + "acceptedByWorkstation": "-1", + "activated": "0", + "calledByWorkstation": "-1" + }, + "queue": { + "workstationCount": "0", + "ghostWorkstationCount": "-1", + "givenNumberCount": "2", + "lastGivenNumber": "2", + "lastGivenNumberTimestamp": 1459461600 + }, + "ticketprinter": { + "deactivated": "0" + } + }, + "provider": { + "id": "122217", + "$ref": "/provider/122217/" + } + }, + "enabled": true, + "name": "Bürgeramt Heerstraße" + }] +} +} \ No newline at end of file diff --git a/zmsticketprinter/tests/bootstrap.php b/zmsticketprinter/tests/bootstrap.php new file mode 100644 index 000000000..de3934a10 --- /dev/null +++ b/zmsticketprinter/tests/bootstrap.php @@ -0,0 +1,10 @@ +