From e4a4cfae2b6d83ca47edeb22bf98d83b58668080 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 21 Nov 2025 04:28:08 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=80=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 18 + .env.example | 65 + .gitattributes | 10 + .gitea/workflows/deploy.yaml | 16 + .gitignore | 23 + .junie/guidelines.md | 56 + README.md | 55 + .../Auth/VerifyEmailController.php | 30 + app/Http/Controllers/Controller.php | 8 + app/Livewire/Actions/Logout.php | 22 + app/Models/BitcoinEvent.php | 73 + app/Models/BookCase.php | 83 + app/Models/Category.php | 33 + app/Models/City.php | 83 + app/Models/Country.php | 34 + app/Models/Course.php | 88 + app/Models/CourseEvent.php | 62 + app/Models/EmailCampaign.php | 16 + app/Models/EmailTexts.php | 18 + app/Models/Episode.php | 57 + app/Models/Lecturer.php | 104 + app/Models/Library.php | 54 + app/Models/LibraryItem.php | 159 + app/Models/LoginKey.php | 25 + app/Models/Meetup.php | 136 + app/Models/MeetupEvent.php | 51 + app/Models/MeetupUser.php | 10 + app/Models/Membership.php | 15 + app/Models/OrangePill.php | 74 + app/Models/Participant.php | 32 + app/Models/Podcast.php | 49 + app/Models/ProjectProposal.php | 83 + app/Models/Registration.php | 41 + app/Models/Tag.php | 21 + app/Models/Team.php | 44 + app/Models/TeamInvitation.php | 28 + app/Models/TwitterAccount.php | 14 + app/Models/User.php | 104 + app/Models/Venue.php | 104 + app/Models/Vote.php | 41 + app/Providers/AppServiceProvider.php | 24 + app/Providers/VoltServiceProvider.php | 28 + app/helpers.php | 13 + artisan | 18 + bootstrap/app.php | 19 + bootstrap/cache/.gitignore | 2 + bootstrap/providers.php | 6 + composer.json | 102 + composer.lock | 12135 ++++++++++++++++ config/app.php | 126 + config/auth.php | 115 + config/blade-flags.php | 57 + config/cache.php | 108 + config/ciphersweet.php | 54 + config/countries.php | 10 + config/database.php | 174 + config/filesystems.php | 80 + config/logging.php | 132 + config/mail.php | 116 + config/permission.php | 202 + config/queue.php | 112 + config/services.php | 38 + config/session.php | 217 + database/.gitignore | 1 + database/factories/UserFactory.php | 44 + .../2014_10_12_000000_create_users_table.php | 45 + ...12_100000_create_password_resets_table.php | 28 + ..._08_19_000000_create_failed_jobs_table.php | 32 + ...01_create_personal_access_tokens_table.php | 33 + ..._05_21_300000_create_permission_tables.php | 136 + ...22_12_01_145948_create_countries_table.php | 31 + .../2022_12_01_145949_create_cities_table.php | 39 + ...22_12_01_145950_create_lecturers_table.php | 34 + ...12_01_145951_create_participants_table.php | 33 + ...2_12_01_145952_create_categories_table.php | 33 + ...2022_12_01_145953_create_courses_table.php | 33 + .../2022_12_01_145954_create_venues_table.php | 35 + ...2_01_145955_create_course_events_table.php | 35 + ...2_01_145956_create_registrations_table.php | 34 + ...01_145957_create_category_course_table.php | 31 + ...2_12_01_180529_create_login_keys_table.php | 30 + ..._210526_add_geo_fields_to_cities_table.php | 29 + .../2022_12_01_214707_create_media_table.php | 32 + ...3043_add_timezone_field_to_users_table.php | 29 + .../2022_12_02_162000_create_trix_tables.php | 44 + ...d_description_field_to_lecturers_table.php | 30 + ...add_description_field_to_courses_table.php | 30 + ..._add_link_field_to_course_events_table.php | 28 + ...022_12_04_154911_create_podcasts_table.php | 36 + ...022_12_04_154912_create_episodes_table.php | 38 + .../2022_12_04_170737_create_tag_tables.php | 37 + ...22_12_05_160932_create_libraries_table.php | 32 + ...2_05_160933_create_library_items_table.php | 46 + ...5957_create_library_library_item_table.php | 37 + ...2_12_06_222651_create_book_cases_table.php | 48 + ...12_07_095709_create_orange_pills_table.php | 35 + ...2022_12_12_155928_create_meetups_table.php | 34 + ...2_12_155929_create_meetup_events_table.php | 42 + ..._12_171115_create_bitcoin_events_table.php | 42 + ...create_created_by_fields_on_all_tables.php | 101 + ...orldwide_field_to_bitcoin_events_table.php | 29 + ...022_12_15_145559_create_statuses_table.php | 24 + .../2022_12_15_152415_create_seo_table.php | 30 + ...02_add_english_name_to_countries_table.php | 29 + ...136_add_coordinates_to_countries_table.php | 31 + ...32_add_current_language_to_users_table.php | 29 + ...022_12_18_201051_add_indexes_to_tables.php | 31 + ...805_add_reputation_field_on_user_table.php | 28 + ...2023_01_14_185805_create_gamify_tables.php | 54 + ...91356_add_slug_column_to_meetups_table.php | 30 + ...landing_page_fields_to_lecturers_table.php | 31 + ...d_landing_page_fields_to_meetups_table.php | 29 + ...5_191946_create_twitter_accounts_table.php | 32 + ..._token_field_to_twitter_accounts_table.php | 32 + ...1_16_143622_add_links_to_meetups_table.php | 32 + ..._change_telegram_link_on_meetups_table.php | 28 + ...57_add_github_data_field_meetups_table.php | 27 + ...142300_add_ln_addresses_to_users_table.php | 33 + ...07_add_social_links_to_lecturers_table.php | 31 + ...72630_update_ln_address_on_users_table.php | 28 + ...add_parent_id_field_to_libraries_table.php | 30 + ..._add_slug_field_to_library_items_table.php | 31 + ...add_meta_fields_to_library_items_table.php | 35 + ...dd_matrix_group_field_to_meetups_table.php | 29 + ...22_add_ln_addresses_to_lecturers_table.php | 33 + ..._115414_add_osm_fields_to_cities_table.php | 35 + ...2_03_151808_create_blind_indexes_table.php | 20 + ...3_152818_prepare_cyphersweet_on_models.php | 30 + ...d_attend_fields_to_meetup_events_table.php | 31 + ...4_add_community_field_to_meetups_table.php | 29 + ..._approved_field_to_library_items_table.php | 29 + ...6_add_news_flag_to_library_items_table.php | 29 + ...add_tweet_field_to_library_items_table.php | 29 + ...nge_tweet_field_to_library_items_table.php | 32 + ...4_133446_add_nostr_field_meetups_table.php | 27 + ...618_add_nostr_field_to_lecturers_table.php | 29 + ...dd_comment_field_to_orange_pills_table.php | 29 + ...19_000000_rename_password_resets_table.php | 23 + ...add_nostr_field_to_library_items_table.php | 28 + ...2_24_090531_add_nostr_fields_to_tables.php | 51 + ...104336_add_nostr_fields_to_users_table.php | 28 + ...180846_add_change_field_to_users_table.php | 28 + ...5_add_change_time_field_to_users_table.php | 28 + ..._190300_create_project_proposals_table.php | 35 + .../2023_03_10_190301_create_votes_table.php | 35 + ...d_to_project_proposals_and_votes_table.php | 36 + ..._sats_field_on_project_proposals_table.php | 28 + ..._slug_field_to_project_proposals_table.php | 29 + ...130046_add_lnbits_field_to_users_table.php | 28 + ...o_be_paid_field_to_library_items_table.php | 28 + ..._add_sats_field_to_library_items_table.php | 28 + ...5_create_library_item_user_pivot_table.php | 33 + ...5504_alter_lnbits_field_on_users_table.php | 27 + ...103513_add_paynym_field_to_users_table.php | 28 + ...40_add_paynym_field_to_lecturers_table.php | 28 + ..._visible_on_map_field_to_meetups_table.php | 27 + ...650_add_simplex_field_to_meetups_table.php | 27 + ...11_095930_create_email_campaigns_table.php | 28 + ..._11_11_100150_create_email_texts_table.php | 30 + ...28_add_fields_to_email_campaigns_table.php | 28 + ...023_12_08_201800_create_features_table.php | 34 + ..._17_01_175957_create_meetup_user_table.php | 39 + ...1929_add_signal_field_to_meetups_table.php | 27 + .../2025_07_11_165453_create_jobs_table.php | 32 + database/seeders/DatabaseSeeder.php | 21 + docker-compose.yml | 82 + lang/de.json | 145 + lang/de/auth.php | 9 + lang/de/countries.php | 251 + lang/de/pagination.php | 8 + lang/de/passwords.php | 11 + lang/de/validation.php | 158 + lang/en.json | 145 + lang/en/auth.php | 9 + lang/en/pagination.php | 8 + lang/en/passwords.php | 11 + lang/en/validation.php | 158 + package.json | 22 + phpunit.xml | 32 + public/.htaccess | 25 + public/android-chrome-192x192.png | Bin 0 -> 51535 bytes public/android-chrome-512x512.png | Bin 0 -> 317341 bytes public/apple-touch-icon.png | Bin 0 -> 45955 bytes public/favicon-16x16.png | Bin 0 -> 780 bytes public/favicon-32x32.png | Bin 0 -> 2378 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/favicon.svg | 3 + public/img/btc.png | Bin 0 -> 8330 bytes public/img/btc_marker.png | Bin 0 -> 2210 bytes public/img/einundzwanzig-square.svg | 16 + public/index.php | 20 + public/robots.txt | 2 + public/site.webmanifest | 1 + public/vendor/blade-flags/country-ad.svg | 1 + public/vendor/blade-flags/country-ae.svg | 1 + public/vendor/blade-flags/country-af.svg | 1 + public/vendor/blade-flags/country-ag.svg | 1 + public/vendor/blade-flags/country-ai.svg | 1 + public/vendor/blade-flags/country-al.svg | 1 + public/vendor/blade-flags/country-am.svg | 1 + public/vendor/blade-flags/country-ao.svg | 1 + public/vendor/blade-flags/country-aq.svg | 1 + public/vendor/blade-flags/country-ar.svg | 1 + public/vendor/blade-flags/country-as.svg | 1 + public/vendor/blade-flags/country-at.svg | 1 + public/vendor/blade-flags/country-au.svg | 1 + public/vendor/blade-flags/country-aw.svg | 1 + public/vendor/blade-flags/country-ax.svg | 1 + public/vendor/blade-flags/country-az.svg | 1 + public/vendor/blade-flags/country-ba.svg | 1 + public/vendor/blade-flags/country-bb.svg | 1 + public/vendor/blade-flags/country-bd.svg | 1 + public/vendor/blade-flags/country-be.svg | 1 + public/vendor/blade-flags/country-bf.svg | 1 + public/vendor/blade-flags/country-bg.svg | 1 + public/vendor/blade-flags/country-bh.svg | 1 + public/vendor/blade-flags/country-bi.svg | 1 + public/vendor/blade-flags/country-bj.svg | 1 + public/vendor/blade-flags/country-bl.svg | 1 + public/vendor/blade-flags/country-bm.svg | 1 + public/vendor/blade-flags/country-bn.svg | 1 + public/vendor/blade-flags/country-bo.svg | 1 + public/vendor/blade-flags/country-bq.svg | 1 + public/vendor/blade-flags/country-br.svg | 1 + public/vendor/blade-flags/country-bs.svg | 1 + public/vendor/blade-flags/country-bt.svg | 1 + public/vendor/blade-flags/country-bv.svg | 1 + public/vendor/blade-flags/country-bw.svg | 1 + public/vendor/blade-flags/country-by.svg | 1 + public/vendor/blade-flags/country-bz.svg | 1 + public/vendor/blade-flags/country-ca.svg | 1 + public/vendor/blade-flags/country-cc.svg | 1 + public/vendor/blade-flags/country-cd.svg | 1 + public/vendor/blade-flags/country-cf.svg | 1 + public/vendor/blade-flags/country-cg.svg | 1 + public/vendor/blade-flags/country-ch.svg | 1 + public/vendor/blade-flags/country-ci.svg | 1 + public/vendor/blade-flags/country-ck.svg | 1 + public/vendor/blade-flags/country-cl.svg | 1 + public/vendor/blade-flags/country-cm.svg | 1 + public/vendor/blade-flags/country-cn.svg | 1 + public/vendor/blade-flags/country-co.svg | 1 + public/vendor/blade-flags/country-cp.svg | 1 + public/vendor/blade-flags/country-cr.svg | 1 + public/vendor/blade-flags/country-cu.svg | 1 + public/vendor/blade-flags/country-cv.svg | 1 + public/vendor/blade-flags/country-cw.svg | 1 + public/vendor/blade-flags/country-cx.svg | 1 + public/vendor/blade-flags/country-cy.svg | 1 + public/vendor/blade-flags/country-cz.svg | 1 + public/vendor/blade-flags/country-de.svg | 1 + public/vendor/blade-flags/country-dg.svg | 1 + public/vendor/blade-flags/country-dj.svg | 1 + public/vendor/blade-flags/country-dk.svg | 1 + public/vendor/blade-flags/country-dm.svg | 1 + public/vendor/blade-flags/country-do.svg | 1 + public/vendor/blade-flags/country-dz.svg | 1 + public/vendor/blade-flags/country-ea.svg | 1 + public/vendor/blade-flags/country-ec.svg | 1 + public/vendor/blade-flags/country-ee.svg | 1 + public/vendor/blade-flags/country-eg.svg | 1 + public/vendor/blade-flags/country-eh.svg | 1 + public/vendor/blade-flags/country-er.svg | 1 + public/vendor/blade-flags/country-es.svg | 1 + public/vendor/blade-flags/country-et.svg | 1 + public/vendor/blade-flags/country-eu.svg | 1 + public/vendor/blade-flags/country-fi.svg | 1 + public/vendor/blade-flags/country-fj.svg | 1 + public/vendor/blade-flags/country-fk.svg | 1 + public/vendor/blade-flags/country-fm.svg | 1 + public/vendor/blade-flags/country-fo.svg | 1 + public/vendor/blade-flags/country-fr.svg | 1 + public/vendor/blade-flags/country-ga.svg | 1 + public/vendor/blade-flags/country-gb-eng.svg | 1 + public/vendor/blade-flags/country-gb-nir.svg | 1 + public/vendor/blade-flags/country-gb-sct.svg | 1 + public/vendor/blade-flags/country-gb-wls.svg | 1 + public/vendor/blade-flags/country-gb.svg | 1 + public/vendor/blade-flags/country-gd.svg | 1 + public/vendor/blade-flags/country-ge.svg | 1 + public/vendor/blade-flags/country-gf.svg | 1 + public/vendor/blade-flags/country-gg.svg | 1 + public/vendor/blade-flags/country-gh.svg | 1 + public/vendor/blade-flags/country-gi.svg | 1 + public/vendor/blade-flags/country-gl.svg | 1 + public/vendor/blade-flags/country-gm.svg | 1 + public/vendor/blade-flags/country-gn.svg | 1 + public/vendor/blade-flags/country-gp.svg | 1 + public/vendor/blade-flags/country-gq.svg | 1 + public/vendor/blade-flags/country-gr.svg | 1 + public/vendor/blade-flags/country-gs.svg | 1 + public/vendor/blade-flags/country-gt.svg | 1 + public/vendor/blade-flags/country-gu.svg | 1 + public/vendor/blade-flags/country-gw.svg | 1 + public/vendor/blade-flags/country-gy.svg | 1 + public/vendor/blade-flags/country-hk.svg | 1 + public/vendor/blade-flags/country-hm.svg | 1 + public/vendor/blade-flags/country-hn.svg | 1 + public/vendor/blade-flags/country-hr.svg | 1 + public/vendor/blade-flags/country-ht.svg | 1 + public/vendor/blade-flags/country-hu.svg | 1 + public/vendor/blade-flags/country-ic.svg | 1 + public/vendor/blade-flags/country-id.svg | 1 + public/vendor/blade-flags/country-ie.svg | 1 + public/vendor/blade-flags/country-il.svg | 1 + public/vendor/blade-flags/country-im.svg | 1 + public/vendor/blade-flags/country-in.svg | 1 + public/vendor/blade-flags/country-io.svg | 1 + public/vendor/blade-flags/country-iq.svg | 1 + public/vendor/blade-flags/country-ir.svg | 1 + public/vendor/blade-flags/country-is.svg | 1 + public/vendor/blade-flags/country-it.svg | 1 + public/vendor/blade-flags/country-je.svg | 1 + public/vendor/blade-flags/country-jm.svg | 1 + public/vendor/blade-flags/country-jo.svg | 1 + public/vendor/blade-flags/country-jp.svg | 1 + public/vendor/blade-flags/country-ke.svg | 1 + public/vendor/blade-flags/country-kg.svg | 1 + public/vendor/blade-flags/country-kh.svg | 1 + public/vendor/blade-flags/country-ki.svg | 1 + public/vendor/blade-flags/country-km.svg | 1 + public/vendor/blade-flags/country-kn.svg | 1 + public/vendor/blade-flags/country-kp.svg | 1 + public/vendor/blade-flags/country-kr.svg | 1 + public/vendor/blade-flags/country-kw.svg | 1 + public/vendor/blade-flags/country-ky.svg | 1 + public/vendor/blade-flags/country-kz.svg | 1 + public/vendor/blade-flags/country-la.svg | 1 + public/vendor/blade-flags/country-lb.svg | 1 + public/vendor/blade-flags/country-lc.svg | 1 + public/vendor/blade-flags/country-li.svg | 1 + public/vendor/blade-flags/country-lk.svg | 1 + public/vendor/blade-flags/country-lr.svg | 1 + public/vendor/blade-flags/country-ls.svg | 1 + public/vendor/blade-flags/country-lt.svg | 1 + public/vendor/blade-flags/country-lu.svg | 1 + public/vendor/blade-flags/country-lv.svg | 1 + public/vendor/blade-flags/country-ly.svg | 1 + public/vendor/blade-flags/country-ma.svg | 1 + public/vendor/blade-flags/country-mc.svg | 1 + public/vendor/blade-flags/country-md.svg | 1 + public/vendor/blade-flags/country-me.svg | 1 + public/vendor/blade-flags/country-mf.svg | 1 + public/vendor/blade-flags/country-mg.svg | 1 + public/vendor/blade-flags/country-mh.svg | 1 + public/vendor/blade-flags/country-mk.svg | 1 + public/vendor/blade-flags/country-ml.svg | 1 + public/vendor/blade-flags/country-mm.svg | 1 + public/vendor/blade-flags/country-mn.svg | 1 + public/vendor/blade-flags/country-mo.svg | 1 + public/vendor/blade-flags/country-mp.svg | 1 + public/vendor/blade-flags/country-mq.svg | 1 + public/vendor/blade-flags/country-mr.svg | 1 + public/vendor/blade-flags/country-ms.svg | 1 + public/vendor/blade-flags/country-mt.svg | 1 + public/vendor/blade-flags/country-mu.svg | 1 + public/vendor/blade-flags/country-mv.svg | 1 + public/vendor/blade-flags/country-mw.svg | 1 + public/vendor/blade-flags/country-mx.svg | 1 + public/vendor/blade-flags/country-my.svg | 1 + public/vendor/blade-flags/country-mz.svg | 1 + public/vendor/blade-flags/country-na.svg | 1 + public/vendor/blade-flags/country-nc.svg | 1 + public/vendor/blade-flags/country-ne.svg | 1 + public/vendor/blade-flags/country-nf.svg | 1 + public/vendor/blade-flags/country-ng.svg | 1 + public/vendor/blade-flags/country-ni.svg | 1 + public/vendor/blade-flags/country-nl.svg | 1 + public/vendor/blade-flags/country-no.svg | 1 + public/vendor/blade-flags/country-np.svg | 1 + public/vendor/blade-flags/country-nr.svg | 1 + public/vendor/blade-flags/country-nu.svg | 1 + public/vendor/blade-flags/country-nz.svg | 1 + public/vendor/blade-flags/country-om.svg | 1 + public/vendor/blade-flags/country-pa.svg | 1 + public/vendor/blade-flags/country-pe.svg | 1 + public/vendor/blade-flags/country-pf.svg | 1 + public/vendor/blade-flags/country-pg.svg | 1 + public/vendor/blade-flags/country-ph.svg | 1 + public/vendor/blade-flags/country-pk.svg | 1 + public/vendor/blade-flags/country-pl.svg | 1 + public/vendor/blade-flags/country-pm.svg | 1 + public/vendor/blade-flags/country-pn.svg | 1 + public/vendor/blade-flags/country-pr.svg | 1 + public/vendor/blade-flags/country-ps.svg | 1 + public/vendor/blade-flags/country-pt.svg | 1 + public/vendor/blade-flags/country-pw.svg | 1 + public/vendor/blade-flags/country-py.svg | 1 + public/vendor/blade-flags/country-qa.svg | 1 + public/vendor/blade-flags/country-re.svg | 1 + public/vendor/blade-flags/country-ro.svg | 1 + public/vendor/blade-flags/country-rs.svg | 1 + public/vendor/blade-flags/country-ru.svg | 1 + public/vendor/blade-flags/country-rw.svg | 1 + public/vendor/blade-flags/country-sa.svg | 1 + public/vendor/blade-flags/country-sb.svg | 1 + public/vendor/blade-flags/country-sc.svg | 1 + public/vendor/blade-flags/country-sd.svg | 1 + public/vendor/blade-flags/country-se.svg | 1 + public/vendor/blade-flags/country-sg.svg | 1 + public/vendor/blade-flags/country-sh-ac.svg | 1 + public/vendor/blade-flags/country-sh-ta.svg | 1 + public/vendor/blade-flags/country-sh.svg | 1 + public/vendor/blade-flags/country-si.svg | 1 + public/vendor/blade-flags/country-sj.svg | 1 + public/vendor/blade-flags/country-sk.svg | 1 + public/vendor/blade-flags/country-sl.svg | 1 + public/vendor/blade-flags/country-sm.svg | 1 + public/vendor/blade-flags/country-sn.svg | 1 + public/vendor/blade-flags/country-so.svg | 1 + public/vendor/blade-flags/country-sr.svg | 1 + public/vendor/blade-flags/country-ss.svg | 1 + public/vendor/blade-flags/country-st.svg | 1 + public/vendor/blade-flags/country-sv.svg | 1 + public/vendor/blade-flags/country-sx.svg | 1 + public/vendor/blade-flags/country-sy.svg | 7 + public/vendor/blade-flags/country-sz.svg | 1 + public/vendor/blade-flags/country-tc.svg | 1 + public/vendor/blade-flags/country-td.svg | 1 + public/vendor/blade-flags/country-tf.svg | 1 + public/vendor/blade-flags/country-tg.svg | 1 + public/vendor/blade-flags/country-th.svg | 1 + public/vendor/blade-flags/country-tj.svg | 1 + public/vendor/blade-flags/country-tk.svg | 1 + public/vendor/blade-flags/country-tl.svg | 1 + public/vendor/blade-flags/country-tm.svg | 1 + public/vendor/blade-flags/country-tn.svg | 1 + public/vendor/blade-flags/country-to.svg | 1 + public/vendor/blade-flags/country-tr.svg | 1 + public/vendor/blade-flags/country-tt.svg | 1 + public/vendor/blade-flags/country-tv.svg | 1 + public/vendor/blade-flags/country-tw.svg | 1 + public/vendor/blade-flags/country-tz.svg | 1 + public/vendor/blade-flags/country-ua.svg | 1 + public/vendor/blade-flags/country-ug.svg | 1 + public/vendor/blade-flags/country-uk.svg | 1 + public/vendor/blade-flags/country-um.svg | 1 + .../blade-flags/country-united_nations.svg | 1 + public/vendor/blade-flags/country-us.svg | 1 + public/vendor/blade-flags/country-uy.svg | 1 + public/vendor/blade-flags/country-uz.svg | 1 + public/vendor/blade-flags/country-va.svg | 1 + public/vendor/blade-flags/country-vc.svg | 1 + public/vendor/blade-flags/country-ve.svg | 1 + public/vendor/blade-flags/country-vg.svg | 1 + public/vendor/blade-flags/country-vi.svg | 1 + public/vendor/blade-flags/country-vn.svg | 1 + public/vendor/blade-flags/country-vu.svg | 1 + public/vendor/blade-flags/country-wf.svg | 1 + public/vendor/blade-flags/country-ws.svg | 1 + public/vendor/blade-flags/country-xk.svg | 1 + public/vendor/blade-flags/country-xx.svg | 1 + public/vendor/blade-flags/country-ye.svg | 1 + public/vendor/blade-flags/country-yt.svg | 1 + public/vendor/blade-flags/country-yu.svg | 1 + public/vendor/blade-flags/country-za.svg | 1 + public/vendor/blade-flags/country-zm.svg | 1 + public/vendor/blade-flags/country-zw.svg | 1 + public/vendor/blade-flags/language-af.svg | 1 + public/vendor/blade-flags/language-ak.svg | 1 + public/vendor/blade-flags/language-am.svg | 1 + public/vendor/blade-flags/language-ar-iq.svg | 1 + public/vendor/blade-flags/language-ar.svg | 1 + public/vendor/blade-flags/language-as.svg | 1 + public/vendor/blade-flags/language-ay.svg | 1 + public/vendor/blade-flags/language-az.svg | 1 + public/vendor/blade-flags/language-be.svg | 1 + public/vendor/blade-flags/language-bg.svg | 1 + public/vendor/blade-flags/language-bho.svg | 1 + public/vendor/blade-flags/language-bi.svg | 1 + public/vendor/blade-flags/language-bm.svg | 1 + public/vendor/blade-flags/language-bn.svg | 1 + public/vendor/blade-flags/language-bs.svg | 1 + public/vendor/blade-flags/language-ca.svg | 1 + public/vendor/blade-flags/language-ceb.svg | 1 + public/vendor/blade-flags/language-ch.svg | 1 + public/vendor/blade-flags/language-chm.svg | 1 + public/vendor/blade-flags/language-co.svg | 1 + public/vendor/blade-flags/language-cs.svg | 1 + public/vendor/blade-flags/language-cy.svg | 1 + public/vendor/blade-flags/language-da.svg | 1 + public/vendor/blade-flags/language-de.svg | 1 + public/vendor/blade-flags/language-dv.svg | 1 + public/vendor/blade-flags/language-dz.svg | 1 + public/vendor/blade-flags/language-el.svg | 1 + public/vendor/blade-flags/language-en-au.svg | 1 + public/vendor/blade-flags/language-en-ca.svg | 1 + public/vendor/blade-flags/language-en-in.svg | 1 + public/vendor/blade-flags/language-en-ng.svg | 1 + public/vendor/blade-flags/language-en-nz.svg | 1 + public/vendor/blade-flags/language-en-us.svg | 1 + public/vendor/blade-flags/language-en-za.svg | 1 + public/vendor/blade-flags/language-en.svg | 1 + public/vendor/blade-flags/language-es.svg | 1 + public/vendor/blade-flags/language-et.svg | 1 + public/vendor/blade-flags/language-eu.svg | 1 + public/vendor/blade-flags/language-fa.svg | 1 + public/vendor/blade-flags/language-fi.svg | 1 + public/vendor/blade-flags/language-fil.svg | 1 + public/vendor/blade-flags/language-fj.svg | 1 + public/vendor/blade-flags/language-fo.svg | 1 + public/vendor/blade-flags/language-fr.svg | 1 + public/vendor/blade-flags/language-ga.svg | 1 + public/vendor/blade-flags/language-gl.svg | 1 + public/vendor/blade-flags/language-gn.svg | 1 + public/vendor/blade-flags/language-gu.svg | 1 + public/vendor/blade-flags/language-gv.svg | 1 + public/vendor/blade-flags/language-ha.svg | 1 + public/vendor/blade-flags/language-haw.svg | 1 + public/vendor/blade-flags/language-he.svg | 1 + public/vendor/blade-flags/language-hi.svg | 1 + public/vendor/blade-flags/language-ho.svg | 1 + public/vendor/blade-flags/language-hr.svg | 1 + public/vendor/blade-flags/language-ht.svg | 1 + public/vendor/blade-flags/language-hu.svg | 1 + public/vendor/blade-flags/language-hy.svg | 1 + public/vendor/blade-flags/language-id.svg | 1 + public/vendor/blade-flags/language-ig.svg | 1 + public/vendor/blade-flags/language-ilo.svg | 1 + public/vendor/blade-flags/language-is.svg | 1 + public/vendor/blade-flags/language-it.svg | 1 + public/vendor/blade-flags/language-ja.svg | 1 + public/vendor/blade-flags/language-jv.svg | 1 + public/vendor/blade-flags/language-ka.svg | 1 + public/vendor/blade-flags/language-kk.svg | 1 + public/vendor/blade-flags/language-kl.svg | 1 + public/vendor/blade-flags/language-km.svg | 1 + public/vendor/blade-flags/language-kn.svg | 1 + public/vendor/blade-flags/language-ko.svg | 1 + public/vendor/blade-flags/language-kri.svg | 1 + public/vendor/blade-flags/language-ku.svg | 1 + public/vendor/blade-flags/language-ky.svg | 1 + public/vendor/blade-flags/language-la.svg | 1 + public/vendor/blade-flags/language-lb.svg | 1 + public/vendor/blade-flags/language-lg.svg | 1 + public/vendor/blade-flags/language-ln.svg | 1 + public/vendor/blade-flags/language-lo.svg | 1 + public/vendor/blade-flags/language-lt.svg | 1 + public/vendor/blade-flags/language-lu.svg | 1 + public/vendor/blade-flags/language-lv.svg | 1 + public/vendor/blade-flags/language-mg.svg | 1 + public/vendor/blade-flags/language-mh.svg | 1 + public/vendor/blade-flags/language-mi.svg | 1 + public/vendor/blade-flags/language-mk.svg | 1 + public/vendor/blade-flags/language-ml.svg | 1 + public/vendor/blade-flags/language-mn.svg | 1 + public/vendor/blade-flags/language-mr.svg | 1 + public/vendor/blade-flags/language-mrj.svg | 1 + public/vendor/blade-flags/language-ms.svg | 1 + public/vendor/blade-flags/language-mt.svg | 1 + public/vendor/blade-flags/language-my.svg | 1 + public/vendor/blade-flags/language-na.svg | 1 + public/vendor/blade-flags/language-nb.svg | 1 + public/vendor/blade-flags/language-nd.svg | 1 + public/vendor/blade-flags/language-ne.svg | 1 + public/vendor/blade-flags/language-nl.svg | 1 + public/vendor/blade-flags/language-nn.svg | 1 + public/vendor/blade-flags/language-no.svg | 1 + public/vendor/blade-flags/language-nr.svg | 1 + public/vendor/blade-flags/language-ny.svg | 1 + public/vendor/blade-flags/language-pa.svg | 1 + public/vendor/blade-flags/language-pap.svg | 1 + public/vendor/blade-flags/language-pl.svg | 1 + public/vendor/blade-flags/language-ps.svg | 1 + public/vendor/blade-flags/language-pt-br.svg | 1 + public/vendor/blade-flags/language-pt.svg | 1 + public/vendor/blade-flags/language-rn.svg | 1 + public/vendor/blade-flags/language-ro.svg | 1 + public/vendor/blade-flags/language-ru.svg | 1 + public/vendor/blade-flags/language-rw.svg | 1 + public/vendor/blade-flags/language-sd.svg | 1 + public/vendor/blade-flags/language-sg.svg | 1 + public/vendor/blade-flags/language-si.svg | 1 + public/vendor/blade-flags/language-sk.svg | 1 + public/vendor/blade-flags/language-sl.svg | 1 + public/vendor/blade-flags/language-sm.svg | 1 + public/vendor/blade-flags/language-sn.svg | 1 + public/vendor/blade-flags/language-so.svg | 1 + public/vendor/blade-flags/language-sq.svg | 1 + public/vendor/blade-flags/language-sr.svg | 1 + public/vendor/blade-flags/language-ss.svg | 1 + public/vendor/blade-flags/language-st.svg | 1 + public/vendor/blade-flags/language-su.svg | 1 + public/vendor/blade-flags/language-sv.svg | 1 + public/vendor/blade-flags/language-sw.svg | 1 + public/vendor/blade-flags/language-ta.svg | 1 + public/vendor/blade-flags/language-te.svg | 1 + public/vendor/blade-flags/language-tg.svg | 1 + public/vendor/blade-flags/language-th.svg | 1 + public/vendor/blade-flags/language-tk.svg | 1 + public/vendor/blade-flags/language-tl.svg | 1 + public/vendor/blade-flags/language-tn.svg | 1 + public/vendor/blade-flags/language-to.svg | 1 + public/vendor/blade-flags/language-tr.svg | 1 + public/vendor/blade-flags/language-ty.svg | 1 + public/vendor/blade-flags/language-uk.svg | 1 + public/vendor/blade-flags/language-ur.svg | 1 + public/vendor/blade-flags/language-uz.svg | 1 + public/vendor/blade-flags/language-vi.svg | 1 + public/vendor/blade-flags/language-xh.svg | 1 + public/vendor/blade-flags/language-xx.svg | 1 + public/vendor/blade-flags/language-yi.svg | 1 + public/vendor/blade-flags/language-yo.svg | 1 + public/vendor/blade-flags/language-yua.svg | 1 + public/vendor/blade-flags/language-zh-TW.svg | 1 + public/vendor/blade-flags/language-zh.svg | 1 + public/vendor/blade-flags/language-zu.svg | 1 + resources/css/app.css | 66 + resources/js/app.js | 0 .../views/components/action-message.blade.php | 14 + .../views/components/app-logo-icon.blade.php | 16 + resources/views/components/app-logo.blade.php | 7 + .../views/components/auth-header.blade.php | 9 + .../components/auth-session-status.blade.php | 9 + .../views/components/layouts/app.blade.php | 5 + .../components/layouts/app/header.blade.php | 137 + .../components/layouts/app/sidebar.blade.php | 182 + .../views/components/layouts/auth.blade.php | 3 + .../components/layouts/auth/card.blade.php | 26 + .../components/layouts/auth/simple.blade.php | 18 + .../components/layouts/auth/split.blade.php | 43 + .../components/placeholder-pattern.blade.php | 12 + .../components/settings/layout.blade.php | 20 + resources/views/dashboard.blade.php | 25 + .../views/flux/icon/book-open-text.blade.php | 47 + .../flux/icon/chevrons-up-down.blade.php | 43 + .../views/flux/icon/folder-git-2.blade.php | 45 + .../views/flux/icon/layout-grid.blade.php | 45 + resources/views/flux/navlist/group.blade.php | 51 + .../livewire/auth/confirm-password.blade.php | 58 + .../livewire/auth/forgot-password.blade.php | 49 + resources/views/livewire/auth/login.blade.php | 207 + .../views/livewire/auth/register.blade.php | 99 + .../livewire/auth/reset-password.blade.php | 115 + .../livewire/auth/verify-email.blade.php | 57 + .../views/livewire/country/chooser.blade.php | 35 + .../views/livewire/meetups/edit.blade.php | 284 + .../views/livewire/meetups/index.blade.php | 130 + .../views/livewire/meetups/map.blade.php | 92 + .../livewire/settings/appearance.blade.php | 19 + .../settings/delete-user-form.blade.php | 58 + .../livewire/settings/password.blade.php | 78 + .../views/livewire/settings/profile.blade.php | 114 + resources/views/livewire/welcome.blade.php | 78 + resources/views/partials/head.blade.php | 24 + .../views/partials/settings-heading.blade.php | 5 + routes/auth.php | 36 + routes/console.php | 8 + routes/web.php | 36 + storage/app/.gitignore | 4 + storage/app/private/.gitignore | 2 + storage/app/public/.gitignore | 2 + storage/framework/.gitignore | 9 + storage/framework/cache/.gitignore | 3 + storage/framework/cache/data/.gitignore | 2 + storage/framework/sessions/.gitignore | 2 + storage/framework/testing/.gitignore | 2 + storage/framework/views/.gitignore | 2 + storage/logs/.gitignore | 2 + tests/Feature/Auth/AuthenticationTest.php | 48 + tests/Feature/Auth/EmailVerificationTest.php | 47 + .../Feature/Auth/PasswordConfirmationTest.php | 38 + tests/Feature/Auth/PasswordResetTest.php | 66 + tests/Feature/Auth/RegistrationTest.php | 24 + tests/Feature/DashboardTest.php | 16 + tests/Feature/ExampleTest.php | 7 + .../Feature/Livewire/Country/ChooserTest.php | 9 + tests/Feature/Livewire/Meetup.indexTest.php | 9 + tests/Feature/Livewire/Meetups/EditTest.php | 9 + tests/Feature/Livewire/Meetups/MapTest.php | 9 + tests/Feature/Livewire/WelcomeTest.php | 9 + tests/Feature/Settings/PasswordUpdateTest.php | 39 + tests/Feature/Settings/ProfileUpdateTest.php | 75 + tests/Pest.php | 47 + tests/TestCase.php | 10 + tests/Unit/ExampleTest.php | 5 + vite.config.js | 18 + yarn.lock | 1085 ++ 678 files changed, 24872 insertions(+) create mode 100644 .editorconfig create mode 100644 .env.example create mode 100644 .gitattributes create mode 100644 .gitea/workflows/deploy.yaml create mode 100644 .gitignore create mode 100644 .junie/guidelines.md create mode 100644 README.md create mode 100644 app/Http/Controllers/Auth/VerifyEmailController.php create mode 100644 app/Http/Controllers/Controller.php create mode 100644 app/Livewire/Actions/Logout.php create mode 100644 app/Models/BitcoinEvent.php create mode 100644 app/Models/BookCase.php create mode 100644 app/Models/Category.php create mode 100644 app/Models/City.php create mode 100644 app/Models/Country.php create mode 100644 app/Models/Course.php create mode 100644 app/Models/CourseEvent.php create mode 100644 app/Models/EmailCampaign.php create mode 100644 app/Models/EmailTexts.php create mode 100644 app/Models/Episode.php create mode 100644 app/Models/Lecturer.php create mode 100644 app/Models/Library.php create mode 100644 app/Models/LibraryItem.php create mode 100644 app/Models/LoginKey.php create mode 100644 app/Models/Meetup.php create mode 100644 app/Models/MeetupEvent.php create mode 100644 app/Models/MeetupUser.php create mode 100644 app/Models/Membership.php create mode 100644 app/Models/OrangePill.php create mode 100644 app/Models/Participant.php create mode 100644 app/Models/Podcast.php create mode 100644 app/Models/ProjectProposal.php create mode 100644 app/Models/Registration.php create mode 100644 app/Models/Tag.php create mode 100644 app/Models/Team.php create mode 100644 app/Models/TeamInvitation.php create mode 100644 app/Models/TwitterAccount.php create mode 100644 app/Models/User.php create mode 100644 app/Models/Venue.php create mode 100644 app/Models/Vote.php create mode 100644 app/Providers/AppServiceProvider.php create mode 100644 app/Providers/VoltServiceProvider.php create mode 100644 app/helpers.php create mode 100755 artisan create mode 100644 bootstrap/app.php create mode 100644 bootstrap/cache/.gitignore create mode 100644 bootstrap/providers.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/app.php create mode 100644 config/auth.php create mode 100644 config/blade-flags.php create mode 100644 config/cache.php create mode 100644 config/ciphersweet.php create mode 100644 config/countries.php create mode 100644 config/database.php create mode 100644 config/filesystems.php create mode 100644 config/logging.php create mode 100644 config/mail.php create mode 100644 config/permission.php create mode 100644 config/queue.php create mode 100644 config/services.php create mode 100644 config/session.php create mode 100644 database/.gitignore create mode 100644 database/factories/UserFactory.php create mode 100644 database/migrations/2014_10_12_000000_create_users_table.php create mode 100644 database/migrations/2014_10_12_100000_create_password_resets_table.php create mode 100644 database/migrations/2019_08_19_000000_create_failed_jobs_table.php create mode 100644 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php create mode 100644 database/migrations/2020_05_21_300000_create_permission_tables.php create mode 100644 database/migrations/2022_12_01_145948_create_countries_table.php create mode 100644 database/migrations/2022_12_01_145949_create_cities_table.php create mode 100644 database/migrations/2022_12_01_145950_create_lecturers_table.php create mode 100644 database/migrations/2022_12_01_145951_create_participants_table.php create mode 100644 database/migrations/2022_12_01_145952_create_categories_table.php create mode 100644 database/migrations/2022_12_01_145953_create_courses_table.php create mode 100644 database/migrations/2022_12_01_145954_create_venues_table.php create mode 100644 database/migrations/2022_12_01_145955_create_course_events_table.php create mode 100644 database/migrations/2022_12_01_145956_create_registrations_table.php create mode 100644 database/migrations/2022_12_01_145957_create_category_course_table.php create mode 100644 database/migrations/2022_12_01_180529_create_login_keys_table.php create mode 100644 database/migrations/2022_12_01_210526_add_geo_fields_to_cities_table.php create mode 100644 database/migrations/2022_12_01_214707_create_media_table.php create mode 100644 database/migrations/2022_12_02_133043_add_timezone_field_to_users_table.php create mode 100644 database/migrations/2022_12_02_162000_create_trix_tables.php create mode 100644 database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php create mode 100644 database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php create mode 100644 database/migrations/2022_12_03_183452_add_link_field_to_course_events_table.php create mode 100644 database/migrations/2022_12_04_154911_create_podcasts_table.php create mode 100644 database/migrations/2022_12_04_154912_create_episodes_table.php create mode 100644 database/migrations/2022_12_04_170737_create_tag_tables.php create mode 100644 database/migrations/2022_12_05_160932_create_libraries_table.php create mode 100644 database/migrations/2022_12_05_160933_create_library_items_table.php create mode 100644 database/migrations/2022_12_05_175957_create_library_library_item_table.php create mode 100644 database/migrations/2022_12_06_222651_create_book_cases_table.php create mode 100644 database/migrations/2022_12_07_095709_create_orange_pills_table.php create mode 100644 database/migrations/2022_12_12_155928_create_meetups_table.php create mode 100644 database/migrations/2022_12_12_155929_create_meetup_events_table.php create mode 100644 database/migrations/2022_12_12_171115_create_bitcoin_events_table.php create mode 100644 database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php create mode 100644 database/migrations/2022_12_15_144111_add_show_worldwide_field_to_bitcoin_events_table.php create mode 100644 database/migrations/2022_12_15_145559_create_statuses_table.php create mode 100644 database/migrations/2022_12_15_152415_create_seo_table.php create mode 100644 database/migrations/2022_12_17_181802_add_english_name_to_countries_table.php create mode 100644 database/migrations/2022_12_17_183136_add_coordinates_to_countries_table.php create mode 100644 database/migrations/2022_12_18_122532_add_current_language_to_users_table.php create mode 100644 database/migrations/2022_12_18_201051_add_indexes_to_tables.php create mode 100644 database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php create mode 100644 database/migrations/2023_01_14_185805_create_gamify_tables.php create mode 100644 database/migrations/2023_01_14_191356_add_slug_column_to_meetups_table.php create mode 100644 database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php create mode 100644 database/migrations/2023_01_15_142052_add_landing_page_fields_to_meetups_table.php create mode 100644 database/migrations/2023_01_15_191946_create_twitter_accounts_table.php create mode 100644 database/migrations/2023_01_15_203928_add_refresh_token_field_to_twitter_accounts_table.php create mode 100644 database/migrations/2023_01_16_143622_add_links_to_meetups_table.php create mode 100644 database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php create mode 100644 database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php create mode 100644 database/migrations/2023_01_18_142300_add_ln_addresses_to_users_table.php create mode 100644 database/migrations/2023_01_18_165507_add_social_links_to_lecturers_table.php create mode 100644 database/migrations/2023_01_18_172630_update_ln_address_on_users_table.php create mode 100644 database/migrations/2023_01_19_133503_add_parent_id_field_to_libraries_table.php create mode 100644 database/migrations/2023_01_20_121955_add_slug_field_to_library_items_table.php create mode 100644 database/migrations/2023_01_20_125736_add_meta_fields_to_library_items_table.php create mode 100644 database/migrations/2023_01_20_170112_add_matrix_group_field_to_meetups_table.php create mode 100644 database/migrations/2023_01_24_135922_add_ln_addresses_to_lecturers_table.php create mode 100644 database/migrations/2023_01_28_115414_add_osm_fields_to_cities_table.php create mode 100644 database/migrations/2023_02_03_151808_create_blind_indexes_table.php create mode 100644 database/migrations/2023_02_03_152818_prepare_cyphersweet_on_models.php create mode 100644 database/migrations/2023_02_06_162858_add_attend_fields_to_meetup_events_table.php create mode 100644 database/migrations/2023_02_08_132434_add_community_field_to_meetups_table.php create mode 100644 database/migrations/2023_02_09_205710_add_approved_field_to_library_items_table.php create mode 100644 database/migrations/2023_02_11_151546_add_news_flag_to_library_items_table.php create mode 100644 database/migrations/2023_02_11_154505_add_tweet_field_to_library_items_table.php create mode 100644 database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php create mode 100644 database/migrations/2023_02_14_133446_add_nostr_field_meetups_table.php create mode 100644 database/migrations/2023_02_16_141618_add_nostr_field_to_lecturers_table.php create mode 100644 database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php create mode 100644 database/migrations/2023_02_19_000000_rename_password_resets_table.php create mode 100644 database/migrations/2023_02_23_195737_add_nostr_field_to_library_items_table.php create mode 100644 database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php create mode 100644 database/migrations/2023_02_24_104336_add_nostr_fields_to_users_table.php create mode 100644 database/migrations/2023_02_25_180846_add_change_field_to_users_table.php create mode 100644 database/migrations/2023_02_25_181435_add_change_time_field_to_users_table.php create mode 100644 database/migrations/2023_03_10_190300_create_project_proposals_table.php create mode 100644 database/migrations/2023_03_10_190301_create_votes_table.php create mode 100644 database/migrations/2023_03_10_201640_add_created_by_field_to_project_proposals_and_votes_table.php create mode 100644 database/migrations/2023_03_10_202305_alter_support_in_sats_field_on_project_proposals_table.php create mode 100644 database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php create mode 100644 database/migrations/2023_03_13_130046_add_lnbits_field_to_users_table.php create mode 100644 database/migrations/2023_03_13_133526_add_value_to_be_paid_field_to_library_items_table.php create mode 100644 database/migrations/2023_03_13_134313_add_sats_field_to_library_items_table.php create mode 100644 database/migrations/2023_03_13_145545_create_library_item_user_pivot_table.php create mode 100644 database/migrations/2023_03_14_105504_alter_lnbits_field_on_users_table.php create mode 100644 database/migrations/2023_03_17_103513_add_paynym_field_to_users_table.php create mode 100644 database/migrations/2023_03_17_104340_add_paynym_field_to_lecturers_table.php create mode 100644 database/migrations/2023_08_07_134026_add_visible_on_map_field_to_meetups_table.php create mode 100644 database/migrations/2023_10_30_102650_add_simplex_field_to_meetups_table.php create mode 100644 database/migrations/2023_11_11_095930_create_email_campaigns_table.php create mode 100644 database/migrations/2023_11_11_100150_create_email_texts_table.php create mode 100644 database/migrations/2023_11_11_101728_add_fields_to_email_campaigns_table.php create mode 100644 database/migrations/2023_12_08_201800_create_features_table.php create mode 100644 database/migrations/2023_17_01_175957_create_meetup_user_table.php create mode 100644 database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php create mode 100644 database/migrations/2025_07_11_165453_create_jobs_table.php create mode 100644 database/seeders/DatabaseSeeder.php create mode 100644 docker-compose.yml create mode 100644 lang/de.json create mode 100644 lang/de/auth.php create mode 100644 lang/de/countries.php create mode 100644 lang/de/pagination.php create mode 100644 lang/de/passwords.php create mode 100644 lang/de/validation.php create mode 100644 lang/en.json create mode 100644 lang/en/auth.php create mode 100644 lang/en/pagination.php create mode 100644 lang/en/passwords.php create mode 100644 lang/en/validation.php create mode 100644 package.json create mode 100644 phpunit.xml create mode 100644 public/.htaccess create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/favicon.svg create mode 100644 public/img/btc.png create mode 100644 public/img/btc_marker.png create mode 100644 public/img/einundzwanzig-square.svg create mode 100644 public/index.php create mode 100644 public/robots.txt create mode 100644 public/site.webmanifest create mode 100644 public/vendor/blade-flags/country-ad.svg create mode 100644 public/vendor/blade-flags/country-ae.svg create mode 100644 public/vendor/blade-flags/country-af.svg create mode 100644 public/vendor/blade-flags/country-ag.svg create mode 100644 public/vendor/blade-flags/country-ai.svg create mode 100644 public/vendor/blade-flags/country-al.svg create mode 100644 public/vendor/blade-flags/country-am.svg create mode 100644 public/vendor/blade-flags/country-ao.svg create mode 100644 public/vendor/blade-flags/country-aq.svg create mode 100644 public/vendor/blade-flags/country-ar.svg create mode 100644 public/vendor/blade-flags/country-as.svg create mode 100644 public/vendor/blade-flags/country-at.svg create mode 100644 public/vendor/blade-flags/country-au.svg create mode 100644 public/vendor/blade-flags/country-aw.svg create mode 100644 public/vendor/blade-flags/country-ax.svg create mode 100644 public/vendor/blade-flags/country-az.svg create mode 100644 public/vendor/blade-flags/country-ba.svg create mode 100644 public/vendor/blade-flags/country-bb.svg create mode 100644 public/vendor/blade-flags/country-bd.svg create mode 100644 public/vendor/blade-flags/country-be.svg create mode 100644 public/vendor/blade-flags/country-bf.svg create mode 100644 public/vendor/blade-flags/country-bg.svg create mode 100644 public/vendor/blade-flags/country-bh.svg create mode 100644 public/vendor/blade-flags/country-bi.svg create mode 100644 public/vendor/blade-flags/country-bj.svg create mode 100644 public/vendor/blade-flags/country-bl.svg create mode 100644 public/vendor/blade-flags/country-bm.svg create mode 100644 public/vendor/blade-flags/country-bn.svg create mode 100644 public/vendor/blade-flags/country-bo.svg create mode 100644 public/vendor/blade-flags/country-bq.svg create mode 100644 public/vendor/blade-flags/country-br.svg create mode 100644 public/vendor/blade-flags/country-bs.svg create mode 100644 public/vendor/blade-flags/country-bt.svg create mode 100644 public/vendor/blade-flags/country-bv.svg create mode 100644 public/vendor/blade-flags/country-bw.svg create mode 100644 public/vendor/blade-flags/country-by.svg create mode 100644 public/vendor/blade-flags/country-bz.svg create mode 100644 public/vendor/blade-flags/country-ca.svg create mode 100644 public/vendor/blade-flags/country-cc.svg create mode 100644 public/vendor/blade-flags/country-cd.svg create mode 100644 public/vendor/blade-flags/country-cf.svg create mode 100644 public/vendor/blade-flags/country-cg.svg create mode 100644 public/vendor/blade-flags/country-ch.svg create mode 100644 public/vendor/blade-flags/country-ci.svg create mode 100644 public/vendor/blade-flags/country-ck.svg create mode 100644 public/vendor/blade-flags/country-cl.svg create mode 100644 public/vendor/blade-flags/country-cm.svg create mode 100644 public/vendor/blade-flags/country-cn.svg create mode 100644 public/vendor/blade-flags/country-co.svg create mode 100644 public/vendor/blade-flags/country-cp.svg create mode 100644 public/vendor/blade-flags/country-cr.svg create mode 100644 public/vendor/blade-flags/country-cu.svg create mode 100644 public/vendor/blade-flags/country-cv.svg create mode 100644 public/vendor/blade-flags/country-cw.svg create mode 100644 public/vendor/blade-flags/country-cx.svg create mode 100644 public/vendor/blade-flags/country-cy.svg create mode 100644 public/vendor/blade-flags/country-cz.svg create mode 100644 public/vendor/blade-flags/country-de.svg create mode 100644 public/vendor/blade-flags/country-dg.svg create mode 100644 public/vendor/blade-flags/country-dj.svg create mode 100644 public/vendor/blade-flags/country-dk.svg create mode 100644 public/vendor/blade-flags/country-dm.svg create mode 100644 public/vendor/blade-flags/country-do.svg create mode 100644 public/vendor/blade-flags/country-dz.svg create mode 100644 public/vendor/blade-flags/country-ea.svg create mode 100644 public/vendor/blade-flags/country-ec.svg create mode 100644 public/vendor/blade-flags/country-ee.svg create mode 100644 public/vendor/blade-flags/country-eg.svg create mode 100644 public/vendor/blade-flags/country-eh.svg create mode 100644 public/vendor/blade-flags/country-er.svg create mode 100644 public/vendor/blade-flags/country-es.svg create mode 100644 public/vendor/blade-flags/country-et.svg create mode 100644 public/vendor/blade-flags/country-eu.svg create mode 100644 public/vendor/blade-flags/country-fi.svg create mode 100644 public/vendor/blade-flags/country-fj.svg create mode 100644 public/vendor/blade-flags/country-fk.svg create mode 100644 public/vendor/blade-flags/country-fm.svg create mode 100644 public/vendor/blade-flags/country-fo.svg create mode 100644 public/vendor/blade-flags/country-fr.svg create mode 100644 public/vendor/blade-flags/country-ga.svg create mode 100644 public/vendor/blade-flags/country-gb-eng.svg create mode 100644 public/vendor/blade-flags/country-gb-nir.svg create mode 100644 public/vendor/blade-flags/country-gb-sct.svg create mode 100644 public/vendor/blade-flags/country-gb-wls.svg create mode 100644 public/vendor/blade-flags/country-gb.svg create mode 100644 public/vendor/blade-flags/country-gd.svg create mode 100644 public/vendor/blade-flags/country-ge.svg create mode 100644 public/vendor/blade-flags/country-gf.svg create mode 100644 public/vendor/blade-flags/country-gg.svg create mode 100644 public/vendor/blade-flags/country-gh.svg create mode 100644 public/vendor/blade-flags/country-gi.svg create mode 100644 public/vendor/blade-flags/country-gl.svg create mode 100644 public/vendor/blade-flags/country-gm.svg create mode 100644 public/vendor/blade-flags/country-gn.svg create mode 100644 public/vendor/blade-flags/country-gp.svg create mode 100644 public/vendor/blade-flags/country-gq.svg create mode 100644 public/vendor/blade-flags/country-gr.svg create mode 100644 public/vendor/blade-flags/country-gs.svg create mode 100644 public/vendor/blade-flags/country-gt.svg create mode 100644 public/vendor/blade-flags/country-gu.svg create mode 100644 public/vendor/blade-flags/country-gw.svg create mode 100644 public/vendor/blade-flags/country-gy.svg create mode 100644 public/vendor/blade-flags/country-hk.svg create mode 100644 public/vendor/blade-flags/country-hm.svg create mode 100644 public/vendor/blade-flags/country-hn.svg create mode 100644 public/vendor/blade-flags/country-hr.svg create mode 100644 public/vendor/blade-flags/country-ht.svg create mode 100644 public/vendor/blade-flags/country-hu.svg create mode 100644 public/vendor/blade-flags/country-ic.svg create mode 100644 public/vendor/blade-flags/country-id.svg create mode 100644 public/vendor/blade-flags/country-ie.svg create mode 100644 public/vendor/blade-flags/country-il.svg create mode 100644 public/vendor/blade-flags/country-im.svg create mode 100644 public/vendor/blade-flags/country-in.svg create mode 100644 public/vendor/blade-flags/country-io.svg create mode 100644 public/vendor/blade-flags/country-iq.svg create mode 100644 public/vendor/blade-flags/country-ir.svg create mode 100644 public/vendor/blade-flags/country-is.svg create mode 100644 public/vendor/blade-flags/country-it.svg create mode 100644 public/vendor/blade-flags/country-je.svg create mode 100644 public/vendor/blade-flags/country-jm.svg create mode 100644 public/vendor/blade-flags/country-jo.svg create mode 100644 public/vendor/blade-flags/country-jp.svg create mode 100644 public/vendor/blade-flags/country-ke.svg create mode 100644 public/vendor/blade-flags/country-kg.svg create mode 100644 public/vendor/blade-flags/country-kh.svg create mode 100644 public/vendor/blade-flags/country-ki.svg create mode 100644 public/vendor/blade-flags/country-km.svg create mode 100644 public/vendor/blade-flags/country-kn.svg create mode 100644 public/vendor/blade-flags/country-kp.svg create mode 100644 public/vendor/blade-flags/country-kr.svg create mode 100644 public/vendor/blade-flags/country-kw.svg create mode 100644 public/vendor/blade-flags/country-ky.svg create mode 100644 public/vendor/blade-flags/country-kz.svg create mode 100644 public/vendor/blade-flags/country-la.svg create mode 100644 public/vendor/blade-flags/country-lb.svg create mode 100644 public/vendor/blade-flags/country-lc.svg create mode 100644 public/vendor/blade-flags/country-li.svg create mode 100644 public/vendor/blade-flags/country-lk.svg create mode 100644 public/vendor/blade-flags/country-lr.svg create mode 100644 public/vendor/blade-flags/country-ls.svg create mode 100644 public/vendor/blade-flags/country-lt.svg create mode 100644 public/vendor/blade-flags/country-lu.svg create mode 100644 public/vendor/blade-flags/country-lv.svg create mode 100644 public/vendor/blade-flags/country-ly.svg create mode 100644 public/vendor/blade-flags/country-ma.svg create mode 100644 public/vendor/blade-flags/country-mc.svg create mode 100644 public/vendor/blade-flags/country-md.svg create mode 100644 public/vendor/blade-flags/country-me.svg create mode 100644 public/vendor/blade-flags/country-mf.svg create mode 100644 public/vendor/blade-flags/country-mg.svg create mode 100644 public/vendor/blade-flags/country-mh.svg create mode 100644 public/vendor/blade-flags/country-mk.svg create mode 100644 public/vendor/blade-flags/country-ml.svg create mode 100644 public/vendor/blade-flags/country-mm.svg create mode 100644 public/vendor/blade-flags/country-mn.svg create mode 100644 public/vendor/blade-flags/country-mo.svg create mode 100644 public/vendor/blade-flags/country-mp.svg create mode 100644 public/vendor/blade-flags/country-mq.svg create mode 100644 public/vendor/blade-flags/country-mr.svg create mode 100644 public/vendor/blade-flags/country-ms.svg create mode 100644 public/vendor/blade-flags/country-mt.svg create mode 100644 public/vendor/blade-flags/country-mu.svg create mode 100644 public/vendor/blade-flags/country-mv.svg create mode 100644 public/vendor/blade-flags/country-mw.svg create mode 100644 public/vendor/blade-flags/country-mx.svg create mode 100644 public/vendor/blade-flags/country-my.svg create mode 100644 public/vendor/blade-flags/country-mz.svg create mode 100644 public/vendor/blade-flags/country-na.svg create mode 100644 public/vendor/blade-flags/country-nc.svg create mode 100644 public/vendor/blade-flags/country-ne.svg create mode 100644 public/vendor/blade-flags/country-nf.svg create mode 100644 public/vendor/blade-flags/country-ng.svg create mode 100644 public/vendor/blade-flags/country-ni.svg create mode 100644 public/vendor/blade-flags/country-nl.svg create mode 100644 public/vendor/blade-flags/country-no.svg create mode 100644 public/vendor/blade-flags/country-np.svg create mode 100644 public/vendor/blade-flags/country-nr.svg create mode 100644 public/vendor/blade-flags/country-nu.svg create mode 100644 public/vendor/blade-flags/country-nz.svg create mode 100644 public/vendor/blade-flags/country-om.svg create mode 100644 public/vendor/blade-flags/country-pa.svg create mode 100644 public/vendor/blade-flags/country-pe.svg create mode 100644 public/vendor/blade-flags/country-pf.svg create mode 100644 public/vendor/blade-flags/country-pg.svg create mode 100644 public/vendor/blade-flags/country-ph.svg create mode 100644 public/vendor/blade-flags/country-pk.svg create mode 100644 public/vendor/blade-flags/country-pl.svg create mode 100644 public/vendor/blade-flags/country-pm.svg create mode 100644 public/vendor/blade-flags/country-pn.svg create mode 100644 public/vendor/blade-flags/country-pr.svg create mode 100644 public/vendor/blade-flags/country-ps.svg create mode 100644 public/vendor/blade-flags/country-pt.svg create mode 100644 public/vendor/blade-flags/country-pw.svg create mode 100644 public/vendor/blade-flags/country-py.svg create mode 100644 public/vendor/blade-flags/country-qa.svg create mode 100644 public/vendor/blade-flags/country-re.svg create mode 100644 public/vendor/blade-flags/country-ro.svg create mode 100644 public/vendor/blade-flags/country-rs.svg create mode 100644 public/vendor/blade-flags/country-ru.svg create mode 100644 public/vendor/blade-flags/country-rw.svg create mode 100644 public/vendor/blade-flags/country-sa.svg create mode 100644 public/vendor/blade-flags/country-sb.svg create mode 100644 public/vendor/blade-flags/country-sc.svg create mode 100644 public/vendor/blade-flags/country-sd.svg create mode 100644 public/vendor/blade-flags/country-se.svg create mode 100644 public/vendor/blade-flags/country-sg.svg create mode 100644 public/vendor/blade-flags/country-sh-ac.svg create mode 100644 public/vendor/blade-flags/country-sh-ta.svg create mode 100644 public/vendor/blade-flags/country-sh.svg create mode 100644 public/vendor/blade-flags/country-si.svg create mode 100644 public/vendor/blade-flags/country-sj.svg create mode 100644 public/vendor/blade-flags/country-sk.svg create mode 100644 public/vendor/blade-flags/country-sl.svg create mode 100644 public/vendor/blade-flags/country-sm.svg create mode 100644 public/vendor/blade-flags/country-sn.svg create mode 100644 public/vendor/blade-flags/country-so.svg create mode 100644 public/vendor/blade-flags/country-sr.svg create mode 100644 public/vendor/blade-flags/country-ss.svg create mode 100644 public/vendor/blade-flags/country-st.svg create mode 100644 public/vendor/blade-flags/country-sv.svg create mode 100644 public/vendor/blade-flags/country-sx.svg create mode 100644 public/vendor/blade-flags/country-sy.svg create mode 100644 public/vendor/blade-flags/country-sz.svg create mode 100644 public/vendor/blade-flags/country-tc.svg create mode 100644 public/vendor/blade-flags/country-td.svg create mode 100644 public/vendor/blade-flags/country-tf.svg create mode 100644 public/vendor/blade-flags/country-tg.svg create mode 100644 public/vendor/blade-flags/country-th.svg create mode 100644 public/vendor/blade-flags/country-tj.svg create mode 100644 public/vendor/blade-flags/country-tk.svg create mode 100644 public/vendor/blade-flags/country-tl.svg create mode 100644 public/vendor/blade-flags/country-tm.svg create mode 100644 public/vendor/blade-flags/country-tn.svg create mode 100644 public/vendor/blade-flags/country-to.svg create mode 100644 public/vendor/blade-flags/country-tr.svg create mode 100644 public/vendor/blade-flags/country-tt.svg create mode 100644 public/vendor/blade-flags/country-tv.svg create mode 100644 public/vendor/blade-flags/country-tw.svg create mode 100644 public/vendor/blade-flags/country-tz.svg create mode 100644 public/vendor/blade-flags/country-ua.svg create mode 100644 public/vendor/blade-flags/country-ug.svg create mode 100644 public/vendor/blade-flags/country-uk.svg create mode 100644 public/vendor/blade-flags/country-um.svg create mode 100644 public/vendor/blade-flags/country-united_nations.svg create mode 100644 public/vendor/blade-flags/country-us.svg create mode 100644 public/vendor/blade-flags/country-uy.svg create mode 100644 public/vendor/blade-flags/country-uz.svg create mode 100644 public/vendor/blade-flags/country-va.svg create mode 100644 public/vendor/blade-flags/country-vc.svg create mode 100644 public/vendor/blade-flags/country-ve.svg create mode 100644 public/vendor/blade-flags/country-vg.svg create mode 100644 public/vendor/blade-flags/country-vi.svg create mode 100644 public/vendor/blade-flags/country-vn.svg create mode 100644 public/vendor/blade-flags/country-vu.svg create mode 100644 public/vendor/blade-flags/country-wf.svg create mode 100644 public/vendor/blade-flags/country-ws.svg create mode 100644 public/vendor/blade-flags/country-xk.svg create mode 100644 public/vendor/blade-flags/country-xx.svg create mode 100644 public/vendor/blade-flags/country-ye.svg create mode 100644 public/vendor/blade-flags/country-yt.svg create mode 100644 public/vendor/blade-flags/country-yu.svg create mode 100644 public/vendor/blade-flags/country-za.svg create mode 100644 public/vendor/blade-flags/country-zm.svg create mode 100644 public/vendor/blade-flags/country-zw.svg create mode 100644 public/vendor/blade-flags/language-af.svg create mode 100644 public/vendor/blade-flags/language-ak.svg create mode 100644 public/vendor/blade-flags/language-am.svg create mode 100644 public/vendor/blade-flags/language-ar-iq.svg create mode 100644 public/vendor/blade-flags/language-ar.svg create mode 100644 public/vendor/blade-flags/language-as.svg create mode 100644 public/vendor/blade-flags/language-ay.svg create mode 100644 public/vendor/blade-flags/language-az.svg create mode 100644 public/vendor/blade-flags/language-be.svg create mode 100644 public/vendor/blade-flags/language-bg.svg create mode 100644 public/vendor/blade-flags/language-bho.svg create mode 100644 public/vendor/blade-flags/language-bi.svg create mode 100644 public/vendor/blade-flags/language-bm.svg create mode 100644 public/vendor/blade-flags/language-bn.svg create mode 100644 public/vendor/blade-flags/language-bs.svg create mode 100644 public/vendor/blade-flags/language-ca.svg create mode 100644 public/vendor/blade-flags/language-ceb.svg create mode 100644 public/vendor/blade-flags/language-ch.svg create mode 100644 public/vendor/blade-flags/language-chm.svg create mode 100644 public/vendor/blade-flags/language-co.svg create mode 100644 public/vendor/blade-flags/language-cs.svg create mode 100644 public/vendor/blade-flags/language-cy.svg create mode 100644 public/vendor/blade-flags/language-da.svg create mode 100644 public/vendor/blade-flags/language-de.svg create mode 100644 public/vendor/blade-flags/language-dv.svg create mode 100644 public/vendor/blade-flags/language-dz.svg create mode 100644 public/vendor/blade-flags/language-el.svg create mode 100644 public/vendor/blade-flags/language-en-au.svg create mode 100644 public/vendor/blade-flags/language-en-ca.svg create mode 100644 public/vendor/blade-flags/language-en-in.svg create mode 100644 public/vendor/blade-flags/language-en-ng.svg create mode 100644 public/vendor/blade-flags/language-en-nz.svg create mode 100644 public/vendor/blade-flags/language-en-us.svg create mode 100644 public/vendor/blade-flags/language-en-za.svg create mode 100644 public/vendor/blade-flags/language-en.svg create mode 100644 public/vendor/blade-flags/language-es.svg create mode 100644 public/vendor/blade-flags/language-et.svg create mode 100644 public/vendor/blade-flags/language-eu.svg create mode 100644 public/vendor/blade-flags/language-fa.svg create mode 100644 public/vendor/blade-flags/language-fi.svg create mode 100644 public/vendor/blade-flags/language-fil.svg create mode 100644 public/vendor/blade-flags/language-fj.svg create mode 100644 public/vendor/blade-flags/language-fo.svg create mode 100644 public/vendor/blade-flags/language-fr.svg create mode 100644 public/vendor/blade-flags/language-ga.svg create mode 100644 public/vendor/blade-flags/language-gl.svg create mode 100644 public/vendor/blade-flags/language-gn.svg create mode 100644 public/vendor/blade-flags/language-gu.svg create mode 100644 public/vendor/blade-flags/language-gv.svg create mode 100644 public/vendor/blade-flags/language-ha.svg create mode 100644 public/vendor/blade-flags/language-haw.svg create mode 100644 public/vendor/blade-flags/language-he.svg create mode 100644 public/vendor/blade-flags/language-hi.svg create mode 100644 public/vendor/blade-flags/language-ho.svg create mode 100644 public/vendor/blade-flags/language-hr.svg create mode 100644 public/vendor/blade-flags/language-ht.svg create mode 100644 public/vendor/blade-flags/language-hu.svg create mode 100644 public/vendor/blade-flags/language-hy.svg create mode 100644 public/vendor/blade-flags/language-id.svg create mode 100644 public/vendor/blade-flags/language-ig.svg create mode 100644 public/vendor/blade-flags/language-ilo.svg create mode 100644 public/vendor/blade-flags/language-is.svg create mode 100644 public/vendor/blade-flags/language-it.svg create mode 100644 public/vendor/blade-flags/language-ja.svg create mode 100644 public/vendor/blade-flags/language-jv.svg create mode 100644 public/vendor/blade-flags/language-ka.svg create mode 100644 public/vendor/blade-flags/language-kk.svg create mode 100644 public/vendor/blade-flags/language-kl.svg create mode 100644 public/vendor/blade-flags/language-km.svg create mode 100644 public/vendor/blade-flags/language-kn.svg create mode 100644 public/vendor/blade-flags/language-ko.svg create mode 100644 public/vendor/blade-flags/language-kri.svg create mode 100644 public/vendor/blade-flags/language-ku.svg create mode 100644 public/vendor/blade-flags/language-ky.svg create mode 100644 public/vendor/blade-flags/language-la.svg create mode 100644 public/vendor/blade-flags/language-lb.svg create mode 100644 public/vendor/blade-flags/language-lg.svg create mode 100644 public/vendor/blade-flags/language-ln.svg create mode 100644 public/vendor/blade-flags/language-lo.svg create mode 100644 public/vendor/blade-flags/language-lt.svg create mode 100644 public/vendor/blade-flags/language-lu.svg create mode 100644 public/vendor/blade-flags/language-lv.svg create mode 100644 public/vendor/blade-flags/language-mg.svg create mode 100644 public/vendor/blade-flags/language-mh.svg create mode 100644 public/vendor/blade-flags/language-mi.svg create mode 100644 public/vendor/blade-flags/language-mk.svg create mode 100644 public/vendor/blade-flags/language-ml.svg create mode 100644 public/vendor/blade-flags/language-mn.svg create mode 100644 public/vendor/blade-flags/language-mr.svg create mode 100644 public/vendor/blade-flags/language-mrj.svg create mode 100644 public/vendor/blade-flags/language-ms.svg create mode 100644 public/vendor/blade-flags/language-mt.svg create mode 100644 public/vendor/blade-flags/language-my.svg create mode 100644 public/vendor/blade-flags/language-na.svg create mode 100644 public/vendor/blade-flags/language-nb.svg create mode 100644 public/vendor/blade-flags/language-nd.svg create mode 100644 public/vendor/blade-flags/language-ne.svg create mode 100644 public/vendor/blade-flags/language-nl.svg create mode 100644 public/vendor/blade-flags/language-nn.svg create mode 100644 public/vendor/blade-flags/language-no.svg create mode 100644 public/vendor/blade-flags/language-nr.svg create mode 100644 public/vendor/blade-flags/language-ny.svg create mode 100644 public/vendor/blade-flags/language-pa.svg create mode 100644 public/vendor/blade-flags/language-pap.svg create mode 100644 public/vendor/blade-flags/language-pl.svg create mode 100644 public/vendor/blade-flags/language-ps.svg create mode 100644 public/vendor/blade-flags/language-pt-br.svg create mode 100644 public/vendor/blade-flags/language-pt.svg create mode 100644 public/vendor/blade-flags/language-rn.svg create mode 100644 public/vendor/blade-flags/language-ro.svg create mode 100644 public/vendor/blade-flags/language-ru.svg create mode 100644 public/vendor/blade-flags/language-rw.svg create mode 100644 public/vendor/blade-flags/language-sd.svg create mode 100644 public/vendor/blade-flags/language-sg.svg create mode 100644 public/vendor/blade-flags/language-si.svg create mode 100644 public/vendor/blade-flags/language-sk.svg create mode 100644 public/vendor/blade-flags/language-sl.svg create mode 100644 public/vendor/blade-flags/language-sm.svg create mode 100644 public/vendor/blade-flags/language-sn.svg create mode 100644 public/vendor/blade-flags/language-so.svg create mode 100644 public/vendor/blade-flags/language-sq.svg create mode 100644 public/vendor/blade-flags/language-sr.svg create mode 100644 public/vendor/blade-flags/language-ss.svg create mode 100644 public/vendor/blade-flags/language-st.svg create mode 100644 public/vendor/blade-flags/language-su.svg create mode 100644 public/vendor/blade-flags/language-sv.svg create mode 100644 public/vendor/blade-flags/language-sw.svg create mode 100644 public/vendor/blade-flags/language-ta.svg create mode 100644 public/vendor/blade-flags/language-te.svg create mode 100644 public/vendor/blade-flags/language-tg.svg create mode 100644 public/vendor/blade-flags/language-th.svg create mode 100644 public/vendor/blade-flags/language-tk.svg create mode 100644 public/vendor/blade-flags/language-tl.svg create mode 100644 public/vendor/blade-flags/language-tn.svg create mode 100644 public/vendor/blade-flags/language-to.svg create mode 100644 public/vendor/blade-flags/language-tr.svg create mode 100644 public/vendor/blade-flags/language-ty.svg create mode 100644 public/vendor/blade-flags/language-uk.svg create mode 100644 public/vendor/blade-flags/language-ur.svg create mode 100644 public/vendor/blade-flags/language-uz.svg create mode 100644 public/vendor/blade-flags/language-vi.svg create mode 100644 public/vendor/blade-flags/language-xh.svg create mode 100644 public/vendor/blade-flags/language-xx.svg create mode 100644 public/vendor/blade-flags/language-yi.svg create mode 100644 public/vendor/blade-flags/language-yo.svg create mode 100644 public/vendor/blade-flags/language-yua.svg create mode 100644 public/vendor/blade-flags/language-zh-TW.svg create mode 100644 public/vendor/blade-flags/language-zh.svg create mode 100644 public/vendor/blade-flags/language-zu.svg create mode 100644 resources/css/app.css create mode 100644 resources/js/app.js create mode 100644 resources/views/components/action-message.blade.php create mode 100644 resources/views/components/app-logo-icon.blade.php create mode 100644 resources/views/components/app-logo.blade.php create mode 100644 resources/views/components/auth-header.blade.php create mode 100644 resources/views/components/auth-session-status.blade.php create mode 100644 resources/views/components/layouts/app.blade.php create mode 100644 resources/views/components/layouts/app/header.blade.php create mode 100644 resources/views/components/layouts/app/sidebar.blade.php create mode 100644 resources/views/components/layouts/auth.blade.php create mode 100644 resources/views/components/layouts/auth/card.blade.php create mode 100644 resources/views/components/layouts/auth/simple.blade.php create mode 100644 resources/views/components/layouts/auth/split.blade.php create mode 100644 resources/views/components/placeholder-pattern.blade.php create mode 100644 resources/views/components/settings/layout.blade.php create mode 100644 resources/views/dashboard.blade.php create mode 100644 resources/views/flux/icon/book-open-text.blade.php create mode 100644 resources/views/flux/icon/chevrons-up-down.blade.php create mode 100644 resources/views/flux/icon/folder-git-2.blade.php create mode 100644 resources/views/flux/icon/layout-grid.blade.php create mode 100644 resources/views/flux/navlist/group.blade.php create mode 100644 resources/views/livewire/auth/confirm-password.blade.php create mode 100644 resources/views/livewire/auth/forgot-password.blade.php create mode 100644 resources/views/livewire/auth/login.blade.php create mode 100644 resources/views/livewire/auth/register.blade.php create mode 100644 resources/views/livewire/auth/reset-password.blade.php create mode 100644 resources/views/livewire/auth/verify-email.blade.php create mode 100644 resources/views/livewire/country/chooser.blade.php create mode 100644 resources/views/livewire/meetups/edit.blade.php create mode 100644 resources/views/livewire/meetups/index.blade.php create mode 100644 resources/views/livewire/meetups/map.blade.php create mode 100644 resources/views/livewire/settings/appearance.blade.php create mode 100644 resources/views/livewire/settings/delete-user-form.blade.php create mode 100644 resources/views/livewire/settings/password.blade.php create mode 100644 resources/views/livewire/settings/profile.blade.php create mode 100644 resources/views/livewire/welcome.blade.php create mode 100644 resources/views/partials/head.blade.php create mode 100644 resources/views/partials/settings-heading.blade.php create mode 100644 routes/auth.php create mode 100644 routes/console.php create mode 100644 routes/web.php create mode 100644 storage/app/.gitignore create mode 100644 storage/app/private/.gitignore create mode 100644 storage/app/public/.gitignore create mode 100644 storage/framework/.gitignore create mode 100644 storage/framework/cache/.gitignore create mode 100644 storage/framework/cache/data/.gitignore create mode 100644 storage/framework/sessions/.gitignore create mode 100644 storage/framework/testing/.gitignore create mode 100644 storage/framework/views/.gitignore create mode 100644 storage/logs/.gitignore create mode 100644 tests/Feature/Auth/AuthenticationTest.php create mode 100644 tests/Feature/Auth/EmailVerificationTest.php create mode 100644 tests/Feature/Auth/PasswordConfirmationTest.php create mode 100644 tests/Feature/Auth/PasswordResetTest.php create mode 100644 tests/Feature/Auth/RegistrationTest.php create mode 100644 tests/Feature/DashboardTest.php create mode 100644 tests/Feature/ExampleTest.php create mode 100644 tests/Feature/Livewire/Country/ChooserTest.php create mode 100644 tests/Feature/Livewire/Meetup.indexTest.php create mode 100644 tests/Feature/Livewire/Meetups/EditTest.php create mode 100644 tests/Feature/Livewire/Meetups/MapTest.php create mode 100644 tests/Feature/Livewire/WelcomeTest.php create mode 100644 tests/Feature/Settings/PasswordUpdateTest.php create mode 100644 tests/Feature/Settings/ProfileUpdateTest.php create mode 100644 tests/Pest.php create mode 100644 tests/TestCase.php create mode 100644 tests/Unit/ExampleTest.php create mode 100644 vite.config.js create mode 100644 yarn.lock diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8f0de65 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..35db1dd --- /dev/null +++ b/.env.example @@ -0,0 +1,65 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_URL=http://localhost + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +PHP_CLI_SERVER_WORKERS=4 + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=sqlite +# DB_HOST=127.0.0.1 +# DB_PORT=3306 +# DB_DATABASE=laravel +# DB_USERNAME=root +# DB_PASSWORD= + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +# CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +VITE_APP_NAME="${APP_NAME}" diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f50f803 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +* text=auto eol=lf + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +CHANGELOG.md export-ignore +README.md export-ignore diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..d350fa2 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,16 @@ +name: Gitea Actions Deploy + +on: + push: + branches: + - master + +jobs: + + Deploy-Master: + if: ${{ gitea.ref == 'refs/heads/master' }} + runs-on: ubuntu-latest + steps: + - run: echo "Deploying to master branch! Triggered by ${{ gitea.event_name }}." + - run: echo "Running on ${{ runner.os }} server for branch ${{ gitea.ref }}." + - run: curl ${{ secrets.DEPLOY_PRODUCTION }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c7cf1fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +/.phpunit.cache +/node_modules +/public/build +/public/hot +/public/storage +/storage/*.key +/storage/pail +/vendor +.env +.env.backup +.env.production +.phpactor.json +.phpunit.result.cache +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +/auth.json +/.fleet +/.idea +/.nova +/.vscode +/.zed diff --git a/.junie/guidelines.md b/.junie/guidelines.md new file mode 100644 index 0000000..9664bb5 --- /dev/null +++ b/.junie/guidelines.md @@ -0,0 +1,56 @@ +# Livewire Flux Component Guidelines +## Usage Pattern +Components use the format: `` +## Component Reference +### Layout & Structure +- **flux:card** - Basic container with default slot +- **flux:field** - Form field wrapper with label/description support +- **flux:brand** - Logo/company name display with href navigation + +### Navigation +- **flux:breadcrumbs** - Navigation breadcrumbs + - **flux:breadcrumbs.item** - Individual breadcrumb with href/icon + +- **flux:accordion** - Collapsible content sections + - **flux:accordion.item** - Individual accordion item with heading/content + - **flux:accordion.heading** - Accordion header + - **flux:accordion.content** - Accordion body + +### Form Controls +- **flux:input** - Text input with wire:model, validation, icons, masks +- **flux:select** - Select input +- **flux:select.option** - Select options +- **flux:autocomplete** - Searchable input with dropdown items +- **flux:checkbox** - Single checkbox or grouped checkboxes +- **flux:date-picker** - Date selection with calendar, ranges, presets +- **flux:editor** - Rich text editor with toolbar + +### Interactive Elements +- **flux:button** - Button with variants (primary, outline, danger), icons, loading states +- **flux:dropdown** - Dropdown menu with positioning options +- **flux:menu** - Complex menu with items, submenus, separators, checkboxes, radio buttons +- **flux:command** - Command palette with searchable items +- **flux:context** - Right-click context menu wrapper + +### Display Components +- **flux:avatar** - User avatar with initials, images, badges, grouping +- **flux:badge** - Status/label badges with colors and variants +- **flux:callout** - Highlighted information blocks with icons and actions +- **flux:calendar** - Calendar display with date selection modes +- **flux:chart** - Data visualization with lines, areas, axes, tooltips + +### Key Props +- **wire:model** - Livewire property binding +- **variant** - Visual style options (outline, primary, filled, etc.) +- **size** - Component sizing (xs, sm, base, lg, xl, 2xl) +- **disabled/invalid** - State management +- **icon/icon:trailing** - Icon placement with variants +- **label/description** - Form field labeling +- **color** - Color theming options + +### Common Patterns +- Most form components support wire:model binding +- Many components have label/description props for field wrapping +- Icon components accept variant options (outline, solid, mini, micro) +- Size props typically offer xs, sm, base, lg, xl, 2xl options +- Variant props provide visual style alternatives diff --git a/README.md b/README.md new file mode 100644 index 0000000..f9f1d1a --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +[![Laravel Forge Site Deployment Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fforge.laravel.com%2Fsite-badges%2Fb7221607-01f1-4a61-a0d9-b98c61ef1b1b&style=plastic)](https://portal.codingarena.top/welcome) + +Demo: [https://portal.codingarena.top/welcome](https://portal.codingarena.top/welcome) + +## Contributing and Proposals + +[https://budabit.club](https://budabit.club/spaces/budabit.nostr1.com/git/naddr1qvzqqqrhnypzqzklvar4enzu53t06vpzu3h465nwkzhk9p9ls4y5crwhs3lnu5pnqqgk26tww4hxg7nhv9h856t894shquqltl96k/patches) + +## Development + +### Installation + +```cp .env.example .env``` + +``` +docker run --rm \ + -u "$(id -u):$(id -g)" \ + -v $(pwd):/var/www/html \ + -w /var/www/html \ + laravelsail/php83-composer:latest \ + composer install --ignore-platform-reqs +``` +*(you need a valid Flux Pro license or send a message to [Nostr - The Ben](http://njump.me/npub1pt0kw36ue3w2g4haxq3wgm6a2fhtptmzsjlc2j2vphtcgle72qesgpjyc6))* + +#### Start docker development containers + +```vendor/bin/sail up -d``` + +### Migrate and seed the database + +```./vendor/bin/sail artisan migrate:fresh --seed``` + +### Laravel storage link + +```./vendor/bin/sail artisan storage:link``` + +#### Install node dependencies + +```vendor/bin/sail yarn``` + +#### Start just in time compiler + +```vendor/bin/sail yarn dev``` + +#### Update dependencies + +```vendor/bin/sail yarn``` + +## Security Vulnerabilities + +If you discover a security vulnerability within this project, please go to [https://budabit.club](https://budabit.club/spaces/budabit.nostr1.com/git/naddr1qvzqqqrhnypzqzklvar4enzu53t06vpzu3h465nwkzhk9p9ls4y5crwhs3lnu5pnqq2x26tww4hxg7nhv9h856t894cx7un5v9kqxpnrpc/issues/8457d40013ea6de44b5e9435e1ceec2687883f2b21165bb1c54374c0cc79a383). All security vulnerabilities will be promptly addressed. + +## License + +Open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). diff --git a/app/Http/Controllers/Auth/VerifyEmailController.php b/app/Http/Controllers/Auth/VerifyEmailController.php new file mode 100644 index 0000000..a300bfa --- /dev/null +++ b/app/Http/Controllers/Auth/VerifyEmailController.php @@ -0,0 +1,30 @@ +user()->hasVerifiedEmail()) { + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } + + if ($request->user()->markEmailAsVerified()) { + /** @var \Illuminate\Contracts\Auth\MustVerifyEmail $user */ + $user = $request->user(); + + event(new Verified($user)); + } + + return redirect()->intended(route('dashboard', absolute: false).'?verified=1'); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..8677cd5 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,8 @@ +logout(); + + Session::invalidate(); + Session::regenerateToken(); + + return redirect('/'); + } +} diff --git a/app/Models/BitcoinEvent.php b/app/Models/BitcoinEvent.php new file mode 100644 index 0000000..cbdbfd2 --- /dev/null +++ b/app/Models/BitcoinEvent.php @@ -0,0 +1,73 @@ + 'integer', + 'venue_id' => 'integer', + 'from' => 'datetime', + 'to' => 'datetime', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('logo') + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function venue(): BelongsTo + { + return $this->belongsTo(Venue::class); + } +} diff --git a/app/Models/BookCase.php b/app/Models/BookCase.php new file mode 100644 index 0000000..1fd949a --- /dev/null +++ b/app/Models/BookCase.php @@ -0,0 +1,83 @@ + 'integer', + 'lat' => 'double', + 'lon' => 'array', + 'digital' => 'boolean', + 'deactivated' => 'boolean', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function scopeActive($query) + { + return $query->where('deactivated', false); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('seo') + ->fit(Manipulations::FIT_CROP, 1200, 630) + ->width(1200) + ->height(630); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('images'); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function orangePills(): HasMany + { + return $this->hasMany(OrangePill::class); + } +} diff --git a/app/Models/Category.php b/app/Models/Category.php new file mode 100644 index 0000000..b6e3a26 --- /dev/null +++ b/app/Models/Category.php @@ -0,0 +1,33 @@ + 'integer', + ]; + + public function courses(): BelongsToMany + { + return $this->belongsToMany(Course::class); + } +} diff --git a/app/Models/City.php b/app/Models/City.php new file mode 100644 index 0000000..b037c61 --- /dev/null +++ b/app/Models/City.php @@ -0,0 +1,83 @@ + 'integer', + 'country_id' => 'integer', + 'osm_relation' => 'json', + 'simplified_geojson' => 'json', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + /** + * Get the options for generating the slug. + */ + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['country.code', 'name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function country(): BelongsTo + { + return $this->belongsTo(Country::class); + } + + public function venues(): HasMany + { + return $this->hasMany(Venue::class); + } + + public function courseEvents() + { + return $this->hasManyThrough(CourseEvent::class, Venue::class); + } + + public function meetups() + { + return $this->hasMany(Meetup::class); + } +} diff --git a/app/Models/Country.php b/app/Models/Country.php new file mode 100644 index 0000000..5998d32 --- /dev/null +++ b/app/Models/Country.php @@ -0,0 +1,34 @@ + 'integer', + 'language_codes' => 'array', + ]; + + public function cities(): HasMany + { + return $this->hasMany(City::class); + } +} diff --git a/app/Models/Course.php b/app/Models/Course.php new file mode 100644 index 0000000..e1919a0 --- /dev/null +++ b/app/Models/Course.php @@ -0,0 +1,88 @@ + 'integer', + 'lecturer_id' => 'integer', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('logo') + ->singleFile() + ->useFallbackUrl(asset('img/einundzwanzig.png')); + $this->addMediaCollection('images') + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function categories(): BelongsToMany + { + return $this->belongsToMany(Category::class); + } + + public function lecturer(): BelongsTo + { + return $this->belongsTo(Lecturer::class); + } + + public function courseEvents(): HasMany + { + return $this->hasMany(CourseEvent::class); + } +} diff --git a/app/Models/CourseEvent.php b/app/Models/CourseEvent.php new file mode 100644 index 0000000..903ae66 --- /dev/null +++ b/app/Models/CourseEvent.php @@ -0,0 +1,62 @@ + 'integer', + 'course_id' => 'integer', + 'venue_id' => 'integer', + 'from' => 'datetime', + 'to' => 'datetime', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function course(): BelongsTo + { + return $this->belongsTo(Course::class); + } + + public function venue(): BelongsTo + { + return $this->belongsTo(Venue::class); + } + + public function registrations(): HasMany + { + return $this->hasMany(Registration::class); + } +} diff --git a/app/Models/EmailCampaign.php b/app/Models/EmailCampaign.php new file mode 100644 index 0000000..bcefa51 --- /dev/null +++ b/app/Models/EmailCampaign.php @@ -0,0 +1,16 @@ +hasMany(EmailTexts::class); + } +} diff --git a/app/Models/EmailTexts.php b/app/Models/EmailTexts.php new file mode 100644 index 0000000..a6d66bd --- /dev/null +++ b/app/Models/EmailTexts.php @@ -0,0 +1,18 @@ +belongsTo(EmailCampaign::class); + } +} diff --git a/app/Models/Episode.php b/app/Models/Episode.php new file mode 100644 index 0000000..da660a4 --- /dev/null +++ b/app/Models/Episode.php @@ -0,0 +1,57 @@ + 'integer', + 'podcast_id' => 'integer', + 'data' => 'array', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function podcast(): BelongsTo + { + return $this->belongsTo(Podcast::class); + } + + public function libraryItem(): HasOne + { + return $this->hasOne(LibraryItem::class); + } +} diff --git a/app/Models/Lecturer.php b/app/Models/Lecturer.php new file mode 100644 index 0000000..aeed16f --- /dev/null +++ b/app/Models/Lecturer.php @@ -0,0 +1,104 @@ + 'integer', + 'active' => 'boolean', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('avatar') + ->singleFile() + ->useFallbackUrl(asset('img/einundzwanzig.png')); + $this->addMediaCollection('images') + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + /** + * Get the options for generating the slug. + */ + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function team(): BelongsTo + { + return $this->belongsTo(Team::class); + } + + public function courses(): HasMany + { + return $this->hasMany(Course::class); + } + + public function coursesEvents(): HasManyThrough + { + return $this->hasManyThrough(CourseEvent::class, Course::class); + } + + public function libraryItems(): HasMany + { + return $this->hasMany(LibraryItem::class); + } +} diff --git a/app/Models/Library.php b/app/Models/Library.php new file mode 100644 index 0000000..c572470 --- /dev/null +++ b/app/Models/Library.php @@ -0,0 +1,54 @@ + 'integer', + 'language_codes' => 'array', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function libraryItems(): BelongsToMany + { + return $this->belongsToMany(LibraryItem::class); + } + + public function parent(): BelongsTo + { + return $this->belongsTo(__CLASS__, 'parent_id'); + } +} diff --git a/app/Models/LibraryItem.php b/app/Models/LibraryItem.php new file mode 100644 index 0000000..621ffb8 --- /dev/null +++ b/app/Models/LibraryItem.php @@ -0,0 +1,159 @@ + 'integer', + 'lecturer_id' => 'integer', + 'library_id' => 'integer', + ]; + + public static function getFeedItems() + { + return self::query() + ->with([ + 'media', + 'lecturer', + ]) + ->where('news', true) + ->where('approved', true) + ->orderByDesc('created_at') + ->get(); + } + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('seo') + ->fit(Manipulations::FIT_CROP, 1200, 630) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('main') + ->singleFile() + ->useFallbackUrl(asset('img/einundzwanzig.png')); + $this->addMediaCollection('single_file') + ->acceptsMimeTypes([ + 'application/pdf', 'application/zip', 'application/octet-stream', 'application/x-zip-compressed', + 'multipart/x-zip', + ]) + ->singleFile(); + $this->addMediaCollection('images') + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function lecturer(): BelongsTo + { + return $this->belongsTo(Lecturer::class); + } + + public function episode(): BelongsTo + { + return $this->belongsTo(Episode::class); + } + + /* + * This string will be used in notifications on what a new comment + * was made. + */ + + public function libraries(): BelongsToMany + { + return $this->belongsToMany(Library::class); + } + + public function toFeedItem(): CustomFeedItem + { + return CustomFeedItem::create() + ->id('news/'.$this->slug) + ->title($this->name) + ->content($this->value) + ->enclosure($this->getFirstMediaUrl('main')) + ->enclosureLength($this->getFirstMedia('main')->size) + ->enclosureType($this->getFirstMedia('main')->mime_type) + ->summary($this->excerpt) + ->updated($this->updated_at) + ->image($this->getFirstMediaUrl('main')) + ->link(url()->route('article.view', ['libraryItem' => $this])) + ->authorName($this->lecturer->name); + } + + public static function searchLibraryItems($type, $value = null) + { + $query = self::query() + ->where('type', $type) + ->latest('id'); + + if ($value) { + $query->where('name', 'ilike', "%{$value}%"); + } + + return $query->get(); + } +} diff --git a/app/Models/LoginKey.php b/app/Models/LoginKey.php new file mode 100644 index 0000000..1bb9eac --- /dev/null +++ b/app/Models/LoginKey.php @@ -0,0 +1,25 @@ + 'integer', + 'city_id' => 'integer', + 'github_data' => 'json', + 'simplified_geojson' => 'array', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Fit::Crop, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Fit::Crop, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('logo') + ->singleFile() + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function users() + { + return $this->belongsToMany(User::class); + } + + public function city(): BelongsTo + { + return $this->belongsTo(City::class); + } + + protected function logoSquare(): Attribute + { + $media = $this->getFirstMedia('logo'); + if ($media) { + $path = str($media->getPath())->after('storage/app/'); + } else { + $path = 'img/einundzwanzig.png'; + } + + return Attribute::make( + get: fn() => url()->route('img', + [ + 'path' => $path, + 'w' => 900, + 'h' => 900, + 'fit' => 'crop', + 'fm' => 'webp', + ]), + ); + } + + protected function nextEvent(): Attribute + { + $nextEvent = $this->meetupEvents()->where('start', '>=', now())->orderBy('start')->first(); + + return Attribute::make( + get: fn() => $nextEvent ? [ + 'start' => $nextEvent->start->toDateTimeString(), + 'portalLink' => url()->route('meetup.event.landing', ['country' => $this->city->country, 'meetupEvent' => $nextEvent]), + 'location' => $nextEvent->location, + 'description' => $nextEvent->description, + 'link' => $nextEvent->link, + 'attendees' => count($nextEvent->attendees ?? []), + 'nostr_note' => str($nextEvent->nostr_status)->after('Sent event ')->before(' to '), + ] : null, + ); + } + + public function meetupEvents(): HasMany + { + return $this->hasMany(MeetupEvent::class); + } +} diff --git a/app/Models/MeetupEvent.php b/app/Models/MeetupEvent.php new file mode 100644 index 0000000..c0003fc --- /dev/null +++ b/app/Models/MeetupEvent.php @@ -0,0 +1,51 @@ + 'integer', + 'meetup_id' => 'integer', + 'start' => 'datetime', + 'attendees' => 'array', + 'might_attendees' => 'array', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function meetup(): BelongsTo + { + return $this->belongsTo(Meetup::class); + } +} diff --git a/app/Models/MeetupUser.php b/app/Models/MeetupUser.php new file mode 100644 index 0000000..8c31938 --- /dev/null +++ b/app/Models/MeetupUser.php @@ -0,0 +1,10 @@ + 'integer', + 'user_id' => 'integer', + 'book_case_id' => 'integer', + 'date' => 'datetime', + ]; + + protected static function booted() + { + static::creating(function ($model) { + $model->user->givePoint(new BookCaseOrangePilled($model)); + }); + static::deleted(function ($model) { + $model->user->undoPoint(new BookCaseOrangePilled($model)); + }); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('images'); + } + + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + + public function bookCase(): BelongsTo + { + return $this->belongsTo(BookCase::class); + } +} diff --git a/app/Models/Participant.php b/app/Models/Participant.php new file mode 100644 index 0000000..aff2edb --- /dev/null +++ b/app/Models/Participant.php @@ -0,0 +1,32 @@ + 'integer', + ]; + + public function registrations() + { + return $this->hasMany(Registration::class); + } +} diff --git a/app/Models/Podcast.php b/app/Models/Podcast.php new file mode 100644 index 0000000..7730bba --- /dev/null +++ b/app/Models/Podcast.php @@ -0,0 +1,49 @@ + 'integer', + 'data' => 'array', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function episodes(): HasMany + { + return $this->hasMany(Episode::class); + } +} diff --git a/app/Models/ProjectProposal.php b/app/Models/ProjectProposal.php new file mode 100644 index 0000000..2987e83 --- /dev/null +++ b/app/Models/ProjectProposal.php @@ -0,0 +1,83 @@ + 'integer', + 'user_id' => 'integer', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (!$model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('main') + ->singleFile() + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + + public function votes(): HasMany + { + return $this->hasMany(Vote::class); + } +} diff --git a/app/Models/Registration.php b/app/Models/Registration.php new file mode 100644 index 0000000..0df323e --- /dev/null +++ b/app/Models/Registration.php @@ -0,0 +1,41 @@ + 'integer', + 'event_id' => 'integer', + 'participant_id' => 'integer', + 'active' => 'boolean', + ]; + + public function courseEvent(): BelongsTo + { + return $this->belongsTo(CourseEvent::class); + } + + public function participant(): BelongsTo + { + return $this->belongsTo(Participant::class); + } +} diff --git a/app/Models/Tag.php b/app/Models/Tag.php new file mode 100644 index 0000000..bbbc63c --- /dev/null +++ b/app/Models/Tag.php @@ -0,0 +1,21 @@ +morphedByMany(Course::class, 'taggable'); + } + + public function libraryItems() + { + return $this->morphedByMany(LibraryItem::class, 'taggable'); + } + + public function episodes() + { + return $this->morphedByMany(Episode::class, 'taggable'); + } +} diff --git a/app/Models/Team.php b/app/Models/Team.php new file mode 100644 index 0000000..e63d9a5 --- /dev/null +++ b/app/Models/Team.php @@ -0,0 +1,44 @@ + 'boolean', + ]; + + /** + * The attributes that are mass assignable. + * + * @var string[] + */ + protected $fillable = [ + 'name', + 'personal_team', + ]; + + /** + * The event map for the model. + * + * @var array + */ + protected $dispatchesEvents = [ + 'created' => TeamCreated::class, + 'updated' => TeamUpdated::class, + 'deleted' => TeamDeleted::class, + ]; +} diff --git a/app/Models/TeamInvitation.php b/app/Models/TeamInvitation.php new file mode 100644 index 0000000..e5c4f2b --- /dev/null +++ b/app/Models/TeamInvitation.php @@ -0,0 +1,28 @@ +belongsTo(Jetstream::teamModel()); + } +} diff --git a/app/Models/TwitterAccount.php b/app/Models/TwitterAccount.php new file mode 100644 index 0000000..72e835e --- /dev/null +++ b/app/Models/TwitterAccount.php @@ -0,0 +1,14 @@ + 'array', + ]; +} diff --git a/app/Models/User.php b/app/Models/User.php new file mode 100644 index 0000000..f9d0cb3 --- /dev/null +++ b/app/Models/User.php @@ -0,0 +1,104 @@ + 'datetime', + ]; + + /** + * Get the user's initials + */ + public function initials(): string + { + return Str::of($this->name) + ->explode(' ') + ->take(2) + ->map(fn ($word) => Str::substr($word, 0, 1)) + ->implode(''); + } + + public static function configureCipherSweet(EncryptedRow $encryptedRow): void + { + $map = (new JsonFieldMap()) + ->addTextField('url') + ->addTextField('read_key') + ->addTextField('wallet_id'); + + $encryptedRow + ->addOptionalTextField('public_key') + ->addOptionalTextField('lightning_address') + ->addOptionalTextField('lnurl') + ->addOptionalTextField('node_id') + ->addOptionalTextField('email') + ->addOptionalTextField('paynym') + ->addJsonField('lnbits', $map) + ->addBlindIndex('public_key', new BlindIndex('public_key_index')) + ->addBlindIndex('lightning_address', new BlindIndex('lightning_address_index')) + ->addBlindIndex('lnurl', new BlindIndex('lnurl_index')) + ->addBlindIndex('node_id', new BlindIndex('node_id_index')) + ->addBlindIndex('paynym', new BlindIndex('paynym_index')) + ->addBlindIndex('email', new BlindIndex('email_index')); + } + + public function orangePills() + { + return $this->hasMany(OrangePill::class); + } + + public function meetups() + { + return $this->belongsToMany(Meetup::class); + } + + public function reputations() + { + return $this->morphMany('QCod\Gamify\Reputation', 'subject'); + } + + public function votes() + { + return $this->hasMany(Vote::class); + } + + public function paidArticles() + { + return $this->belongsToMany(LibraryItem::class, 'library_item_user', 'user_id', 'library_item_id'); + } +} diff --git a/app/Models/Venue.php b/app/Models/Venue.php new file mode 100644 index 0000000..2b39bec --- /dev/null +++ b/app/Models/Venue.php @@ -0,0 +1,104 @@ + 'integer', + 'city_id' => 'integer', + ]; + + protected static function booted() + { + static::creating(function ($model) { + if (! $model->created_by) { + $model->created_by = auth()->id(); + } + }); + } + + public function registerMediaConversions(Media $media = null): void + { + $this + ->addMediaConversion('preview') + ->fit(Manipulations::FIT_CROP, 300, 300) + ->nonQueued(); + $this->addMediaConversion('thumb') + ->fit(Manipulations::FIT_CROP, 130, 130) + ->width(130) + ->height(130); + } + + public function registerMediaCollections(): void + { + $this->addMediaCollection('images') + ->useFallbackUrl(asset('img/einundzwanzig.png')); + } + + /** + * Get the options for generating the slug. + */ + public function getSlugOptions(): SlugOptions + { + return SlugOptions::create() + ->generateSlugsFrom(['city.slug', 'name']) + ->saveSlugsTo('slug') + ->usingLanguage(Cookie::get('lang', config('app.locale'))); + } + + public function createdBy(): BelongsTo + { + return $this->belongsTo(User::class, 'created_by'); + } + + public function city(): BelongsTo + { + return $this->belongsTo(City::class); + } + + public function lecturers() + { + return $this->hasManyDeepFromRelations($this->courses(), (new Course())->lecturer()); + } + + public function courses() + { + return $this->hasManyDeepFromRelations($this->events(), (new CourseEvent())->course()); + } + + public function courseEvents(): HasMany + { + return $this->hasMany(CourseEvent::class); + } +} diff --git a/app/Models/Vote.php b/app/Models/Vote.php new file mode 100644 index 0000000..e8816ef --- /dev/null +++ b/app/Models/Vote.php @@ -0,0 +1,41 @@ + 'integer', + 'user_id' => 'integer', + 'project_proposal_id' => 'integer', + 'value' => 'bool', + ]; + + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + + public function projectProposal(): BelongsTo + { + return $this->belongsTo(ProjectProposal::class); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..452e6b6 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,24 @@ +route('country') ?? 'de'; + $parameters = ['country' => $country] + $parameters; + } + + return route($name, $parameters, $absolute); + } +} diff --git a/artisan b/artisan new file mode 100755 index 0000000..c35e31d --- /dev/null +++ b/artisan @@ -0,0 +1,18 @@ +#!/usr/bin/env php +handleCommand(new ArgvInput); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..e8f4521 --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,19 @@ +withRouting( + web: __DIR__.'/../routes/web.php', + commands: __DIR__.'/../routes/console.php', + health: '/up', + ) + ->withMiddleware(function (Middleware $middleware) { + $middleware->web(append: [ + ]); + }) + ->withExceptions(function (Exceptions $exceptions) { + // + })->create(); diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/bootstrap/providers.php b/bootstrap/providers.php new file mode 100644 index 0000000..7d50f93 --- /dev/null +++ b/bootstrap/providers.php @@ -0,0 +1,6 @@ +=7.1" + }, + "require-dev": { + "orchestra/testbench": "^6.0@dev", + "phpunit/phpunit": "^9.2@dev" + }, + "type": "library", + "autoload": { + "psr-4": { + "Akuechler\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexsander Küchler", + "email": "composer@alexsander-kuechler.com" + } + ], + "description": "Perform fast and efficient radius searches on your Laravel Eloquent models.", + "keywords": [ + "distance", + "framework", + "geo", + "laravel", + "lat", + "latitude", + "lng", + "lon", + "longitude", + "models", + "radius", + "search" + ], + "support": { + "issues": "https://github.com/akuechler/laravel-geoly/issues", + "source": "https://github.com/akuechler/laravel-geoly/tree/v1.0.6" + }, + "time": "2021-04-20T07:17:32+00:00" + }, + { + "name": "blade-ui-kit/blade-icons", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/driesvints/blade-icons.git", + "reference": "7b743f27476acb2ed04cb518213d78abe096e814" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/7b743f27476acb2ed04cb518213d78abe096e814", + "reference": "7b743f27476acb2ed04cb518213d78abe096e814", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/filesystem": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/view": "^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^7.4|^8.0", + "symfony/console": "^5.3|^6.0|^7.0", + "symfony/finder": "^5.3|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "^1.5.1", + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", + "phpunit/phpunit": "^9.0|^10.5|^11.0" + }, + "bin": [ + "bin/blade-icons-generate" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BladeUI\\Icons\\BladeIconsServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "BladeUI\\Icons\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dries Vints", + "homepage": "https://driesvints.com" + } + ], + "description": "A package to easily make use of icons in your Laravel Blade views.", + "homepage": "https://github.com/blade-ui-kit/blade-icons", + "keywords": [ + "blade", + "icons", + "laravel", + "svg" + ], + "support": { + "issues": "https://github.com/blade-ui-kit/blade-icons/issues", + "source": "https://github.com/blade-ui-kit/blade-icons" + }, + "funding": [ + { + "url": "https://github.com/sponsors/driesvints", + "type": "github" + }, + { + "url": "https://www.paypal.com/paypalme/driesvints", + "type": "paypal" + } + ], + "time": "2025-02-13T20:35:06+00:00" + }, + { + "name": "brick/math", + "version": "0.14.0", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "shasum": "" + }, + "require": { + "php": "^8.2" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.14.0" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2025-08-29T12:40:03+00:00" + }, + { + "name": "calebporzio/sushi", + "version": "v2.5.3", + "source": { + "type": "git", + "url": "https://github.com/calebporzio/sushi.git", + "reference": "bf184973f943216b2aaa8dbc79631ea806038bb1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/calebporzio/sushi/zipball/bf184973f943216b2aaa8dbc79631ea806038bb1", + "reference": "bf184973f943216b2aaa8dbc79631ea806038bb1", + "shasum": "" + }, + "require": { + "ext-pdo_sqlite": "*", + "ext-sqlite3": "*", + "illuminate/database": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^5.8 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0", + "php": "^7.1.3|^8.0" + }, + "require-dev": { + "doctrine/dbal": "^2.9 || ^3.1.4", + "orchestra/testbench": "3.8.* || 3.9.* || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0", + "phpunit/phpunit": "^7.5 || ^8.4 || ^9.0 || ^10.0 || ^11.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Sushi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "Eloquent's missing \"array\" driver.", + "support": { + "source": "https://github.com/calebporzio/sushi/tree/v2.5.3" + }, + "funding": [ + { + "url": "https://github.com/calebporzio", + "type": "github" + } + ], + "time": "2025-02-13T21:03:57+00:00" + }, + { + "name": "carbonphp/carbon-doctrine-types", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", + "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d", + "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/dbal": "<4.0.0 || >=5.0.0" + }, + "require-dev": { + "doctrine/dbal": "^4.0.0", + "nesbot/carbon": "^2.71.0 || ^3.0.0", + "phpunit/phpunit": "^10.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "KyleKatarn", + "email": "kylekatarnls@gmail.com" + } + ], + "description": "Types to use Carbon in Doctrine", + "keywords": [ + "carbon", + "date", + "datetime", + "doctrine", + "time" + ], + "support": { + "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2024-02-09T16:56:22+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + } + ], + "time": "2025-08-20T19:15:30+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.3", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3" + }, + "time": "2024-07-08T12:26:09+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0 || ^13.0", + "phpstan/phpstan": "^1.12 || ^2.0", + "phpstan/phpstan-phpunit": "^1.4 || ^2.0", + "phpstan/phpstan-strict-rules": "^1.6 || ^2.0", + "phpunit/phpunit": "^8.5 || ^12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.1.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%2Finflector", + "type": "tidelift" + } + ], + "time": "2025-08-10T19:31:58+00:00" + }, + { + "name": "doctrine/lexer", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/3.0.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:56:58+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013", + "shasum": "" + }, + "require": { + "php": "^8.2|^8.3|^8.4|^8.5" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.32|^2.1.31", + "phpunit/phpunit": "^8.5.48|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2025-10-31T18:51:33+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2025-03-06T22:45:56+00:00" + }, + { + "name": "fruitcake/php-cors", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/php-cors.git", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b", + "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0", + "symfony/http-foundation": "^4.4|^5.4|^6|^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "phpunit/phpunit": "^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barryvdh", + "email": "barryvdh@gmail.com" + } + ], + "description": "Cross-origin resource sharing library for the Symfony HttpFoundation", + "homepage": "https://github.com/fruitcake/php-cors", + "keywords": [ + "cors", + "laravel", + "symfony" + ], + "support": { + "issues": "https://github.com/fruitcake/php-cors/issues", + "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2023-10-12T05:21:21+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/3ba905c11371512af9d9bdd27d99b782216b6945", + "reference": "3ba905c11371512af9d9bdd27d99b782216b6945", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.39 || ^9.6.20 || ^10.5.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2024-07-20T21:45:45+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.10.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^2.3", + "guzzlehttp/psr7": "^2.8", + "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": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", + "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.10.0" + }, + "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": "2025-08-23T22:36:01+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "481557b130ef3790cf82b713667b43030dc9c957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957", + "reference": "481557b130ef3790cf82b713667b43030dc9c957", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "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.3.0" + }, + "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": "2025-08-22T14:34:08+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.8.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "21dc724a0583619cd1652f673303492272778051" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", + "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.0", + "phpunit/phpunit": "^8.5.44 || ^9.6.25" + }, + "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.8.0" + }, + "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": "2025-08-23T21:21:41+00:00" + }, + { + "name": "guzzlehttp/uri-template", + "version": "v1.0.5", + "source": { + "type": "git", + "url": "https://github.com/guzzle/uri-template.git", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25", + "uri-template/tests": "1.0.0" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\UriTemplate\\": "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" + } + ], + "description": "A polyfill class for uri_template of PHP", + "keywords": [ + "guzzlehttp", + "uri-template" + ], + "support": { + "issues": "https://github.com/guzzle/uri-template/issues", + "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template", + "type": "tidelift" + } + ], + "time": "2025-08-22T14:27:06+00:00" + }, + { + "name": "laravel/framework", + "version": "v12.39.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "1a6176129ef28eaf42b6b4a6250025120c3d8dac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/1a6176129ef28eaf42b6b4a6250025120c3d8dac", + "reference": "1a6176129ef28eaf42b6b4a6250025120c3d8dac", + "shasum": "" + }, + "require": { + "brick/math": "^0.11|^0.12|^0.13|^0.14", + "composer-runtime-api": "^2.2", + "doctrine/inflector": "^2.0.5", + "dragonmantank/cron-expression": "^3.4", + "egulias/email-validator": "^3.2.1|^4.0", + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-session": "*", + "ext-tokenizer": "*", + "fruitcake/php-cors": "^1.3", + "guzzlehttp/guzzle": "^7.8.2", + "guzzlehttp/uri-template": "^1.0", + "laravel/prompts": "^0.3.0", + "laravel/serializable-closure": "^1.3|^2.0", + "league/commonmark": "^2.7", + "league/flysystem": "^3.25.1", + "league/flysystem-local": "^3.25.1", + "league/uri": "^7.5.1", + "monolog/monolog": "^3.0", + "nesbot/carbon": "^3.8.4", + "nunomaduro/termwind": "^2.0", + "php": "^8.2", + "psr/container": "^1.1.1|^2.0.1", + "psr/log": "^1.0|^2.0|^3.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "ramsey/uuid": "^4.7", + "symfony/console": "^7.2.0", + "symfony/error-handler": "^7.2.0", + "symfony/finder": "^7.2.0", + "symfony/http-foundation": "^7.2.0", + "symfony/http-kernel": "^7.2.0", + "symfony/mailer": "^7.2.0", + "symfony/mime": "^7.2.0", + "symfony/polyfill-php83": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/polyfill-php85": "^1.33", + "symfony/process": "^7.2.0", + "symfony/routing": "^7.2.0", + "symfony/uid": "^7.2.0", + "symfony/var-dumper": "^7.2.0", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", + "vlucas/phpdotenv": "^5.6.1", + "voku/portable-ascii": "^2.0.2" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "psr/log-implementation": "1.0|2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/concurrency": "self.version", + "illuminate/conditionable": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/json-schema": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/process": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "spatie/once": "*" + }, + "require-dev": { + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.322.9", + "ext-gmp": "*", + "fakerphp/faker": "^1.24", + "guzzlehttp/promises": "^2.0.3", + "guzzlehttp/psr7": "^2.4", + "laravel/pint": "^1.18", + "league/flysystem-aws-s3-v3": "^3.25.1", + "league/flysystem-ftp": "^3.25.1", + "league/flysystem-path-prefixing": "^3.25.1", + "league/flysystem-read-only": "^3.25.1", + "league/flysystem-sftp-v3": "^3.25.1", + "mockery/mockery": "^1.6.10", + "opis/json-schema": "^2.4.1", + "orchestra/testbench-core": "^10.7.0", + "pda/pheanstalk": "^5.0.6|^7.0.0", + "php-http/discovery": "^1.15", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1", + "predis/predis": "^2.3|^3.0", + "resend/resend-php": "^0.10.0|^1.0", + "symfony/cache": "^7.2.0", + "symfony/http-client": "^7.2.0", + "symfony/psr-http-message-bridge": "^7.2.0", + "symfony/translation": "^7.2.0" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).", + "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).", + "ext-apcu": "Required to use the APC cache driver.", + "ext-fileinfo": "Required to use the Filesystem class.", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.", + "ext-pdo": "Required to use all database features.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0|^6.0).", + "fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).", + "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).", + "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)", + "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).", + "mockery/mockery": "Required to use mocking (^1.6).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).", + "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).", + "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).", + "predis/predis": "Required to use the predis connector (^2.3|^3.0).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", + "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^7.2).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).", + "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).", + "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).", + "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "12.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/functions.php", + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Filesystem/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Log/functions.php", + "src/Illuminate/Support/functions.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/", + "src/Illuminate/Conditionable/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2025-11-18T15:16:10+00:00" + }, + { + "name": "laravel/prompts", + "version": "v0.3.7", + "source": { + "type": "git", + "url": "https://github.com/laravel/prompts.git", + "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/prompts/zipball/a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "reference": "a1891d362714bc40c8d23b0b1d7090f022ea27cc", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.2", + "ext-mbstring": "*", + "php": "^8.1", + "symfony/console": "^6.2|^7.0" + }, + "conflict": { + "illuminate/console": ">=10.17.0 <10.25.0", + "laravel/framework": ">=10.17.0 <10.25.0" + }, + "require-dev": { + "illuminate/collections": "^10.0|^11.0|^12.0", + "mockery/mockery": "^1.5", + "pestphp/pest": "^2.3|^3.4", + "phpstan/phpstan": "^1.12.28", + "phpstan/phpstan-mockery": "^1.1.3" + }, + "suggest": { + "ext-pcntl": "Required for the spinner to be animated." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "0.3.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Laravel\\Prompts\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Add beautiful and user-friendly forms to your command-line applications.", + "support": { + "issues": "https://github.com/laravel/prompts/issues", + "source": "https://github.com/laravel/prompts/tree/v0.3.7" + }, + "time": "2025-09-19T13:47:56+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "038ce42edee619599a1debb7e81d7b3759492819" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/038ce42edee619599a1debb7e81d7b3759492819", + "reference": "038ce42edee619599a1debb7e81d7b3759492819", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.67|^3.0", + "pestphp/pest": "^2.36|^3.0", + "phpstan/phpstan": "^2.0", + "symfony/var-dumper": "^6.2.0|^7.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2025-10-09T13:42:30+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.10.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.11.1|^0.12.0", + "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.10.1" + }, + "time": "2025-01-27T14:24:01+00:00" + }, + { + "name": "league/commonmark", + "version": "2.7.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/10732241927d3971d28e7ea7b5712721fa2296ca", + "reference": "10732241927d3971d28e7ea7b5712721fa2296ca", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.31.1", + "commonmark/commonmark.js": "0.31.1", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0 | ^7.0", + "symfony/process": "^5.4 | ^6.0 | ^7.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "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/commonmark", + "type": "tidelift" + } + ], + "time": "2025-07-20T12:47:49+00:00" + }, + { + "name": "league/config", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "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" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "3.30.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", + "reference": "5966a8ba23e62bdb518dd9e0e665c2dbd4b5b277", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3|^2", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2|^2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.30.2" + }, + "time": "2025-11-10T17:13:11+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.30.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ab4f9d0d672f601b102936aa728801dd1a11968d", + "reference": "ab4f9d0d672f601b102936aa728801dd1a11968d", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.30.2" + }, + "time": "2025-11-10T11:23:37+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.16.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", + "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-09-21T08:32:55+00:00" + }, + { + "name": "league/uri", + "version": "7.6.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri.git", + "reference": "f625804987a0a9112d954f9209d91fec52182344" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/f625804987a0a9112d954f9209d91fec52182344", + "reference": "f625804987a0a9112d954f9209d91fec52182344", + "shasum": "" + }, + "require": { + "league/uri-interfaces": "^7.6", + "php": "^8.1", + "psr/http-factory": "^1" + }, + "conflict": { + "league/uri-schemes": "^1.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-dom": "to convert the URI into an HTML anchor tag", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "ext-uri": "to use the PHP native URI class", + "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain", + "league/uri-components": "Needed to easily manipulate URI objects components", + "league/uri-polyfill": "Needed to backport the PHP URI extension for older versions of PHP", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI manipulation library", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "URN", + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "middleware", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc2141", + "rfc3986", + "rfc3987", + "rfc6570", + "rfc8141", + "uri", + "uri-template", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri/tree/7.6.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2025-11-18T12:17:23+00:00" + }, + { + "name": "league/uri-interfaces", + "version": "7.6.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-interfaces.git", + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ccbfb51c0445298e7e0b7f4481b942f589665368", + "reference": "ccbfb51c0445298e7e0b7f4481b942f589665368", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^8.1", + "psr/http-message": "^1.1 || ^2.0" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle WHATWG URL", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI", + "homepage": "https://uri.thephpleague.com", + "keywords": [ + "data-uri", + "file-uri", + "ftp", + "hostname", + "http", + "https", + "parse_str", + "parse_url", + "psr-7", + "query-string", + "querystring", + "rfc3986", + "rfc3987", + "rfc6570", + "uri", + "url", + "ws" + ], + "support": { + "docs": "https://uri.thephpleague.com", + "forum": "https://thephpleague.slack.com", + "issues": "https://github.com/thephpleague/uri-src/issues", + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.6.0" + }, + "funding": [ + { + "url": "https://github.com/sponsors/nyamsprod", + "type": "github" + } + ], + "time": "2025-11-18T12:17:23+00:00" + }, + { + "name": "livewire/flux", + "version": "v2.6.1", + "source": { + "type": "git", + "url": "https://github.com/livewire/flux.git", + "reference": "227b88db0a02db91666af2303ea6727a3af78c51" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/flux/zipball/227b88db0a02db91666af2303ea6727a3af78c51", + "reference": "227b88db0a02db91666af2303ea6727a3af78c51", + "shasum": "" + }, + "require": { + "illuminate/console": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/view": "^10.0|^11.0|^12.0", + "laravel/prompts": "^0.1|^0.2|^0.3", + "livewire/livewire": "^3.5.19|^4.0", + "php": "^8.1", + "symfony/console": "^6.0|^7.0" + }, + "conflict": { + "livewire/blaze": "<0.1.0" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Flux": "Flux\\Flux" + }, + "providers": [ + "Flux\\FluxServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Flux\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "The official UI component library for Livewire.", + "keywords": [ + "components", + "flux", + "laravel", + "livewire", + "ui" + ], + "support": { + "issues": "https://github.com/livewire/flux/issues", + "source": "https://github.com/livewire/flux/tree/v2.6.1" + }, + "time": "2025-10-28T21:12:05+00:00" + }, + { + "name": "livewire/flux-pro", + "version": "2.6.1", + "dist": { + "type": "zip", + "url": "https://composer.fluxui.dev/download/a0397651-df75-43ac-b21a-8a5ac8ad46b4/flux-pro-2.6.1.zip", + "reference": "12a6570b061c858739b40a9509424c4b4cc42b62", + "shasum": "10e8f4dad0b0232e5b47ce291ef1c55610be5298" + }, + "require": { + "illuminate/console": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/view": "^10.0|^11.0|^12.0", + "laravel/prompts": "^0.1.24|^0.2|^0.3", + "livewire/flux": "2.6.1|dev-main", + "livewire/livewire": "^3.6.2|^4.0", + "php": "^8.1", + "symfony/console": "^6.0|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Flux": "FluxPro\\FluxPro" + }, + "providers": [ + "FluxPro\\FluxProServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "FluxPro\\": "src/" + } + }, + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "The pro version of Flux, the official UI component library for Livewire.", + "keywords": [ + "components", + "flux", + "laravel", + "livewire", + "ui" + ], + "time": "2025-10-28T21:23:07+00:00" + }, + { + "name": "livewire/livewire", + "version": "v3.6.4", + "source": { + "type": "git", + "url": "https://github.com/livewire/livewire.git", + "reference": "ef04be759da41b14d2d129e670533180a44987dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/livewire/zipball/ef04be759da41b14d2d129e670533180a44987dc", + "reference": "ef04be759da41b14d2d129e670533180a44987dc", + "shasum": "" + }, + "require": { + "illuminate/database": "^10.0|^11.0|^12.0", + "illuminate/routing": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "illuminate/validation": "^10.0|^11.0|^12.0", + "laravel/prompts": "^0.1.24|^0.2|^0.3", + "league/mime-type-detection": "^1.9", + "php": "^8.1", + "symfony/console": "^6.0|^7.0", + "symfony/http-kernel": "^6.2|^7.0" + }, + "require-dev": { + "calebporzio/sushi": "^2.1", + "laravel/framework": "^10.15.0|^11.0|^12.0", + "mockery/mockery": "^1.3.1", + "orchestra/testbench": "^8.21.0|^9.0|^10.0", + "orchestra/testbench-dusk": "^8.24|^9.1|^10.0", + "phpunit/phpunit": "^10.4|^11.5", + "psy/psysh": "^0.11.22|^0.12" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "Livewire": "Livewire\\Livewire" + }, + "providers": [ + "Livewire\\LivewireServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Livewire\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Caleb Porzio", + "email": "calebporzio@gmail.com" + } + ], + "description": "A front-end framework for Laravel.", + "support": { + "issues": "https://github.com/livewire/livewire/issues", + "source": "https://github.com/livewire/livewire/tree/v3.6.4" + }, + "funding": [ + { + "url": "https://github.com/livewire", + "type": "github" + } + ], + "time": "2025-07-17T05:12:15+00:00" + }, + { + "name": "livewire/volt", + "version": "v1.10.0", + "source": { + "type": "git", + "url": "https://github.com/livewire/volt.git", + "reference": "79a5e2367944aad6f4af9edef31a3d688cc8875c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/livewire/volt/zipball/79a5e2367944aad6f4af9edef31a3d688cc8875c", + "reference": "79a5e2367944aad6f4af9edef31a3d688cc8875c", + "shasum": "" + }, + "require": { + "laravel/framework": "^10.38.2|^11.0|^12.0", + "livewire/livewire": "^3.6.1|^4.0", + "php": "^8.1" + }, + "require-dev": { + "laravel/folio": "^1.1", + "mockery/mockery": "^1.6", + "orchestra/testbench": "^8.15.0|^9.0|^10.0", + "pestphp/pest": "^2.9.5|^3.0", + "phpstan/phpstan": "^1.10" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Livewire\\Volt\\VoltServiceProvider" + ] + }, + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "functions.php" + ], + "psr-4": { + "Livewire\\Volt\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "An elegantly crafted functional API for Laravel Livewire.", + "homepage": "https://github.com/livewire/volt", + "keywords": [ + "laravel", + "livewire", + "volt" + ], + "support": { + "issues": "https://github.com/livewire/volt/issues", + "source": "https://github.com/livewire/volt" + }, + "time": "2025-11-14T15:10:57+00:00" + }, + { + "name": "maennchen/zipstream-php", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/9712d8fa4cdf9240380b01eb4be55ad8dcf71416", + "reference": "9712d8fa4cdf9240380b01eb4be55ad8dcf71416", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-zlib": "*", + "php-64bit": "^8.3" + }, + "require-dev": { + "brianium/paratest": "^7.7", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^12.0", + "vimeo/psalm": "^6.0" + }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/maennchen", + "type": "github" + } + ], + "time": "2025-07-17T11:15:13+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.9.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/10d85740180ecba7896c87e06a166e0c95a0e3b6", + "reference": "10d85740180ecba7896c87e06a166e0c95a0e3b6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "php-console/php-console": "^3.1.8", + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^10.5.17 || ^11.0.7", + "predis/predis": "^1.1 || ^2", + "rollbar/rollbar": "^4.0", + "ruflin/elastica": "^7 || ^8", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.9.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2025-03-24T10:02:05+00:00" + }, + { + "name": "nesbot/carbon", + "version": "3.10.3", + "source": { + "type": "git", + "url": "https://github.com/CarbonPHP/carbon.git", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "reference": "8e3643dcd149ae0fe1d2ff4f2c8e4bbfad7c165f", + "shasum": "" + }, + "require": { + "carbonphp/carbon-doctrine-types": "<100.0", + "ext-json": "*", + "php": "^8.1", + "psr/clock": "^1.0", + "symfony/clock": "^6.3.12 || ^7.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "doctrine/dbal": "^3.6.3 || ^4.0", + "doctrine/orm": "^2.15.2 || ^3.0", + "friendsofphp/php-cs-fixer": "^v3.87.1", + "kylekatarnls/multi-tester": "^2.5.3", + "phpmd/phpmd": "^2.15.0", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.22", + "phpunit/phpunit": "^10.5.53", + "squizlabs/php_codesniffer": "^3.13.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev", + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/CarbonPHP/carbon/issues", + "source": "https://github.com/CarbonPHP/carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2025-09-06T13:39:36+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.3", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/2befc2f42d7c715fd9d95efc31b1081e5d765004", + "reference": "2befc2f42d7c715fd9d95efc31b1081e5d765004", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0", + "php": "8.1 - 8.5" + }, + "require-dev": { + "nette/tester": "^2.5.2", + "phpstan/phpstan-nette": "^2.0@stable", + "tracy/tracy": "^2.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "psr-4": { + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.3.3" + }, + "time": "2025-10-30T22:57:59+00:00" + }, + { + "name": "nette/utils", + "version": "v4.0.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "reference": "c930ca4e3cf4f17dcfb03037703679d2396d2ede", + "shasum": "" + }, + "require": { + "php": "8.0 - 8.5" + }, + "conflict": { + "nette/finder": "<3", + "nette/schema": "<1.2.2" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "^1.2", + "nette/tester": "^2.5", + "phpstan/phpstan-nette": "^2.0@stable", + "tracy/tracy": "^2.9" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "psr-4": { + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v4.0.8" + }, + "time": "2025-08-06T21:43:34+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v5.6.2", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3a454ca033b9e06b63282ce19562e892747449bb", + "reference": "3a454ca033b9e06b63282ce19562e892747449bb", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-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/v5.6.2" + }, + "time": "2025-10-21T19:32:17+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v2.3.3", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "reference": "6fb2a640ff502caace8e05fd7be3b503a7e1c017", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.2", + "symfony/console": "^7.3.6" + }, + "require-dev": { + "illuminate/console": "^11.46.1", + "laravel/pint": "^1.25.1", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.1.3", + "phpstan/phpstan": "^1.12.32", + "phpstan/phpstan-strict-rules": "^1.6.2", + "symfony/var-dumper": "^7.3.5", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + }, + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v2.3.3" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2025-11-20T02:34:59+00:00" + }, + { + "name": "outhebox/blade-flags", + "version": "1.5.4", + "source": { + "type": "git", + "url": "https://github.com/MohmmedAshraf/blade-flags.git", + "reference": "f467991314b93ed83c12dafe7ec40ab43b5a61c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MohmmedAshraf/blade-flags/zipball/f467991314b93ed83c12dafe7ec40ab43b5a61c1", + "reference": "f467991314b93ed83c12dafe7ec40ab43b5a61c1", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-icons": "^1.1", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^7.4|^8.0|^8.1|^8.2" + }, + "require-dev": { + "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0", + "phpunit/phpunit": "^9.0|^10.5|^11.5.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "OutheBox\\BladeFlags\\BladeFlagsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "OutheBox\\BladeFlags\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mohamed Ashraf", + "email": "cupo.ashraf@gmail.com", + "homepage": "https://github.com/MohmmedAshraf" + } + ], + "description": "A package to easily make use of country & language flags in your Laravel Blade views.", + "homepage": "https://github.com/MohmmedAshraf/blade-flags", + "keywords": [ + "blade", + "country flags", + "flags", + "language flags", + "laravel" + ], + "support": { + "issues": "https://github.com/MohmmedAshraf/blade-flags/issues", + "source": "https://github.com/MohmmedAshraf/blade-flags/tree/1.5.4" + }, + "funding": [ + { + "url": "https://github.com/MohmmedAshraf", + "type": "github" + } + ], + "time": "2025-08-30T07:16:05+00:00" + }, + { + "name": "paragonie/ciphersweet", + "version": "v4.9.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/ciphersweet.git", + "reference": "827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/ciphersweet/zipball/827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1", + "reference": "827b2510b12ab3bce2d99d7eb4e580eddc4fb7c1", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-openssl": "*", + "paragonie/constant_time_encoding": "^2|^3", + "paragonie/sodium_compat": "^1|^2", + "php": "^8.1" + }, + "require-dev": { + "phpunit/phpunit": "^9", + "vimeo/psalm": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\CipherSweet\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + } + ], + "description": "Searchable field-level encryption library for relational databases", + "keywords": [ + "FIPS 140-3", + "NIST cryptography", + "SQL encryption", + "crm", + "cryptography", + "database encryption", + "encrypt", + "encryption", + "field-level encryption", + "libsodium", + "queryable encryption", + "searchable encryption" + ], + "support": { + "issues": "https://github.com/paragonie/ciphersweet/issues", + "source": "https://github.com/paragonie/ciphersweet/tree/v4.9.0" + }, + "time": "2025-10-25T13:48:17+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v3.1.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "shasum": "" + }, + "require": { + "php": "^8" + }, + "require-dev": { + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2025-09-24T15:06:41+00:00" + }, + { + "name": "paragonie/sodium_compat", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "547e2dc4d45107440e76c17ab5a46e4252460158" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/547e2dc4d45107440e76c17ab5a46e4252460158", + "reference": "547e2dc4d45107440e76c17ab5a46e4252460158", + "shasum": "" + }, + "require": { + "php": "^8.1", + "php-64bit": "*" + }, + "require-dev": { + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^7|^8|^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" + }, + "suggest": { + "ext-sodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "files": [ + "autoload.php" + ], + "psr-4": { + "ParagonIE\\Sodium\\": "namespaced/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "ISC" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + }, + { + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" + } + ], + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "keywords": [ + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" + ], + "support": { + "issues": "https://github.com/paragonie/sodium_compat/issues", + "source": "https://github.com/paragonie/sodium_compat/tree/v2.4.0" + }, + "time": "2025-10-06T08:47:40+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.4", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "reference": "638a154f8d4ee6a5cfa96d6a34dfbe0cffa9566d", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" + }, + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.4" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2025-08-21T11:53:16+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/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.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "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": "PSR-17: 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" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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 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/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.12.14", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "95c29b3756a23855a30566b745d218bee690bef2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/95c29b3756a23855a30566b745d218bee690bef2", + "reference": "95c29b3756a23855a30566b745d218bee690bef2", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "^5.0 || ^4.0", + "php": "^8.0 || ^7.4", + "symfony/console": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4", + "symfony/var-dumper": "^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4" + }, + "conflict": { + "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "composer/class-map-generator": "^1.6" + }, + "suggest": { + "composer/class-map-generator": "Improved tab completion performance with better class discovery.", + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": false, + "forward-command": false + }, + "branch-alias": { + "dev-main": "0.12.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "https://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.12.14" + }, + "time": "2025-10-27T17:15:31+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": "ramsey/collection", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2", + "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "captainhook/plugin-composer": "^5.3", + "ergebnis/composer-normalize": "^2.45", + "fakerphp/faker": "^1.24", + "hamcrest/hamcrest-php": "^2.0", + "jangregor/phpstan-prophecy": "^2.1", + "mockery/mockery": "^1.6", + "php-parallel-lint/php-console-highlighter": "^1.0", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpspec/prophecy-phpunit": "^2.3", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^10.5", + "ramsey/coding-standard": "^2.3", + "ramsey/conventional-commits": "^1.6", + "roave/security-advisories": "dev-latest" + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + }, + "ramsey/conventional-commits": { + "configFile": "conventional-commits.json" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/2.1.1" + }, + "time": "2025-03-22T05:38:12+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.9.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "shasum": "" + }, + "require": { + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "php": "^8.0", + "ramsey/collection": "^1.2 || ^2.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "captainhook/captainhook": "^5.25", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "ergebnis/composer-normalize": "^2.47", + "mockery/mockery": "^1.6", + "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.6", + "php-mock/php-mock-mockery": "^1.5", + "php-parallel-lint/php-parallel-lint": "^1.4.0", + "phpbench/phpbench": "^1.2.14", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-mockery": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^9.6", + "slevomat/coding-standard": "^8.18", + "squizlabs/php_codesniffer": "^3.13" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.9.1" + }, + "time": "2025-09-04T20:59:21+00:00" + }, + { + "name": "spatie/eloquent-sortable", + "version": "4.5.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/eloquent-sortable.git", + "reference": "c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/eloquent-sortable/zipball/c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20", + "reference": "c1c4f3a66cd41eb7458783c8a4c8e5d7924a9f20", + "shasum": "" + }, + "require": { + "illuminate/database": "^9.31|^10.0|^11.0|^12.0", + "illuminate/support": "^9.31|^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.63|^3.0", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.9" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "phpunit/phpunit": "^9.5|^10.0|^11.5.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\EloquentSortable\\EloquentSortableServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\EloquentSortable\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be" + } + ], + "description": "Sortable behaviour for eloquent models", + "homepage": "https://github.com/spatie/eloquent-sortable", + "keywords": [ + "behaviour", + "eloquent", + "laravel", + "model", + "sort", + "sortable" + ], + "support": { + "issues": "https://github.com/spatie/eloquent-sortable/issues", + "source": "https://github.com/spatie/eloquent-sortable/tree/4.5.2" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-08-25T11:46:57+00:00" + }, + { + "name": "spatie/image", + "version": "3.8.6", + "source": { + "type": "git", + "url": "https://github.com/spatie/image.git", + "reference": "0872c5968a7f044fe1e960c26433e54ceaede696" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image/zipball/0872c5968a7f044fe1e960c26433e54ceaede696", + "reference": "0872c5968a7f044fe1e960c26433e54ceaede696", + "shasum": "" + }, + "require": { + "ext-exif": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.2", + "spatie/image-optimizer": "^1.7.5", + "spatie/temporary-directory": "^2.2", + "symfony/process": "^6.4|^7.0" + }, + "require-dev": { + "ext-gd": "*", + "ext-imagick": "*", + "laravel/sail": "^1.34", + "pestphp/pest": "^2.28", + "phpstan/phpstan": "^1.10.50", + "spatie/pest-plugin-snapshots": "^2.1", + "spatie/pixelmatch-php": "^1.0", + "spatie/ray": "^1.40.1", + "symfony/var-dumper": "^6.4|7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Image\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Manipulate images with an expressive API", + "homepage": "https://github.com/spatie/image", + "keywords": [ + "image", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/image/tree/3.8.6" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-09-25T12:06:17+00:00" + }, + { + "name": "spatie/image-optimizer", + "version": "1.8.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/4fd22035e81d98fffced65a8c20d9ec4daa9671c", + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0|^7.0" + }, + "require-dev": { + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.8.0" + }, + "time": "2024-11-04T08:24:54+00:00" + }, + { + "name": "spatie/laravel-ciphersweet", + "version": "1.7.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-ciphersweet.git", + "reference": "e406f6702386b924add2c0a7785dbeddb2acb718" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-ciphersweet/zipball/e406f6702386b924add2c0a7785dbeddb2acb718", + "reference": "e406f6702386b924add2c0a7785dbeddb2acb718", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^10.0|^11.0|^12.0", + "paragonie/ciphersweet": "^4.0.1", + "php": "^8.1", + "spatie/laravel-package-tools": "^1.12.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.8", + "nunomaduro/collision": "^6.0|^8.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.21|^2.34|^3.7", + "pestphp/pest-plugin-laravel": "^1.1|^2.3|^3.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", + "phpstan/phpstan-phpunit": "^1.0|^2.0", + "phpunit/phpunit": "^9.5|^10.5|^11.5.3|^12.0", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "aliases": { + "LaravelCipherSweet": "Spatie\\LaravelCipherSweet\\Facades\\LaravelCipherSweet" + }, + "providers": [ + "Spatie\\LaravelCipherSweet\\LaravelCipherSweetServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\LaravelCipherSweet\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rias Van der Veken", + "email": "rias@spatie.be", + "role": "Developer" + } + ], + "description": "Use ciphersweet in your Laravel project", + "homepage": "https://github.com/spatie/laravel-ciphersweet", + "keywords": [ + "laravel", + "laravel-ciphersweet", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-ciphersweet/tree/1.7.2" + }, + "time": "2025-09-18T10:35:25+00:00" + }, + { + "name": "spatie/laravel-medialibrary", + "version": "11.17.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-medialibrary.git", + "reference": "eef29bbc701d786f2f6233ca4c40deb61282ac36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-medialibrary/zipball/eef29bbc701d786f2f6233ca4c40deb61282ac36", + "reference": "eef29bbc701d786f2f6233ca4c40deb61282ac36", + "shasum": "" + }, + "require": { + "composer/semver": "^3.4", + "ext-exif": "*", + "ext-fileinfo": "*", + "ext-json": "*", + "illuminate/bus": "^10.2|^11.0|^12.0", + "illuminate/conditionable": "^10.2|^11.0|^12.0", + "illuminate/console": "^10.2|^11.0|^12.0", + "illuminate/database": "^10.2|^11.0|^12.0", + "illuminate/pipeline": "^10.2|^11.0|^12.0", + "illuminate/support": "^10.2|^11.0|^12.0", + "maennchen/zipstream-php": "^3.1", + "php": "^8.2", + "spatie/image": "^3.3.2", + "spatie/laravel-package-tools": "^1.16.1", + "spatie/temporary-directory": "^2.2", + "symfony/console": "^6.4.1|^7.0|^8.0" + }, + "conflict": { + "php-ffmpeg/php-ffmpeg": "<0.6.1" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.293.10", + "ext-imagick": "*", + "ext-pdo_sqlite": "*", + "ext-zip": "*", + "guzzlehttp/guzzle": "^7.8.1", + "larastan/larastan": "^2.7|^3.0", + "league/flysystem-aws-s3-v3": "^3.22", + "mockery/mockery": "^1.6.7", + "orchestra/testbench": "^7.0|^8.17|^9.0|^10.0", + "pestphp/pest": "^2.28|^3.5|^4.0", + "phpstan/extension-installer": "^1.3.1", + "spatie/laravel-ray": "^1.33", + "spatie/pdf-to-image": "^2.2|^3.0", + "spatie/pest-expectations": "^1.13", + "spatie/pest-plugin-snapshots": "^2.1" + }, + "suggest": { + "league/flysystem-aws-s3-v3": "Required to use AWS S3 file storage", + "php-ffmpeg/php-ffmpeg": "Required for generating video thumbnails", + "spatie/pdf-to-image": "Required for generating thumbnails of PDFs and SVGs" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\MediaLibrary\\MediaLibraryServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\MediaLibrary\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Associate files with Eloquent models", + "homepage": "https://github.com/spatie/laravel-medialibrary", + "keywords": [ + "cms", + "conversion", + "downloads", + "images", + "laravel", + "laravel-medialibrary", + "media", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-medialibrary/issues", + "source": "https://github.com/spatie/laravel-medialibrary/tree/11.17.5" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-11-13T11:36:18+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.92.7", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/f09a799850b1ed765103a4f0b4355006360c49a5", + "reference": "f09a799850b1ed765103a4f0b4355006360c49a5", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28|^10.0|^11.0|^12.0", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.23|^2.1|^3.1", + "phpunit/php-code-coverage": "^9.0|^10.0|^11.0", + "phpunit/phpunit": "^9.5.24|^10.5|^11.5", + "spatie/pest-plugin-test-time": "^1.1|^2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\LaravelPackageTools\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Tools for creating Laravel packages", + "homepage": "https://github.com/spatie/laravel-package-tools", + "keywords": [ + "laravel-package-tools", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-package-tools/issues", + "source": "https://github.com/spatie/laravel-package-tools/tree/1.92.7" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-07-17T15:46:43+00:00" + }, + { + "name": "spatie/laravel-permission", + "version": "6.23.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-permission.git", + "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-permission/zipball/9e41247bd512b1e6c229afbc1eb528f7565ae3bb", + "reference": "9e41247bd512b1e6c229afbc1eb528f7565ae3bb", + "shasum": "" + }, + "require": { + "illuminate/auth": "^8.12|^9.0|^10.0|^11.0|^12.0", + "illuminate/container": "^8.12|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^8.12|^9.0|^10.0|^11.0|^12.0", + "illuminate/database": "^8.12|^9.0|^10.0|^11.0|^12.0", + "php": "^8.0" + }, + "require-dev": { + "laravel/passport": "^11.0|^12.0", + "laravel/pint": "^1.0", + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", + "phpunit/phpunit": "^9.4|^10.1|^11.5" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Permission\\PermissionServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "6.x-dev", + "dev-master": "6.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Spatie\\Permission\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Permission handling for Laravel 8.0 and up", + "homepage": "https://github.com/spatie/laravel-permission", + "keywords": [ + "acl", + "laravel", + "permission", + "permissions", + "rbac", + "roles", + "security", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-permission/issues", + "source": "https://github.com/spatie/laravel-permission/tree/6.23.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-11-03T20:16:13+00:00" + }, + { + "name": "spatie/laravel-sluggable", + "version": "3.7.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-sluggable.git", + "reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-sluggable/zipball/e4fdd519e043a2af02b52eec2c3be2dd2e262e27", + "reference": "e4fdd519e043a2af02b52eec2c3be2dd2e262e27", + "shasum": "" + }, + "require": { + "illuminate/database": "^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^8.0" + }, + "require-dev": { + "orchestra/testbench": "^6.23|^7.0|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.20|^2.0|^3.7", + "spatie/laravel-translatable": "^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Sluggable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Generate slugs when saving Eloquent models", + "homepage": "https://github.com/spatie/laravel-sluggable", + "keywords": [ + "laravel-sluggable", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/laravel-sluggable/tree/3.7.5" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-04-24T09:21:00+00:00" + }, + { + "name": "spatie/laravel-tags", + "version": "4.10.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-tags.git", + "reference": "26fe2ad5490e65e2a3475c3fe8a4d9609934aa40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-tags/zipball/26fe2ad5490e65e2a3475c3fe8a4d9609934aa40", + "reference": "26fe2ad5490e65e2a3475c3fe8a4d9609934aa40", + "shasum": "" + }, + "require": { + "laravel/framework": "^10.0|^11.0|^12.0", + "nesbot/carbon": "^2.63|^3.0", + "php": "^8.1", + "spatie/eloquent-sortable": "^4.0", + "spatie/laravel-package-tools": "^1.4", + "spatie/laravel-translatable": "^6.0" + }, + "require-dev": { + "orchestra/testbench": "^8.0|^9.0|^10.0", + "pestphp/pest": "^1.22|^2.0", + "phpunit/phpunit": "^9.5.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Spatie\\Tags\\TagsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Tags\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Add tags and taggable behaviour to your Laravel app", + "homepage": "https://github.com/spatie/laravel-tags", + "keywords": [ + "laravel-tags", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/laravel-tags/issues", + "source": "https://github.com/spatie/laravel-tags/tree/4.10.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-10-13T14:16:14+00:00" + }, + { + "name": "spatie/laravel-translatable", + "version": "6.11.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-translatable.git", + "reference": "032d85b28de315310dab2048b857016f1194f68b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/032d85b28de315310dab2048b857016f1194f68b", + "reference": "032d85b28de315310dab2048b857016f1194f68b", + "shasum": "" + }, + "require": { + "illuminate/database": "^10.0|^11.0|^12.0", + "illuminate/support": "^10.0|^11.0|^12.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.11" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.64", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "pestphp/pest": "^1.20|^2.0|^3.0" + }, + "type": "library", + "extra": { + "aliases": { + "Translatable": "Spatie\\Translatable\\Facades\\Translatable" + }, + "laravel": { + "providers": [ + "Spatie\\Translatable\\TranslatableServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Spatie\\Translatable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + }, + { + "name": "Sebastian De Deyne", + "email": "sebastian@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "A trait to make an Eloquent model hold translations", + "homepage": "https://github.com/spatie/laravel-translatable", + "keywords": [ + "eloquent", + "i8n", + "laravel-translatable", + "model", + "multilingual", + "spatie", + "translate" + ], + "support": { + "issues": "https://github.com/spatie/laravel-translatable/issues", + "source": "https://github.com/spatie/laravel-translatable/tree/6.11.4" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-02-20T15:51:22+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/580eddfe9a0a41a902cac6eeb8f066b42e65a32b", + "reference": "580eddfe9a0a41a902cac6eeb8f066b42e65a32b", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.3.0" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2025-01-13T13:04:43+00:00" + }, + { + "name": "symfony/clock", + "version": "v7.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/clock.git", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/clock/zipball/b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "reference": "b81435fbd6648ea425d1ee96a2d8e68f4ceacd24", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/clock": "^1.0", + "symfony/polyfill-php83": "^1.28" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v7.3.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": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/console", + "version": "v7.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", + "reference": "c28ad91448f86c5f6d9d2c70f0cf68bf135f252a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^7.2" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/dotenv": "<6.4", + "symfony/event-dispatcher": "<6.4", + "symfony/lock": "<6.4", + "symfony/process": "<6.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v7.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-04T01:21:42+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v7.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "84321188c4754e64273b46b406081ad9b18e8614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/84321188c4754e64273b46b406081ad9b18e8614", + "reference": "84321188c4754e64273b46b406081ad9b18e8614", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v7.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-10-29T17:24:25+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", + "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.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": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v7.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "bbe40bfab84323d99dab491b716ff142410a92a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/bbe40bfab84323d99dab491b716ff142410a92a8", + "reference": "bbe40bfab84323d99dab491b716ff142410a92a8", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^6.4|^7.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5", + "symfony/http-kernel": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/webpack-encore-bundle": "^1.0|^2.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "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 manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v7.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-10-31T19:12:50+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v7.3.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<6.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/error-handler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-08-13T11:49:31+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.6.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586", + "reference": "59eb412e93815df44f05f342958efa9f46b1e586", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.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": "2024-09-25T14:21:43+00:00" + }, + { + "name": "symfony/finder", + "version": "v7.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "9f696d2f1e340484b4683f7853b273abff94421f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/9f696d2f1e340484b4683f7853b273abff94421f", + "reference": "9f696d2f1e340484b4683f7853b273abff94421f", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "symfony/filesystem": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "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": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v7.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-10-15T18:45:57+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v7.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/db488a62f98f7a81d5746f05eea63a74e55bb7c4", + "reference": "db488a62f98f7a81d5746f05eea63a74e55bb7c4", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "doctrine/dbal": "<3.6", + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" + }, + "require-dev": { + "doctrine/dbal": "^3.6|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.4.12|^7.1.5", + "symfony/clock": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/mime": "^6.4|^7.0", + "symfony/rate-limiter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "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": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v7.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-08T16:41:12+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v7.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/10b8e9b748ea95fa4539c208e2487c435d3c87ce", + "reference": "10b8e9b748ea95fa4539c208e2487c435d3c87ce", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.4|^7.0", + "symfony/event-dispatcher": "^7.3", + "symfony/http-foundation": "^7.3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<6.4", + "symfony/cache": "<6.4", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/doctrine-bridge": "<6.4", + "symfony/form": "<6.4", + "symfony/http-client": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<6.4", + "symfony/messenger": "<6.4", + "symfony/translation": "<6.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<6.4", + "symfony/validator": "<6.4", + "symfony/var-dumper": "<6.4", + "twig/twig": "<3.12" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/clock": "^6.4|^7.0", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/css-selector": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^7.1", + "symfony/routing": "^6.4|^7.0", + "symfony/serializer": "^7.1", + "symfony/stopwatch": "^6.4|^7.0", + "symfony/translation": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^6.4|^7.0", + "symfony/validator": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", + "symfony/var-exporter": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v7.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-12T11:38:40+00:00" + }, + { + "name": "symfony/mailer", + "version": "v7.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/fd497c45ba9c10c37864e19466b090dcb60a50ba", + "reference": "fd497c45ba9c10c37864e19466b090dcb60a50ba", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.2", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/mime": "^7.2", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/messenger": "<6.4", + "symfony/mime": "<6.4", + "symfony/twig-bridge": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/http-client": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/twig-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "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 sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v7.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-10-24T14:27:20+00:00" + }, + { + "name": "symfony/mime", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<6.4", + "symfony/serializer": "<6.4.3|>7.0,<7.0.3" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/property-info": "^6.4|^7.0", + "symfony/serializer": "^6.4.3|^7.0.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "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 manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-16T08:38:17+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "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.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-27T09:58:17+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-10T14:38:51+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "3833d7255cc303546435cb650316bff708a1c75c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", + "shasum": "" + }, + "require": { + "ext-iconv": "*", + "php": ">=7.2" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "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.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-12-23T08:48:59+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "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.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-01-02T08:10:11+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "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.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-08T02:45:35+00:00" + }, + { + "name": "symfony/polyfill-php84", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php84.git", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191", + "reference": "d8ced4d875142b6a7426000426b8abc631d6b191", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php84\\": "" + }, + "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.4+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-24T13:30:11+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php85\\": "" + }, + "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.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-23T16:12:55+00:00" + }, + { + "name": "symfony/polyfill-uuid", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/process", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T10:12:26+00:00" + }, + { + "name": "symfony/routing", + "version": "v7.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/c97abe725f2a1a858deca629a6488c8fc20c3091", + "reference": "c97abe725f2a1a858deca629a6488c8fc20c3091", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/config": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/yaml": "<6.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/expression-language": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "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": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v7.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-11-05T07:57:47+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", + "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.6.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T11:30:57+00:00" + }, + { + "name": "symfony/string", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "f96476035142921000338bad71e5247fbc138872" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", + "reference": "f96476035142921000338bad71e5247fbc138872", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/emoji": "^7.1", + "symfony/http-client": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-11T14:36:48+00:00" + }, + { + "name": "symfony/translation", + "version": "v7.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "ec25870502d0c7072d086e8ffba1420c85965174" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/ec25870502d0c7072d086e8ffba1420c85965174", + "reference": "ec25870502d0c7072d086e8ffba1420c85965174", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "nikic/php-parser": "<5.0", + "symfony/config": "<6.4", + "symfony/console": "<6.4", + "symfony/dependency-injection": "<6.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<6.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<6.4", + "symfony/yaml": "<6.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^5.0", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/finder": "^6.4|^7.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/intl": "^6.4|^7.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^6.4|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^6.4|^7.0" + }, + "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/v7.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-07T11:39:36+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.6.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977", + "reference": "65a8bc82080447fae78373aa10f8d13b38338977", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/contracts", + "name": "symfony/contracts" + }, + "branch-alias": { + "dev-main": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "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/v3.6.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-07-15T13:41:35+00:00" + }, + { + "name": "symfony/uid", + "version": "v7.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/uid.git", + "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/uid/zipball/a69f69f3159b852651a6bf45a9fdd149520525bb", + "reference": "a69f69f3159b852651a6bf45a9fdd149520525bb", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v7.3.1" + }, + "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": "2025-06-27T19:55:54+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v7.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "reference": "476c4ae17f43a9a36650c69879dcf5b1e6ae724d", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/uid": "^6.4|^7.0", + "twig/twig": "^3.12" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v7.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-27T09:00:46+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d", + "reference": "0d72ac1c00084279c1816675284073c5a337c20d", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^7.4 || ^8.0", + "symfony/css-selector": "^5.4 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0" + }, + "time": "2024-12-21T16:25:41+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.6.2", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "reference": "24ac4c74f91ee2c193fa1aaa5c249cb0822809af", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.1.3", + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9.3", + "symfony/polyfill-ctype": "^1.24", + "symfony/polyfill-mbstring": "^1.24", + "symfony/polyfill-php80": "^1.24" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "ext-filter": "*", + "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2025-04-30T23:37:27+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "https://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/2.0.3" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2024-11-21T01:49:47+00:00" + }, + { + "name": "woodsandwalker/laravel-countries", + "version": "1.5.0", + "source": { + "type": "git", + "url": "https://github.com/woodsandwalker/laravel-countries.git", + "reference": "4485a86ad1afe2a57bf7382e0c1a94a4f563b6f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/woodsandwalker/laravel-countries/zipball/4485a86ad1afe2a57bf7382e0c1a94a4f563b6f7", + "reference": "4485a86ad1afe2a57bf7382e0c1a94a4f563b6f7", + "shasum": "" + }, + "require": { + "calebporzio/sushi": "^2.5", + "illuminate/database": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "php": "^8.0|^8.1|^8.2|^8.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "WW\\Countries\\LaravelCountriesServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "WW\\Countries\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "James Walker", + "homepage": "https://woodsandwalker.co.uk", + "role": "Developer" + } + ], + "description": "Laravel Countries is a bundle for Laravel providing ISO 3166_2 codes for all countries along with a country model, cast and validation rule.", + "homepage": "https://github.com/woodsandwalker/laravel-countries", + "keywords": [ + "countries", + "laravel" + ], + "support": { + "issues": "https://github.com/woodsandwalker/laravel-countries/issues", + "source": "https://github.com/woodsandwalker/laravel-countries/tree/1.5.0" + }, + "time": "2025-02-25T13:47:12+00:00" + } + ], + "packages-dev": [ + { + "name": "archtechx/enums", + "version": "v1.1.2", + "source": { + "type": "git", + "url": "https://github.com/archtechx/enums.git", + "reference": "81375b71c176f680880a95e7448d84258cfb5c72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/archtechx/enums/zipball/81375b71c176f680880a95e7448d84258cfb5c72", + "reference": "81375b71c176f680880a95e7448d84258cfb5c72", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "larastan/larastan": "^2.4", + "orchestra/testbench": "^8.0 || ^9.0", + "pestphp/pest": "^2.0", + "pestphp/pest-plugin-laravel": "^2.0" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "ArchTech\\Enums\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Samuel Štancl", + "email": "samuel@archte.ch" + } + ], + "description": "Helpers for making PHP enums more lovable.", + "support": { + "issues": "https://github.com/archtechx/enums/issues", + "source": "https://github.com/archtechx/enums/tree/v1.1.2" + }, + "time": "2025-06-06T23:15:09+00:00" + }, + { + "name": "brianium/paratest", + "version": "v7.8.4", + "source": { + "type": "git", + "url": "https://github.com/paratestphp/paratest.git", + "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/130a9bf0e269ee5f5b320108f794ad03e275cad4", + "reference": "130a9bf0e269ee5f5b320108f794ad03e275cad4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-simplexml": "*", + "fidry/cpu-core-counter": "^1.2.0", + "jean85/pretty-package-versions": "^2.1.1", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "phpunit/php-code-coverage": "^11.0.10", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-timer": "^7.0.1", + "phpunit/phpunit": "^11.5.24", + "sebastian/environment": "^7.2.1", + "symfony/console": "^6.4.22 || ^7.3.0", + "symfony/process": "^6.4.20 || ^7.3.0" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0.0", + "ext-pcov": "*", + "ext-posix": "*", + "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpstan/phpstan-phpunit": "^2.0.6", + "phpstan/phpstan-strict-rules": "^2.0.4", + "squizlabs/php_codesniffer": "^3.13.2", + "symfony/filesystem": "^6.4.13 || ^7.3.0" + }, + "bin": [ + "bin/paratest", + "bin/paratest_for_phpstorm" + ], + "type": "library", + "autoload": { + "psr-4": { + "ParaTest\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Scaturro", + "email": "scaturrob@gmail.com", + "role": "Developer" + }, + { + "name": "Filippo Tessarotto", + "email": "zoeslam@gmail.com", + "role": "Developer" + } + ], + "description": "Parallel testing for PHP", + "homepage": "https://github.com/paratestphp/paratest", + "keywords": [ + "concurrent", + "parallel", + "phpunit", + "testing" + ], + "support": { + "issues": "https://github.com/paratestphp/paratest/issues", + "source": "https://github.com/paratestphp/paratest/tree/v7.8.4" + }, + "funding": [ + { + "url": "https://github.com/sponsors/Slamdunk", + "type": "github" + }, + { + "url": "https://paypal.me/filippotessarotto", + "type": "paypal" + } + ], + "time": "2025-06-23T06:07:21+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "reference": "459c2f5dd3d6a4633d3b5f46ee2b1c40f57d3f38", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<=7.5 || >=13" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12 || ^13", + "phpstan/phpstan": "1.4.10 || 2.1.11", + "phpstan/phpstan-phpunit": "^1.0 || ^2", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12", + "psr/log": "^1 || ^2 || ^3" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.5" + }, + "time": "2025-04-07T20:06:18+00:00" + }, + { + "name": "dragon-code/contracts", + "version": "2.24.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/contracts.git", + "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/c21ea4fc0a399bd803a2805a7f2c989749083896", + "reference": "c21ea4fc0a399bd803a2805a7f2c989749083896", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-message": "^1.0.1 || ^2.0", + "symfony/http-kernel": "^4.0 || ^5.0 || ^6.0 || ^7.0", + "symfony/polyfill-php80": "^1.23" + }, + "conflict": { + "andrey-helldar/contracts": "*" + }, + "require-dev": { + "illuminate/database": "^10.0 || ^11.0 || ^12.0", + "phpdocumentor/reflection-docblock": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "DragonCode\\Contracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://dragon-code.pro" + } + ], + "description": "A set of contracts for any project", + "keywords": [ + "contracts", + "interfaces" + ], + "support": { + "source": "https://github.com/TheDragonCode/contracts" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2025-02-23T23:11:50+00:00" + }, + { + "name": "dragon-code/pretty-array", + "version": "4.2.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/pretty-array.git", + "reference": "b94034d92172a5d14a578822d68b2a8f8b5388e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/pretty-array/zipball/b94034d92172a5d14a578822d68b2a8f8b5388e0", + "reference": "b94034d92172a5d14a578822d68b2a8f8b5388e0", + "shasum": "" + }, + "require": { + "dragon-code/contracts": "^2.20", + "dragon-code/support": "^6.11.2", + "ext-dom": "*", + "ext-mbstring": "*", + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^10.0 || ^11.0 || ^12.0" + }, + "suggest": { + "symfony/thanks": "Give thanks (in the form of a GitHub) to your fellow PHP package maintainers" + }, + "type": "library", + "autoload": { + "psr-4": { + "DragonCode\\PrettyArray\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://dragon-code.pro" + } + ], + "description": "Simple conversion of an array to a pretty view", + "keywords": [ + "andrey helldar", + "array", + "dragon", + "dragon code", + "pretty", + "pretty array" + ], + "support": { + "issues": "https://github.com/TheDragonCode/pretty-array/issues", + "source": "https://github.com/TheDragonCode/pretty-array" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2025-02-24T15:35:24+00:00" + }, + { + "name": "dragon-code/support", + "version": "6.16.0", + "source": { + "type": "git", + "url": "https://github.com/TheDragonCode/support.git", + "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/TheDragonCode/support/zipball/ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", + "reference": "ab9b657a307e75f6ba5b2b39e1e45207dc1a065a", + "shasum": "" + }, + "require": { + "dragon-code/contracts": "^2.22.0", + "ext-bcmath": "*", + "ext-ctype": "*", + "ext-dom": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": "^8.1", + "psr/http-message": "^1.0.1 || ^2.0", + "symfony/polyfill-php81": "^1.25", + "voku/portable-ascii": "^1.4.8 || ^2.0.1" + }, + "conflict": { + "andrey-helldar/support": "*" + }, + "require-dev": { + "illuminate/contracts": "^9.0 || ^10.0 || ^11.0 || ^12.0", + "phpunit/phpunit": "^9.6 || ^11.0 || ^12.0", + "symfony/var-dumper": "^6.0 || ^7.0" + }, + "suggest": { + "dragon-code/laravel-support": "Various helper files for the Laravel and Lumen frameworks", + "symfony/thanks": "Give thanks (in the form of a GitHub) to your fellow PHP package maintainers" + }, + "type": "library", + "extra": { + "dragon-code": { + "docs-generator": { + "preview": { + "brand": "php", + "vendor": "The Dragon Code" + } + } + } + }, + "autoload": { + "psr-4": { + "DragonCode\\Support\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://dragon-code.pro" + } + ], + "description": "Support package is a collection of helpers and tools for any project.", + "keywords": [ + "dragon", + "dragon-code", + "framework", + "helper", + "helpers", + "laravel", + "php", + "support", + "symfony", + "yii", + "yii2" + ], + "support": { + "issues": "https://github.com/TheDragonCode/support/issues", + "source": "https://github.com/TheDragonCode/support" + }, + "funding": [ + { + "url": "https://boosty.to/dragon-code", + "type": "boosty" + }, + { + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" + } + ], + "time": "2025-02-24T14:01:52+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.24.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1" + }, + "time": "2024-11-21T13:46:39+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", + "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-deprecation-rules": "^2.0.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2025-08-14T07:29:31+00:00" + }, + { + "name": "filp/whoops", + "version": "2.18.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.18.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2025-08-08T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "shasum": "" + }, + "require": { + "php": "^7.4|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" + }, + "time": "2025-04-30T06:54:44+00:00" + }, + { + "name": "jean85/pretty-package-versions", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/4d7aa5dab42e2a76d99559706022885de0e18e1a", + "reference": "4d7aa5dab42e2a76d99559706022885de0e18e1a", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.1.0", + "php": "^7.4|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "jean85/composer-provided-replaced-stub-package": "^1.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "^7.5|^8.5|^9.6", + "rector/rector": "^2.0", + "vimeo/psalm": "^4.3 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Jean85\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" + } + ], + "description": "A library to get pretty versions strings of installed dependencies", + "keywords": [ + "composer", + "package", + "release", + "versions" + ], + "support": { + "issues": "https://github.com/Jean85/pretty-package-versions/issues", + "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1" + }, + "time": "2025-03-19T14:43:43+00:00" + }, + { + "name": "laravel-lang/config", + "version": "1.14.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/config.git", + "reference": "0f6a41a1d5f4bde6ff59fbfd9e349ac64b737c69" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/config/zipball/0f6a41a1d5f4bde6ff59fbfd9e349ac64b737c69", + "reference": "0f6a41a1d5f4bde6ff59fbfd9e349ac64b737c69", + "shasum": "" + }, + "require": { + "archtechx/enums": "^1.0", + "illuminate/config": "^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "laravel-lang/locale-list": "^1.5", + "php": "^8.1" + }, + "require-dev": { + "orchestra/testbench": "^8.23 || ^9.1 || ^10.0", + "pestphp/pest": "^2.34 || ^3.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Config\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Config\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "The Laravel-Lang config package", + "keywords": [ + "Laravel-lang", + "Settings", + "config", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "localizations", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/config/issues", + "source": "https://github.com/Laravel-Lang/config/tree/1.14.0" + }, + "time": "2025-04-11T07:31:54+00:00" + }, + { + "name": "laravel-lang/lang", + "version": "15.26.2", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/lang.git", + "reference": "4f49e4a77ced9ace7955db2159234e4a9c0b22a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/lang/zipball/4f49e4a77ced9ace7955db2159234e4a9c0b22a3", + "reference": "4f49e4a77ced9ace7955db2159234e4a9c0b22a3", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel-lang/publisher": "^16.0", + "php": "^8.2" + }, + "conflict": { + "laravel/framework": "<11.0.7" + }, + "require-dev": { + "dragon-code/codestyler": "^6.0", + "laravel-lang/status-generator": "^2.11", + "phpunit/phpunit": "^11.0 || ^12.0", + "symfony/var-dumper": "^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Lang\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Lang\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laravel-Lang Team", + "homepage": "https://github.com/Laravel-Lang" + } + ], + "description": "List of 126 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark and Laravel UI", + "keywords": [ + "lang", + "languages", + "laravel", + "lpm" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/lang/issues", + "source": "https://github.com/Laravel-Lang/lang" + }, + "time": "2025-10-29T12:19:07+00:00" + }, + { + "name": "laravel-lang/locale-list", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/locale-list.git", + "reference": "98227230d737b32279f8376a3149be43965513c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/locale-list/zipball/98227230d737b32279f8376a3149be43965513c6", + "reference": "98227230d737b32279f8376a3149be43965513c6", + "shasum": "" + }, + "require": { + "archtechx/enums": "^0.3.2 || ^1.0", + "php": "^8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "LaravelLang\\LocaleList\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro", + "homepage": "https://dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "List of localizations available in Laravel Lang projects", + "keywords": [ + "Laravel-lang", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/locale-list/issues", + "source": "https://github.com/Laravel-Lang/locale-list" + }, + "time": "2025-11-16T18:22:05+00:00" + }, + { + "name": "laravel-lang/locales", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/locales.git", + "reference": "8c1d2383ced70a919b3c2f430589be6c81663087" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/locales/zipball/8c1d2383ced70a919b3c2f430589be6c81663087", + "reference": "8c1d2383ced70a919b3c2f430589be6c81663087", + "shasum": "" + }, + "require": { + "archtechx/enums": "^0.3.2 || ^1.0", + "dragon-code/support": "^6.11.3", + "ext-json": "*", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "laravel-lang/config": "^1.12", + "laravel-lang/locale-list": "^1.5", + "laravel-lang/native-country-names": "^1.5", + "laravel-lang/native-currency-names": "^1.6", + "laravel-lang/native-locale-names": "^2.5", + "php": "^8.1" + }, + "require-dev": { + "orchestra/testbench": "^8.0 || ^9.0 || ^10.0", + "pestphp/pest": "^2.24.1 || ^3.0", + "symfony/var-dumper": "^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Locales\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Locales\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "Basic functionality for working with localizations", + "keywords": [ + "laravel", + "locale", + "locales", + "localization", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/locales/issues", + "source": "https://github.com/Laravel-Lang/locales" + }, + "time": "2025-02-24T20:38:10+00:00" + }, + { + "name": "laravel-lang/native-country-names", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/native-country-names.git", + "reference": "22a9d18d9094fdf0b3384f37feefd3c7d91f1db9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/native-country-names/zipball/22a9d18d9094fdf0b3384f37feefd3c7d91f1db9", + "reference": "22a9d18d9094fdf0b3384f37feefd3c7d91f1db9", + "shasum": "" + }, + "require": { + "dragon-code/support": "^6.11", + "ext-json": "*", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "laravel-lang/locale-list": "^1.5", + "pestphp/pest": "^2.24.3 || ^3.0", + "punic/punic": "^3.8", + "symfony/console": "^6.3 || ^7.0", + "symfony/process": "^6.3 || ^7.0", + "symfony/var-dumper": "^6.3 || ^7.0", + "vlucas/phpdotenv": "^5.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "LaravelLang\\NativeCountryNames\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "The project contains native translations of country names", + "keywords": [ + "Laravel-lang", + "countries", + "country", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "territories", + "territory", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/native-country-names/issues", + "source": "https://github.com/Laravel-Lang/native-country-names" + }, + "time": "2025-11-18T07:59:31+00:00" + }, + { + "name": "laravel-lang/native-currency-names", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/native-currency-names.git", + "reference": "cc871b6d2574b4397728b78e4522e6cfd53cdb79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/native-currency-names/zipball/cc871b6d2574b4397728b78e4522e6cfd53cdb79", + "reference": "cc871b6d2574b4397728b78e4522e6cfd53cdb79", + "shasum": "" + }, + "require": { + "dragon-code/support": "^6.11", + "ext-json": "*", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "laravel-lang/locale-list": "^1.2", + "pestphp/pest": "^2.24.3 || ^3.0", + "punic/punic": "^3.8", + "symfony/console": "^6.3 || ^7.0", + "symfony/process": "^6.3 || ^7.0", + "symfony/var-dumper": "^6.3 || ^7.0", + "vlucas/phpdotenv": "^5.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "LaravelLang\\NativeCurrencyNames\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "The project contains native translations of currency names", + "keywords": [ + "Laravel-lang", + "currency", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/native-currency-names/issues", + "source": "https://github.com/Laravel-Lang/native-currency-names" + }, + "time": "2025-11-18T07:53:26+00:00" + }, + { + "name": "laravel-lang/native-locale-names", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/native-locale-names.git", + "reference": "6f5c0662287b61d078501eba9cdfff305a0d2266" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/native-locale-names/zipball/6f5c0662287b61d078501eba9cdfff305a0d2266", + "reference": "6f5c0662287b61d078501eba9cdfff305a0d2266", + "shasum": "" + }, + "require": { + "dragon-code/support": "^6.11", + "ext-json": "*", + "php": "^8.1" + }, + "require-dev": { + "illuminate/support": "^10.31 || ^11.0 || ^12.0", + "laravel-lang/locale-list": "^1.2", + "pestphp/pest": "^2.24.3", + "punic/punic": "^3.8", + "symfony/console": "^6.3 || ^7.0", + "symfony/process": "^6.3 || ^7.0", + "symfony/var-dumper": "^6.3 || ^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "LaravelLang\\NativeLocaleNames\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "The project contains native translations of locale names", + "keywords": [ + "Laravel-lang", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "translation", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/native-locale-names/issues", + "source": "https://github.com/Laravel-Lang/native-locale-names" + }, + "time": "2025-11-16T20:54:01+00:00" + }, + { + "name": "laravel-lang/publisher", + "version": "16.7.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/publisher.git", + "reference": "af47a0807f753818d72808250a1166e98172047c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/publisher/zipball/af47a0807f753818d72808250a1166e98172047c", + "reference": "af47a0807f753818d72808250a1166e98172047c", + "shasum": "" + }, + "require": { + "composer/semver": "^3.4", + "dragon-code/pretty-array": "^4.1", + "dragon-code/support": "^6.11.3", + "ext-json": "*", + "illuminate/collections": "^10.0 || ^11.0 || ^12.0", + "illuminate/console": "^10.0 || ^11.0 || ^12.0", + "illuminate/support": "^10.0 || ^11.0 || ^12.0", + "laravel-lang/config": "^1.12", + "laravel-lang/locales": "^2.10", + "league/commonmark": "^2.4.1", + "league/config": "^1.2", + "php": "^8.1" + }, + "conflict": { + "laravel-lang/attributes": "<2.0", + "laravel-lang/http-statuses": "<3.0", + "laravel-lang/lang": "<11.0" + }, + "require-dev": { + "laravel-lang/json-fallback": "^2.2", + "orchestra/testbench": "^8.14 || ^9.0 || ^10.0", + "phpunit/phpunit": "^10.4.2 || ^11.0 || ^12.0", + "symfony/var-dumper": "^6.3.6 || ^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\Publisher\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\Publisher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel-Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "Localization publisher for your Laravel application", + "keywords": [ + "Laravel-lang", + "breeze", + "cashier", + "fortify", + "framework", + "i18n", + "jetstream", + "lang", + "languages", + "laravel", + "locale", + "locales", + "localization", + "localizations", + "lpm", + "lumen", + "nova", + "publisher", + "spark", + "trans", + "translation", + "translations", + "validations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/publisher/issues", + "source": "https://github.com/Laravel-Lang/publisher" + }, + "time": "2025-07-14T17:58:53+00:00" + }, + { + "name": "laravel-lang/starter-kits", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/Laravel-Lang/starter-kits.git", + "reference": "0570716d62df4e718573bc9dfb3b621246629b40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Laravel-Lang/starter-kits/zipball/0570716d62df4e718573bc9dfb3b621246629b40", + "reference": "0570716d62df4e718573bc9dfb3b621246629b40", + "shasum": "" + }, + "require": { + "ext-json": "*", + "laravel-lang/publisher": "^16.6", + "php": "^8.1" + }, + "require-dev": { + "laravel-lang/status-generator": "^2.13", + "phpunit/phpunit": "^11.0 || ^12.0", + "symfony/var-dumper": "^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "LaravelLang\\StarterKits\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "LaravelLang\\StarterKits\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrey Helldar", + "email": "helldar@dragon-code.pro" + }, + { + "name": "Laravel Lang Team", + "homepage": "https://laravel-lang.com" + } + ], + "description": "Translations for Laravel Starter Kits", + "keywords": [ + "i18n", + "lang", + "languages", + "laravel", + "starter-kit", + "starter-kits", + "translations" + ], + "support": { + "issues": "https://github.com/Laravel-Lang/starter-kits/issues", + "source": "https://github.com/Laravel-Lang/starter-kits/tree/1.6.0" + }, + "time": "2025-11-17T02:59:45+00:00" + }, + { + "name": "laravel/pail", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/laravel/pail.git", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pail/zipball/8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "reference": "8cc3d575c1f0e57eeb923f366a37528c50d2385a", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "illuminate/console": "^10.24|^11.0|^12.0", + "illuminate/contracts": "^10.24|^11.0|^12.0", + "illuminate/log": "^10.24|^11.0|^12.0", + "illuminate/process": "^10.24|^11.0|^12.0", + "illuminate/support": "^10.24|^11.0|^12.0", + "nunomaduro/termwind": "^1.15|^2.0", + "php": "^8.2", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "laravel/framework": "^10.24|^11.0|^12.0", + "laravel/pint": "^1.13", + "orchestra/testbench-core": "^8.13|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.3|^3.0", + "phpstan/phpstan": "^1.12.27", + "symfony/var-dumper": "^6.3|^7.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Pail\\PailServiceProvider" + ] + }, + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\Pail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Easily delve into your Laravel application's log files directly from the command line.", + "homepage": "https://github.com/laravel/pail", + "keywords": [ + "dev", + "laravel", + "logs", + "php", + "tail" + ], + "support": { + "issues": "https://github.com/laravel/pail/issues", + "source": "https://github.com/laravel/pail" + }, + "time": "2025-06-05T13:55:57+00:00" + }, + { + "name": "laravel/pint", + "version": "v1.25.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/pint.git", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/pint/zipball/5016e263f95d97670d71b9a987bd8996ade6d8d9", + "reference": "5016e263f95d97670d71b9a987bd8996ade6d8d9", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "ext-tokenizer": "*", + "ext-xml": "*", + "php": "^8.2.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.87.2", + "illuminate/view": "^11.46.0", + "larastan/larastan": "^3.7.1", + "laravel-zero/framework": "^11.45.0", + "mockery/mockery": "^1.6.12", + "nunomaduro/termwind": "^2.3.1", + "pestphp/pest": "^2.36.0" + }, + "bin": [ + "builds/pint" + ], + "type": "project", + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Seeders\\": "database/seeders/", + "Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "An opinionated code formatter for PHP.", + "homepage": "https://laravel.com", + "keywords": [ + "format", + "formatter", + "lint", + "linter", + "php" + ], + "support": { + "issues": "https://github.com/laravel/pint/issues", + "source": "https://github.com/laravel/pint" + }, + "time": "2025-09-19T02:57:12+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.48.1", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "ef122b223f5fca5e5d88bda5127c846710886329" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/ef122b223f5fca5e5d88bda5127c846710886329", + "reference": "ef122b223f5fca5e5d88bda5127c846710886329", + "shasum": "" + }, + "require": { + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", + "php": "^8.0", + "symfony/console": "^6.0|^7.0", + "symfony/yaml": "^6.0|^7.0" + }, + "require-dev": { + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", + "phpstan/phpstan": "^2.0" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2025-11-17T22:05:34+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.6.12", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2024-05-16T03:13:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.13.4", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "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", + "phpspec/prophecy": "^1.10", + "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.13.4" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2025-08-01T08:46:24+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v8.8.3", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "reference": "1dc9e88d105699d0fee8bb18890f41b274f6b4c4", + "shasum": "" + }, + "require": { + "filp/whoops": "^2.18.1", + "nunomaduro/termwind": "^2.3.1", + "php": "^8.2.0", + "symfony/console": "^7.3.0" + }, + "conflict": { + "laravel/framework": "<11.44.2 || >=13.0.0", + "phpunit/phpunit": "<11.5.15 || >=13.0.0" + }, + "require-dev": { + "brianium/paratest": "^7.8.3", + "larastan/larastan": "^3.4.2", + "laravel/framework": "^11.44.2 || ^12.18", + "laravel/pint": "^1.22.1", + "laravel/sail": "^1.43.1", + "laravel/sanctum": "^4.1.1", + "laravel/tinker": "^2.10.1", + "orchestra/testbench-core": "^9.12.0 || ^10.4", + "pestphp/pest": "^3.8.2 || ^4.0.0", + "sebastian/environment": "^7.2.1 || ^8.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + }, + "branch-alias": { + "dev-8.x": "8.x-dev" + } + }, + "autoload": { + "files": [ + "./src/Adapters/Phpunit/Autoload.php" + ], + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "dev", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2025-11-20T02:55:25+00:00" + }, + { + "name": "pestphp/pest", + "version": "v3.8.4", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest.git", + "reference": "72cf695554420e21858cda831d5db193db102574" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest/zipball/72cf695554420e21858cda831d5db193db102574", + "reference": "72cf695554420e21858cda831d5db193db102574", + "shasum": "" + }, + "require": { + "brianium/paratest": "^7.8.4", + "nunomaduro/collision": "^8.8.2", + "nunomaduro/termwind": "^2.3.1", + "pestphp/pest-plugin": "^3.0.0", + "pestphp/pest-plugin-arch": "^3.1.1", + "pestphp/pest-plugin-mutate": "^3.0.5", + "php": "^8.2.0", + "phpunit/phpunit": "^11.5.33" + }, + "conflict": { + "filp/whoops": "<2.16.0", + "phpunit/phpunit": ">11.5.33", + "sebastian/exporter": "<6.0.0", + "webmozart/assert": "<1.11.0" + }, + "require-dev": { + "pestphp/pest-dev-tools": "^3.4.0", + "pestphp/pest-plugin-type-coverage": "^3.6.1", + "symfony/process": "^7.3.0" + }, + "bin": [ + "bin/pest" + ], + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Mutate\\Plugins\\Mutate", + "Pest\\Plugins\\Configuration", + "Pest\\Plugins\\Bail", + "Pest\\Plugins\\Cache", + "Pest\\Plugins\\Coverage", + "Pest\\Plugins\\Init", + "Pest\\Plugins\\Environment", + "Pest\\Plugins\\Help", + "Pest\\Plugins\\Memory", + "Pest\\Plugins\\Only", + "Pest\\Plugins\\Printer", + "Pest\\Plugins\\ProcessIsolation", + "Pest\\Plugins\\Profile", + "Pest\\Plugins\\Retry", + "Pest\\Plugins\\Snapshot", + "Pest\\Plugins\\Verbose", + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Parallel" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php", + "src/Pest.php" + ], + "psr-4": { + "Pest\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "The elegant PHP Testing Framework.", + "keywords": [ + "framework", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "issues": "https://github.com/pestphp/pest/issues", + "source": "https://github.com/pestphp/pest/tree/v3.8.4" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2025-08-20T19:12:42+00:00" + }, + { + "name": "pestphp/pest-plugin", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin.git", + "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e79b26c65bc11c41093b10150c1341cc5cdbea83", + "reference": "e79b26c65bc11c41093b10150c1341cc5cdbea83", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0.0", + "composer-runtime-api": "^2.2.2", + "php": "^8.2" + }, + "conflict": { + "pestphp/pest": "<3.0.0" + }, + "require-dev": { + "composer/composer": "^2.7.9", + "pestphp/pest": "^3.0.0", + "pestphp/pest-dev-tools": "^3.0.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Pest\\Plugin\\Manager" + }, + "autoload": { + "psr-4": { + "Pest\\Plugin\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest plugin manager", + "keywords": [ + "framework", + "manager", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin/tree/v3.0.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2024-09-08T23:21:41+00:00" + }, + { + "name": "pestphp/pest-plugin-arch", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-arch.git", + "reference": "db7bd9cb1612b223e16618d85475c6f63b9c8daa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/db7bd9cb1612b223e16618d85475c6f63b9c8daa", + "reference": "db7bd9cb1612b223e16618d85475c6f63b9c8daa", + "shasum": "" + }, + "require": { + "pestphp/pest-plugin": "^3.0.0", + "php": "^8.2", + "ta-tikoma/phpunit-architecture-test": "^0.8.4" + }, + "require-dev": { + "pestphp/pest": "^3.8.1", + "pestphp/pest-dev-tools": "^3.4.0" + }, + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Arch\\Plugin" + ] + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Arch\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Arch plugin for Pest PHP.", + "keywords": [ + "arch", + "architecture", + "framework", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-arch/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2025-04-16T22:59:48+00:00" + }, + { + "name": "pestphp/pest-plugin-laravel", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-laravel.git", + "reference": "6801be82fd92b96e82dd72e563e5674b1ce365fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/6801be82fd92b96e82dd72e563e5674b1ce365fc", + "reference": "6801be82fd92b96e82dd72e563e5674b1ce365fc", + "shasum": "" + }, + "require": { + "laravel/framework": "^11.39.1|^12.9.2", + "pestphp/pest": "^3.8.2", + "php": "^8.2.0" + }, + "require-dev": { + "laravel/dusk": "^8.2.13|dev-develop", + "orchestra/testbench": "^9.9.0|^10.2.1", + "pestphp/pest-dev-tools": "^3.4.0" + }, + "type": "library", + "extra": { + "pest": { + "plugins": [ + "Pest\\Laravel\\Plugin" + ] + }, + "laravel": { + "providers": [ + "Pest\\Laravel\\PestServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest Laravel Plugin", + "keywords": [ + "framework", + "laravel", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.2.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2025-04-21T07:40:53+00:00" + }, + { + "name": "pestphp/pest-plugin-mutate", + "version": "v3.0.5", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-mutate.git", + "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-mutate/zipball/e10dbdc98c9e2f3890095b4fe2144f63a5717e08", + "reference": "e10dbdc98c9e2f3890095b4fe2144f63a5717e08", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.2.0", + "pestphp/pest-plugin": "^3.0.0", + "php": "^8.2", + "psr/simple-cache": "^3.0.0" + }, + "require-dev": { + "pestphp/pest": "^3.0.8", + "pestphp/pest-dev-tools": "^3.0.0", + "pestphp/pest-plugin-type-coverage": "^3.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Pest\\Mutate\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Sandro Gehri", + "email": "sandrogehri@gmail.com" + } + ], + "description": "Mutates your code to find untested cases", + "keywords": [ + "framework", + "mutate", + "mutation", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-mutate/tree/v3.0.5" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/gehrisandro", + "type": "github" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + } + ], + "time": "2024-09-22T07:54:40+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "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.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+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.6.4", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/90a04bcbf03784066f16038e87e23a0a83cee3c2", + "reference": "90a04bcbf03784066f16038e87e23a0a83cee3c2", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.1", + "ext-filter": "*", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.5 || ~1.6.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-webmozart-assert": "^1.2", + "phpunit/phpunit": "^9.5", + "psalm/phar": "^5.26" + }, + "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": "opensource@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.6.4" + }, + "time": "2025-11-17T21:13:10+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3", + "reference": "8cbe6100e8971efbf8e2e7da3a202ba83eafd5a3", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.3 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.18|^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "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.11.0" + }, + "time": "2025-11-19T20:28:58+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^5.3.0", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" + }, + "time": "2025-08-30T15:50:23+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "11.0.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "reference": "4f7722aa9a7b76aa775e2d9d4e95d1ea16eeeef4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^5.4.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-text-template": "^4.0.1", + "sebastian/code-unit-reverse-lookup": "^4.0.1", + "sebastian/complexity": "^4.0.1", + "sebastian/environment": "^7.2.0", + "sebastian/lines-of-code": "^3.0.1", + "sebastian/version": "^5.0.2", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^11.5.2" + }, + "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-main": "11.0.x-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/11.0.11" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage", + "type": "tidelift" + } + ], + "time": "2025-08-27T14:37:49+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "5.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/118cfaaa8bc5aef3287bf315b6060b1174754af6", + "reference": "118cfaaa8bc5aef3287bf315b6060b1174754af6", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-27T05:02:59+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "5.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2", + "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^11.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:07:44+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.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", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:08:43+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "7.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.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", + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:09:35+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "11.5.33", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "5965e9ff57546cb9137c0ff6aa78cb7442b05cf6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5965e9ff57546cb9137c0ff6aa78cb7442b05cf6", + "reference": "5965e9ff57546cb9137c0ff6aa78cb7442b05cf6", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.13.4", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0.10", + "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-invoker": "^5.0.1", + "phpunit/php-text-template": "^4.0.1", + "phpunit/php-timer": "^7.0.1", + "sebastian/cli-parser": "^3.0.2", + "sebastian/code-unit": "^3.0.3", + "sebastian/comparator": "^6.3.2", + "sebastian/diff": "^6.0.2", + "sebastian/environment": "^7.2.1", + "sebastian/exporter": "^6.3.0", + "sebastian/global-state": "^7.0.2", + "sebastian/object-enumerator": "^6.0.1", + "sebastian/type": "^5.1.3", + "sebastian/version": "^5.0.2", + "staabm/side-effects-detector": "^1.0.5" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "11.5-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/11.5.33" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2025-08-16T05:19:02+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180", + "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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 for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:41:36+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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", + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2025-03-19T07:56:08+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e", + "reference": "183a9b2632194febd219bb9246eee421dad8d45e", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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", + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:45:54+00:00" + }, + { + "name": "sebastian/comparator", + "version": "6.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/85c77556683e6eee4323e4c5468641ca0237e2e8", + "reference": "85c77556683e6eee4323e4c5468641ca0237e2e8", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.4" + }, + "suggest": { + "ext-bcmath": "For comparing BcMath\\Number objects" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-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", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" + } + ], + "time": "2025-08-10T08:07:46+00:00" + }, + { + "name": "sebastian/complexity", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0", + "reference": "ee41d384ab1906c68852636b6de493846e13e5a0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.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", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:49:50+00:00" + }, + { + "name": "sebastian/diff", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.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", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:53:05+00:00" + }, + { + "name": "sebastian/environment", + "version": "7.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4", + "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.2-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": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/environment", + "type": "tidelift" + } + ], + "time": "2025-05-21T11:55:47+00:00" + }, + { + "name": "sebastian/exporter", + "version": "6.3.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74", + "reference": "70a298763b40b213ec087c51c739efcaa90bcd74", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.3-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", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" + } + ], + "time": "2025-09-24T06:12:51+00:00" + }, + { + "name": "sebastian/global-state", + "version": "7.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7", + "reference": "3be331570a721f9a4b5917f4209773de17f747d7", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "7.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": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:57:36+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^5.0", + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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 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", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T04:58:38+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "6.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa", + "reference": "f5b498e631a74204185071eb41f33f38d64608aa", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.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", + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:00:13+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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", + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-07-03T05:01:32+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.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", + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" + } + ], + "time": "2025-08-13T04:42:22+00:00" + }, + { + "name": "sebastian/type", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "require-dev": { + "phpunit/phpunit": "^11.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.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": "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", + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/type", + "type": "tidelift" + } + ], + "time": "2025-08-09T06:55:48+00:00" + }, + { + "name": "sebastian/version", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", + "shasum": "" + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "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": "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", + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-10-09T05:16:32+00:00" + }, + { + "name": "staabm/side-effects-detector", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/staabm/side-effects-detector.git", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163", + "reference": "d8334211a140ce329c13726d4a715adbddd0a163", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^1.12.6", + "phpunit/phpunit": "^9.6.21", + "symfony/var-dumper": "^5.4.43", + "tomasvotruba/type-coverage": "1.0.0", + "tomasvotruba/unused-public": "1.0.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A static analysis tool to detect side effects in PHP code", + "keywords": [ + "static analysis" + ], + "support": { + "issues": "https://github.com/staabm/side-effects-detector/issues", + "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5" + }, + "funding": [ + { + "url": "https://github.com/staabm", + "type": "github" + } + ], + "time": "2024-10-20T05:08:20+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "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.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-09-09T11:45:10+00:00" + }, + { + "name": "symfony/yaml", + "version": "v7.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "reference": "90208e2fc6f68f613eae7ca25a2458a931b1bacc", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<6.4" + }, + "require-dev": { + "symfony/console": "^6.4|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "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": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v7.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-09-27T09:00:46+00:00" + }, + { + "name": "ta-tikoma/phpunit-architecture-test", + "version": "0.8.5", + "source": { + "type": "git", + "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git", + "reference": "cf6fb197b676ba716837c886baca842e4db29005" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/cf6fb197b676ba716837c886baca842e4db29005", + "reference": "cf6fb197b676ba716837c886baca842e4db29005", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18.0 || ^5.0.0", + "php": "^8.1.0", + "phpdocumentor/reflection-docblock": "^5.3.0", + "phpunit/phpunit": "^10.5.5 || ^11.0.0 || ^12.0.0", + "symfony/finder": "^6.4.0 || ^7.0.0" + }, + "require-dev": { + "laravel/pint": "^1.13.7", + "phpstan/phpstan": "^1.10.52" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPUnit\\Architecture\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ni Shi", + "email": "futik0ma011@gmail.com" + }, + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Methods for testing application architecture", + "keywords": [ + "architecture", + "phpunit", + "stucture", + "test", + "testing" + ], + "support": { + "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues", + "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.5" + }, + "time": "2025-04-20T20:23:40+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.3.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c", + "reference": "b7489ce515e168639d17feec34b8847c326b0b3c", + "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.3.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2025-11-17T20:03:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-date": "*", + "ext-filter": "*", + "php": "^7.2 || ^8.0" + }, + "suggest": { + "ext-intl": "", + "ext-simplexml": "", + "ext-spl": "" + }, + "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.12.1" + }, + "time": "2025-10-29T15:56:20+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^8.2" + }, + "platform-dev": {}, + "plugin-api-version": "2.6.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..324b513 --- /dev/null +++ b/config/app.php @@ -0,0 +1,126 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool) env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | the application so that it's available within Artisan commands. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. The timezone + | is set to "UTC" by default as it is suitable for most use cases. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by Laravel's translation / localization methods. This option can be + | set to any locale for which you plan to have translation strings. + | + */ + + 'locale' => env('APP_LOCALE', 'en'), + + 'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'), + + 'faker_locale' => env('APP_FAKER_LOCALE', 'en_US'), + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is utilized by Laravel's encryption services and should be set + | to a random, 32 character string to ensure that all encrypted values + | are secure. You should do this prior to deploying the application. + | + */ + + 'cipher' => 'AES-256-CBC', + + 'key' => env('APP_KEY'), + + 'previous_keys' => [ + ...array_filter( + explode(',', env('APP_PREVIOUS_KEYS', '')) + ), + ], + + /* + |-------------------------------------------------------------------------- + | Maintenance Mode Driver + |-------------------------------------------------------------------------- + | + | These configuration options determine the driver used to determine and + | manage Laravel's "maintenance mode" status. The "cache" driver will + | allow maintenance mode to be controlled across multiple machines. + | + | Supported drivers: "file", "cache" + | + */ + + 'maintenance' => [ + 'driver' => env('APP_MAINTENANCE_DRIVER', 'file'), + 'store' => env('APP_MAINTENANCE_STORE', 'database'), + ], + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..0ba5d5d --- /dev/null +++ b/config/auth.php @@ -0,0 +1,115 @@ + [ + 'guard' => env('AUTH_GUARD', 'web'), + 'passwords' => env('AUTH_PASSWORD_BROKER', 'users'), + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | which utilizes session storage plus the Eloquent user provider. + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication guards have a user provider, which defines how the + | users are actually retrieved out of your database or other storage + | system used by the application. Typically, Eloquent is utilized. + | + | If you have multiple user tables or models you may configure multiple + | providers to represent the model / table. These providers may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => env('AUTH_MODEL', App\Models\User::class), + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | These configuration options specify the behavior of Laravel's password + | reset functionality, including the table utilized for token storage + | and the user provider that is invoked to actually retrieve users. + | + | The expiry time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + | The throttle setting is the number of seconds a user must wait before + | generating more password reset tokens. This prevents the user from + | quickly generating a very large amount of password reset tokens. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => env('AUTH_PASSWORD_RESET_TOKEN_TABLE', 'password_reset_tokens'), + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | window expires and users are asked to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => env('AUTH_PASSWORD_TIMEOUT', 10800), + +]; diff --git a/config/blade-flags.php b/config/blade-flags.php new file mode 100644 index 0000000..2625cb6 --- /dev/null +++ b/config/blade-flags.php @@ -0,0 +1,57 @@ + 'flag', + + /* + |----------------------------------------------------------------- + | Fallback Icon + |----------------------------------------------------------------- + | + | This config option allows you to define a fallback + | icon when an icon in this set cannot be found. + | + */ + + 'fallback' => 'country-xx', + + /* + |----------------------------------------------------------------- + | Default Set Classes + |----------------------------------------------------------------- + | + | This config option allows you to define some classes which + | will be applied by default to all icons within this set. + | + */ + + 'class' => '', + + /* + |----------------------------------------------------------------- + | Default Set Attributes + |----------------------------------------------------------------- + | + | This config option allows you to define some attributes which + | will be applied by default to all icons within this set. + | + */ + + 'attributes' => [ + 'width' => 100, + 'height' => 50, + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..925f7d2 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,108 @@ + env('CACHE_STORE', 'database'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "array", "database", "file", "memcached", + | "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_CACHE_CONNECTION'), + 'table' => env('DB_CACHE_TABLE', 'cache'), + 'lock_connection' => env('DB_CACHE_LOCK_CONNECTION'), + 'lock_table' => env('DB_CACHE_LOCK_TABLE'), + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + 'lock_path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_CACHE_CONNECTION', 'cache'), + 'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'), + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing the APC, database, memcached, Redis, and DynamoDB cache + | stores, there might be other applications using the same cache. For + | that reason, you may prefix every cache key to avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache_'), + +]; diff --git a/config/ciphersweet.php b/config/ciphersweet.php new file mode 100644 index 0000000..188019c --- /dev/null +++ b/config/ciphersweet.php @@ -0,0 +1,54 @@ + env('CIPHERSWEET_BACKEND', 'nacl'), + + /** + * Set backend-specific options here. "custom" points to a factory class that returns a + * backend from its `__invoke` method. Please see the docs for more details. + */ + 'backends' => [ + // 'custom' => CustomBackendFactory::class, + ], + + /** + * Select which key provider your application will use. The default option + * is to read a string literal out of .env, but it's also possible to + * provide the key in a file or use random keys for testing. + * + * Supported: "file", "random", "string", "custom" + */ + 'provider' => env('CIPHERSWEET_PROVIDER', 'string'), + + /** + * Set provider-specific options here. "string" will read the key directly + * from your .env file. "file" will read the contents of the specified file + * to use as your key. "custom" points to a factory class that returns a + * provider from its `__invoke` method. Please see the docs for more details. + */ + 'providers' => [ + 'file' => [ + 'path' => env('CIPHERSWEET_FILE_PATH'), + ], + 'string' => [ + 'key' => env('CIPHERSWEET_KEY'), + ], + // 'custom' => CustomKeyProviderFactory::class, + ], + + /* + * The provided code snippet checks whether the $permitEmpty property is set to false + * for a given field. If it is not set to false, it throws an EmptyFieldException indicating + * that the field is not defined in the row. This ensures that the code enforces the requirement for + * the field to have a value and alerts the user if it is empty or undefined. + * Supported: "true", "false" + */ + 'permit_empty' => env('CIPHERSWEET_PERMIT_EMPTY', FALSE) +]; diff --git a/config/countries.php b/config/countries.php new file mode 100644 index 0000000..99ad73a --- /dev/null +++ b/config/countries.php @@ -0,0 +1,10 @@ + [] +]; \ No newline at end of file diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..8910562 --- /dev/null +++ b/config/database.php @@ -0,0 +1,174 @@ + env('DB_CONNECTION', 'sqlite'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Below are all of the database connections defined for your application. + | An example configuration is provided for each database system which + | is supported by Laravel. You're free to add / remove connections. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DB_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'busy_timeout' => null, + 'journal_mode' => null, + 'synchronous' => null, + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'mariadb' => [ + 'driver' => 'mariadb', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => env('DB_CHARSET', 'utf8mb4'), + 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + 'search_path' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DB_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'laravel'), + 'username' => env('DB_USERNAME', 'root'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => env('DB_CHARSET', 'utf8'), + 'prefix' => '', + 'prefix_indexes' => true, + // 'encrypt' => env('DB_ENCRYPT', 'yes'), + // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run on the database. + | + */ + + 'migrations' => [ + 'table' => 'migrations', + 'update_date_on_publish' => true, + ], + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as Memcached. You may define your connection settings here. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + 'persistent' => env('REDIS_PERSISTENT', false), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'username' => env('REDIS_USERNAME'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..3d671bd --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,80 @@ + env('FILESYSTEM_DISK', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Below you may configure as many filesystem disks as necessary, and you + | may even configure multiple disks for the same driver. Examples for + | most supported storage drivers are configured here for reference. + | + | Supported drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app/private'), + 'serve' => true, + 'throw' => false, + 'report' => false, + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + 'throw' => false, + 'report' => false, + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + 'throw' => false, + 'report' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..8d94292 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,132 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => [ + 'channel' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + 'trace' => env('LOG_DEPRECATIONS_TRACE', false), + ], + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Laravel + | utilizes the Monolog PHP logging library, which includes a variety + | of powerful log handlers and formatters that you're free to use. + | + | Available drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", "custom", "stack" + | + */ + + 'channels' => [ + + 'stack' => [ + 'driver' => 'stack', + 'channels' => explode(',', env('LOG_STACK', 'single')), + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => env('LOG_DAILY_DAYS', 14), + 'replace_placeholders' => true, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => env('LOG_SLACK_USERNAME', 'Laravel Log'), + 'emoji' => env('LOG_SLACK_EMOJI', ':boom:'), + 'level' => env('LOG_LEVEL', 'critical'), + 'replace_placeholders' => true, + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => env('LOG_PAPERTRAIL_HANDLER', SyslogUdpHandler::class), + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + 'connectionString' => 'tls://'.env('PAPERTRAIL_URL').':'.env('PAPERTRAIL_PORT'), + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + 'processors' => [PsrLogMessageProcessor::class], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + 'facility' => env('LOG_SYSLOG_FACILITY', LOG_USER), + 'replace_placeholders' => true, + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + 'replace_placeholders' => true, + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..756305b --- /dev/null +++ b/config/mail.php @@ -0,0 +1,116 @@ + env('MAIL_MAILER', 'log'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" + | + */ + + 'mailers' => [ + + 'smtp' => [ + 'transport' => 'smtp', + 'scheme' => env('MAIL_SCHEME'), + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'resend' => [ + 'transport' => 'resend', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + +]; diff --git a/config/permission.php b/config/permission.php new file mode 100644 index 0000000..f39f6b5 --- /dev/null +++ b/config/permission.php @@ -0,0 +1,202 @@ + [ + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * Eloquent model should be used to retrieve your permissions. Of course, it + * is often just the "Permission" model but you may use whatever you like. + * + * The model you want to use as a Permission model needs to implement the + * `Spatie\Permission\Contracts\Permission` contract. + */ + + 'permission' => Spatie\Permission\Models\Permission::class, + + /* + * When using the "HasRoles" trait from this package, we need to know which + * Eloquent model should be used to retrieve your roles. Of course, it + * is often just the "Role" model but you may use whatever you like. + * + * The model you want to use as a Role model needs to implement the + * `Spatie\Permission\Contracts\Role` contract. + */ + + 'role' => Spatie\Permission\Models\Role::class, + + ], + + 'table_names' => [ + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'roles' => 'roles', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your permissions. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'permissions' => 'permissions', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your models permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_permissions' => 'model_has_permissions', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your models roles. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_roles' => 'model_has_roles', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'role_has_permissions' => 'role_has_permissions', + ], + + 'column_names' => [ + /* + * Change this if you want to name the related pivots other than defaults + */ + 'role_pivot_key' => null, // default 'role_id', + 'permission_pivot_key' => null, // default 'permission_id', + + /* + * Change this if you want to name the related model primary key other than + * `model_id`. + * + * For example, this would be nice if your primary keys are all UUIDs. In + * that case, name this `model_uuid`. + */ + + 'model_morph_key' => 'model_id', + + /* + * Change this if you want to use the teams feature and your related model's + * foreign key is other than `team_id`. + */ + + 'team_foreign_key' => 'team_id', + ], + + /* + * When set to true, the method for checking permissions will be registered on the gate. + * Set this to false if you want to implement custom logic for checking permissions. + */ + + 'register_permission_check_method' => true, + + /* + * When set to true, Laravel\Octane\Events\OperationTerminated event listener will be registered + * this will refresh permissions on every TickTerminated, TaskTerminated and RequestTerminated + * NOTE: This should not be needed in most cases, but an Octane/Vapor combination benefited from it. + */ + 'register_octane_reset_listener' => false, + + /* + * Events will fire when a role or permission is assigned/unassigned: + * \Spatie\Permission\Events\RoleAttached + * \Spatie\Permission\Events\RoleDetached + * \Spatie\Permission\Events\PermissionAttached + * \Spatie\Permission\Events\PermissionDetached + * + * To enable, set to true, and then create listeners to watch these events. + */ + 'events_enabled' => false, + + /* + * Teams Feature. + * When set to true the package implements teams using the 'team_foreign_key'. + * If you want the migrations to register the 'team_foreign_key', you must + * set this to true before doing the migration. + * If you already did the migration then you must make a new migration to also + * add 'team_foreign_key' to 'roles', 'model_has_roles', and 'model_has_permissions' + * (view the latest version of this package's migration file) + */ + + 'teams' => false, + + /* + * The class to use to resolve the permissions team id + */ + 'team_resolver' => \Spatie\Permission\DefaultTeamResolver::class, + + /* + * Passport Client Credentials Grant + * When set to true the package will use Passports Client to check permissions + */ + + 'use_passport_client_credentials' => false, + + /* + * When set to true, the required permission names are added to exception messages. + * This could be considered an information leak in some contexts, so the default + * setting is false here for optimum safety. + */ + + 'display_permission_in_exception' => false, + + /* + * When set to true, the required role names are added to exception messages. + * This could be considered an information leak in some contexts, so the default + * setting is false here for optimum safety. + */ + + 'display_role_in_exception' => false, + + /* + * By default wildcard permission lookups are disabled. + * See documentation to understand supported syntax. + */ + + 'enable_wildcard_permission' => false, + + /* + * The class to use for interpreting wildcard permissions. + * If you need to modify delimiters, override the class and specify its name here. + */ + // 'wildcard_permission' => Spatie\Permission\WildcardPermission::class, + + /* Cache-specific settings */ + + 'cache' => [ + + /* + * By default all permissions are cached for 24 hours to speed up performance. + * When permissions or roles are updated the cache is flushed automatically. + */ + + 'expiration_time' => \DateInterval::createFromDateString('24 hours'), + + /* + * The cache key used to store all permissions. + */ + + 'key' => 'spatie.permission.cache', + + /* + * You may optionally indicate a specific cache driver to use for permission and + * role caching using any of the `store` drivers listed in the cache.php config + * file. Using 'default' here means to use the `default` set in cache.php. + */ + + 'store' => 'default', + ], +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..116bd8d --- /dev/null +++ b/config/queue.php @@ -0,0 +1,112 @@ + env('QUEUE_CONNECTION', 'database'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection options for every queue backend + | used by your application. An example configuration is provided for + | each backend supported by Laravel. You're also free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'connection' => env('DB_QUEUE_CONNECTION'), + 'table' => env('DB_QUEUE_TABLE', 'jobs'), + 'queue' => env('DB_QUEUE', 'default'), + 'retry_after' => (int) env('DB_QUEUE_RETRY_AFTER', 90), + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => env('BEANSTALKD_QUEUE_HOST', 'localhost'), + 'queue' => env('BEANSTALKD_QUEUE', 'default'), + 'retry_after' => (int) env('BEANSTALKD_QUEUE_RETRY_AFTER', 90), + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => env('REDIS_QUEUE_CONNECTION', 'default'), + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => (int) env('REDIS_QUEUE_RETRY_AFTER', 90), + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Job Batching + |-------------------------------------------------------------------------- + | + | The following options configure the database and table that store job + | batching information. These options can be updated to any database + | connection and table which has been defined by your application. + | + */ + + 'batching' => [ + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'job_batches', + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control how and where failed jobs are stored. Laravel ships with + | support for storing failed jobs in a simple file or in a database. + | + | Supported drivers: "database-uuids", "dynamodb", "file", "null" + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'sqlite'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..27a3617 --- /dev/null +++ b/config/services.php @@ -0,0 +1,38 @@ + [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + + 'resend' => [ + 'key' => env('RESEND_KEY'), + ], + + 'slack' => [ + 'notifications' => [ + 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), + 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), + ], + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..ba0aa60 --- /dev/null +++ b/config/session.php @@ -0,0 +1,217 @@ + env('SESSION_DRIVER', 'database'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to expire immediately when the browser is closed then you may + | indicate that via the expire_on_close configuration option. + | + */ + + 'lifetime' => (int) env('SESSION_LIFETIME', 120), + + 'expire_on_close' => env('SESSION_EXPIRE_ON_CLOSE', false), + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it's stored. All encryption is performed + | automatically by Laravel and you may use the session like normal. + | + */ + + 'encrypt' => env('SESSION_ENCRYPT', false), + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When utilizing the "file" session driver, the session files are placed + | on disk. The default storage location is defined here; however, you + | are free to provide another location where they should be stored. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION'), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table to + | be used to store sessions. Of course, a sensible default is defined + | for you; however, you're welcome to change this to another table. + | + */ + + 'table' => env('SESSION_TABLE', 'sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using one of the framework's cache driven session backends, you may + | define the cache store which should be used to store the session data + | between requests. This must match one of your defined cache stores. + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE'), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the session cookie that is created by + | the framework. Typically, you should not need to change this value + | since doing so does not grant a meaningful security improvement. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application, but you're free to change this when necessary. + | + */ + + 'path' => env('SESSION_PATH', '/'), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | This value determines the domain and subdomains the session cookie is + | available to. By default, the cookie will be available to the root + | domain and all subdomains. Typically, this shouldn't be changed. + | + */ + + 'domain' => env('SESSION_DOMAIN'), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. It's unlikely you should disable this option. + | + */ + + 'http_only' => env('SESSION_HTTP_ONLY', true), + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" to permit secure cross-site requests. + | + | See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => env('SESSION_SAME_SITE', 'lax'), + + /* + |-------------------------------------------------------------------------- + | Partitioned Cookies + |-------------------------------------------------------------------------- + | + | Setting this value to true will tie the cookie to the top-level site for + | a cross-site context. Partitioned cookies are accepted by the browser + | when flagged "secure" and the Same-Site attribute is set to "none". + | + */ + + 'partitioned' => env('SESSION_PARTITIONED_COOKIE', false), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..584104c --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,44 @@ + + */ +class UserFactory extends Factory +{ + /** + * The current password being used by the factory. + */ + protected static ?string $password; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'name' => fake()->name(), + 'email' => fake()->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => static::$password ??= Hash::make('password'), + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + */ + public function unverified(): static + { + return $this->state(fn (array $attributes) => [ + 'email_verified_at' => null, + ]); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..5daa2b9 --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,45 @@ +id(); + $table->string('name'); + $table->string('public_key') + ->unique() + ->nullable(); + $table->string('email') + ->unique() + ->nullable(); + $table->timestamp('email_verified_at') + ->nullable(); + $table->string('password') + ->nullable(); + $table->rememberToken(); + $table->foreignId('current_team_id') + ->nullable(); + $table->string('profile_photo_path', 2048) + ->nullable(); + $table->boolean('is_lecturer') + ->default(false); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('users'); + } +}; diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..4f42fe6 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,28 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('password_resets'); + } +}; diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..249da81 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('failed_jobs'); + } +}; diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..e828ad8 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,33 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamp('expires_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('personal_access_tokens'); + } +}; diff --git a/database/migrations/2020_05_21_300000_create_permission_tables.php b/database/migrations/2020_05_21_300000_create_permission_tables.php new file mode 100644 index 0000000..ce4d9d2 --- /dev/null +++ b/database/migrations/2020_05_21_300000_create_permission_tables.php @@ -0,0 +1,136 @@ +engine('InnoDB'); + $table->bigIncrements('id'); // permission id + $table->string('name'); // For MyISAM use string('name', 225); // (or 166 for InnoDB with Redundant/Compact row format) + $table->string('guard_name'); // For MyISAM use string('guard_name', 25); + $table->timestamps(); + + $table->unique(['name', 'guard_name']); + }); + + Schema::create($tableNames['roles'], static function (Blueprint $table) use ($teams, $columnNames) { + // $table->engine('InnoDB'); + $table->bigIncrements('id'); // role id + if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing + $table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable(); + $table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index'); + } + $table->string('name'); // For MyISAM use string('name', 225); // (or 166 for InnoDB with Redundant/Compact row format) + $table->string('guard_name'); // For MyISAM use string('guard_name', 25); + $table->timestamps(); + if ($teams || config('permission.testing')) { + $table->unique([$columnNames['team_foreign_key'], 'name', 'guard_name']); + } else { + $table->unique(['name', 'guard_name']); + } + }); + + Schema::create($tableNames['model_has_permissions'], static function (Blueprint $table) use ($tableNames, $columnNames, $pivotPermission, $teams) { + $table->unsignedBigInteger($pivotPermission); + + $table->string('model_type'); + $table->unsignedBigInteger($columnNames['model_morph_key']); + $table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index'); + + $table->foreign($pivotPermission) + ->references('id') // permission id + ->on($tableNames['permissions']) + ->onDelete('cascade'); + if ($teams) { + $table->unsignedBigInteger($columnNames['team_foreign_key']); + $table->index($columnNames['team_foreign_key'], 'model_has_permissions_team_foreign_key_index'); + + $table->primary([$columnNames['team_foreign_key'], $pivotPermission, $columnNames['model_morph_key'], 'model_type'], + 'model_has_permissions_permission_model_type_primary'); + } else { + $table->primary([$pivotPermission, $columnNames['model_morph_key'], 'model_type'], + 'model_has_permissions_permission_model_type_primary'); + } + + }); + + Schema::create($tableNames['model_has_roles'], static function (Blueprint $table) use ($tableNames, $columnNames, $pivotRole, $teams) { + $table->unsignedBigInteger($pivotRole); + + $table->string('model_type'); + $table->unsignedBigInteger($columnNames['model_morph_key']); + $table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index'); + + $table->foreign($pivotRole) + ->references('id') // role id + ->on($tableNames['roles']) + ->onDelete('cascade'); + if ($teams) { + $table->unsignedBigInteger($columnNames['team_foreign_key']); + $table->index($columnNames['team_foreign_key'], 'model_has_roles_team_foreign_key_index'); + + $table->primary([$columnNames['team_foreign_key'], $pivotRole, $columnNames['model_morph_key'], 'model_type'], + 'model_has_roles_role_model_type_primary'); + } else { + $table->primary([$pivotRole, $columnNames['model_morph_key'], 'model_type'], + 'model_has_roles_role_model_type_primary'); + } + }); + + Schema::create($tableNames['role_has_permissions'], static function (Blueprint $table) use ($tableNames, $pivotRole, $pivotPermission) { + $table->unsignedBigInteger($pivotPermission); + $table->unsignedBigInteger($pivotRole); + + $table->foreign($pivotPermission) + ->references('id') // permission id + ->on($tableNames['permissions']) + ->onDelete('cascade'); + + $table->foreign($pivotRole) + ->references('id') // role id + ->on($tableNames['roles']) + ->onDelete('cascade'); + + $table->primary([$pivotPermission, $pivotRole], 'role_has_permissions_permission_id_role_id_primary'); + }); + + app('cache') + ->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null) + ->forget(config('permission.cache.key')); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + $tableNames = config('permission.table_names'); + + if (empty($tableNames)) { + throw new \Exception('Error: config/permission.php not found and defaults could not be merged. Please publish the package configuration before proceeding, or drop the tables manually.'); + } + + Schema::drop($tableNames['role_has_permissions']); + Schema::drop($tableNames['model_has_roles']); + Schema::drop($tableNames['model_has_permissions']); + Schema::drop($tableNames['roles']); + Schema::drop($tableNames['permissions']); + } +}; diff --git a/database/migrations/2022_12_01_145948_create_countries_table.php b/database/migrations/2022_12_01_145948_create_countries_table.php new file mode 100644 index 0000000..5a06384 --- /dev/null +++ b/database/migrations/2022_12_01_145948_create_countries_table.php @@ -0,0 +1,31 @@ +id(); + $table->string('name'); + $table->string('code'); + $table->json('language_codes') + ->default('[]'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('countries'); + } +}; diff --git a/database/migrations/2022_12_01_145949_create_cities_table.php b/database/migrations/2022_12_01_145949_create_cities_table.php new file mode 100644 index 0000000..bef706a --- /dev/null +++ b/database/migrations/2022_12_01_145949_create_cities_table.php @@ -0,0 +1,39 @@ +id(); + $table->foreignId('country_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->string('name') + ->unique(); + $table->string('slug') + ->unique(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('cities'); + } +}; diff --git a/database/migrations/2022_12_01_145950_create_lecturers_table.php b/database/migrations/2022_12_01_145950_create_lecturers_table.php new file mode 100644 index 0000000..2c1650a --- /dev/null +++ b/database/migrations/2022_12_01_145950_create_lecturers_table.php @@ -0,0 +1,34 @@ +id(); + $table->string('name')->unique(); + $table->string('slug')->unique(); + $table->boolean('active')->default(true); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('lecturers'); + } +}; diff --git a/database/migrations/2022_12_01_145951_create_participants_table.php b/database/migrations/2022_12_01_145951_create_participants_table.php new file mode 100644 index 0000000..9e9b4af --- /dev/null +++ b/database/migrations/2022_12_01_145951_create_participants_table.php @@ -0,0 +1,33 @@ +id(); + $table->string('first_name'); + $table->string('last_name'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('participants'); + } +}; diff --git a/database/migrations/2022_12_01_145952_create_categories_table.php b/database/migrations/2022_12_01_145952_create_categories_table.php new file mode 100644 index 0000000..7050ef1 --- /dev/null +++ b/database/migrations/2022_12_01_145952_create_categories_table.php @@ -0,0 +1,33 @@ +id(); + $table->string('name'); + $table->string('slug')->unique(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('categories'); + } +}; diff --git a/database/migrations/2022_12_01_145953_create_courses_table.php b/database/migrations/2022_12_01_145953_create_courses_table.php new file mode 100644 index 0000000..aee6a89 --- /dev/null +++ b/database/migrations/2022_12_01_145953_create_courses_table.php @@ -0,0 +1,33 @@ +id(); + $table->foreignId('lecturer_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->string('name'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('courses'); + } +}; diff --git a/database/migrations/2022_12_01_145954_create_venues_table.php b/database/migrations/2022_12_01_145954_create_venues_table.php new file mode 100644 index 0000000..e581665 --- /dev/null +++ b/database/migrations/2022_12_01_145954_create_venues_table.php @@ -0,0 +1,35 @@ +id(); + $table->foreignId('city_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->string('name')->unique(); + $table->string('slug')->unique(); + $table->string('street'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('venues'); + } +}; diff --git a/database/migrations/2022_12_01_145955_create_course_events_table.php b/database/migrations/2022_12_01_145955_create_course_events_table.php new file mode 100644 index 0000000..29a33b4 --- /dev/null +++ b/database/migrations/2022_12_01_145955_create_course_events_table.php @@ -0,0 +1,35 @@ +id(); + $table->foreignId('course_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignId('venue_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->dateTime('from'); + $table->dateTime('to'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('course_events'); + } +}; diff --git a/database/migrations/2022_12_01_145956_create_registrations_table.php b/database/migrations/2022_12_01_145956_create_registrations_table.php new file mode 100644 index 0000000..6ac3fd5 --- /dev/null +++ b/database/migrations/2022_12_01_145956_create_registrations_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignId('course_event_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate()->primary(); + $table->foreignId('participant_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate()->primary(); + $table->boolean('active')->default(true); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('registrations'); + } +}; diff --git a/database/migrations/2022_12_01_145957_create_category_course_table.php b/database/migrations/2022_12_01_145957_create_category_course_table.php new file mode 100644 index 0000000..a35a1d1 --- /dev/null +++ b/database/migrations/2022_12_01_145957_create_category_course_table.php @@ -0,0 +1,31 @@ +foreignId('category_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignId('course_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('category_course'); + } +}; diff --git a/database/migrations/2022_12_01_180529_create_login_keys_table.php b/database/migrations/2022_12_01_180529_create_login_keys_table.php new file mode 100644 index 0000000..7f9e753 --- /dev/null +++ b/database/migrations/2022_12_01_180529_create_login_keys_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('k1'); + $table->foreignId('user_id') + ->index(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('login_keys'); + } +}; diff --git a/database/migrations/2022_12_01_210526_add_geo_fields_to_cities_table.php b/database/migrations/2022_12_01_210526_add_geo_fields_to_cities_table.php new file mode 100644 index 0000000..921803e --- /dev/null +++ b/database/migrations/2022_12_01_210526_add_geo_fields_to_cities_table.php @@ -0,0 +1,29 @@ +double('longitude'); + $table->double('latitude'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('cities', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_01_214707_create_media_table.php b/database/migrations/2022_12_01_214707_create_media_table.php new file mode 100644 index 0000000..93a1b42 --- /dev/null +++ b/database/migrations/2022_12_01_214707_create_media_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + + $table->morphs('model'); + $table->uuid('uuid')->nullable()->unique(); + $table->string('collection_name'); + $table->string('name'); + $table->string('file_name'); + $table->string('mime_type')->nullable(); + $table->string('disk'); + $table->string('conversions_disk')->nullable(); + $table->unsignedBigInteger('size'); + $table->json('manipulations'); + $table->json('custom_properties'); + $table->json('generated_conversions'); + $table->json('responsive_images'); + $table->unsignedInteger('order_column')->nullable()->index(); + + $table->nullableTimestamps(); + }); + } +}; diff --git a/database/migrations/2022_12_02_133043_add_timezone_field_to_users_table.php b/database/migrations/2022_12_02_133043_add_timezone_field_to_users_table.php new file mode 100644 index 0000000..725db3f --- /dev/null +++ b/database/migrations/2022_12_02_133043_add_timezone_field_to_users_table.php @@ -0,0 +1,29 @@ +string('timezone') + ->default('Europe/Berlin'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_02_162000_create_trix_tables.php b/database/migrations/2022_12_02_162000_create_trix_tables.php new file mode 100644 index 0000000..780bf3f --- /dev/null +++ b/database/migrations/2022_12_02_162000_create_trix_tables.php @@ -0,0 +1,44 @@ +increments('id'); + $table->string('draft_id') + ->index(); + $table->string('attachment'); + $table->string('disk'); + $table->timestamps(); + }); + + Schema::create('nova_trix_attachments', function (Blueprint $table) { + $table->increments('id'); + $table->string('attachable_type'); + $table->unsignedInteger('attachable_id'); + $table->string('attachment'); + $table->string('disk'); + $table->string('url') + ->index(); + $table->timestamps(); + + $table->index(['attachable_type', 'attachable_id']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php b/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php new file mode 100644 index 0000000..b1be83a --- /dev/null +++ b/database/migrations/2022_12_02_162124_add_description_field_to_lecturers_table.php @@ -0,0 +1,30 @@ +longText('description') + ->fulltext() + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php b/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php new file mode 100644 index 0000000..c27c1fc --- /dev/null +++ b/database/migrations/2022_12_03_180232_add_description_field_to_courses_table.php @@ -0,0 +1,30 @@ +longText('description') + ->fulltext() + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('courses', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_03_183452_add_link_field_to_course_events_table.php b/database/migrations/2022_12_03_183452_add_link_field_to_course_events_table.php new file mode 100644 index 0000000..4643838 --- /dev/null +++ b/database/migrations/2022_12_03_183452_add_link_field_to_course_events_table.php @@ -0,0 +1,28 @@ +string('link'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('course_events', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_04_154911_create_podcasts_table.php b/database/migrations/2022_12_04_154911_create_podcasts_table.php new file mode 100644 index 0000000..bb98f1a --- /dev/null +++ b/database/migrations/2022_12_04_154911_create_podcasts_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('guid') + ->unique(); + $table->boolean('locked') + ->default(true); + $table->string('title'); + $table->string('link'); + $table->string('language_code'); + $table->json('data') + ->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('podcasts'); + } +}; diff --git a/database/migrations/2022_12_04_154912_create_episodes_table.php b/database/migrations/2022_12_04_154912_create_episodes_table.php new file mode 100644 index 0000000..51df01a --- /dev/null +++ b/database/migrations/2022_12_04_154912_create_episodes_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('guid') + ->unique(); + $table->foreignId('podcast_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->json('data'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('episodes'); + } +}; diff --git a/database/migrations/2022_12_04_170737_create_tag_tables.php b/database/migrations/2022_12_04_170737_create_tag_tables.php new file mode 100644 index 0000000..1f6e1c7 --- /dev/null +++ b/database/migrations/2022_12_04_170737_create_tag_tables.php @@ -0,0 +1,37 @@ +id(); + + $table->json('name'); + $table->json('slug'); + $table->string('type') + ->nullable(); + $table->integer('order_column') + ->nullable(); + + $table->string('icon') + ->default('tag'); + + $table->timestamps(); + }); + + Schema::create('taggables', function (Blueprint $table) { + $table->foreignId('tag_id') + ->constrained() + ->cascadeOnDelete(); + + $table->morphs('taggable'); + + $table->unique(['tag_id', 'taggable_id', 'taggable_type']); + }); + } +}; diff --git a/database/migrations/2022_12_05_160932_create_libraries_table.php b/database/migrations/2022_12_05_160932_create_libraries_table.php new file mode 100644 index 0000000..752e1af --- /dev/null +++ b/database/migrations/2022_12_05_160932_create_libraries_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('name')->unique(); + $table->boolean('is_public') + ->default(true); + $table->json('language_codes') + ->default('[]'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('libraries'); + } +}; diff --git a/database/migrations/2022_12_05_160933_create_library_items_table.php b/database/migrations/2022_12_05_160933_create_library_items_table.php new file mode 100644 index 0000000..78e1b41 --- /dev/null +++ b/database/migrations/2022_12_05_160933_create_library_items_table.php @@ -0,0 +1,46 @@ +id(); + $table->foreignId('lecturer_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->foreignId('episode_id') + ->nullable() + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->unsignedInteger('order_column'); + $table->string('name'); + $table->string('type'); + $table->string('language_code'); + $table->longText('value') + ->nullable(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('library_items'); + } +}; diff --git a/database/migrations/2022_12_05_175957_create_library_library_item_table.php b/database/migrations/2022_12_05_175957_create_library_library_item_table.php new file mode 100644 index 0000000..40891f5 --- /dev/null +++ b/database/migrations/2022_12_05_175957_create_library_library_item_table.php @@ -0,0 +1,37 @@ +foreignId('library_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->foreignId('library_item_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('library_library_item'); + } +}; diff --git a/database/migrations/2022_12_06_222651_create_book_cases_table.php b/database/migrations/2022_12_06_222651_create_book_cases_table.php new file mode 100644 index 0000000..b20322f --- /dev/null +++ b/database/migrations/2022_12_06_222651_create_book_cases_table.php @@ -0,0 +1,48 @@ +id(); + $table->string('title'); + $table->double('latitude'); + $table->double('longitude'); + $table->text('address') + ->nullable(); + $table->string('type'); + $table->string('open') + ->nullable(); + $table->text('comment') + ->nullable(); + $table->text('contact') + ->nullable(); + $table->text('bcz') + ->nullable(); + $table->boolean('digital'); + $table->string('icontype'); + $table->boolean('deactivated'); + $table->string('deactreason'); + $table->string('entrytype'); + $table->text('homepage') + ->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('book_cases'); + } +}; diff --git a/database/migrations/2022_12_07_095709_create_orange_pills_table.php b/database/migrations/2022_12_07_095709_create_orange_pills_table.php new file mode 100644 index 0000000..13a528b --- /dev/null +++ b/database/migrations/2022_12_07_095709_create_orange_pills_table.php @@ -0,0 +1,35 @@ +id(); + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignId('book_case_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->dateTime('date'); + $table->unsignedInteger('amount'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('orange_pills'); + } +}; diff --git a/database/migrations/2022_12_12_155928_create_meetups_table.php b/database/migrations/2022_12_12_155928_create_meetups_table.php new file mode 100644 index 0000000..ed8a7dc --- /dev/null +++ b/database/migrations/2022_12_12_155928_create_meetups_table.php @@ -0,0 +1,34 @@ +id(); + $table->foreignId('city_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->string('name')->unique(); + $table->string('link'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('meetups'); + } +}; diff --git a/database/migrations/2022_12_12_155929_create_meetup_events_table.php b/database/migrations/2022_12_12_155929_create_meetup_events_table.php new file mode 100644 index 0000000..dc9a41e --- /dev/null +++ b/database/migrations/2022_12_12_155929_create_meetup_events_table.php @@ -0,0 +1,42 @@ +id(); + $table->foreignId('meetup_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->dateTime('start'); + $table->string('location') + ->nullable(); + $table->text('description') + ->nullable(); + $table->string('link') + ->nullable(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('meetup_events'); + } +}; diff --git a/database/migrations/2022_12_12_171115_create_bitcoin_events_table.php b/database/migrations/2022_12_12_171115_create_bitcoin_events_table.php new file mode 100644 index 0000000..f4e56d1 --- /dev/null +++ b/database/migrations/2022_12_12_171115_create_bitcoin_events_table.php @@ -0,0 +1,42 @@ +id(); + $table->foreignId('venue_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->dateTime('from'); + $table->dateTime('to'); + $table->string('title'); + $table->text('description') + ->nullable(); + $table->string('link') + ->nullable(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('bitcoin_events'); + } +}; diff --git a/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php b/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php new file mode 100644 index 0000000..2f75b7d --- /dev/null +++ b/database/migrations/2022_12_14_123437_create_created_by_fields_on_all_tables.php @@ -0,0 +1,101 @@ +foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('venues', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('lecturers', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('meetups', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('meetup_events', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('bitcoin_events', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('courses', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('course_events', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('libraries', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('library_items', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('podcasts', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('episodes', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + Schema::table('book_cases', function (Blueprint $table) { + $table->foreignId('created_by') + ->constrained('users') + ->cascadeOnDelete() + ->cascadeOnUpdate(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2022_12_15_144111_add_show_worldwide_field_to_bitcoin_events_table.php b/database/migrations/2022_12_15_144111_add_show_worldwide_field_to_bitcoin_events_table.php new file mode 100644 index 0000000..7718d4a --- /dev/null +++ b/database/migrations/2022_12_15_144111_add_show_worldwide_field_to_bitcoin_events_table.php @@ -0,0 +1,29 @@ +boolean('show_worldwide') + ->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('bitcoin_events', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_15_145559_create_statuses_table.php b/database/migrations/2022_12_15_145559_create_statuses_table.php new file mode 100644 index 0000000..7553a33 --- /dev/null +++ b/database/migrations/2022_12_15_145559_create_statuses_table.php @@ -0,0 +1,24 @@ +increments('id'); + $table->string('name'); + $table->text('reason')->nullable(); + $table->morphs('model'); + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('statuses'); + } +}; diff --git a/database/migrations/2022_12_15_152415_create_seo_table.php b/database/migrations/2022_12_15_152415_create_seo_table.php new file mode 100644 index 0000000..08d8c17 --- /dev/null +++ b/database/migrations/2022_12_15_152415_create_seo_table.php @@ -0,0 +1,30 @@ +id(); + + $table->morphs('model'); + + $table->longText('description')->nullable(); + $table->string('title')->nullable(); + $table->string('image')->nullable(); + $table->string('author')->nullable(); + $table->string('robots')->nullable(); + + $table->timestamps(); + }); + } + + public function down(): void + { + Schema::dropIfExists('seo'); + } +}; diff --git a/database/migrations/2022_12_17_181802_add_english_name_to_countries_table.php b/database/migrations/2022_12_17_181802_add_english_name_to_countries_table.php new file mode 100644 index 0000000..807bcc8 --- /dev/null +++ b/database/migrations/2022_12_17_181802_add_english_name_to_countries_table.php @@ -0,0 +1,29 @@ +string('english_name') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('countries', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_17_183136_add_coordinates_to_countries_table.php b/database/migrations/2022_12_17_183136_add_coordinates_to_countries_table.php new file mode 100644 index 0000000..8705b44 --- /dev/null +++ b/database/migrations/2022_12_17_183136_add_coordinates_to_countries_table.php @@ -0,0 +1,31 @@ +double('longitude') + ->nullable(); + $table->double('latitude') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('countries', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_18_122532_add_current_language_to_users_table.php b/database/migrations/2022_12_18_122532_add_current_language_to_users_table.php new file mode 100644 index 0000000..2367c03 --- /dev/null +++ b/database/migrations/2022_12_18_122532_add_current_language_to_users_table.php @@ -0,0 +1,29 @@ +string('current_language') + ->default('de'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2022_12_18_201051_add_indexes_to_tables.php b/database/migrations/2022_12_18_201051_add_indexes_to_tables.php new file mode 100644 index 0000000..14a6984 --- /dev/null +++ b/database/migrations/2022_12_18_201051_add_indexes_to_tables.php @@ -0,0 +1,31 @@ +index([ + 'name', + 'code', + 'longitude', + 'latitude', + ]); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php b/database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php new file mode 100644 index 0000000..ce6c78c --- /dev/null +++ b/database/migrations/2023_01_14_185805_add_reputation_field_on_user_table.php @@ -0,0 +1,28 @@ +unsignedInteger('reputation')->default(0)->after('remember_token'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('reputation'); + }); + } +}; diff --git a/database/migrations/2023_01_14_185805_create_gamify_tables.php b/database/migrations/2023_01_14_185805_create_gamify_tables.php new file mode 100644 index 0000000..10d0458 --- /dev/null +++ b/database/migrations/2023_01_14_185805_create_gamify_tables.php @@ -0,0 +1,54 @@ +increments('id'); + $table->string('name'); + $table->mediumInteger('point', false)->default(0); + $table->integer('subject_id')->nullable(); + $table->string('subject_type')->nullable(); + $table->unsignedInteger('payee_id')->nullable(); + $table->text('meta')->nullable(); + $table->timestamps(); + }); + + // badges table + Schema::create('badges', function (Blueprint $table) { + $table->increments('id'); + $table->string('name'); + $table->string('description')->nullable(); + $table->string('icon')->nullable(); + $table->tinyInteger('level')->default(config('gamify.badge_default_level', 1)); + $table->timestamps(); + }); + + // user_badges pivot + Schema::create('user_badges', function (Blueprint $table) { + $table->primary(['user_id', 'badge_id']); + $table->unsignedInteger('user_id'); + $table->unsignedInteger('badge_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('user_badges'); + Schema::dropIfExists('badges'); + Schema::dropIfExists('reputations'); + } +}; diff --git a/database/migrations/2023_01_14_191356_add_slug_column_to_meetups_table.php b/database/migrations/2023_01_14_191356_add_slug_column_to_meetups_table.php new file mode 100644 index 0000000..d7ec061 --- /dev/null +++ b/database/migrations/2023_01_14_191356_add_slug_column_to_meetups_table.php @@ -0,0 +1,30 @@ +string('slug') + ->nullable() + ->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php b/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php new file mode 100644 index 0000000..9f55850 --- /dev/null +++ b/database/migrations/2023_01_15_133129_add_landing_page_fields_to_lecturers_table.php @@ -0,0 +1,31 @@ +text('subtitle') + ->nullable(); + $table->text('intro') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_15_142052_add_landing_page_fields_to_meetups_table.php b/database/migrations/2023_01_15_142052_add_landing_page_fields_to_meetups_table.php new file mode 100644 index 0000000..c62d0b8 --- /dev/null +++ b/database/migrations/2023_01_15_142052_add_landing_page_fields_to_meetups_table.php @@ -0,0 +1,29 @@ +text('intro') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_15_191946_create_twitter_accounts_table.php b/database/migrations/2023_01_15_191946_create_twitter_accounts_table.php new file mode 100644 index 0000000..fada4a7 --- /dev/null +++ b/database/migrations/2023_01_15_191946_create_twitter_accounts_table.php @@ -0,0 +1,32 @@ +id(); + $table->string('twitter_id'); + $table->string('nickname'); + $table->string('token'); + $table->unsignedInteger('expires_in'); + $table->json('data'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('twitter_accounts'); + } +}; diff --git a/database/migrations/2023_01_15_203928_add_refresh_token_field_to_twitter_accounts_table.php b/database/migrations/2023_01_15_203928_add_refresh_token_field_to_twitter_accounts_table.php new file mode 100644 index 0000000..5830958 --- /dev/null +++ b/database/migrations/2023_01_15_203928_add_refresh_token_field_to_twitter_accounts_table.php @@ -0,0 +1,32 @@ +text('token') + ->nullable() + ->change(); + $table->text('refresh_token') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('twitter_accounts', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php b/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php new file mode 100644 index 0000000..3ec3122 --- /dev/null +++ b/database/migrations/2023_01_16_143622_add_links_to_meetups_table.php @@ -0,0 +1,32 @@ +renameColumn('link', 'telegram_link'); + $table->string('webpage') + ->nullable(); + $table->string('twitter_username') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php b/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php new file mode 100644 index 0000000..007f3bc --- /dev/null +++ b/database/migrations/2023_01_16_144114_change_telegram_link_on_meetups_table.php @@ -0,0 +1,28 @@ +string('telegram_link') + ->nullable() + ->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php b/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php new file mode 100644 index 0000000..4c4d148 --- /dev/null +++ b/database/migrations/2023_01_16_175457_add_github_data_field_meetups_table.php @@ -0,0 +1,27 @@ +json('github_data') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_01_18_142300_add_ln_addresses_to_users_table.php b/database/migrations/2023_01_18_142300_add_ln_addresses_to_users_table.php new file mode 100644 index 0000000..aa70bd9 --- /dev/null +++ b/database/migrations/2023_01_18_142300_add_ln_addresses_to_users_table.php @@ -0,0 +1,33 @@ +string('lightning_address') + ->nullable(); + $table->text('lnurl') + ->nullable(); + $table->string('node_id') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_18_165507_add_social_links_to_lecturers_table.php b/database/migrations/2023_01_18_165507_add_social_links_to_lecturers_table.php new file mode 100644 index 0000000..240ab68 --- /dev/null +++ b/database/migrations/2023_01_18_165507_add_social_links_to_lecturers_table.php @@ -0,0 +1,31 @@ +string('twitter_username') + ->nullable(); + $table->string('website') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_18_172630_update_ln_address_on_users_table.php b/database/migrations/2023_01_18_172630_update_ln_address_on_users_table.php new file mode 100644 index 0000000..e2b3abc --- /dev/null +++ b/database/migrations/2023_01_18_172630_update_ln_address_on_users_table.php @@ -0,0 +1,28 @@ +text('lightning_address') + ->nullable() + ->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_01_19_133503_add_parent_id_field_to_libraries_table.php b/database/migrations/2023_01_19_133503_add_parent_id_field_to_libraries_table.php new file mode 100644 index 0000000..52b9ef2 --- /dev/null +++ b/database/migrations/2023_01_19_133503_add_parent_id_field_to_libraries_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('parent_id') + ->nullable() + ->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('libraries', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_20_121955_add_slug_field_to_library_items_table.php b/database/migrations/2023_01_20_121955_add_slug_field_to_library_items_table.php new file mode 100644 index 0000000..759ecc6 --- /dev/null +++ b/database/migrations/2023_01_20_121955_add_slug_field_to_library_items_table.php @@ -0,0 +1,31 @@ +string('slug') + ->unique() + ->nullable() + ->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_20_125736_add_meta_fields_to_library_items_table.php b/database/migrations/2023_01_20_125736_add_meta_fields_to_library_items_table.php new file mode 100644 index 0000000..93fd1a0 --- /dev/null +++ b/database/migrations/2023_01_20_125736_add_meta_fields_to_library_items_table.php @@ -0,0 +1,35 @@ +text('subtitle') + ->nullable(); + $table->text('excerpt') + ->nullable(); + $table->string('main_image_caption') + ->nullable(); + $table->string('read_time') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_20_170112_add_matrix_group_field_to_meetups_table.php b/database/migrations/2023_01_20_170112_add_matrix_group_field_to_meetups_table.php new file mode 100644 index 0000000..b3925d1 --- /dev/null +++ b/database/migrations/2023_01_20_170112_add_matrix_group_field_to_meetups_table.php @@ -0,0 +1,29 @@ +string('matrix_group') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_24_135922_add_ln_addresses_to_lecturers_table.php b/database/migrations/2023_01_24_135922_add_ln_addresses_to_lecturers_table.php new file mode 100644 index 0000000..83557c3 --- /dev/null +++ b/database/migrations/2023_01_24_135922_add_ln_addresses_to_lecturers_table.php @@ -0,0 +1,33 @@ +text('lightning_address') + ->nullable(); + $table->text('lnurl') + ->nullable(); + $table->string('node_id') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_01_28_115414_add_osm_fields_to_cities_table.php b/database/migrations/2023_01_28_115414_add_osm_fields_to_cities_table.php new file mode 100644 index 0000000..0c539d1 --- /dev/null +++ b/database/migrations/2023_01_28_115414_add_osm_fields_to_cities_table.php @@ -0,0 +1,35 @@ +json('osm_relation') + ->nullable(); + $table->json('simplified_geojson') + ->nullable(); + $table->unsignedBigInteger('population') + ->nullable(); + $table->string('population_date') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('cities', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_03_151808_create_blind_indexes_table.php b/database/migrations/2023_02_03_151808_create_blind_indexes_table.php new file mode 100644 index 0000000..23d65ad --- /dev/null +++ b/database/migrations/2023_02_03_151808_create_blind_indexes_table.php @@ -0,0 +1,20 @@ +morphs('indexable'); + $table->string('name'); + $table->string('value'); + + $table->index(['name', 'value']); + $table->unique(['indexable_type', 'indexable_id', 'name']); + }); + } +}; diff --git a/database/migrations/2023_02_03_152818_prepare_cyphersweet_on_models.php b/database/migrations/2023_02_03_152818_prepare_cyphersweet_on_models.php new file mode 100644 index 0000000..2aa868b --- /dev/null +++ b/database/migrations/2023_02_03_152818_prepare_cyphersweet_on_models.php @@ -0,0 +1,30 @@ +text('public_key')->nullable()->change(); + $table->text('email')->nullable()->change(); + $table->text('node_id')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_06_162858_add_attend_fields_to_meetup_events_table.php b/database/migrations/2023_02_06_162858_add_attend_fields_to_meetup_events_table.php new file mode 100644 index 0000000..e808618 --- /dev/null +++ b/database/migrations/2023_02_06_162858_add_attend_fields_to_meetup_events_table.php @@ -0,0 +1,31 @@ +json('attendees') + ->nullable(); + $table->json('might_attendees') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetup_events', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_08_132434_add_community_field_to_meetups_table.php b/database/migrations/2023_02_08_132434_add_community_field_to_meetups_table.php new file mode 100644 index 0000000..f62c1ba --- /dev/null +++ b/database/migrations/2023_02_08_132434_add_community_field_to_meetups_table.php @@ -0,0 +1,29 @@ +string('community') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_09_205710_add_approved_field_to_library_items_table.php b/database/migrations/2023_02_09_205710_add_approved_field_to_library_items_table.php new file mode 100644 index 0000000..85b4156 --- /dev/null +++ b/database/migrations/2023_02_09_205710_add_approved_field_to_library_items_table.php @@ -0,0 +1,29 @@ +boolean('approved') + ->default(true); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_11_151546_add_news_flag_to_library_items_table.php b/database/migrations/2023_02_11_151546_add_news_flag_to_library_items_table.php new file mode 100644 index 0000000..7d3f775 --- /dev/null +++ b/database/migrations/2023_02_11_151546_add_news_flag_to_library_items_table.php @@ -0,0 +1,29 @@ +boolean('news') + ->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_11_154505_add_tweet_field_to_library_items_table.php b/database/migrations/2023_02_11_154505_add_tweet_field_to_library_items_table.php new file mode 100644 index 0000000..98f49ad --- /dev/null +++ b/database/migrations/2023_02_11_154505_add_tweet_field_to_library_items_table.php @@ -0,0 +1,29 @@ +string('tweet') + ->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php b/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php new file mode 100644 index 0000000..d236c99 --- /dev/null +++ b/database/migrations/2023_02_11_155505_change_tweet_field_to_library_items_table.php @@ -0,0 +1,32 @@ +text('nostr') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_02_16_141618_add_nostr_field_to_lecturers_table.php b/database/migrations/2023_02_16_141618_add_nostr_field_to_lecturers_table.php new file mode 100644 index 0000000..21f297c --- /dev/null +++ b/database/migrations/2023_02_16_141618_add_nostr_field_to_lecturers_table.php @@ -0,0 +1,29 @@ +string('nostr') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php b/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php new file mode 100644 index 0000000..0101312 --- /dev/null +++ b/database/migrations/2023_02_16_183823_add_comment_field_to_orange_pills_table.php @@ -0,0 +1,29 @@ +text('comment') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('orange_pills', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_19_000000_rename_password_resets_table.php b/database/migrations/2023_02_19_000000_rename_password_resets_table.php new file mode 100644 index 0000000..c3f9489 --- /dev/null +++ b/database/migrations/2023_02_19_000000_rename_password_resets_table.php @@ -0,0 +1,23 @@ +text('nostr') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php b/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php new file mode 100644 index 0000000..3945d26 --- /dev/null +++ b/database/migrations/2023_02_24_090531_add_nostr_fields_to_tables.php @@ -0,0 +1,51 @@ +renameColumn('nostr', 'nostr_status'); + }); + Schema::table('bitcoin_events', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + Schema::table('course_events', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + Schema::table('courses', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + Schema::table('meetup_events', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + Schema::table('meetups', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + Schema::table('orange_pills', function (Blueprint $table) { + $table->text('nostr_status') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('tables', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_24_104336_add_nostr_fields_to_users_table.php b/database/migrations/2023_02_24_104336_add_nostr_fields_to_users_table.php new file mode 100644 index 0000000..b32549c --- /dev/null +++ b/database/migrations/2023_02_24_104336_add_nostr_fields_to_users_table.php @@ -0,0 +1,28 @@ +string('nostr') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_25_180846_add_change_field_to_users_table.php b/database/migrations/2023_02_25_180846_add_change_field_to_users_table.php new file mode 100644 index 0000000..7e07250 --- /dev/null +++ b/database/migrations/2023_02_25_180846_add_change_field_to_users_table.php @@ -0,0 +1,28 @@ +string('change') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_02_25_181435_add_change_time_field_to_users_table.php b/database/migrations/2023_02_25_181435_add_change_time_field_to_users_table.php new file mode 100644 index 0000000..e310cf3 --- /dev/null +++ b/database/migrations/2023_02_25_181435_add_change_time_field_to_users_table.php @@ -0,0 +1,28 @@ +dateTime('change_time') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_10_190300_create_project_proposals_table.php b/database/migrations/2023_03_10_190300_create_project_proposals_table.php new file mode 100644 index 0000000..8819e92 --- /dev/null +++ b/database/migrations/2023_03_10_190300_create_project_proposals_table.php @@ -0,0 +1,35 @@ +id(); + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->string('name')->unique(); + $table->unsignedInteger('support_in_sats'); + $table->text('description'); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('project_proposals'); + } +}; diff --git a/database/migrations/2023_03_10_190301_create_votes_table.php b/database/migrations/2023_03_10_190301_create_votes_table.php new file mode 100644 index 0000000..d7fa138 --- /dev/null +++ b/database/migrations/2023_03_10_190301_create_votes_table.php @@ -0,0 +1,35 @@ +id(); + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->foreignId('project_proposal_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->unsignedInteger('value'); + $table->text('reason')->nullable(); + $table->timestamps(); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('votes'); + } +}; diff --git a/database/migrations/2023_03_10_201640_add_created_by_field_to_project_proposals_and_votes_table.php b/database/migrations/2023_03_10_201640_add_created_by_field_to_project_proposals_and_votes_table.php new file mode 100644 index 0000000..631446a --- /dev/null +++ b/database/migrations/2023_03_10_201640_add_created_by_field_to_project_proposals_and_votes_table.php @@ -0,0 +1,36 @@ +foreignId('created_by') + ->nullable() + ->constrained('users') + ->onDelete('set null'); + }); + Schema::table('votes', function (Blueprint $table) { + $table->foreignId('created_by') + ->nullable() + ->constrained('users') + ->onDelete('set null'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('project_proposals', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_10_202305_alter_support_in_sats_field_on_project_proposals_table.php b/database/migrations/2023_03_10_202305_alter_support_in_sats_field_on_project_proposals_table.php new file mode 100644 index 0000000..c2e5a19 --- /dev/null +++ b/database/migrations/2023_03_10_202305_alter_support_in_sats_field_on_project_proposals_table.php @@ -0,0 +1,28 @@ +unsignedBigInteger('support_in_sats') + ->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('project_proposals', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php b/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php new file mode 100644 index 0000000..894eab9 --- /dev/null +++ b/database/migrations/2023_03_10_230904_add_slug_field_to_project_proposals_table.php @@ -0,0 +1,29 @@ +string('slug') + ->unique() + ->after('id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('project_proposals', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_13_130046_add_lnbits_field_to_users_table.php b/database/migrations/2023_03_13_130046_add_lnbits_field_to_users_table.php new file mode 100644 index 0000000..9334068 --- /dev/null +++ b/database/migrations/2023_03_13_130046_add_lnbits_field_to_users_table.php @@ -0,0 +1,28 @@ +json('lnbits') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_13_133526_add_value_to_be_paid_field_to_library_items_table.php b/database/migrations/2023_03_13_133526_add_value_to_be_paid_field_to_library_items_table.php new file mode 100644 index 0000000..b0c0106 --- /dev/null +++ b/database/migrations/2023_03_13_133526_add_value_to_be_paid_field_to_library_items_table.php @@ -0,0 +1,28 @@ +text('value_to_be_paid') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_13_134313_add_sats_field_to_library_items_table.php b/database/migrations/2023_03_13_134313_add_sats_field_to_library_items_table.php new file mode 100644 index 0000000..7c07df0 --- /dev/null +++ b/database/migrations/2023_03_13_134313_add_sats_field_to_library_items_table.php @@ -0,0 +1,28 @@ +unsignedBigInteger('sats') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('library_items', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_13_145545_create_library_item_user_pivot_table.php b/database/migrations/2023_03_13_145545_create_library_item_user_pivot_table.php new file mode 100644 index 0000000..294fdeb --- /dev/null +++ b/database/migrations/2023_03_13_145545_create_library_item_user_pivot_table.php @@ -0,0 +1,33 @@ +unsignedBigInteger('library_item_id')->index(); + $table->foreign('library_item_id')->references('id')->on('library_items')->onDelete('cascade'); + $table->unsignedBigInteger('user_id')->index(); + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + $table->primary(['library_item_id', 'user_id']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('library_item_user'); + } +} diff --git a/database/migrations/2023_03_14_105504_alter_lnbits_field_on_users_table.php b/database/migrations/2023_03_14_105504_alter_lnbits_field_on_users_table.php new file mode 100644 index 0000000..427cea5 --- /dev/null +++ b/database/migrations/2023_03_14_105504_alter_lnbits_field_on_users_table.php @@ -0,0 +1,27 @@ +json('lnbits') + ->default('{"read_key":null,"url":null,"wallet_id":null}') + ->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + // + } +}; diff --git a/database/migrations/2023_03_17_103513_add_paynym_field_to_users_table.php b/database/migrations/2023_03_17_103513_add_paynym_field_to_users_table.php new file mode 100644 index 0000000..f0985e4 --- /dev/null +++ b/database/migrations/2023_03_17_103513_add_paynym_field_to_users_table.php @@ -0,0 +1,28 @@ +text('paynym') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_03_17_104340_add_paynym_field_to_lecturers_table.php b/database/migrations/2023_03_17_104340_add_paynym_field_to_lecturers_table.php new file mode 100644 index 0000000..3c2a69f --- /dev/null +++ b/database/migrations/2023_03_17_104340_add_paynym_field_to_lecturers_table.php @@ -0,0 +1,28 @@ +text('paynym') + ->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('lecturers', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_08_07_134026_add_visible_on_map_field_to_meetups_table.php b/database/migrations/2023_08_07_134026_add_visible_on_map_field_to_meetups_table.php new file mode 100644 index 0000000..0485856 --- /dev/null +++ b/database/migrations/2023_08_07_134026_add_visible_on_map_field_to_meetups_table.php @@ -0,0 +1,27 @@ +boolean('visible_on_map')->default(true); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_10_30_102650_add_simplex_field_to_meetups_table.php b/database/migrations/2023_10_30_102650_add_simplex_field_to_meetups_table.php new file mode 100644 index 0000000..49e1d83 --- /dev/null +++ b/database/migrations/2023_10_30_102650_add_simplex_field_to_meetups_table.php @@ -0,0 +1,27 @@ +text('simplex')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_11_11_095930_create_email_campaigns_table.php b/database/migrations/2023_11_11_095930_create_email_campaigns_table.php new file mode 100644 index 0000000..48daca1 --- /dev/null +++ b/database/migrations/2023_11_11_095930_create_email_campaigns_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('name'); + $table->string('list_file_name'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('email_campaigns'); + } +}; diff --git a/database/migrations/2023_11_11_100150_create_email_texts_table.php b/database/migrations/2023_11_11_100150_create_email_texts_table.php new file mode 100644 index 0000000..ef82a02 --- /dev/null +++ b/database/migrations/2023_11_11_100150_create_email_texts_table.php @@ -0,0 +1,30 @@ +id(); + $table->foreignId('email_campaign_id')->constrained(); + $table->string('sender_md5'); + $table->string('subject'); + $table->longText('text'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('email_texts'); + } +}; diff --git a/database/migrations/2023_11_11_101728_add_fields_to_email_campaigns_table.php b/database/migrations/2023_11_11_101728_add_fields_to_email_campaigns_table.php new file mode 100644 index 0000000..c901f3e --- /dev/null +++ b/database/migrations/2023_11_11_101728_add_fields_to_email_campaigns_table.php @@ -0,0 +1,28 @@ +text('subject_prompt')->nullable(); + $table->text('text_prompt')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('email_campaigns', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2023_12_08_201800_create_features_table.php b/database/migrations/2023_12_08_201800_create_features_table.php new file mode 100644 index 0000000..b389d15 --- /dev/null +++ b/database/migrations/2023_12_08_201800_create_features_table.php @@ -0,0 +1,34 @@ +bigIncrements('id'); + $table->string('title')->nullable(); + $table->string('feature')->unique(); + $table->text('description')->nullable(); + $table->timestamp('active_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('features'); + } +} diff --git a/database/migrations/2023_17_01_175957_create_meetup_user_table.php b/database/migrations/2023_17_01_175957_create_meetup_user_table.php new file mode 100644 index 0000000..d986f2a --- /dev/null +++ b/database/migrations/2023_17_01_175957_create_meetup_user_table.php @@ -0,0 +1,39 @@ +foreignId('meetup_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->foreignId('user_id') + ->constrained() + ->cascadeOnDelete() + ->cascadeOnUpdate(); + $table->boolean('is_leader') + ->default(false); + }); + + Schema::enableForeignKeyConstraints(); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('meetup_user'); + } +}; diff --git a/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php b/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php new file mode 100644 index 0000000..bd4797e --- /dev/null +++ b/database/migrations/2024_09_24_151929_add_signal_field_to_meetups_table.php @@ -0,0 +1,27 @@ +string('signal', 255 * 2)->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('meetups', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2025_07_11_165453_create_jobs_table.php b/database/migrations/2025_07_11_165453_create_jobs_table.php new file mode 100644 index 0000000..6098d9b --- /dev/null +++ b/database/migrations/2025_07_11_165453_create_jobs_table.php @@ -0,0 +1,32 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('jobs'); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..5b566ca --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,21 @@ +create([ + 'name' => 'Test User', + 'email' => 'test@example.com', + ]); + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..773fc7c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,82 @@ +services: + laravel.test: + build: + context: './vendor/laravel/sail/runtimes/8.4' + dockerfile: Dockerfile + args: + WWWGROUP: '${WWWGROUP}' + image: 'sail-8.4/app' + extra_hosts: + - 'host.docker.internal:host-gateway' + ports: + - '${APP_PORT:-80}:80' + - '${VITE_PORT:-5173}:${VITE_PORT:-5173}' + environment: + WWWUSER: '${WWWUSER}' + LARAVEL_SAIL: 1 + XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}' + XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}' + IGNITION_LOCAL_SITES_PATH: '${PWD}' + volumes: + - '.:/var/www/html' + networks: + - sail + depends_on: + - pgsql + - redis + - mailpit + pgsql: + image: 'postgres:17' + ports: + - '${FORWARD_DB_PORT:-5432}:5432' + environment: + PGPASSWORD: '${DB_PASSWORD:-secret}' + POSTGRES_DB: '${DB_DATABASE}' + POSTGRES_USER: '${DB_USERNAME}' + POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}' + volumes: + - 'sail-pgsql:/var/lib/postgresql/data' + - './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql' + networks: + - sail + healthcheck: + test: + - CMD + - pg_isready + - '-q' + - '-d' + - '${DB_DATABASE}' + - '-U' + - '${DB_USERNAME}' + retries: 3 + timeout: 5s + redis: + image: 'redis:alpine' + ports: + - '${FORWARD_REDIS_PORT:-6379}:6379' + volumes: + - 'sail-redis:/data' + networks: + - sail + healthcheck: + test: + - CMD + - redis-cli + - ping + retries: 3 + timeout: 5s + mailpit: + image: 'axllent/mailpit:latest' + ports: + - '${FORWARD_MAILPIT_PORT:-1025}:1025' + - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025' + networks: + - sail +networks: + sail: + driver: bridge +volumes: + sail-pgsql: + driver: local + sail-redis: + driver: local diff --git a/lang/de.json b/lang/de.json new file mode 100644 index 0000000..eb1a9f9 --- /dev/null +++ b/lang/de.json @@ -0,0 +1,145 @@ +{ + "(and :count more error)": "(und :count weiterer Fehler)", + "(and :count more errors)": "(und :count weiterer Fehler)|(und :count weitere Fehler)|(und :count weitere Fehler)", + "2FA Recovery Codes": "2FA-Wiederherstellungscodes", + "A decryption key is required.": "Ein Entschlüsselungsschlüssel ist nötig.", + "A new verification link has been sent to the email address you provided during registration.": "Ein neuer Bestätigungslink wurde an die E-Mail-Adresse gesendet, die Sie bei der Registrierung angegeben haben.", + "A new verification link has been sent to your email address.": "Ein neuer Bestätigungslink wurde an Ihre E-Mail-Adresse versendet.", + "A reset link will be sent if the account exists.": "Wenn das Konto existiert, wird ein Link zum Zurücksetzen gesendet.", + "All rights reserved.": "Alle Rechte vorbehalten.", + "Already have an account?": "Haben Sie bereits ein Konto?", + "Appearance": "Darstellung", + "Are you sure you want to delete your account?": "Möchten Sie Ihr Konto wirklich löschen?", + "Authentication Code": "Authentifizierungscode", + "Back": "Zurück", + "Cancel": "Abbrechen", + "Click here to re-send the verification email.": "Klicken Sie hier, um eine neue Verifizierungs-E-Mail zu erhalten.", + "Close": "Schließen", + "Confirm": "Bestätigen", + "Confirm Password": "Passwort bestätigen", + "Confirm password": "Passwort bestätigen", + "Continue": "Weiter", + "Create account": "Konto erstellen", + "Create an account": "Ein Konto erstellen", + "Current password": "Aktuelles Passwort", + "Dark": "Dunkel", + "Dashboard": "Dashboard", + "Delete account": "Konto löschen", + "Delete your account and all of its resources": "Löschen Sie Ihr Konto und alle zugehörigen Ressourcen", + "Disable 2FA": "2FA deaktivieren", + "Disabled": "Deaktiviert", + "Documentation": "Dokumentation", + "Don't have an account?": "Sie haben noch kein Konto?", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Jeder Wiederherstellungscode kann einmal für den Zugriff auf Ihr Konto verwendet werden und wird nach der Verwendung gelöscht. Wenn Sie weitere Codes benötigen, klicken Sie oben auf „Codes neu generieren“.", + "Email": "E-Mail", + "Email Address": "E-Mail-Adresse", + "Email address": "E-Mail-Adresse", + "Email password reset link": "Link zum Zurücksetzen des Passworts per E-Mail", + "Enable 2FA": "2FA aktivieren", + "Enable Two-Factor Authentication": "Zwei-Faktor-Authentisierung aktivieren", + "Enabled": "Aktiviert", + "Encrypted environment file already exists.": "Verschlüsselte Umgebungsdatei ist bereits vorhanden.", + "Encrypted environment file not found.": "Verschlüsselte Umgebungsdatei nicht gefunden.", + "Ensure your account is using a long, random password to stay secure": "Stellen Sie sicher, dass Ihr Konto ein langes, zufälliges Passwort verwendet, um sicher zu bleiben", + "Enter the 6-digit code from your authenticator app.": "Geben Sie den 6-stelligen Code aus Ihrer Authentifizierungs-App ein.", + "Enter the authentication code provided by your authenticator application.": "Geben Sie den von Ihrer Authentifizierungsanwendung bereitgestellten Authentifizierungscode ein.", + "Enter your details below to create your account": "Geben Sie unten Ihre Daten ein, um Ihr Konto zu erstellen", + "Enter your email and password below to log in": "Geben Sie unten Ihre E-Mail-Adresse und Ihr Passwort ein, um sich anzumelden", + "Enter your email to receive a password reset link": "Geben Sie Ihre E-Mail-Adresse ein, um einen Link zum Zurücksetzen des Passworts zu erhalten", + "Environment file already exists.": "Umgebungsdatei ist bereits vorhanden.", + "Environment file not found.": "Umgebungsdatei nicht gefunden.", + "errors": "Fehler", + "Forbidden": "Verboten", + "Forgot password": "Passwort vergessen", + "Forgot your password?": "Passwort vergessen?", + "Full name": "Vollständiger Name", + "Go to page :page": "Gehe zur Seite :page", + "Hello!": "Hallo!", + "Hide Recovery Codes": "Wiederherstellungscodes ausblenden", + "If you did not create an account, no further action is required.": "Wenn Sie kein Konto erstellt haben, sind keine weiteren Handlungen nötig.", + "If you did not request a password reset, no further action is required.": "Wenn Sie kein Zurücksetzen des Passworts beantragt haben, sind keine weiteren Handlungen nötig.", + "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Sollten Sie Schwierigkeiten haben, die Schaltfläche \":actionText\" zu klicken, kopieren Sie den nachfolgenden Link\n in Ihre Adresszeile des Browsers.", + "Invalid filename.": "Ungültiger Dateiname.", + "Invalid JSON was returned from the route.": "Von der Route wurde ein ungültiger JSON-Code zurückgegeben.", + "length": "Länge", + "Light": "Hell", + "Location": "Standort", + "Log in": "Anmelden", + "log in": "anmelden", + "Log in to your account": "Melden Sie sich bei Ihrem Konto an", + "Log Out": "Abmelden", + "Log out": "Abmelden", + "Login": "Anmelden", + "login using a recovery code": "Mit einem Wiederherstellungscode anmelden", + "login using an authentication code": "Anmelden mit einem Authentifizierungscode", + "Logout": "Abmelden", + "Manage your profile and account settings": "Verwalten Sie Ihr Profil und Ihre Kontoeinstellungen", + "Manage your two-factor authentication settings": "Verwalten Sie Ihre Einstellungen für die Zwei-Faktor-Authentifizierung", + "Name": "Name", + "New password": "Neues Passwort", + "Not Found": "Nicht gefunden", + "of": "von", + "Once your account is deleted, all of its resources and data will also be permanently deleted. Please confirm you would like to permanently delete your account.": "Sobald Ihr Konto gelöscht ist, werden auch alle zugehörigen Ressourcen und Daten dauerhaft gelöscht. Bitte bestätigen Sie, dass Sie Ihr Konto dauerhaft löschen möchten.", + "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Sobald Ihr Konto gelöscht wurde, werden alle Ressourcen und Daten dauerhaft gelöscht. Bitte geben Sie Ihr Passwort zur Bestätigung ein, dass Sie Ihr Konto dauerhaft löschen möchten.", + "or you can": "oder Sie können", + "or, enter the code manually": "oder geben Sie den Code manuell ein", + "Or, return to": "Oder kehren Sie zurück zu", + "Page Expired": "Seite abgelaufen", + "Pagination Navigation": "Seiten-Navigation", + "Password": "Passwort", + "Payment Required": "Zahlung erforderlich", + "Platform": "Plattform", + "Please click the button below to verify your email address.": "Bitte klicken Sie auf die Schaltfläche, um Ihre E-Mail-Adresse zu bestätigen.", + "Please confirm access to your account by entering one of your emergency recovery codes.": "Bitte bestätigen Sie den Zugriff auf Ihr Konto, indem Sie einen Ihrer Notfall-Wiederherstellungscodes eingeben.", + "Please enter your new password below": "Bitte geben Sie nachstehend Ihr neues Passwort ein.", + "Please verify your email address by clicking on the link we just emailed to you.": "Bitte bestätigen Sie Ihre E-Mail-Adresse, indem Sie auf den Link klicken, den wir Ihnen gerade per E-Mail gesendet haben.", + "Profile": "Profil", + "Recovery Code": "Wiederherstellungscode", + "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Mit Wiederherstellungscodes können Sie wieder Zugriff erhalten, wenn Sie Ihr 2FA-Gerät verlieren. Speichern Sie diese in einem sicheren Passwort-Manager.", + "Regards,": "Mit freundlichen Grüßen,", + "Regenerate Codes": "Codes neu generieren", + "Register": "Registrieren", + "Remember me": "Angemeldet bleiben", + "Repository": "Repository", + "Resend verification email": "Bestätigungs-E-Mail erneut senden", + "Reset Password": "Passwort zurücksetzen", + "Reset password": "Passwort zurücksetzen", + "Reset Password Notification": "Benachrichtigung zum Zurücksetzen des Passworts", + "results": "Ergebnissen", + "Save": "Speichern", + "Saved.": "Gespeichert.", + "Search": "Suche", + "Server Error": "Interner Fehler", + "Service Unavailable": "Service nicht verfügbar", + "Settings": "Einstellungen", + "Showing": "Zeige", + "Sign up": "Anmelden", + "System": "System", + "The given data was invalid.": "Die gegebenen Daten waren ungültig.", + "The response is not a streamed response.": "Die Antwort ist keine gestreamte Antwort.", + "The response is not a view.": "Die Antwort ist keine Ansicht.", + "This action is unauthorized.": "Diese Aktion ist nicht autorisiert.", + "This is a secure area of the application. Please confirm your password before continuing.": "Dies ist ein sicherer Bereich der Anwendung. Bitte bestätigen Sie Ihr Passwort, bevor Sie fortfahren.", + "This password reset link will expire in :count minutes.": "Dieser Link zum Zurücksetzen des Passworts läuft in :count Minuten ab.", + "to": "bis", + "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "Um die Zwei-Faktor-Authentifizierung zu aktivieren, scannen Sie den QR-Code oder geben Sie den Einrichtungsschlüssel in Ihre Authentifizierungs-App ein.", + "Toggle navigation": "Navigation umschalten", + "Too Many Requests": "Zu viele Anfragen", + "Two Factor Authentication": "Zwei-Faktor-Authentifizierung", + "Two-Factor Auth": "Zwei-Faktor-Authentifizierung", + "Two-Factor Authentication Enabled": "Zwei-Faktor-Authentifizierung aktiviert", + "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Die Zwei-Faktor-Authentifizierung ist nun aktiviert. Scannen Sie den QR-Code oder geben Sie den Setup-Schlüssel in Ihrer Authentifizierungs-App ein.", + "Unauthorized": "Nicht autorisiert", + "Update password": "Passwort aktualisieren", + "Update the appearance settings for your account": "Aktualisieren Sie die Darstellungseinstellungen für Ihr Konto", + "Update your account's appearance settings": "Aktualisieren Sie die Darstellungseinstellungen Ihres Kontos", + "Update your name and email address": "Aktualisieren Sie Ihren Namen und Ihre E-Mail-Adresse", + "Verify Authentication Code": "Authentifizierungscode überprüfen", + "Verify Email Address": "E-Mail-Adresse bestätigen", + "View Recovery Codes": "Wiederherstellungscodes anzeigen", + "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "Wenn Sie die Zwei-Faktor-Authentifizierung aktivieren, werden Sie bei der Anmeldung zur Eingabe einer Sicherheits-PIN aufgefordert. Diese PIN können Sie über eine TOTP-unterstützte Anwendung auf Ihrem Smartphone abrufen.", + "Whoops!": "Ups!", + "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, werden Sie bei der Anmeldung zur Eingabe einer sicheren, zufällig generierten PIN aufgefordert, die Sie über die TOTP-unterstützte Anwendung auf Ihrem Smartphone abrufen können.", + "You are receiving this email because we received a password reset request for your account.": "Sie erhalten diese E-Mail, weil wir einen Antrag auf eine Zurücksetzung Ihres Passworts bekommen haben.", + "Your email address is unverified.": "Ihre E-Mail-Adresse ist nicht verifiziert." +} \ No newline at end of file diff --git a/lang/de/auth.php b/lang/de/auth.php new file mode 100644 index 0000000..b9b93be --- /dev/null +++ b/lang/de/auth.php @@ -0,0 +1,9 @@ + 'Diese Kombination aus Zugangsdaten wurde nicht in unserer Datenbank gefunden.', + 'password' => 'Das Passwort ist falsch.', + 'throttle' => 'Zu viele Loginversuche. Versuchen Sie es bitte in :seconds Sekunden nochmal.', +]; diff --git a/lang/de/countries.php b/lang/de/countries.php new file mode 100644 index 0000000..4d8bd4b --- /dev/null +++ b/lang/de/countries.php @@ -0,0 +1,251 @@ + 'Afghanistan', + 'EG' => 'Ägypten', + 'AX' => 'Ålandinseln', + 'AL' => 'Albanien', + 'DZ' => 'Algerien', + 'AS' => 'Amerikanisch-Samoa', + 'VI' => 'Amerikanische Jungferninseln', + 'UM' => 'Amerikanische Überseeinseln', + 'AD' => 'Andorra', + 'AO' => 'Angola', + 'AI' => 'Anguilla', + 'AQ' => 'Antarktis', + 'AG' => 'Antigua und Barbuda', + 'GQ' => 'Äquatorialguinea', + 'AR' => 'Argentinien', + 'AM' => 'Armenien', + 'AW' => 'Aruba', + 'AZ' => 'Aserbaidschan', + 'ET' => 'Äthiopien', + 'AU' => 'Australien', + 'BS' => 'Bahamas', + 'BH' => 'Bahrain', + 'BD' => 'Bangladesch', + 'BB' => 'Barbados', + 'BY' => 'Belarus', + 'BE' => 'Belgien', + 'BZ' => 'Belize', + 'BJ' => 'Benin', + 'BM' => 'Bermuda', + 'BT' => 'Bhutan', + 'BO' => 'Bolivien', + 'BQ' => 'Bonaire, Sint Eustatius und Saba', + 'BA' => 'Bosnien und Herzegowina', + 'BW' => 'Botsuana', + 'BV' => 'Bouvetinsel', + 'BR' => 'Brasilien', + 'VG' => 'Britische Jungferninseln', + 'IO' => 'Britisches Territorium im Indischen Ozean', + 'BN' => 'Brunei Darussalam', + 'BG' => 'Bulgarien', + 'BF' => 'Burkina Faso', + 'BI' => 'Burundi', + 'CV' => 'Cabo Verde', + 'CL' => 'Chile', + 'CN' => 'China', + 'CK' => 'Cookinseln', + 'CR' => 'Costa Rica', + 'CI' => 'Côte d’Ivoire', + 'CW' => 'Curaçao', + 'DK' => 'Dänemark', + 'DE' => 'Deutschland', + 'DM' => 'Dominica', + 'DO' => 'Dominikanische Republik', + 'DJ' => 'Dschibuti', + 'EC' => 'Ecuador', + 'SV' => 'El Salvador', + 'ER' => 'Eritrea', + 'EE' => 'Estland', + 'SZ' => 'Eswatini', + 'FK' => 'Falklandinseln', + 'FO' => 'Färöer', + 'FJ' => 'Fidschi', + 'FI' => 'Finnland', + 'FR' => 'Frankreich', + 'GF' => 'Französisch-Guayana', + 'PF' => 'Französisch-Polynesien', + 'TF' => 'Französische Süd- und Antarktisgebiete', + 'GA' => 'Gabun', + 'GM' => 'Gambia', + 'GE' => 'Georgien', + 'GH' => 'Ghana', + 'GI' => 'Gibraltar', + 'GD' => 'Grenada', + 'GR' => 'Griechenland', + 'GL' => 'Grönland', + 'GP' => 'Guadeloupe', + 'GU' => 'Guam', + 'GT' => 'Guatemala', + 'GG' => 'Guernsey', + 'GN' => 'Guinea', + 'GW' => 'Guinea-Bissau', + 'GY' => 'Guyana', + 'HT' => 'Haiti', + 'HM' => 'Heard und McDonaldinseln', + 'HN' => 'Honduras', + 'IN' => 'Indien', + 'ID' => 'Indonesien', + 'IQ' => 'Irak', + 'IR' => 'Iran', + 'IE' => 'Irland', + 'IS' => 'Island', + 'IM' => 'Isle of Man', + 'IL' => 'Israel', + 'IT' => 'Italien', + 'JM' => 'Jamaika', + 'JP' => 'Japan', + 'YE' => 'Jemen', + 'JE' => 'Jersey', + 'JO' => 'Jordanien', + 'KY' => 'Kaimaninseln', + 'KH' => 'Kambodscha', + 'CM' => 'Kamerun', + 'CA' => 'Kanada', + 'KZ' => 'Kasachstan', + 'QA' => 'Katar', + 'KE' => 'Kenia', + 'KG' => 'Kirgisistan', + 'KI' => 'Kiribati', + 'CC' => 'Kokosinseln', + 'CO' => 'Kolumbien', + 'KM' => 'Komoren', + 'CG' => 'Kongo-Brazzaville', + 'CD' => 'Kongo-Kinshasa', + 'HR' => 'Kroatien', + 'CU' => 'Kuba', + 'KW' => 'Kuwait', + 'LA' => 'Laos', + 'LS' => 'Lesotho', + 'LV' => 'Lettland', + 'LB' => 'Libanon', + 'LR' => 'Liberia', + 'LY' => 'Libyen', + 'LI' => 'Liechtenstein', + 'LT' => 'Litauen', + 'LU' => 'Luxemburg', + 'MG' => 'Madagaskar', + 'MW' => 'Malawi', + 'MY' => 'Malaysia', + 'MV' => 'Malediven', + 'ML' => 'Mali', + 'MT' => 'Malta', + 'MA' => 'Marokko', + 'MH' => 'Marshallinseln', + 'MQ' => 'Martinique', + 'MR' => 'Mauretanien', + 'MU' => 'Mauritius', + 'YT' => 'Mayotte', + 'MX' => 'Mexiko', + 'FM' => 'Mikronesien', + 'MC' => 'Monaco', + 'MN' => 'Mongolei', + 'ME' => 'Montenegro', + 'MS' => 'Montserrat', + 'MZ' => 'Mosambik', + 'MM' => 'Myanmar', + 'NA' => 'Namibia', + 'NR' => 'Nauru', + 'NP' => 'Nepal', + 'NC' => 'Neukaledonien', + 'NZ' => 'Neuseeland', + 'NI' => 'Nicaragua', + 'NL' => 'Niederlande', + 'NE' => 'Niger', + 'NG' => 'Nigeria', + 'NU' => 'Niue', + 'KP' => 'Nordkorea', + 'MP' => 'Nördliche Marianen', + 'MK' => 'Nordmazedonien', + 'NF' => 'Norfolkinsel', + 'NO' => 'Norwegen', + 'OM' => 'Oman', + 'AT' => 'Österreich', + 'PK' => 'Pakistan', + 'PS' => 'Palästinensische Autonomiegebiete', + 'PW' => 'Palau', + 'PA' => 'Panama', + 'PG' => 'Papua-Neuguinea', + 'PY' => 'Paraguay', + 'PE' => 'Peru', + 'PH' => 'Philippinen', + 'PN' => 'Pitcairninseln', + 'PL' => 'Polen', + 'PT' => 'Portugal', + 'PR' => 'Puerto Rico', + 'MD' => 'Republik Moldau', + 'RE' => 'Réunion', + 'RW' => 'Ruanda', + 'RO' => 'Rumänien', + 'RU' => 'Russland', + 'SB' => 'Salomonen', + 'ZM' => 'Sambia', + 'WS' => 'Samoa', + 'SM' => 'San Marino', + 'ST' => 'São Tomé und Príncipe', + 'SA' => 'Saudi-Arabien', + 'SE' => 'Schweden', + 'CH' => 'Schweiz', + 'SN' => 'Senegal', + 'RS' => 'Serbien', + 'SC' => 'Seychellen', + 'SL' => 'Sierra Leone', + 'ZW' => 'Simbabwe', + 'SG' => 'Singapur', + 'SX' => 'Sint Maarten', + 'SK' => 'Slowakei', + 'SI' => 'Slowenien', + 'SO' => 'Somalia', + 'HK' => 'Sonderverwaltungsregion Hongkong', + 'MO' => 'Sonderverwaltungsregion Macau', + 'ES' => 'Spanien', + 'SJ' => 'Spitzbergen und Jan Mayen', + 'LK' => 'Sri Lanka', + 'BL' => 'St. Barthélemy', + 'SH' => 'St. Helena', + 'KN' => 'St. Kitts und Nevis', + 'LC' => 'St. Lucia', + 'MF' => 'St. Martin', + 'PM' => 'St. Pierre und Miquelon', + 'VC' => 'St. Vincent und die Grenadinen', + 'ZA' => 'Südafrika', + 'SD' => 'Sudan', + 'GS' => 'Südgeorgien und die Südlichen Sandwichinseln', + 'KR' => 'Südkorea', + 'SS' => 'Südsudan', + 'SR' => 'Suriname', + 'SY' => 'Syrien', + 'TJ' => 'Tadschikistan', + 'TW' => 'Taiwan', + 'TZ' => 'Tansania', + 'TH' => 'Thailand', + 'TL' => 'Timor-Leste', + 'TG' => 'Togo', + 'TK' => 'Tokelau', + 'TO' => 'Tonga', + 'TT' => 'Trinidad und Tobago', + 'TD' => 'Tschad', + 'CZ' => 'Tschechien', + 'TN' => 'Tunesien', + 'TR' => 'Türkei', + 'TM' => 'Turkmenistan', + 'TC' => 'Turks- und Caicosinseln', + 'TV' => 'Tuvalu', + 'UG' => 'Uganda', + 'UA' => 'Ukraine', + 'HU' => 'Ungarn', + 'UY' => 'Uruguay', + 'UZ' => 'Usbekistan', + 'VU' => 'Vanuatu', + 'VA' => 'Vatikanstadt', + 'VE' => 'Venezuela', + 'AE' => 'Vereinigte Arabische Emirate', + 'US' => 'Vereinigte Staaten', + 'GB' => 'Vereinigtes Königreich', + 'VN' => 'Vietnam', + 'WF' => 'Wallis und Futuna', + 'CX' => 'Weihnachtsinsel', + 'EH' => 'Westsahara', + 'CF' => 'Zentralafrikanische Republik', + 'CY' => 'Zypern', +); diff --git a/lang/de/pagination.php b/lang/de/pagination.php new file mode 100644 index 0000000..c912b5d --- /dev/null +++ b/lang/de/pagination.php @@ -0,0 +1,8 @@ + 'Weiter »', + 'previous' => '« Zurück', +]; diff --git a/lang/de/passwords.php b/lang/de/passwords.php new file mode 100644 index 0000000..9634bdd --- /dev/null +++ b/lang/de/passwords.php @@ -0,0 +1,11 @@ + 'Das Passwort wurde zurückgesetzt!', + 'sent' => 'E-Mail zum Zurücksetzen des Passworts wurde gesendet!', + 'throttled' => 'Bitte warten Sie, bevor Sie es erneut versuchen.', + 'token' => 'Der Passwort-Wiederherstellungsschlüssel ist ungültig oder abgelaufen.', + 'user' => 'Es konnte leider kein Nutzer mit dieser E-Mail-Adresse gefunden werden.', +]; diff --git a/lang/de/validation.php b/lang/de/validation.php new file mode 100644 index 0000000..f1544ff --- /dev/null +++ b/lang/de/validation.php @@ -0,0 +1,158 @@ + ':Attribute muss akzeptiert werden.', + 'accepted_if' => ':Attribute muss akzeptiert werden, wenn :other :value ist.', + 'active_url' => ':Attribute ist keine gültige Internet-Adresse.', + 'after' => ':Attribute muss ein Datum nach :date sein.', + 'after_or_equal' => ':Attribute muss ein Datum nach :date oder gleich :date sein.', + 'alpha' => ':Attribute darf nur aus Buchstaben bestehen.', + 'alpha_dash' => ':Attribute darf nur aus Buchstaben, Zahlen, Binde- und Unterstrichen bestehen.', + 'alpha_num' => ':Attribute darf nur aus Buchstaben und Zahlen bestehen.', + 'any_of' => ':Attribute ist ungültig.', + 'array' => ':Attribute muss ein Array sein.', + 'ascii' => 'Die :attribute darf nur alphanumerische Single-Byte-Zeichen und -Symbole enthalten.', + 'before' => ':Attribute muss ein Datum vor :date sein.', + 'before_or_equal' => ':Attribute muss ein Datum vor :date oder gleich :date sein.', + 'between' => [ + 'array' => ':Attribute muss zwischen :min & :max Elemente haben.', + 'file' => ':Attribute muss zwischen :min & :max Kilobytes groß sein.', + 'numeric' => ':Attribute muss zwischen :min & :max liegen.', + 'string' => ':Attribute muss zwischen :min & :max Zeichen lang sein.', + ], + 'boolean' => ':Attribute muss entweder \'true\' oder \'false\' sein.', + 'can' => 'Das Feld :attribute enthält einen nicht autorisierten Wert.', + 'confirmed' => ':Attribute stimmt nicht mit der Bestätigung überein.', + 'contains' => 'Dem Feld :attribute fehlt ein erforderlicher Wert.', + 'current_password' => 'Das Passwort ist falsch.', + 'date' => ':Attribute muss ein gültiges Datum sein.', + 'date_equals' => ':Attribute muss ein Datum gleich :date sein.', + 'date_format' => ':Attribute entspricht nicht dem gültigen Format für :format.', + 'decimal' => 'Die :attribute muss :decimal Dezimalstellen haben.', + 'declined' => ':Attribute muss abgelehnt werden.', + 'declined_if' => ':Attribute muss abgelehnt werden wenn :other :value ist.', + 'different' => ':Attribute und :other müssen sich unterscheiden.', + 'digits' => ':Attribute muss :digits Stellen haben.', + 'digits_between' => ':Attribute muss zwischen :min und :max Stellen haben.', + 'dimensions' => ':Attribute hat ungültige Bildabmessungen.', + 'distinct' => ':Attribute beinhaltet einen bereits vorhandenen Wert.', + 'doesnt_contain' => ':Attribute darf keines der folgenden enthalten: :values.', + 'doesnt_end_with' => ':Attribute darf nicht mit einem der folgenden enden: :values.', + 'doesnt_start_with' => ':Attribute darf nicht mit einem der folgenden beginnen: :values.', + 'email' => ':Attribute muss eine gültige E-Mail-Adresse sein.', + 'ends_with' => ':Attribute muss eine der folgenden Endungen aufweisen: :values', + 'enum' => 'Der ausgewählte Wert ist ungültig.', + 'exists' => 'Der gewählte Wert für :attribute ist ungültig.', + 'extensions' => 'Das Feld :attribute muss eine der folgenden Erweiterungen haben: :values.', + 'file' => ':Attribute muss eine Datei sein.', + 'filled' => ':Attribute muss ausgefüllt sein.', + 'gt' => [ + 'array' => ':Attribute muss mehr als :value Elemente haben.', + 'file' => ':Attribute muss größer als :value Kilobytes sein.', + 'numeric' => ':Attribute muss größer als :value sein.', + 'string' => ':Attribute muss länger als :value Zeichen sein.', + ], + 'gte' => [ + 'array' => ':Attribute muss mindestens :value Elemente haben.', + 'file' => ':Attribute muss größer oder gleich :value Kilobytes sein.', + 'numeric' => ':Attribute muss größer oder gleich :value sein.', + 'string' => ':Attribute muss mindestens :value Zeichen lang sein.', + ], + 'hex_color' => 'Das Feld :attribute muss eine gültige Hexadezimalfarbe sein.', + 'image' => ':Attribute muss ein Bild sein.', + 'in' => 'Der gewählte Wert für :attribute ist ungültig.', + 'in_array' => 'Der gewählte Wert für :attribute kommt nicht in :other vor.', + 'in_array_keys' => 'Das Feld :Attribute muss mindestens einen der folgenden Schlüssel enthalten: :Values.', + 'integer' => ':Attribute muss eine ganze Zahl sein.', + 'ip' => ':Attribute muss eine gültige IP-Adresse sein.', + 'ipv4' => ':Attribute muss eine gültige IPv4-Adresse sein.', + 'ipv6' => ':Attribute muss eine gültige IPv6-Adresse sein.', + 'json' => ':Attribute muss ein gültiger JSON-String sein.', + 'list' => ':Attribute muss eine Liste sein.', + 'lowercase' => ':Attribute muss in Kleinbuchstaben sein.', + 'lt' => [ + 'array' => ':Attribute muss weniger als :value Elemente haben.', + 'file' => ':Attribute muss kleiner als :value Kilobytes sein.', + 'numeric' => ':Attribute muss kleiner als :value sein.', + 'string' => ':Attribute muss kürzer als :value Zeichen sein.', + ], + 'lte' => [ + 'array' => ':Attribute darf maximal :value Elemente haben.', + 'file' => ':Attribute muss kleiner oder gleich :value Kilobytes sein.', + 'numeric' => ':Attribute muss kleiner oder gleich :value sein.', + 'string' => ':Attribute darf maximal :value Zeichen lang sein.', + ], + 'mac_address' => 'Der Wert muss eine gültige MAC-Adresse sein.', + 'max' => [ + 'array' => ':Attribute darf maximal :max Elemente haben.', + 'file' => ':Attribute darf maximal :max Kilobytes groß sein.', + 'numeric' => ':Attribute darf maximal :max sein.', + 'string' => ':Attribute darf maximal :max Zeichen haben.', + ], + 'max_digits' => ':Attribute darf maximal :max Ziffern lang sein.', + 'mimes' => ':Attribute muss den Dateityp :values haben.', + 'mimetypes' => ':Attribute muss den Dateityp :values haben.', + 'min' => [ + 'array' => ':Attribute muss mindestens :min Elemente haben.', + 'file' => ':Attribute muss mindestens :min Kilobytes groß sein.', + 'numeric' => ':Attribute muss mindestens :min sein.', + 'string' => ':Attribute muss mindestens :min Zeichen lang sein.', + ], + 'min_digits' => ':Attribute muss mindestens :min Ziffern lang sein.', + 'missing' => 'Das Feld :attribute muss fehlen.', + 'missing_if' => 'Das Feld :attribute muss fehlen, wenn :other gleich :value ist.', + 'missing_unless' => 'Das Feld :attribute muss fehlen, es sei denn, :other ist :value.', + 'missing_with' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden ist.', + 'missing_with_all' => 'Das Feld :attribute muss fehlen, wenn :values vorhanden sind.', + 'multiple_of' => ':Attribute muss ein Vielfaches von :value sein.', + 'not_in' => 'Der gewählte Wert für :attribute ist ungültig.', + 'not_regex' => ':Attribute hat ein ungültiges Format.', + 'numeric' => ':Attribute muss eine Zahl sein.', + 'password' => [ + 'letters' => ':Attribute muss mindestens einen Buchstaben beinhalten.', + 'mixed' => ':Attribute muss mindestens einen Großbuchstaben und einen Kleinbuchstaben beinhalten.', + 'numbers' => ':Attribute muss mindestens eine Zahl beinhalten.', + 'symbols' => ':Attribute muss mindestens ein Sonderzeichen beinhalten.', + 'uncompromised' => ':Attribute wurde in einem Datenleck gefunden. Bitte wählen Sie ein anderes :attribute.', + ], + 'present' => ':Attribute muss vorhanden sein.', + 'present_if' => 'Das Feld :attribute muss vorhanden sein, wenn :other gleich :value ist.', + 'present_unless' => 'Das Feld :attribute muss vorhanden sein, es sei denn, :other ist :value.', + 'present_with' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden ist.', + 'present_with_all' => 'Das Feld :attribute muss vorhanden sein, wenn :values vorhanden sind.', + 'prohibited' => ':Attribute ist unzulässig.', + 'prohibited_if' => ':Attribute ist unzulässig, wenn :other :value ist.', + 'prohibited_if_accepted' => 'Das Feld :attribute ist unzulässig, wenn :other gewählt ist.', + 'prohibited_if_declined' => 'Das Feld :attribute ist unzulässig, wenn :other abgelehnt ist.', + 'prohibited_unless' => ':Attribute ist unzulässig, wenn :other nicht :values ist.', + 'prohibits' => ':Attribute verbietet die Angabe von :other.', + 'regex' => ':Attribute Format ist ungültig.', + 'required' => ':Attribute muss ausgefüllt werden.', + 'required_array_keys' => 'Dieses Feld muss Einträge enthalten für: :values.', + 'required_if' => ':Attribute muss ausgefüllt werden, wenn :other den Wert :value hat.', + 'required_if_accepted' => ':Attribute muss ausgefüllt werden, wenn :other gewählt ist.', + 'required_if_declined' => 'Das Feld :attribute ist erforderlich, wenn :other abgelehnt wird.', + 'required_unless' => ':Attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.', + 'required_with' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', + 'required_with_all' => ':Attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.', + 'required_without' => ':Attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.', + 'required_without_all' => ':Attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.', + 'same' => ':Attribute und :other müssen übereinstimmen.', + 'size' => [ + 'array' => ':Attribute muss genau :size Elemente haben.', + 'file' => ':Attribute muss :size Kilobyte groß sein.', + 'numeric' => ':Attribute muss gleich :size sein.', + 'string' => ':Attribute muss :size Zeichen lang sein.', + ], + 'starts_with' => ':Attribute muss mit einem der folgenden Anfänge aufweisen: :values', + 'string' => ':Attribute muss ein String sein.', + 'timezone' => ':Attribute muss eine gültige Zeitzone sein.', + 'ulid' => 'Die :attribute muss eine gültige ULID sein.', + 'unique' => ':Attribute ist bereits vergeben.', + 'uploaded' => ':Attribute konnte nicht hochgeladen werden.', + 'uppercase' => ':Attribute muss in Großbuchstaben sein.', + 'url' => ':Attribute muss eine URL sein.', + 'uuid' => ':Attribute muss ein UUID sein.', +]; diff --git a/lang/en.json b/lang/en.json new file mode 100644 index 0000000..450a754 --- /dev/null +++ b/lang/en.json @@ -0,0 +1,145 @@ +{ + "(and :count more error)": "(and :count more error)", + "(and :count more errors)": "(and :count more error)|(and :count more errors)|(and :count more errors)", + "2FA Recovery Codes": "2FA Recovery Codes", + "A decryption key is required.": "A decryption key is required.", + "A new verification link has been sent to the email address you provided during registration.": "A new verification link has been sent to the email address you provided during registration.", + "A new verification link has been sent to your email address.": "A new verification link has been sent to your email address.", + "A reset link will be sent if the account exists.": "A reset link will be sent if the account exists.", + "All rights reserved.": "All rights reserved.", + "Already have an account?": "Already have an account?", + "Appearance": "Appearance", + "Are you sure you want to delete your account?": "Are you sure you want to delete your account?", + "Authentication Code": "Authentication Code", + "Back": "Back", + "Cancel": "Cancel", + "Click here to re-send the verification email.": "Click here to re-send the verification email.", + "Close": "Close", + "Confirm": "Confirm", + "Confirm Password": "Confirm Password", + "Confirm password": "Confirm password", + "Continue": "Continue", + "Create account": "Create account", + "Create an account": "Create an account", + "Current password": "Current password", + "Dark": "Dark", + "Dashboard": "Dashboard", + "Delete account": "Delete account", + "Delete your account and all of its resources": "Delete your account and all of its resources", + "Disable 2FA": "Disable 2FA", + "Disabled": "Disabled", + "Documentation": "Documentation", + "Don't have an account?": "Don't have an account?", + "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.", + "Email": "Email", + "Email Address": "Email Address", + "Email address": "Email address", + "Email password reset link": "Email password reset link", + "Enable 2FA": "Enable 2FA", + "Enable Two-Factor Authentication": "Enable Two-Factor Authentication", + "Enabled": "Enabled", + "Encrypted environment file already exists.": "Encrypted environment file already exists.", + "Encrypted environment file not found.": "Encrypted environment file not found.", + "Ensure your account is using a long, random password to stay secure": "Ensure your account is using a long, random password to stay secure", + "Enter the 6-digit code from your authenticator app.": "Enter the 6-digit code from your authenticator app.", + "Enter the authentication code provided by your authenticator application.": "Enter the authentication code provided by your authenticator application.", + "Enter your details below to create your account": "Enter your details below to create your account", + "Enter your email and password below to log in": "Enter your email and password below to log in", + "Enter your email to receive a password reset link": "Enter your email to receive a password reset link", + "Environment file already exists.": "Environment file already exists.", + "Environment file not found.": "Environment file not found.", + "errors": "errors", + "Forbidden": "Forbidden", + "Forgot password": "Forgot password", + "Forgot your password?": "Forgot your password?", + "Full name": "Full name", + "Go to page :page": "Go to page :page", + "Hello!": "Hello!", + "Hide Recovery Codes": "Hide Recovery Codes", + "If you did not create an account, no further action is required.": "If you did not create an account, no further action is required.", + "If you did not request a password reset, no further action is required.": "If you did not request a password reset, no further action is required.", + "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:", + "Invalid filename.": "Invalid filename.", + "Invalid JSON was returned from the route.": "Invalid JSON was returned from the route.", + "length": "length", + "Light": "Light", + "Location": "Location", + "Log in": "Log in", + "log in": "log in", + "Log in to your account": "Log in to your account", + "Log Out": "Log Out", + "Log out": "Log out", + "Login": "Login", + "login using a recovery code": "login using a recovery code", + "login using an authentication code": "login using an authentication code", + "Logout": "Logout", + "Manage your profile and account settings": "Manage your profile and account settings", + "Manage your two-factor authentication settings": "Manage your two-factor authentication settings", + "Name": "Name", + "New password": "New password", + "Not Found": "Not Found", + "of": "of", + "Once your account is deleted, all of its resources and data will also be permanently deleted. Please confirm you would like to permanently delete your account.": "Once your account is deleted, all of its resources and data will also be permanently deleted. Please confirm you would like to permanently delete your account.", + "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.", + "or you can": "or you can", + "or, enter the code manually": "or, enter the code manually", + "Or, return to": "Or, return to", + "Page Expired": "Page Expired", + "Pagination Navigation": "Pagination Navigation", + "Password": "Password", + "Payment Required": "Payment Required", + "Platform": "Platform", + "Please click the button below to verify your email address.": "Please click the button below to verify your email address.", + "Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.", + "Please enter your new password below": "Please enter your new password below", + "Please verify your email address by clicking on the link we just emailed to you.": "Please verify your email address by clicking on the link we just emailed to you.", + "Profile": "Profile", + "Recovery Code": "Recovery Code", + "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.": "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager.", + "Regards,": "Regards,", + "Regenerate Codes": "Regenerate Codes", + "Register": "Register", + "Remember me": "Remember me", + "Repository": "Repository", + "Resend verification email": "Resend verification email", + "Reset Password": "Reset Password", + "Reset password": "Reset password", + "Reset Password Notification": "Reset Password Notification", + "results": "results", + "Save": "Save", + "Saved.": "Saved.", + "Search": "Search", + "Server Error": "Server Error", + "Service Unavailable": "Service Unavailable", + "Settings": "Settings", + "Showing": "Showing", + "Sign up": "Sign up", + "System": "System", + "The given data was invalid.": "The given data was invalid.", + "The response is not a streamed response.": "The response is not a streamed response.", + "The response is not a view.": "The response is not a view.", + "This action is unauthorized.": "This action is unauthorized.", + "This is a secure area of the application. Please confirm your password before continuing.": "This is a secure area of the application. Please confirm your password before continuing.", + "This password reset link will expire in :count minutes.": "This password reset link will expire in :count minutes.", + "to": "to", + "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.": "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app.", + "Toggle navigation": "Toggle navigation", + "Too Many Requests": "Too Many Requests", + "Two Factor Authentication": "Two Factor Authentication", + "Two-Factor Auth": "Two-Factor Auth", + "Two-Factor Authentication Enabled": "Two-Factor Authentication Enabled", + "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.", + "Unauthorized": "Unauthorized", + "Update password": "Update password", + "Update the appearance settings for your account": "Update the appearance settings for your account", + "Update your account's appearance settings": "Update your account's appearance settings", + "Update your name and email address": "Update your name and email address", + "Verify Authentication Code": "Verify Authentication Code", + "Verify Email Address": "Verify Email Address", + "View Recovery Codes": "View Recovery Codes", + "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.": "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone.", + "Whoops!": "Whoops!", + "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", + "You are receiving this email because we received a password reset request for your account.": "You are receiving this email because we received a password reset request for your account.", + "Your email address is unverified.": "Your email address is unverified." +} \ No newline at end of file diff --git a/lang/en/auth.php b/lang/en/auth.php new file mode 100644 index 0000000..ad725d8 --- /dev/null +++ b/lang/en/auth.php @@ -0,0 +1,9 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', +]; diff --git a/lang/en/pagination.php b/lang/en/pagination.php new file mode 100644 index 0000000..f4cedde --- /dev/null +++ b/lang/en/pagination.php @@ -0,0 +1,8 @@ + 'Next »', + 'previous' => '« Previous', +]; diff --git a/lang/en/passwords.php b/lang/en/passwords.php new file mode 100644 index 0000000..f3b65ba --- /dev/null +++ b/lang/en/passwords.php @@ -0,0 +1,11 @@ + 'Your password has been reset.', + 'sent' => 'We have emailed your password reset link.', + 'throttled' => 'Please wait before retrying.', + 'token' => 'This password reset token is invalid.', + 'user' => 'We can\'t find a user with that email address.', +]; diff --git a/lang/en/validation.php b/lang/en/validation.php new file mode 100644 index 0000000..1dd841f --- /dev/null +++ b/lang/en/validation.php @@ -0,0 +1,158 @@ + 'The :attribute field must be accepted.', + 'accepted_if' => 'The :attribute field must be accepted when :other is :value.', + 'active_url' => 'The :attribute field must be a valid URL.', + 'after' => 'The :attribute field must be a date after :date.', + 'after_or_equal' => 'The :attribute field must be a date after or equal to :date.', + 'alpha' => 'The :attribute field must only contain letters.', + 'alpha_dash' => 'The :attribute field must only contain letters, numbers, dashes, and underscores.', + 'alpha_num' => 'The :attribute field must only contain letters and numbers.', + 'any_of' => 'The :attribute field is invalid.', + 'array' => 'The :attribute field must be an array.', + 'ascii' => 'The :attribute field must only contain single-byte alphanumeric characters and symbols.', + 'before' => 'The :attribute field must be a date before :date.', + 'before_or_equal' => 'The :attribute field must be a date before or equal to :date.', + 'between' => [ + 'array' => 'The :attribute field must have between :min and :max items.', + 'file' => 'The :attribute field must be between :min and :max kilobytes.', + 'numeric' => 'The :attribute field must be between :min and :max.', + 'string' => 'The :attribute field must be between :min and :max characters.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'can' => 'The :attribute field contains an unauthorized value.', + 'confirmed' => 'The :attribute field confirmation does not match.', + 'contains' => 'The :attribute field is missing a required value.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute field must be a valid date.', + 'date_equals' => 'The :attribute field must be a date equal to :date.', + 'date_format' => 'The :attribute field must match the format :format.', + 'decimal' => 'The :attribute field must have :decimal decimal places.', + 'declined' => 'The :attribute field must be declined.', + 'declined_if' => 'The :attribute field must be declined when :other is :value.', + 'different' => 'The :attribute field and :other must be different.', + 'digits' => 'The :attribute field must be :digits digits.', + 'digits_between' => 'The :attribute field must be between :min and :max digits.', + 'dimensions' => 'The :attribute field has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'doesnt_contain' => 'The :attribute field must not contain any of the following: :values.', + 'doesnt_end_with' => 'The :attribute field must not end with one of the following: :values.', + 'doesnt_start_with' => 'The :attribute field must not start with one of the following: :values.', + 'email' => 'The :attribute field must be a valid email address.', + 'ends_with' => 'The :attribute field must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'extensions' => 'The :attribute field must have one of the following extensions: :values.', + 'file' => 'The :attribute field must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'array' => 'The :attribute field must have more than :value items.', + 'file' => 'The :attribute field must be greater than :value kilobytes.', + 'numeric' => 'The :attribute field must be greater than :value.', + 'string' => 'The :attribute field must be greater than :value characters.', + ], + 'gte' => [ + 'array' => 'The :attribute field must have :value items or more.', + 'file' => 'The :attribute field must be greater than or equal to :value kilobytes.', + 'numeric' => 'The :attribute field must be greater than or equal to :value.', + 'string' => 'The :attribute field must be greater than or equal to :value characters.', + ], + 'hex_color' => 'The :attribute field must be a valid hexadecimal color.', + 'image' => 'The :attribute field must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field must exist in :other.', + 'in_array_keys' => 'The :attribute field must contain at least one of the following keys: :values.', + 'integer' => 'The :attribute field must be an integer.', + 'ip' => 'The :attribute field must be a valid IP address.', + 'ipv4' => 'The :attribute field must be a valid IPv4 address.', + 'ipv6' => 'The :attribute field must be a valid IPv6 address.', + 'json' => 'The :attribute field must be a valid JSON string.', + 'list' => 'The :attribute field must be a list.', + 'lowercase' => 'The :attribute field must be lowercase.', + 'lt' => [ + 'array' => 'The :attribute field must have less than :value items.', + 'file' => 'The :attribute field must be less than :value kilobytes.', + 'numeric' => 'The :attribute field must be less than :value.', + 'string' => 'The :attribute field must be less than :value characters.', + ], + 'lte' => [ + 'array' => 'The :attribute field must not have more than :value items.', + 'file' => 'The :attribute field must be less than or equal to :value kilobytes.', + 'numeric' => 'The :attribute field must be less than or equal to :value.', + 'string' => 'The :attribute field must be less than or equal to :value characters.', + ], + 'mac_address' => 'The :attribute field must be a valid MAC address.', + 'max' => [ + 'array' => 'The :attribute field must not have more than :max items.', + 'file' => 'The :attribute field must not be greater than :max kilobytes.', + 'numeric' => 'The :attribute field must not be greater than :max.', + 'string' => 'The :attribute field must not be greater than :max characters.', + ], + 'max_digits' => 'The :attribute field must not have more than :max digits.', + 'mimes' => 'The :attribute field must be a file of type: :values.', + 'mimetypes' => 'The :attribute field must be a file of type: :values.', + 'min' => [ + 'array' => 'The :attribute field must have at least :min items.', + 'file' => 'The :attribute field must be at least :min kilobytes.', + 'numeric' => 'The :attribute field must be at least :min.', + 'string' => 'The :attribute field must be at least :min characters.', + ], + 'min_digits' => 'The :attribute field must have at least :min digits.', + 'missing' => 'The :attribute field must be missing.', + 'missing_if' => 'The :attribute field must be missing when :other is :value.', + 'missing_unless' => 'The :attribute field must be missing unless :other is :value.', + 'missing_with' => 'The :attribute field must be missing when :values is present.', + 'missing_with_all' => 'The :attribute field must be missing when :values are present.', + 'multiple_of' => 'The :attribute field must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute field format is invalid.', + 'numeric' => 'The :attribute field must be a number.', + 'password' => [ + 'letters' => 'The :attribute field must contain at least one letter.', + 'mixed' => 'The :attribute field must contain at least one uppercase and one lowercase letter.', + 'numbers' => 'The :attribute field must contain at least one number.', + 'symbols' => 'The :attribute field must contain at least one symbol.', + 'uncompromised' => 'The given :attribute has appeared in a data leak. Please choose a different :attribute.', + ], + 'present' => 'The :attribute field must be present.', + 'present_if' => 'The :attribute field must be present when :other is :value.', + 'present_unless' => 'The :attribute field must be present unless :other is :value.', + 'present_with' => 'The :attribute field must be present when :values is present.', + 'present_with_all' => 'The :attribute field must be present when :values are present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_if_accepted' => 'The :attribute field is prohibited when :other is accepted.', + 'prohibited_if_declined' => 'The :attribute field is prohibited when :other is declined.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute field format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_if_accepted' => 'The :attribute field is required when :other is accepted.', + 'required_if_declined' => 'The :attribute field is required when :other is declined.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute field must match :other.', + 'size' => [ + 'array' => 'The :attribute field must contain :size items.', + 'file' => 'The :attribute field must be :size kilobytes.', + 'numeric' => 'The :attribute field must be :size.', + 'string' => 'The :attribute field must be :size characters.', + ], + 'starts_with' => 'The :attribute field must start with one of the following: :values.', + 'string' => 'The :attribute field must be a string.', + 'timezone' => 'The :attribute field must be a valid timezone.', + 'ulid' => 'The :attribute field must be a valid ULID.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'uppercase' => 'The :attribute field must be uppercase.', + 'url' => 'The :attribute field must be a valid URL.', + 'uuid' => 'The :attribute field must be a valid UUID.', +]; diff --git a/package.json b/package.json new file mode 100644 index 0000000..aeb9543 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "private": true, + "type": "module", + "scripts": { + "build": "vite build", + "dev": "vite" + }, + "dependencies": { + "@tailwindcss/vite": "^4.0.7", + "autoprefixer": "^10.4.20", + "axios": "^1.7.4", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^1.0", + "tailwindcss": "^4.0.7", + "vite": "^6.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.9.5", + "@tailwindcss/oxide-linux-x64-gnu": "^4.0.1", + "lightningcss-linux-x64-gnu": "^1.29.1" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..c09b5bc --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,32 @@ + + + + + tests/Unit + + + tests/Feature + + + + + app + + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..b574a59 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,25 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Handle X-XSRF-Token Header + RewriteCond %{HTTP:x-xsrf-token} . + RewriteRule .* - [E=HTTP_X_XSRF_TOKEN:%{HTTP:X-XSRF-Token}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d79ac4966875c870fc58edd8d8691e36b0a84a GIT binary patch literal 51535 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 literal 0 HcmV?d00001 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..537891fc14adb0b8af32572b8f10ab7627a22b24 GIT binary patch literal 317341 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Û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

6G8Yl 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 ZaUP$B%yj81t;+xa002ovPDHLkV1k3q5;On+ literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..120c7b5f9cb89f6e3d71434998d6d9aa926a2b9a GIT binary patch literal 45955 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