Skip to content

feat: return Error objects for all error responses - #3578

Open
TheTisiboth wants to merge 4 commits into
feat/structured-import-errorsfrom
feat/json-error-responses
Open

TheTisiboth wants to merge 4 commits into
feat/structured-import-errorsfrom
feat/json-error-responses

Conversation

@TheTisiboth

@TheTisiboth TheTisiboth commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Depends on #3538 (stacked).

Topic and Scope

All remaining error responses return an Error object ({msg}) instead of a plain string, as suggested in the #3538 review.

Endpoint Status
GET /recipes/{id} 404 (was the recipe id)
DELETE /recipes/{id} 502
GET /search/{query}, /category/{category}, /tags/{keywords} 500
PUT /category/{category} 400, 500

Concerns/issues

API change, documented in the API changelog. Status codes are unchanged; replacing the remaining 5xx can be discussed separately.

Formal requirements

  • I did check that the app can still be opened and does not throw any browser logs
  • I created tests for newly added PHP code (check this if no PHP changes were made)
  • I updated the OpenAPI specs and added an entry to the API changelog (check if API was not modified)
  • I notified the matrix channel if I introduced an API change

AI disclosure

I used AI for code gen.

Assisted-by: Claude Code:claude-opus-5-5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Léo Jan <leo.jan@doctolib.com>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

This PR/issue depends on:

@codecov

