gitextract_pbnw42or/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── build-app.yml ├── .gitignore ├── .gitpod.Dockerfile ├── .gitpod.yml ├── .mvn/ │ └── wrapper/ │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .run/ │ └── Frontend.run.xml ├── LICENCE ├── backend/ │ ├── .editorconfig │ ├── .gitignore │ ├── pom.xml │ ├── sample-queries.graphql │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── org/ │ │ │ └── springframework/ │ │ │ └── samples/ │ │ │ └── petclinic/ │ │ │ ├── FakeDataSqlCreator.java │ │ │ ├── PetClinicApplication.java │ │ │ ├── auth/ │ │ │ │ ├── Role.java │ │ │ │ ├── User.java │ │ │ │ └── UserRepository.java │ │ │ ├── graphql/ │ │ │ │ ├── AbstractOwnerInput.java │ │ │ │ ├── AbstractOwnerPayload.java │ │ │ │ ├── AbstractPetInput.java │ │ │ │ ├── AbstractPetPayload.java │ │ │ │ ├── AddOwnerInput.java │ │ │ │ ├── AddOwnerPayload.java │ │ │ │ ├── AddPetInput.java │ │ │ │ ├── AddPetPayload.java │ │ │ │ ├── AddSpecialtyPayload.java │ │ │ │ ├── AddVetErrorPayload.java │ │ │ │ ├── AddVetInput.java │ │ │ │ ├── AddVetPayload.java │ │ │ │ ├── AddVetSuccessPayload.java │ │ │ │ ├── AddVisitInput.java │ │ │ │ ├── AddVisitPayload.java │ │ │ │ ├── AuthController.java │ │ │ │ ├── OwnerController.java │ │ │ │ ├── PageInfo.java │ │ │ │ ├── PetController.java │ │ │ │ ├── PetTypeController.java │ │ │ │ ├── RemoveSpecialtyPayload.java │ │ │ │ ├── SpecialtyController.java │ │ │ │ ├── UpdateOwnerInput.java │ │ │ │ ├── UpdateOwnerPayload.java │ │ │ │ ├── UpdatePetInput.java │ │ │ │ ├── UpdatePetPayload.java │ │ │ │ ├── UpdateSpecialtyInput.java │ │ │ │ ├── UpdateSpecialtyPayload.java │ │ │ │ ├── VetController.java │ │ │ │ ├── VisitConnection.java │ │ │ │ ├── VisitController.java │ │ │ │ ├── VisitPublisher.java │ │ │ │ └── runtime/ │ │ │ │ ├── DateCoercing.java │ │ │ │ ├── GraphiQlConfiguration.java │ │ │ │ └── PetClinicRuntimeWiringConfiguration.java │ │ │ ├── model/ │ │ │ │ ├── BaseEntity.java │ │ │ │ ├── InvalidVetDataException.java │ │ │ │ ├── NamedEntity.java │ │ │ │ ├── OrderField.java │ │ │ │ ├── Owner.java │ │ │ │ ├── OwnerFilter.java │ │ │ │ ├── OwnerOrder.java │ │ │ │ ├── OwnerService.java │ │ │ │ ├── Person.java │ │ │ │ ├── Pet.java │ │ │ │ ├── PetService.java │ │ │ │ ├── PetType.java │ │ │ │ ├── PetValidator.java │ │ │ │ ├── Specialty.java │ │ │ │ ├── SpecialtyService.java │ │ │ │ ├── Vet.java │ │ │ │ ├── VetService.java │ │ │ │ ├── Vets.java │ │ │ │ ├── Visit.java │ │ │ │ ├── VisitCreatedEvent.java │ │ │ │ ├── VisitService.java │ │ │ │ └── package-info.java │ │ │ ├── repository/ │ │ │ │ ├── OwnerRepository.java │ │ │ │ ├── PetRepository.java │ │ │ │ ├── PetTypeRepository.java │ │ │ │ ├── SpecialtyRepository.java │ │ │ │ ├── VetRepository.java │ │ │ │ └── VisitRepository.java │ │ │ ├── security/ │ │ │ │ ├── JwtTokenService.java │ │ │ │ ├── LoginController.java │ │ │ │ ├── LoginRequest.java │ │ │ │ ├── LoginResponse.java │ │ │ │ ├── NeverExpiringTokenGenerator.java │ │ │ │ ├── RSAKeyProvider.java │ │ │ │ └── SecurityConfig.java │ │ │ └── util/ │ │ │ └── EntityUtils.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── db/ │ │ │ └── migration/ │ │ │ ├── V100_1__create_schema.sql │ │ │ └── V100_2__fill_db.sql │ │ ├── graphql/ │ │ │ └── petclinic.graphqls │ │ ├── keys/ │ │ │ ├── private_key.pem │ │ │ └── public_key.pem │ │ ├── readme-graphiql.md │ │ ├── testdata/ │ │ │ ├── owners.csv │ │ │ ├── pets.csv │ │ │ └── visits.csv │ │ └── ui/ │ │ └── graphiql/ │ │ ├── assets/ │ │ │ ├── Range-52ddcb6a.js │ │ │ ├── SchemaReference.es-0ccab37b.js │ │ │ ├── brace-fold.es-f2e3735d.js │ │ │ ├── closebrackets.es-e969742b.js │ │ │ ├── codemirror.es-52e8b92d.js │ │ │ ├── codemirror.es2-5884f31a.js │ │ │ ├── comment.es-39699bae.js │ │ │ ├── dialog.es-b2776d29.js │ │ │ ├── foldgutter.es-b6cee46a.js │ │ │ ├── forEachState.es-b2033c2b.js │ │ │ ├── hint.es-1418191b.js │ │ │ ├── hint.es2-598d3bfe.js │ │ │ ├── index-27dc12ba.js │ │ │ ├── index-928ba5be.css │ │ │ ├── info-addon.es-c9b2027b.js │ │ │ ├── info.es-3175bfab.js │ │ │ ├── javascript.es-3c6957c5.js │ │ │ ├── jump-to-line.es-3afd5e0a.js │ │ │ ├── jump.es-7b275cf1.js │ │ │ ├── lint.es-fe7166bb.js │ │ │ ├── lint.es2-97c4a6f4.js │ │ │ ├── lint.es3-bcaf3718.js │ │ │ ├── matchbrackets.es-97d2e827.js │ │ │ ├── matchbrackets.es2-f53f57e6.js │ │ │ ├── mode-indent.es-057a4f6a.js │ │ │ ├── mode.es-8c5bcfbd.js │ │ │ ├── mode.es2-8a6e8f8c.js │ │ │ ├── mode.es3-fa110728.js │ │ │ ├── search.es-2e392dd0.js │ │ │ ├── searchcursor.es-b1a352a2.js │ │ │ ├── searchcursor.es2-cbfe7cae.js │ │ │ ├── show-hint.es-b981493e.js │ │ │ └── sublime.es-e2a3eb60.js │ │ └── index.html │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── springframework/ │ │ └── samples/ │ │ └── petclinic/ │ │ ├── PetClinicTestDbConfiguration.java │ │ ├── graphql/ │ │ │ ├── AbstractClinicGraphqlTests.java │ │ │ ├── AuthControllerTests.java │ │ │ ├── GraphQlTokenProvider.java │ │ │ ├── OwnerControllerTests.java │ │ │ ├── PetControllerTests.java │ │ │ ├── PetTypeControllerTests.java │ │ │ ├── SpecialtyControllerTests.java │ │ │ ├── VetControllerTests.java │ │ │ ├── VisitControllerTests.java │ │ │ └── VisitSubscriptionTest.java │ │ ├── model/ │ │ │ └── ValidatorTests.java │ │ └── repository/ │ │ ├── ApplicationTestConfig.java │ │ └── ClinicRepositorySpringDataJpaTests.java │ └── resources/ │ └── graphql-test/ │ ├── addPetMutation.graphql │ ├── addVetMutation.graphql │ ├── addVisitMutation.graphql │ ├── addVisitMutationWithVariables.graphql │ ├── meQuery.graphql │ └── updatePetMutation.graphql ├── build-local.sh ├── docker-compose-petclinic.yml ├── docker-compose.yml ├── e2e-tests/ │ ├── .github/ │ │ └── workflows/ │ │ └── playwright.yml │ ├── .gitignore │ ├── .prettierrc │ ├── package.json │ ├── playwright.config.ts │ ├── pom.xml │ └── tests/ │ ├── graphiql.spec.ts │ ├── owner-detail.spec.ts │ ├── owner-search-page.spec.ts │ ├── petclinic.fixtures.ts │ └── vets.spec.ts ├── frontend/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .prettierignore │ ├── Dockerfile │ ├── README.md │ ├── codegen.ts │ ├── docker/ │ │ └── nginx.conf │ ├── index.html │ ├── package.json │ ├── pom.xml │ ├── postcss.config.js │ ├── prettier.config.cjs │ ├── src/ │ │ ├── App.css │ │ ├── App.tsx │ │ ├── NotFoundPage.tsx │ │ ├── WelcomePage.tsx │ │ ├── assets/ │ │ │ └── readme.md │ │ ├── components/ │ │ │ ├── Button.tsx │ │ │ ├── ButtonBar.tsx │ │ │ ├── Card.tsx │ │ │ ├── Heading.tsx │ │ │ ├── Input.tsx │ │ │ ├── Label.tsx │ │ │ ├── Link.tsx │ │ │ ├── Nav.tsx │ │ │ ├── PageHeader.tsx │ │ │ ├── PageLayout.tsx │ │ │ ├── Section.tsx │ │ │ ├── Select.tsx │ │ │ └── Table.tsx │ │ ├── create-graphql-client.ts │ │ ├── fonts/ │ │ │ ├── README.txt │ │ │ ├── generator_config.txt │ │ │ ├── metropolis-bold-demo.html │ │ │ ├── metropolis-extrabold-demo.html │ │ │ ├── metropolis-regular-demo.html │ │ │ └── specimen_files/ │ │ │ ├── grid_12-825-55-15.css │ │ │ └── specimen_stylesheet.css │ │ ├── fonts.css │ │ ├── graphql-types.txt │ │ ├── index.css │ │ ├── login/ │ │ │ ├── AuthTokenProvider.tsx │ │ │ ├── LoginPage.tsx │ │ │ └── MeQuery.graphql │ │ ├── main.tsx │ │ ├── owners/ │ │ │ ├── AddVisit.graphql │ │ │ ├── AllVetNames.graphql │ │ │ ├── FindOwnerByLastName.graphql │ │ │ ├── FindOwnerWithPetsAndVisits.graphql │ │ │ ├── NewVisitForm.tsx │ │ │ ├── NewVisitPanel.tsx │ │ │ ├── OnNewVisit.graphql │ │ │ ├── OwnerFields.graphql │ │ │ ├── OwnerPage.tsx │ │ │ ├── OwnerSearchPage.tsx │ │ │ ├── Visit.fragment.graphql │ │ │ └── VisitWithVet.fragment.graphql │ │ ├── urls.ts │ │ ├── use-current-user-fullname.tsx │ │ ├── use-logout.ts │ │ ├── utils.ts │ │ ├── vets/ │ │ │ ├── AddVet.graphql │ │ │ ├── AddVetForm.tsx │ │ │ ├── AllSpecialties.graphql │ │ │ ├── AllVets.graphql │ │ │ ├── VetAndVisits.graphql │ │ │ ├── VetsOverview.tsx │ │ │ └── VetsPage.tsx │ │ └── vite-env.d.ts │ ├── tailwind.config.js │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── graphql.config.yml ├── login.http ├── mvnw ├── mvnw.cmd ├── petclinic-graphiql/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pom.xml │ ├── src/ │ │ ├── App.tsx │ │ ├── LoginForm.tsx │ │ ├── PetClinicGraphiql.tsx │ │ ├── index.css │ │ ├── main.tsx │ │ ├── urls.ts │ │ └── vite-env.d.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── pom.xml ├── readme.md └── talk/ ├── curl-demo.sh ├── graphql-introduction.html ├── lib/ │ ├── jquery-2.2.4.js │ └── js/ │ └── line-numbers.js └── reveal.js/ ├── .gitignore ├── .travis.yml ├── CONTRIBUTING.md ├── Gruntfile.js ├── LICENSE ├── README.md ├── bower.json ├── css/ │ ├── print/ │ │ ├── paper.css │ │ └── pdf.css │ ├── reveal.css │ ├── reveal.scss │ └── theme/ │ ├── README.md │ ├── beige.css │ ├── black.css │ ├── blood.css │ ├── fonts/ │ │ └── google-fonts.css │ ├── league.css │ ├── moon.css │ ├── night.css │ ├── serif.css │ ├── simple.css │ ├── sky.css │ ├── solarized.css │ ├── source/ │ │ ├── beige.scss │ │ ├── black.scss │ │ ├── blood.scss │ │ ├── league.scss │ │ ├── moon.scss │ │ ├── night.scss │ │ ├── serif.scss │ │ ├── simple.scss │ │ ├── sky.scss │ │ ├── solarized.scss │ │ └── white.scss │ ├── template/ │ │ ├── mixins.scss │ │ ├── settings.scss │ │ └── theme.scss │ └── white.css ├── index.html ├── js/ │ └── reveal.js ├── lib/ │ ├── css/ │ │ └── zenburn.css │ ├── font/ │ │ ├── league-gothic/ │ │ │ ├── LICENSE │ │ │ └── league-gothic.css │ │ └── source-sans-pro/ │ │ ├── LICENSE │ │ └── source-sans-pro.css │ └── js/ │ ├── classList.js │ └── html5shiv.js ├── package.json ├── plugin/ │ ├── highlight/ │ │ └── highlight.js │ ├── markdown/ │ │ ├── example.html │ │ ├── example.md │ │ ├── markdown.js │ │ └── marked.js │ ├── math/ │ │ └── math.js │ ├── multiplex/ │ │ ├── client.js │ │ ├── index.js │ │ └── master.js │ ├── notes/ │ │ ├── notes.html │ │ └── notes.js │ ├── notes-server/ │ │ ├── client.js │ │ ├── index.js │ │ └── notes.html │ ├── print-pdf/ │ │ └── print-pdf.js │ ├── search/ │ │ └── search.js │ └── zoom-js/ │ └── zoom.js └── test/ ├── examples/ │ ├── barebones.html │ ├── embedded-media.html │ ├── math.html │ ├── slide-backgrounds.html │ └── slide-transitions.html ├── qunit-1.12.0.css ├── qunit-1.12.0.js ├── test-markdown-element-attributes.html ├── test-markdown-element-attributes.js ├── test-markdown-slide-attributes.html ├── test-markdown-slide-attributes.js ├── test-markdown.html ├── test-markdown.js ├── test-pdf.html ├── test-pdf.js ├── test.html └── test.js