codecov Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 7.62kB (0.27%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
cookbook-esm 2.84MB 7.62kB (0.27%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: cookbook-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
js/_plugin-vue_export-helper-DHRTeHvG.chunk.mjs (New) 829.81kB 829.81kB 100.0% 🚀
js/index-8SwLPfur.chunk.mjs (New) 239.77kB 239.77kB 100.0% 🚀
js/FilePicker-qWi4RBGN-BYLxzQJz.chunk.mjs (New) 234.11kB 234.11kB 100.0% 🚀
css/main-epwbDzQO.chunk.css (New) 68.33kB 68.33kB 100.0% 🚀
js/be-tarask-DgyCasE9.chunk.mjs (New) 52.5kB 52.5kB 100.0% 🚀
js/index-D3kKBZ26.chunk.mjs (New) 38.48kB 38.48kB 100.0% 🚀
css/_plugin-vue_export-helper-DgwDW6Ba.chunk.css (New) 30.24kB 30.24kB 100.0% 🚀
css/FilePicker-qWi4RBGN-DGMH2mTF.chunk.css (New) 15.66kB 15.66kB 100.0% 🚀
js/ta-BusexmME.chunk.mjs (New) 13.22kB 13.22kB 100.0% 🚀
js/be-BVYaMre9.chunk.mjs (New) 13.02kB 13.02kB 100.0% 🚀
js/ru-CzzuX-LQ.chunk.mjs (New) 12.77kB 12.77kB 100.0% 🚀
js/uk-D6ZRRsvo.chunk.mjs (New) 12.71kB 12.71kB 100.0% 🚀
js/kk-B6FnBJLA.chunk.mjs (New) 12.35kB 12.35kB 100.0% 🚀
js/kn-DdaYghEL.chunk.mjs (New) 12.19kB 12.19kB 100.0% 🚀
js/te-pFIHkFG-.chunk.mjs (New) 11.38kB 11.38kB 100.0% 🚀
js/sl-CtVvrDPr.chunk.mjs (New) 10.85kB 10.85kB 100.0% 🚀
js/cs-DszVkYrQ.chunk.mjs (New) 10.79kB 10.79kB 100.0% 🚀
js/bn-QwIRm2RY.chunk.mjs (New) 10.16kB 10.16kB 100.0% 🚀
js/sr-BAbF2g8k.chunk.mjs (New) 9.83kB 9.83kB 100.0% 🚀
js/ka-DmsjoDLK.chunk.mjs (New) 9.26kB 9.26kB 100.0% 🚀
js/th-DIGIMg9T.chunk.mjs (New) 9.12kB 9.12kB 100.0% 🚀
js/mn-MlrOl0Mk.chunk.mjs (New) 8.9kB 8.9kB 100.0% 🚀
js/lv-CvgfjGbZ.chunk.mjs (New) 8.83kB 8.83kB 100.0% 🚀
js/hi-Deyp1b-n.chunk.mjs (New) 8.71kB 8.71kB 100.0% 🚀
js/pl-C8mdYi6t.chunk.mjs (New) 8.51kB 8.51kB 100.0% 🚀
js/hr-CsMvpaQD.chunk.mjs (New) 8.45kB 8.45kB 100.0% 🚀
js/ar-lSCQ548a.chunk.mjs (New) 8.45kB 8.45kB 100.0% 🚀
js/km-2cDb3lW2.chunk.mjs (New) 8.43kB 8.43kB 100.0% 🚀
js/sk-CjagmBaH.chunk.mjs (New) 8.26kB 8.26kB 100.0% 🚀
js/bs-B8k7IkaK.chunk.mjs (New) 8.24kB 8.24kB 100.0% 🚀
js/sr-Latn-B_md4nE-.chunk.mjs (New) 8.18kB 8.18kB 100.0% 🚀
js/ar-EG-a4ahMypg.chunk.mjs (New) 8.13kB 8.13kB 100.0% 🚀
js/ar-TN-ByNaSquv.chunk.mjs (New) 8.06kB 8.06kB 100.0% 🚀
js/ar-DZ-C1-cMv-R.chunk.mjs (New) 8.06kB 8.06kB 100.0% 🚀
js/ar-MA-B6Gd0WB1.chunk.mjs (New) 7.94kB 7.94kB 100.0% 🚀
js/lt-BwCfb3k2.chunk.mjs (New) 7.94kB 7.94kB 100.0% 🚀
js/ar-SA-CsMgICZk.chunk.mjs (New) 7.93kB 7.93kB 100.0% 🚀
js/ckb-D7jO7BDi.chunk.mjs (New) 7.83kB 7.83kB 100.0% 🚀
js/gu-BqFsqd0w.chunk.mjs (New) 7.81kB 7.81kB 100.0% 🚀
js/he-CaZtPIUv.chunk.mjs (New) 7.77kB 7.77kB 100.0% 🚀
js/lb-W-pjFJ6E.chunk.mjs (New) 7.7kB 7.7kB 100.0% 🚀
js/el-CrqmslUl.chunk.mjs (New) 7.69kB 7.69kB 100.0% 🚀
js/vi-BozkU39o.chunk.mjs (New) 7.61kB 7.61kB 100.0% 🚀
js/fa-IR-Cvxc2nie.chunk.mjs (New) 7.25kB 7.25kB 100.0% 🚀
js/hy-DnKi0NFJ.chunk.mjs (New) 7.2kB 7.2kB 100.0% 🚀
js/et-Ck-9s9Ed.chunk.mjs (New) 7.2kB 7.2kB 100.0% 🚀
js/bg-Drqt_kOz.chunk.mjs (New) 7.07kB 7.07kB 100.0% 🚀
js/ug--b1_2-ml.chunk.mjs (New) 6.99kB 6.99kB 100.0% 🚀
js/ca-D65Z2zAC.chunk.mjs (New) 6.86kB 6.86kB 100.0% 🚀
js/az-BVcYGkKh.chunk.mjs (New) 6.81kB 6.81kB 100.0% 🚀
js/ja-Hira-DnhKdEFx.chunk.mjs (New) 6.75kB 6.75kB 100.0% 🚀
js/mk-yAszETC2.chunk.mjs (New) 6.64kB 6.64kB 100.0% 🚀
js/fi-DjjXNutF.chunk.mjs (New) 6.53kB 6.53kB 100.0% 🚀
js/cy-DOvGB9VE.chunk.mjs (New) 6.47kB 6.47kB 100.0% 🚀
js/gd-DgqpQjrr.chunk.mjs (New) 6.4kB 6.4kB 100.0% 🚀
js/eu-CRWG3iSG.chunk.mjs (New) 6.35kB 6.35kB 100.0% 🚀
js/oc-MhqmvQQS.chunk.mjs (New) 6.28kB 6.28kB 100.0% 🚀
js/pt-D9DmLixY.chunk.mjs (New) 6.15kB 6.15kB 100.0% 🚀
js/zh-CN-D3Ab2IDv.chunk.mjs (New) 6.15kB 6.15kB 100.0% 🚀
js/es-Dc7RtFZL.chunk.mjs (New) 6.13kB 6.13kB 100.0% 🚀
js/is-Cg0G6k3E.chunk.mjs (New) 6.03kB 6.03kB 100.0% 🚀
js/pt-BR-Bmi3cTwP.chunk.mjs (New) 6.03kB 6.03kB 100.0% 🚀
js/tr-Bzo1lfVN.chunk.mjs (New) 6.02kB 6.02kB 100.0% 🚀
js/mt-CtLDjFNr.chunk.mjs (New) 6.01kB 6.01kB 100.0% 🚀
js/gl-HaTOfJbj.chunk.mjs (New) 5.99kB 5.99kB 100.0% 🚀
js/sv-OKxFngFh.chunk.mjs (New) 5.92kB 5.92kB 100.0% 🚀
js/zh-TW-UfH3QJPN.chunk.mjs (New) 5.91kB 5.91kB 100.0% 🚀
js/zh-HK-DOmCSKu-.chunk.mjs (New) 5.91kB 5.91kB 100.0% 🚀
js/uz-Cyrl-B-svZQWv.chunk.mjs (New) 5.9kB 5.9kB 100.0% 🚀
js/ro-BOTFQGfr.chunk.mjs (New) 5.89kB 5.89kB 100.0% 🚀
js/ja-p7iaEDjK.chunk.mjs (New) 5.87kB 5.87kB 100.0% 🚀
js/da-DbbNZVPW.chunk.mjs (New) 5.8kB 5.8kB 100.0% 🚀
js/af-C9nb_5aP.chunk.mjs (New) 5.75kB 5.75kB 100.0% 🚀
js/hu-BqhwCuig.chunk.mjs (New) 5.74kB 5.74kB 100.0% 🚀
js/sq-DyK2KjzY.chunk.mjs (New) 5.73kB 5.73kB 100.0% 🚀
js/match-Mrr0RIws.chunk.mjs (New) 5.7kB 5.7kB 100.0% 🚀
js/id-CmepdB5Z.chunk.mjs (New) 5.68kB 5.68kB 100.0% 🚀
js/ms-Dc5qYcAi.chunk.mjs (New) 5.67kB 5.67kB 100.0% 🚀
js/se-DXLyDFdN.chunk.mjs (New) 5.63kB 5.63kB 100.0% 🚀
js/uz-Bzm9Brvl.chunk.mjs (New) 5.51kB 5.51kB 100.0% 🚀
js/eo-DrxeeWtY.chunk.mjs (New) 5.43kB 5.43kB 100.0% 🚀
js/nn-CTZH0rCa.chunk.mjs (New) 5.4kB 5.4kB 100.0% 🚀
js/ko-BArCNZEj.chunk.mjs (New) 5.38kB 5.38kB 100.0% 🚀
js/nb-yM02iQjv.chunk.mjs (New) 5.3kB 5.3kB 100.0% 🚀
js/ht-BjQPqvl5.chunk.mjs (New) 5.23kB 5.23kB 100.0% 🚀
js/nl-BE-BwFeu74b.chunk.mjs (New) 5.21kB 5.21kB 100.0% 🚀
js/nl-Cn7Vlfvu.chunk.mjs (New) 5.21kB 5.21kB 100.0% 🚀
js/fy-BUwiJ_Kn.chunk.mjs (New) 5.1kB 5.1kB 100.0% 🚀
js/match-Sthf1soC.chunk.mjs (New) 5.01kB 5.01kB 100.0% 🚀
js/match-Bgru202T.chunk.mjs (New) 4.88kB 4.88kB 100.0% 🚀
js/_plugin-vue_export-helper-DHRTeHvG.chunk.mjs.license (New) 3.11kB 3.11kB 100.0% 🚀
js/de-AT-C7CZqJna.chunk.mjs (New) 2.45kB 2.45kB 100.0% 🚀
js/de-DegzsKFp.chunk.mjs (New) 2.44kB 2.44kB 100.0% 🚀
js/en-CA-BawTl0sj.chunk.mjs (New) 1.88kB 1.88kB 100.0% 🚀
js/FilePicker-qWi4RBGN-BYLxzQJz.chunk.mjs.license (New) 1.07kB 1.07kB 100.0% 🚀
js/fr-CH-Bto3leZg.chunk.mjs (New) 999 bytes 999 bytes 100.0% 🚀
js/fr-CA-CDfrtX_p.chunk.mjs (New) 857 bytes 857 bytes 100.0% 🚀
js/fr-DU8yPcT6.chunk.mjs (New) 848 bytes 848 bytes 100.0% 🚀
js/it-CH-CMakMIAS.chunk.mjs (New) 835 bytes 835 bytes 100.0% 🚀
js/it-DJWYJF30.chunk.mjs (New) 827 bytes 827 bytes 100.0% 🚀
js/en-IN-Dr4yZLAE.chunk.mjs (New) 791 bytes 791 bytes 100.0% 🚀
js/en-AU-L5e0q8UA.chunk.mjs (New) 789 bytes 789 bytes 100.0% 🚀
js/en-NZ-BBhEbMPa.chunk.mjs (New) 789 bytes 789 bytes 100.0% 🚀
js/en-ZA-CtA9SS9J.chunk.mjs (New) 783 bytes 783 bytes 100.0% 🚀
js/be-tarask-DgyCasE9.chunk.mjs.license (New) 614 bytes 614 bytes 100.0% 🚀
js/formatLong-KrbLaZrY.chunk.mjs (New) 533 bytes 533 bytes 100.0% 🚀
js/index-D3kKBZ26.chunk.mjs.license (New) 466 bytes 466 bytes 100.0% 🚀
js/index-8SwLPfur.chunk.mjs.license (New) 450 bytes 450 bytes 100.0% 🚀
js/en-GB-DBGIq_N1.chunk.mjs (New) 421 bytes 421 bytes 100.0% 🚀
js/en-IE-B7TqAY_Y.chunk.mjs (New) 421 bytes 421 bytes 100.0% 🚀
js/isSameWeek-DouT8tU3.chunk.mjs (New) 190 bytes 190 bytes 100.0% 🚀
js/en-GB-DBGIq_N1.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-IE-B7TqAY_Y.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/formatLong-KrbLaZrY.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/isSameWeek-DouT8tU3.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/de-AT-C7CZqJna.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/de-DegzsKFp.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-AU-L5e0q8UA.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-IN-Dr4yZLAE.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-NZ-BBhEbMPa.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-ZA-CtA9SS9J.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fr-CA-CDfrtX_p.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fr-DU8yPcT6.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/it-CH-CMakMIAS.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/it-DJWYJF30.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/en-CA-BawTl0sj.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/match-Bgru202T.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fr-CH-Bto3leZg.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/match-Sthf1soC.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/match-Mrr0RIws.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/af-C9nb_5aP.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-DZ-C1-cMv-R.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-EG-a4ahMypg.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-MA-B6Gd0WB1.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-SA-CsMgICZk.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-TN-ByNaSquv.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ar-lSCQ548a.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/az-BVcYGkKh.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/be-BVYaMre9.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/bg-Drqt_kOz.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/bn-QwIRm2RY.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/bs-B8k7IkaK.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ca-D65Z2zAC.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ckb-D7jO7BDi.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/cs-DszVkYrQ.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/cy-DOvGB9VE.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/da-DbbNZVPW.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/el-CrqmslUl.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/eo-DrxeeWtY.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/es-Dc7RtFZL.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/et-Ck-9s9Ed.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/eu-CRWG3iSG.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fa-IR-Cvxc2nie.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fi-DjjXNutF.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/fy-BUwiJ_Kn.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/gd-DgqpQjrr.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/gl-HaTOfJbj.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/gu-BqFsqd0w.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/he-CaZtPIUv.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/hi-Deyp1b-n.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/hr-CsMvpaQD.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ht-BjQPqvl5.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/hu-BqhwCuig.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/hy-DnKi0NFJ.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/id-CmepdB5Z.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/is-Cg0G6k3E.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ja-Hira-DnhKdEFx.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ja-p7iaEDjK.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ka-DmsjoDLK.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/kk-B6FnBJLA.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/km-2cDb3lW2.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/kn-DdaYghEL.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ko-BArCNZEj.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/lb-W-pjFJ6E.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/lt-BwCfb3k2.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/lv-CvgfjGbZ.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/mk-yAszETC2.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/mn-MlrOl0Mk.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ms-Dc5qYcAi.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/mt-CtLDjFNr.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/nb-yM02iQjv.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/nl-BE-BwFeu74b.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/nl-Cn7Vlfvu.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/nn-CTZH0rCa.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/oc-MhqmvQQS.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/pl-C8mdYi6t.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/pt-BR-Bmi3cTwP.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/pt-D9DmLixY.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ro-BOTFQGfr.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ru-CzzuX-LQ.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/se-DXLyDFdN.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sk-CjagmBaH.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sl-CtVvrDPr.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sq-DyK2KjzY.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sr-Latn-B_md4nE-.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sr-BAbF2g8k.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/sv-OKxFngFh.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ta-BusexmME.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/te-pFIHkFG-.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/th-DIGIMg9T.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/tr-Bzo1lfVN.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/ug--b1_2-ml.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/uk-D6ZRRsvo.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/uz-Cyrl-B-svZQWv.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/uz-Bzm9Brvl.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/vi-BozkU39o.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/zh-CN-D3Ab2IDv.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/zh-HK-DOmCSKu-.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/zh-TW-UfH3QJPN.chunk.mjs.license (New) 184 bytes 184 bytes 100.0% 🚀
js/_plugin-vue_export-helper-D4PAj3jj.chunk.mjs (Deleted) -831.48kB 0 bytes -100.0% 🗑️
js/index-DAmHSrem.chunk.mjs (Deleted) -239.77kB 0 bytes -100.0% 🗑️
js/FilePicker-CUCYkc6m-B3LptvCm.chunk.mjs (Deleted) -229.52kB 0 bytes -100.0% 🗑️
css/main-COaaZ9xw.chunk.css (Deleted) -54.53kB 0 bytes -100.0% 🗑️
js/be-tarask-tcWGV2tk.chunk.mjs (Deleted) -52.5kB 0 bytes -100.0% 🗑️
js/index-C0TwvsTL.chunk.mjs (Deleted) -38.48kB 0 bytes -100.0% 🗑️
css/_plugin-vue_export-helper-DVIrmgKd.chunk.css (Deleted) -32.1kB 0 bytes -100.0% 🗑️
css/FilePicker-CUCYkc6m-CjlGqrIZ.chunk.css (Deleted) -23.15kB 0 bytes -100.0% 🗑️
js/ta-G9el0FSR.chunk.mjs (Deleted) -13.22kB 0 bytes -100.0% 🗑️
js/be-BTk0tJLa.chunk.mjs (Deleted) -13.02kB 0 bytes -100.0% 🗑️
js/ru-BGphMns0.chunk.mjs (Deleted) -12.77kB 0 bytes -100.0% 🗑️
js/uk-VsH1CzYx.chunk.mjs (Deleted) -12.71kB 0 bytes -100.0% 🗑️
js/kk-Pi1sky_g.chunk.mjs (Deleted) -12.35kB 0 bytes -100.0% 🗑️
js/kn-1fyV5m_M.chunk.mjs (Deleted) -12.19kB 0 bytes -100.0% 🗑️
js/te-ByBgOq3x.chunk.mjs (Deleted) -11.38kB 0 bytes -100.0% 🗑️
js/sl-BVKGUfRB.chunk.mjs (Deleted) -10.85kB 0 bytes -100.0% 🗑️
js/cs-BWD49G-W.chunk.mjs (Deleted) -10.79kB 0 bytes -100.0% 🗑️
js/bn-CReH1Ddq.chunk.mjs (Deleted) -10.16kB 0 bytes -100.0% 🗑️
js/sr-DXuOT-Di.chunk.mjs (Deleted) -9.83kB 0 bytes -100.0% 🗑️
js/ka-D9_1GMFd.chunk.mjs (Deleted) -9.26kB 0 bytes -100.0% 🗑️
js/th-B2aXvBto.chunk.mjs (Deleted) -9.12kB 0 bytes -100.0% 🗑️
js/mn-DhAQiKki.chunk.mjs (Deleted) -8.9kB 0 bytes -100.0% 🗑️
js/lv-BmRH7rFV.chunk.mjs (Deleted) -8.83kB 0 bytes -100.0% 🗑️
js/hi-DRAq2Ep2.chunk.mjs (Deleted) -8.71kB 0 bytes -100.0% 🗑️
js/pl-BtK-Qsg8.chunk.mjs (Deleted) -8.51kB 0 bytes -100.0% 🗑️
js/hr-BCx1oudN.chunk.mjs (Deleted) -8.45kB 0 bytes -100.0% 🗑️
js/ar-MCRidPLX.chunk.mjs (Deleted) -8.45kB 0 bytes -100.0% 🗑️
js/km-C7IW8Wah.chunk.mjs (Deleted) -8.43kB 0 bytes -100.0% 🗑️
js/sk-BUEIML3V.chunk.mjs (Deleted) -8.26kB 0 bytes -100.0% 🗑️
js/bs-XDSu0pa7.chunk.mjs (Deleted) -8.24kB 0 bytes -100.0% 🗑️
js/sr-Latn-BCJqnLQ_.chunk.mjs (Deleted) -8.18kB 0 bytes -100.0% 🗑️
js/ar-EG-q9xK1zQX.chunk.mjs (Deleted) -8.13kB 0 bytes -100.0% 🗑️
js/ar-TN-D7zEEuSy.chunk.mjs (Deleted) -8.06kB 0 bytes -100.0% 🗑️
js/ar-DZ-BRmHrIey.chunk.mjs (Deleted) -8.06kB 0 bytes -100.0% 🗑️
js/ar-MA-D6qgWRJU.chunk.mjs (Deleted) -7.94kB 0 bytes -100.0% 🗑️
js/lt-DbLNNdX7.chunk.mjs (Deleted) -7.94kB 0 bytes -100.0% 🗑️
js/ar-SA-DOoG6YDj.chunk.mjs (Deleted) -7.93kB 0 bytes -100.0% 🗑️
js/ckb-DTMXs8kd.chunk.mjs (Deleted) -7.83kB 0 bytes -100.0% 🗑️
js/gu-9_Dv2cAR.chunk.mjs (Deleted) -7.81kB 0 bytes -100.0% 🗑️
js/he-z13TN15P.chunk.mjs (Deleted) -7.77kB 0 bytes -100.0% 🗑️
js/lb-BR983gaZ.chunk.mjs (Deleted) -7.7kB 0 bytes -100.0% 🗑️
js/el-DdOLQ2K4.chunk.mjs (Deleted) -7.69kB 0 bytes -100.0% 🗑️
js/vi-CeWFPFDt.chunk.mjs (Deleted) -7.61kB 0 bytes -100.0% 🗑️
js/fa-IR-C1OhQi7A.chunk.mjs (Deleted) -7.25kB 0 bytes -100.0% 🗑️
js/hy-Bu5BsMLJ.chunk.mjs (Deleted) -7.2kB 0 bytes -100.0% 🗑️
js/et-BT0GX2aO.chunk.mjs (Deleted) -7.2kB 0 bytes -100.0% 🗑️
js/bg-CAkHhN17.chunk.mjs (Deleted) -7.07kB 0 bytes -100.0% 🗑️
js/ug-D10PzZRl.chunk.mjs (Deleted) -6.99kB 0 bytes -100.0% 🗑️
js/ca-BwlIgdLc.chunk.mjs (Deleted) -6.86kB 0 bytes -100.0% 🗑️
js/az-FTkBe6cP.chunk.mjs (Deleted) -6.81kB 0 bytes -100.0% 🗑️
js/ja-Hira-CSvVcpF5.chunk.mjs (Deleted) -6.75kB 0 bytes -100.0% 🗑️
js/mk-roIRRCaj.chunk.mjs (Deleted) -6.64kB 0 bytes -100.0% 🗑️
js/fi-D8uB9vj7.chunk.mjs (Deleted) -6.53kB 0 bytes -100.0% 🗑️
js/cy-BcHKfOq8.chunk.mjs (Deleted) -6.47kB 0 bytes -100.0% 🗑️
js/gd-aDMYuQRe.chunk.mjs (Deleted) -6.4kB 0 bytes -100.0% 🗑️
js/eu-C0Zlk_Zl.chunk.mjs (Deleted) -6.35kB 0 bytes -100.0% 🗑️
js/oc-CYD7SP3K.chunk.mjs (Deleted) -6.28kB 0 bytes -100.0% 🗑️
js/pt-dNB6CD29.chunk.mjs (Deleted) -6.15kB 0 bytes -100.0% 🗑️
js/zh-CN-C3byl8Rx.chunk.mjs (Deleted) -6.15kB 0 bytes -100.0% 🗑️
js/es-BpLUfAaI.chunk.mjs (Deleted) -6.13kB 0 bytes -100.0% 🗑️
js/is-DHgBmemV.chunk.mjs (Deleted) -6.03kB 0 bytes -100.0% 🗑️
js/pt-BR-Du3kfv43.chunk.mjs (Deleted) -6.03kB 0 bytes -100.0% 🗑️
js/tr-Bs9d1JoQ.chunk.mjs (Deleted) -6.02kB 0 bytes -100.0% 🗑️
js/mt-CivvpbGv.chunk.mjs (Deleted) -6.01kB 0 bytes -100.0% 🗑️
js/gl-CFSyJWC2.chunk.mjs (Deleted) -5.99kB 0 bytes -100.0% 🗑️
js/sv-CDgZwE5L.chunk.mjs (Deleted) -5.92kB 0 bytes -100.0% 🗑️
js/zh-TW-Dv26Vesi.chunk.mjs (Deleted) -5.91kB 0 bytes -100.0% 🗑️
js/zh-HK-C_VqMfL3.chunk.mjs (Deleted) -5.91kB 0 bytes -100.0% 🗑️
js/uz-Cyrl-Cl6rk9Po.chunk.mjs (Deleted) -5.9kB 0 bytes -100.0% 🗑️
js/ro-z5jYlhUV.chunk.mjs (Deleted) -5.89kB 0 bytes -100.0% 🗑️
js/ja-n5mD0eh4.chunk.mjs (Deleted) -5.87kB 0 bytes -100.0% 🗑️
js/da-CpprfDk4.chunk.mjs (Deleted) -5.8kB 0 bytes -100.0% 🗑️
js/af-uxub_M4_.chunk.mjs (Deleted) -5.75kB 0 bytes -100.0% 🗑️
js/hu-BAD9KBbr.chunk.mjs (Deleted) -5.74kB 0 bytes -100.0% 🗑️
js/sq-CXTWqaXO.chunk.mjs (Deleted) -5.73kB 0 bytes -100.0% 🗑️
js/match-CyQYv5sa.chunk.mjs (Deleted) -5.7kB 0 bytes -100.0% 🗑️
js/id-e8PCcPIU.chunk.mjs (Deleted) -5.68kB 0 bytes -100.0% 🗑️
js/ms-rqX8nius.chunk.mjs (Deleted) -5.67kB 0 bytes -100.0% 🗑️
js/se-P2CSkZ77.chunk.mjs (Deleted) -5.63kB 0 bytes -100.0% 🗑️
js/uz-sVXHN2tZ.chunk.mjs (Deleted) -5.51kB 0 bytes -100.0% 🗑️
js/eo-DOaIfbA-.chunk.mjs (Deleted) -5.43kB 0 bytes -100.0% 🗑️
js/nn-Mv-26HR0.chunk.mjs (Deleted) -5.4kB 0 bytes -100.0% 🗑️
js/ko-tutYHj0-.chunk.mjs (Deleted) -5.38kB 0 bytes -100.0% 🗑️
js/nb-DAHThbSu.chunk.mjs (Deleted) -5.3kB 0 bytes -100.0% 🗑️
js/ht-DM8HHkq0.chunk.mjs (Deleted) -5.23kB 0 bytes -100.0% 🗑️
js/nl-BE-DjTXTJcl.chunk.mjs (Deleted) -5.21kB 0 bytes -100.0% 🗑️
js/nl-CgoSFfyF.chunk.mjs (Deleted) -5.21kB 0 bytes -100.0% 🗑️
js/fy-mnp2Faix.chunk.mjs (Deleted) -5.1kB 0 bytes -100.0% 🗑️
js/match-B6EU68lN.chunk.mjs (Deleted) -5.01kB 0 bytes -100.0% 🗑️
js/match-BnOVykxq.chunk.mjs (Deleted) -4.88kB 0 bytes -100.0% 🗑️
js/_plugin-vue_export-helper-D4PAj3jj.chunk.mjs.license (Deleted) -3.15kB 0 bytes -100.0% 🗑️
js/de-AT-CvghKtoF.chunk.mjs (Deleted) -2.45kB 0 bytes -100.0% 🗑️
js/de-BtpGgI4O.chunk.mjs (Deleted) -2.44kB 0 bytes -100.0% 🗑️
js/en-CA-BbzOXI9h.chunk.mjs (Deleted) -1.88kB 0 bytes -100.0% 🗑️
js/fr-CH-BgWjhge0.chunk.mjs (Deleted) -999 bytes 0 bytes -100.0% 🗑️
js/fr-CA-Bkgf1Cik.chunk.mjs (Deleted) -857 bytes 0 bytes -100.0% 🗑️
js/fr-BJJt9TI1.chunk.mjs (Deleted) -848 bytes 0 bytes -100.0% 🗑️
js/it-CH-ulGjjW9_.chunk.mjs (Deleted) -835 bytes 0 bytes -100.0% 🗑️
js/it-DoHQyFHn.chunk.mjs (Deleted) -827 bytes 0 bytes -100.0% 🗑️
js/en-IN-C2Ntu8-O.chunk.mjs (Deleted) -791 bytes 0 bytes -100.0% 🗑️
js/en-AU-B0QIr5_u.chunk.mjs (Deleted) -789 bytes 0 bytes -100.0% 🗑️
js/en-NZ-YaNnlJKz.chunk.mjs (Deleted) -789 bytes 0 bytes -100.0% 🗑️
js/en-ZA-C5DGm6TP.chunk.mjs (Deleted) -783 bytes 0 bytes -100.0% 🗑️
js/FilePicker-CUCYkc6m-B3LptvCm.chunk.mjs.license (Deleted) -767 bytes 0 bytes -100.0% 🗑️
js/be-tarask-tcWGV2tk.chunk.mjs.license (Deleted) -614 bytes 0 bytes -100.0% 🗑️
js/formatLong-Bw6dnMU9.chunk.mjs (Deleted) -533 bytes 0 bytes -100.0% 🗑️
js/index-C0TwvsTL.chunk.mjs.license (Deleted) -466 bytes 0 bytes -100.0% 🗑️
js/index-DAmHSrem.chunk.mjs.license (Deleted) -450 bytes 0 bytes -100.0% 🗑️
js/en-GB-DYfVO0MR.chunk.mjs (Deleted) -421 bytes 0 bytes -100.0% 🗑️
js/en-IE-BgAMQnXU.chunk.mjs (Deleted) -421 bytes 0 bytes -100.0% 🗑️
js/isSameWeek-jvm8SaNR.chunk.mjs (Deleted) -190 bytes 0 bytes -100.0% 🗑️
js/en-GB-DYfVO0MR.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-IE-BgAMQnXU.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/formatLong-Bw6dnMU9.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/isSameWeek-jvm8SaNR.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/de-AT-CvghKtoF.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/de-BtpGgI4O.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-AU-B0QIr5_u.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-IN-C2Ntu8-O.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-NZ-YaNnlJKz.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-ZA-C5DGm6TP.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fr-CA-Bkgf1Cik.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fr-BJJt9TI1.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/it-CH-ulGjjW9_.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/it-DoHQyFHn.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/en-CA-BbzOXI9h.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/match-BnOVykxq.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fr-CH-BgWjhge0.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/match-B6EU68lN.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/match-CyQYv5sa.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/af-uxub_M4_.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-DZ-BRmHrIey.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-EG-q9xK1zQX.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-MA-D6qgWRJU.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-SA-DOoG6YDj.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-TN-D7zEEuSy.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ar-MCRidPLX.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/az-FTkBe6cP.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/be-BTk0tJLa.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/bg-CAkHhN17.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/bn-CReH1Ddq.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/bs-XDSu0pa7.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ca-BwlIgdLc.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ckb-DTMXs8kd.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/cs-BWD49G-W.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/cy-BcHKfOq8.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/da-CpprfDk4.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/el-DdOLQ2K4.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/eo-DOaIfbA-.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/es-BpLUfAaI.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/et-BT0GX2aO.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/eu-C0Zlk_Zl.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fa-IR-C1OhQi7A.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fi-D8uB9vj7.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/fy-mnp2Faix.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/gd-aDMYuQRe.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/gl-CFSyJWC2.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/gu-9_Dv2cAR.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/he-z13TN15P.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/hi-DRAq2Ep2.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/hr-BCx1oudN.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ht-DM8HHkq0.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/hu-BAD9KBbr.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/hy-Bu5BsMLJ.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/id-e8PCcPIU.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/is-DHgBmemV.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ja-Hira-CSvVcpF5.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ja-n5mD0eh4.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ka-D9_1GMFd.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/kk-Pi1sky_g.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/km-C7IW8Wah.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/kn-1fyV5m_M.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ko-tutYHj0-.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/lb-BR983gaZ.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/lt-DbLNNdX7.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/lv-BmRH7rFV.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/mk-roIRRCaj.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/mn-DhAQiKki.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ms-rqX8nius.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/mt-CivvpbGv.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/nb-DAHThbSu.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/nl-BE-DjTXTJcl.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/nl-CgoSFfyF.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/nn-Mv-26HR0.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/oc-CYD7SP3K.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/pl-BtK-Qsg8.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/pt-BR-Du3kfv43.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/pt-dNB6CD29.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ro-z5jYlhUV.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ru-BGphMns0.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/se-P2CSkZ77.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sk-BUEIML3V.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sl-BVKGUfRB.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sq-CXTWqaXO.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sr-Latn-BCJqnLQ_.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sr-DXuOT-Di.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/sv-CDgZwE5L.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ta-G9el0FSR.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/te-ByBgOq3x.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/th-B2aXvBto.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/tr-Bs9d1JoQ.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/ug-D10PzZRl.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/uk-VsH1CzYx.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/uz-Cyrl-Cl6rk9Po.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/uz-sVXHN2tZ.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/vi-CeWFPFDt.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/zh-CN-C3byl8Rx.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/zh-HK-C_VqMfL3.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️
js/zh-TW-Dv26Vesi.chunk.mjs.license (Deleted) -184 bytes 0 bytes -100.0% 🗑️

TheTisiboth and others added 2 commits November 9, 2026 22:21
Assisted-by: Claude Code:claude-opus-5-5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Léo Jan <leo.jan@doctolib.com>
@TheTisiboth
TheTisiboth marked this pull request as ready for review November 9, 2026 21:23
@TheTisiboth
TheTisiboth added this pull request to stack #3550 November 9, 2026 21:25
@coderabbitai

coderabbitai Bot commented Nov 9, 2026

Copy link
Copy Markdown

Explain Change →

No actionable comments were generated in the recent review.

Walkthrough

Recipe and category controller errors now return messages in a msg field. A missing recipe response returns “Recipe not found.” instead of the requested recipe ID. The affected HTTP status codes remain unchanged. The internal and public API specifications now reference the shared Error schema for these responses, and the category-rename specification includes a 400 response.

Merge Risk: Minimal · up to 423a8

Error responses for the listed endpoints now return an object with a msg field, and the change is documented as unpublished API changes. No actionable merge-blocking risk remains.

Pre-merge checks: Passed 5

Check name Status Explanation
Title check Passed The title clearly summarizes the main change: error responses now use Error objects.
Description check Passed The description includes the required Topic and Scope, Concerns/issues, and Formal requirements sections. It summarizes the affected endpoints, status codes, tests, and API documentation. The Matrix n…
Docstring Coverage Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description includes the required Topic and Scope, Concerns/issues, and Formal requirements sections. It summarizes the affected endpoints, status codes, tests, and API documentation. The Matrix notification checkbox remains unchecked for this API change.

Full details: Docstring Coverage

Explanation

Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 6 functions across 4 files. (3 skipped: 3 unsupported.)

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Recent review info

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f578f659-0310-4ef2-8dd5-ca6a27ed582a
Commits

Reviewing files that changed from the base of the PR and between 70d6265 and 423a8cf.

Files selected for processing: 7

  • docs/dev/api/changelog/0.md
  • docs/dev/api/trunk/internal-cookbook.yaml
  • docs/dev/api/trunk/openapi-cookbook.yaml
  • lib/Controller/Implementation/CategoryImplementation.php
  • lib/Controller/Implementation/RecipeImplementation.php
  • tests/Unit/Controller/Implementation/CategoryImplementationTest.php
  • tests/Unit/Controller/Implementation/RecipeImplementationTest.php

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant