{"pviz_slice":true,"schema_version":"pviz-slice@v1","tool":"framework_inventory","generated_at":"2026-11-03T17:29:57.730997+00:00","bundle":{"path":"/b/bundle.json","repo":"bookstack","node_count":2276,"edge_count":7744},"params":{"command":"framework-inventory","kind":"endpoints","framework":null,"language":null,"status":null,"symbol":null,"match":"exact","max_rows":200},"result":{"schema":"pviz.slice.framework_inventory.v1","filters":{"kind":"endpoints","kinds":["ROUTE_HANDLER","FILE_ROUTE","RPC_IMPLEMENTATION"],"framework":[],"language":[],"status":[],"symbol":null,"match":"exact"},"rows_source":"sidecar","rows_complete":true,"population":{"state":"used","sidecar":"bundle.framework_facts.json","sha256":"bcad206d1330635e2770f8d9846049394eb4e506274cfeab715a2a0d45b01b05","rows_total":362},"by_status":{"EXACT":339,"UNRESOLVED":1},"by_status_total":2,"by_status_truncated":false,"by_framework":{"laravel":340},"by_framework_total":1,"by_framework_truncated":false,"rows":[{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":29,"target":"app/Entities/Controllers/PageApiController.php#BookStack\\Entities\\Controllers\\PageApiController::delete","method":"DELETE","path":"/pages/{id}","path_status":"EXACT","join":"http:DELETE:/pages/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#10","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":107,"target":"app/Users/Controllers/RoleApiController.php#BookStack\\Users\\Controllers\\RoleApiController::delete","method":"DELETE","path":"/roles/{id}","path_status":"EXACT","join":"http:DELETE:/roles/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":122,"target":"app/Users/Controllers/UserApiController.php#BookStack\\Users\\Controllers\\UserApiController::delete","method":"DELETE","path":"/users/{id}","path_status":"EXACT","join":"http:DELETE:/users/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":40,"target":"app/Entities/Controllers/ChapterApiController.php#BookStack\\Entities\\Controllers\\ChapterApiController::delete","method":"DELETE","path":"/chapters/{id}","path_status":"EXACT","join":"http:DELETE:/chapters/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":51,"target":"app/Entities/Controllers/BookApiController.php#BookStack\\Entities\\Controllers\\BookApiController::delete","method":"DELETE","path":"/books/{id}","path_status":"EXACT","join":"http:DELETE:/books/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":62,"target":"app/Entities/Controllers/BookshelfApiController.php#BookStack\\Entities\\Controllers\\BookshelfApiController::delete","method":"DELETE","path":"/shelves/{id}","path_status":"EXACT","join":"http:DELETE:/shelves/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":70,"target":"app/Uploads/Controllers/AttachmentApiController.php#BookStack\\Uploads\\Controllers\\AttachmentApiController::delete","method":"DELETE","path":"/attachments/{id}","path_status":"EXACT","join":"http:DELETE:/attachments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#6","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":78,"target":"app/Activity/Controllers/CommentApiController.php#BookStack\\Activity\\Controllers\\CommentApiController::delete","method":"DELETE","path":"/comments/{id}","path_status":"EXACT","join":"http:DELETE:/comments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#7","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":91,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::delete","method":"DELETE","path":"/image-gallery/{id}","path_status":"EXACT","join":"http:DELETE:/image-gallery/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#8","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":97,"target":"app/Exports/Controllers/ImportApiController.php#BookStack\\Exports\\Controllers\\ImportApiController::delete","method":"DELETE","path":"/imports/{id}","path_status":"EXACT","join":"http:DELETE:/imports/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::delete#9","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":101,"target":"app/Entities/Controllers/RecycleBinApiController.php#BookStack\\Entities\\Controllers\\RecycleBinApiController::destroy","method":"DELETE","path":"/recycle-bin/{deletionId}","path_status":"EXACT","join":"http:DELETE:/recycle-bin/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":25,"target":"app/Entities/Controllers/PageApiController.php#BookStack\\Entities\\Controllers\\PageApiController::list","method":"GET","path":"/pages","path_status":"EXACT","join":"http:GET:/pages"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#10","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":41,"target":"app/Exports/Controllers/ChapterExportApiController.php#BookStack\\Exports\\Controllers\\ChapterExportApiController::exportHtml","method":"GET","path":"/chapters/{id}/export/html","path_status":"EXACT","join":"http:GET:/chapters/:id/export/html"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":42,"target":"app/Exports/Controllers/ChapterExportApiController.php#BookStack\\Exports\\Controllers\\ChapterExportApiController::exportPdf","method":"GET","path":"/chapters/{id}/export/pdf","path_status":"EXACT","join":"http:GET:/chapters/:id/export/pdf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#12","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":43,"target":"app/Exports/Controllers/ChapterExportApiController.php#BookStack\\Exports\\Controllers\\ChapterExportApiController::exportPlainText","method":"GET","path":"/chapters/{id}/export/plaintext","path_status":"EXACT","join":"http:GET:/chapters/:id/export/plaintext"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#13","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":44,"target":"app/Exports/Controllers/ChapterExportApiController.php#BookStack\\Exports\\Controllers\\ChapterExportApiController::exportMarkdown","method":"GET","path":"/chapters/{id}/export/markdown","path_status":"EXACT","join":"http:GET:/chapters/:id/export/markdown"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#14","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":45,"target":"app/Exports/Controllers/ChapterExportApiController.php#BookStack\\Exports\\Controllers\\ChapterExportApiController::exportZip","method":"GET","path":"/chapters/{id}/export/zip","path_status":"EXACT","join":"http:GET:/chapters/:id/export/zip"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#15","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":47,"target":"app/Entities/Controllers/BookApiController.php#BookStack\\Entities\\Controllers\\BookApiController::list","method":"GET","path":"/books","path_status":"EXACT","join":"http:GET:/books"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#16","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":49,"target":"app/Entities/Controllers/BookApiController.php#BookStack\\Entities\\Controllers\\BookApiController::read","method":"GET","path":"/books/{id}","path_status":"EXACT","join":"http:GET:/books/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#17","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":52,"target":"app/Exports/Controllers/BookExportApiController.php#BookStack\\Exports\\Controllers\\BookExportApiController::exportHtml","method":"GET","path":"/books/{id}/export/html","path_status":"EXACT","join":"http:GET:/books/:id/export/html"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#18","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":53,"target":"app/Exports/Controllers/BookExportApiController.php#BookStack\\Exports\\Controllers\\BookExportApiController::exportPdf","method":"GET","path":"/books/{id}/export/pdf","path_status":"EXACT","join":"http:GET:/books/:id/export/pdf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#19","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":54,"target":"app/Exports/Controllers/BookExportApiController.php#BookStack\\Exports\\Controllers\\BookExportApiController::exportPlainText","method":"GET","path":"/books/{id}/export/plaintext","path_status":"EXACT","join":"http:GET:/books/:id/export/plaintext"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":27,"target":"app/Entities/Controllers/PageApiController.php#BookStack\\Entities\\Controllers\\PageApiController::read","method":"GET","path":"/pages/{id}","path_status":"EXACT","join":"http:GET:/pages/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#20","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":55,"target":"app/Exports/Controllers/BookExportApiController.php#BookStack\\Exports\\Controllers\\BookExportApiController::exportMarkdown","method":"GET","path":"/books/{id}/export/markdown","path_status":"EXACT","join":"http:GET:/books/:id/export/markdown"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#21","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":56,"target":"app/Exports/Controllers/BookExportApiController.php#BookStack\\Exports\\Controllers\\BookExportApiController::exportZip","method":"GET","path":"/books/{id}/export/zip","path_status":"EXACT","join":"http:GET:/books/:id/export/zip"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#22","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":58,"target":"app/Entities/Controllers/BookshelfApiController.php#BookStack\\Entities\\Controllers\\BookshelfApiController::list","method":"GET","path":"/shelves","path_status":"EXACT","join":"http:GET:/shelves"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#23","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":60,"target":"app/Entities/Controllers/BookshelfApiController.php#BookStack\\Entities\\Controllers\\BookshelfApiController::read","method":"GET","path":"/shelves/{id}","path_status":"EXACT","join":"http:GET:/shelves/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#24","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":66,"target":"app/Uploads/Controllers/AttachmentApiController.php#BookStack\\Uploads\\Controllers\\AttachmentApiController::list","method":"GET","path":"/attachments","path_status":"EXACT","join":"http:GET:/attachments"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#25","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":68,"target":"app/Uploads/Controllers/AttachmentApiController.php#BookStack\\Uploads\\Controllers\\AttachmentApiController::read","method":"GET","path":"/attachments/{id}","path_status":"EXACT","join":"http:GET:/attachments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#26","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":72,"target":"app/Activity/Controllers/AuditLogApiController.php#BookStack\\Activity\\Controllers\\AuditLogApiController::list","method":"GET","path":"/audit-log","path_status":"EXACT","join":"http:GET:/audit-log"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#27","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":74,"target":"app/Activity/Controllers/CommentApiController.php#BookStack\\Activity\\Controllers\\CommentApiController::list","method":"GET","path":"/comments","path_status":"EXACT","join":"http:GET:/comments"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#28","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":76,"target":"app/Activity/Controllers/CommentApiController.php#BookStack\\Activity\\Controllers\\CommentApiController::read","method":"GET","path":"/comments/{id}","path_status":"EXACT","join":"http:GET:/comments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#29","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":80,"target":"app/Permissions/ContentPermissionApiController.php#BookStack\\Permissions\\ContentPermissionApiController::read","method":"GET","path":"/content-permissions/{contentType}/{contentId}","path_status":"EXACT","join":"http:GET:/content-permissions/:id/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":30,"target":"app/Exports/Controllers/PageExportApiController.php#BookStack\\Exports\\Controllers\\PageExportApiController::exportHtml","method":"GET","path":"/pages/{id}/export/html","path_status":"EXACT","join":"http:GET:/pages/:id/export/html"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#30","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":83,"target":"app/Api/ApiDocsController.php#BookStack\\Api\\ApiDocsController::json","method":"GET","path":"/docs.json","path_status":"EXACT","join":"http:GET:/docs.json"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#31","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":85,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::list","method":"GET","path":"/image-gallery","path_status":"EXACT","join":"http:GET:/image-gallery"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#32","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":87,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::readDataForUrl","method":"GET","path":"/image-gallery/url/data","path_status":"EXACT","join":"http:GET:/image-gallery/url/data"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#33","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":88,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::read","method":"GET","path":"/image-gallery/{id}","path_status":"EXACT","join":"http:GET:/image-gallery/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#34","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":89,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::readData","method":"GET","path":"/image-gallery/{id}/data","path_status":"EXACT","join":"http:GET:/image-gallery/:id/data"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#35","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":93,"target":"app/Exports/Controllers/ImportApiController.php#BookStack\\Exports\\Controllers\\ImportApiController::list","method":"GET","path":"/imports","path_status":"EXACT","join":"http:GET:/imports"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#36","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":95,"target":"app/Exports/Controllers/ImportApiController.php#BookStack\\Exports\\Controllers\\ImportApiController::read","method":"GET","path":"/imports/{id}","path_status":"EXACT","join":"http:GET:/imports/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#37","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":99,"target":"app/Entities/Controllers/RecycleBinApiController.php#BookStack\\Entities\\Controllers\\RecycleBinApiController::list","method":"GET","path":"/recycle-bin","path_status":"EXACT","join":"http:GET:/recycle-bin"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#38","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":103,"target":"app/Users/Controllers/RoleApiController.php#BookStack\\Users\\Controllers\\RoleApiController::list","method":"GET","path":"/roles","path_status":"EXACT","join":"http:GET:/roles"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#39","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":105,"target":"app/Users/Controllers/RoleApiController.php#BookStack\\Users\\Controllers\\RoleApiController::read","method":"GET","path":"/roles/{id}","path_status":"EXACT","join":"http:GET:/roles/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":31,"target":"app/Exports/Controllers/PageExportApiController.php#BookStack\\Exports\\Controllers\\PageExportApiController::exportPdf","method":"GET","path":"/pages/{id}/export/pdf","path_status":"EXACT","join":"http:GET:/pages/:id/export/pdf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#40","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":109,"target":"app/Search/SearchApiController.php#BookStack\\Search\\SearchApiController::all","method":"GET","path":"/search","path_status":"EXACT","join":"http:GET:/search"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#41","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":110,"target":"app/Search/SearchApiController.php#BookStack\\Search\\SearchApiController::book","method":"GET","path":"/search/book/{id}","path_status":"EXACT","join":"http:GET:/search/book/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#42","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":111,"target":"app/Search/SearchApiController.php#BookStack\\Search\\SearchApiController::chapter","method":"GET","path":"/search/chapter/{id}","path_status":"EXACT","join":"http:GET:/search/chapter/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#43","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":113,"target":"app/App/SystemApiController.php#BookStack\\App\\SystemApiController::read","method":"GET","path":"/system","path_status":"EXACT","join":"http:GET:/system"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#44","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":115,"target":"app/Activity/Controllers/TagApiController.php#BookStack\\Activity\\Controllers\\TagApiController::listNames","method":"GET","path":"/tags/names","path_status":"EXACT","join":"http:GET:/tags/names"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#45","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":116,"target":"app/Activity/Controllers/TagApiController.php#BookStack\\Activity\\Controllers\\TagApiController::listValues","method":"GET","path":"/tags/values-for-name","path_status":"EXACT","join":"http:GET:/tags/values-for-name"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#46","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":118,"target":"app/Users/Controllers/UserApiController.php#BookStack\\Users\\Controllers\\UserApiController::list","method":"GET","path":"/users","path_status":"EXACT","join":"http:GET:/users"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#47","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":120,"target":"app/Users/Controllers/UserApiController.php#BookStack\\Users\\Controllers\\UserApiController::read","method":"GET","path":"/users/{id}","path_status":"EXACT","join":"http:GET:/users/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":32,"target":"app/Exports/Controllers/PageExportApiController.php#BookStack\\Exports\\Controllers\\PageExportApiController::exportPlainText","method":"GET","path":"/pages/{id}/export/plaintext","path_status":"EXACT","join":"http:GET:/pages/:id/export/plaintext"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#6","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":33,"target":"app/Exports/Controllers/PageExportApiController.php#BookStack\\Exports\\Controllers\\PageExportApiController::exportMarkdown","method":"GET","path":"/pages/{id}/export/markdown","path_status":"EXACT","join":"http:GET:/pages/:id/export/markdown"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#7","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":34,"target":"app/Exports/Controllers/PageExportApiController.php#BookStack\\Exports\\Controllers\\PageExportApiController::exportZip","method":"GET","path":"/pages/{id}/export/zip","path_status":"EXACT","join":"http:GET:/pages/:id/export/zip"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#8","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":36,"target":"app/Entities/Controllers/ChapterApiController.php#BookStack\\Entities\\Controllers\\ChapterApiController::list","method":"GET","path":"/chapters","path_status":"EXACT","join":"http:GET:/chapters"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::get#9","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":38,"target":"app/Entities/Controllers/ChapterApiController.php#BookStack\\Entities\\Controllers\\ChapterApiController::read","method":"GET","path":"/chapters/{id}","path_status":"EXACT","join":"http:GET:/chapters/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":26,"target":"app/Entities/Controllers/PageApiController.php#BookStack\\Entities\\Controllers\\PageApiController::create","method":"POST","path":"/pages","path_status":"EXACT","join":"http:POST:/pages"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#10","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":104,"target":"app/Users/Controllers/RoleApiController.php#BookStack\\Users\\Controllers\\RoleApiController::create","method":"POST","path":"/roles","path_status":"EXACT","join":"http:POST:/roles"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":119,"target":"app/Users/Controllers/UserApiController.php#BookStack\\Users\\Controllers\\UserApiController::create","method":"POST","path":"/users","path_status":"EXACT","join":"http:POST:/users"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":37,"target":"app/Entities/Controllers/ChapterApiController.php#BookStack\\Entities\\Controllers\\ChapterApiController::create","method":"POST","path":"/chapters","path_status":"EXACT","join":"http:POST:/chapters"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":48,"target":"app/Entities/Controllers/BookApiController.php#BookStack\\Entities\\Controllers\\BookApiController::create","method":"POST","path":"/books","path_status":"EXACT","join":"http:POST:/books"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":59,"target":"app/Entities/Controllers/BookshelfApiController.php#BookStack\\Entities\\Controllers\\BookshelfApiController::create","method":"POST","path":"/shelves","path_status":"EXACT","join":"http:POST:/shelves"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":67,"target":"app/Uploads/Controllers/AttachmentApiController.php#BookStack\\Uploads\\Controllers\\AttachmentApiController::create","method":"POST","path":"/attachments","path_status":"EXACT","join":"http:POST:/attachments"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#6","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":75,"target":"app/Activity/Controllers/CommentApiController.php#BookStack\\Activity\\Controllers\\CommentApiController::create","method":"POST","path":"/comments","path_status":"EXACT","join":"http:POST:/comments"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#7","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":86,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::create","method":"POST","path":"/image-gallery","path_status":"EXACT","join":"http:POST:/image-gallery"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#8","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":94,"target":"app/Exports/Controllers/ImportApiController.php#BookStack\\Exports\\Controllers\\ImportApiController::create","method":"POST","path":"/imports","path_status":"EXACT","join":"http:POST:/imports"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::post#9","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":96,"target":"app/Exports/Controllers/ImportApiController.php#BookStack\\Exports\\Controllers\\ImportApiController::run","method":"POST","path":"/imports/{id}","path_status":"EXACT","join":"http:POST:/imports/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":28,"target":"app/Entities/Controllers/PageApiController.php#BookStack\\Entities\\Controllers\\PageApiController::update","method":"PUT","path":"/pages/{id}","path_status":"EXACT","join":"http:PUT:/pages/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#10","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":106,"target":"app/Users/Controllers/RoleApiController.php#BookStack\\Users\\Controllers\\RoleApiController::update","method":"PUT","path":"/roles/{id}","path_status":"EXACT","join":"http:PUT:/roles/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":121,"target":"app/Users/Controllers/UserApiController.php#BookStack\\Users\\Controllers\\UserApiController::update","method":"PUT","path":"/users/{id}","path_status":"EXACT","join":"http:PUT:/users/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":39,"target":"app/Entities/Controllers/ChapterApiController.php#BookStack\\Entities\\Controllers\\ChapterApiController::update","method":"PUT","path":"/chapters/{id}","path_status":"EXACT","join":"http:PUT:/chapters/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":50,"target":"app/Entities/Controllers/BookApiController.php#BookStack\\Entities\\Controllers\\BookApiController::update","method":"PUT","path":"/books/{id}","path_status":"EXACT","join":"http:PUT:/books/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":61,"target":"app/Entities/Controllers/BookshelfApiController.php#BookStack\\Entities\\Controllers\\BookshelfApiController::update","method":"PUT","path":"/shelves/{id}","path_status":"EXACT","join":"http:PUT:/shelves/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":69,"target":"app/Uploads/Controllers/AttachmentApiController.php#BookStack\\Uploads\\Controllers\\AttachmentApiController::update","method":"PUT","path":"/attachments/{id}","path_status":"EXACT","join":"http:PUT:/attachments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#6","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":77,"target":"app/Activity/Controllers/CommentApiController.php#BookStack\\Activity\\Controllers\\CommentApiController::update","method":"PUT","path":"/comments/{id}","path_status":"EXACT","join":"http:PUT:/comments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#7","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":81,"target":"app/Permissions/ContentPermissionApiController.php#BookStack\\Permissions\\ContentPermissionApiController::update","method":"PUT","path":"/content-permissions/{contentType}/{contentId}","path_status":"EXACT","join":"http:PUT:/content-permissions/:id/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#8","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":90,"target":"app/Uploads/Controllers/ImageGalleryApiController.php#BookStack\\Uploads\\Controllers\\ImageGalleryApiController::update","method":"PUT","path":"/image-gallery/{id}","path_status":"EXACT","join":"http:PUT:/image-gallery/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/api.php#<file>:Route::put#9","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/api.php","site_line":100,"target":"app/Entities/Controllers/RecycleBinApiController.php#BookStack\\Entities\\Controllers\\RecycleBinApiController::restore","method":"PUT","path":"/recycle-bin/{deletionId}","path_status":"EXACT","join":"http:PUT:/recycle-bin/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":55,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::destroy","method":"DELETE","path":"/shelves/{slug}","path_status":"EXACT","join":"http:DELETE:/shelves/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":187,"target":"app/Activity/Controllers/CommentController.php#BookStack\\Activity\\Controllers\\CommentController::destroy","method":"DELETE","path":"/comment/{id}","path_status":"EXACT","join":"http:DELETE:/comment/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#12","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":222,"target":"app/Exports/Controllers/ImportController.php#BookStack\\Exports\\Controllers\\ImportController::delete","method":"DELETE","path":"/import/{id}","path_status":"EXACT","join":"http:DELETE:/import/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#13","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":233,"target":"app/Settings/MaintenanceController.php#BookStack\\Settings\\MaintenanceController::cleanupImages","method":"DELETE","path":"/settings/maintenance/cleanup-images","path_status":"EXACT","join":"http:DELETE:/settings/maintenance/cleanup-images"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#14","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":241,"target":"app/Entities/Controllers/RecycleBinController.php#BookStack\\Entities\\Controllers\\RecycleBinController::destroy","method":"DELETE","path":"/settings/recycle-bin/{id}","path_status":"EXACT","join":"http:DELETE:/settings/recycle-bin/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#15","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":255,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::destroy","method":"DELETE","path":"/settings/users/{id}","path_status":"EXACT","join":"http:DELETE:/settings/users/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#16","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":256,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::resetMfa","method":"DELETE","path":"/settings/users/{id}/mfa","path_status":"EXACT","join":"http:DELETE:/settings/users/:id/mfa"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#17","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":271,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::destroy","method":"DELETE","path":"/my-account","path_status":"EXACT","join":"http:DELETE:/my-account"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#18","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":291,"target":"app/Api/UserApiTokenController.php#BookStack\\Api\\UserApiTokenController::destroy","method":"DELETE","path":"/api-tokens/{userId}/{tokenId}","path_status":"EXACT","join":"http:DELETE:/api-tokens/:id/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#19","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":298,"target":"app/Users/Controllers/RoleController.php#BookStack\\Users\\Controllers\\RoleController::delete","method":"DELETE","path":"/settings/roles/delete/{id}","path_status":"EXACT","join":"http:DELETE:/settings/roles/delete/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":71,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::destroy","method":"DELETE","path":"/books/{id}","path_status":"EXACT","join":"http:DELETE:/books/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#20","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":309,"target":"app/Activity/Controllers/WebhookController.php#BookStack\\Activity\\Controllers\\WebhookController::destroy","method":"DELETE","path":"/settings/webhooks/{id}","path_status":"EXACT","join":"http:DELETE:/settings/webhooks/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#21","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":316,"target":"app/Sorting/SortRuleController.php#BookStack\\Sorting\\SortRuleController::destroy","method":"DELETE","path":"/settings/sorting/rules/{id}","path_status":"EXACT","join":"http:DELETE:/settings/sorting/rules/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#22","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":337,"target":"app/Access/Controllers/MfaController.php#BookStack\\Access\\Controllers\\MfaController::remove","method":"DELETE","path":"/mfa/{method}/remove","path_status":"EXACT","join":"http:DELETE:/mfa/:id/remove"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":111,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::destroy","method":"DELETE","path":"/books/{bookSlug}/page/{pageSlug}","path_status":"EXACT","join":"http:DELETE:/books/:id/page/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":112,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::destroyDraft","method":"DELETE","path":"/books/{bookSlug}/draft/{pageId}","path_status":"EXACT","join":"http:DELETE:/books/:id/draft/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":119,"target":"app/Entities/Controllers/PageRevisionController.php#BookStack\\Entities\\Controllers\\PageRevisionController::destroy","method":"DELETE","path":"/books/{bookSlug}/page/{pageSlug}/revisions/{revId}/delete","path_status":"EXACT","join":"http:DELETE:/books/:id/page/:id/revisions/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#6","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":120,"target":"app/Entities/Controllers/PageRevisionController.php#BookStack\\Entities\\Controllers\\PageRevisionController::destroyUserDraft","method":"DELETE","path":"/page-revisions/user-drafts/{pageId}","path_status":"EXACT","join":"http:DELETE:/page-revisions/user-drafts/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#7","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":144,"target":"app/Entities/Controllers/ChapterController.php#BookStack\\Entities\\Controllers\\ChapterController::destroy","method":"DELETE","path":"/books/{bookSlug}/chapter/{chapterSlug}","path_status":"EXACT","join":"http:DELETE:/books/:id/chapter/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#8","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":159,"target":"app/Uploads/Controllers/ImageController.php#BookStack\\Uploads\\Controllers\\ImageController::destroy","method":"DELETE","path":"/images/{id}","path_status":"EXACT","join":"http:DELETE:/images/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::delete#9","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":170,"target":"app/Uploads/Controllers/AttachmentController.php#BookStack\\Uploads\\Controllers\\AttachmentController::delete","method":"DELETE","path":"/attachments/{id}","path_status":"EXACT","join":"http:DELETE:/attachments/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#1","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":26,"target":"app/Settings/StatusController.php#BookStack\\Settings\\StatusController::show","method":"GET","path":"/status","path_status":"EXACT","join":"http:GET:/status"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#10","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":43,"target":"app/Api/ApiDocsController.php#BookStack\\Api\\ApiDocsController::download","method":"GET","path":"/api/docs/download","path_status":"EXACT","join":"http:GET:/api/docs/download"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#100","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":242,"target":"app/Entities/Controllers/RecycleBinController.php#BookStack\\Entities\\Controllers\\RecycleBinController::showRestore","method":"GET","path":"/settings/recycle-bin/{id}/restore","path_status":"EXACT","join":"http:GET:/settings/recycle-bin/:id/restore"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#101","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":246,"target":"app/Activity/Controllers/AuditLogController.php#BookStack\\Activity\\Controllers\\AuditLogController::index","method":"GET","path":"/settings/audit","path_status":"EXACT","join":"http:GET:/settings/audit"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#102","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":249,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::index","method":"GET","path":"/settings/users","path_status":"EXACT","join":"http:GET:/settings/users"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#103","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":250,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::create","method":"GET","path":"/settings/users/create","path_status":"EXACT","join":"http:GET:/settings/users/create"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#104","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":251,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::delete","method":"GET","path":"/settings/users/{id}/delete","path_status":"EXACT","join":"http:GET:/settings/users/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#105","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":253,"target":"app/Users/Controllers/UserController.php#BookStack\\Users\\Controllers\\UserController::edit","method":"GET","path":"/settings/users/{id}","path_status":"EXACT","join":"http:GET:/settings/users/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#106","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":259,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::redirect","method":"GET","path":"/my-account","path_status":"EXACT","join":"http:GET:/my-account"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#107","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":260,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::showProfile","method":"GET","path":"/my-account/profile","path_status":"EXACT","join":"http:GET:/my-account/profile"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#108","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":262,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::showShortcuts","method":"GET","path":"/my-account/shortcuts","path_status":"EXACT","join":"http:GET:/my-account/shortcuts"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#109","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":264,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::showNotifications","method":"GET","path":"/my-account/notifications","path_status":"EXACT","join":"http:GET:/my-account/notifications"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#11","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":45,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::showRecentlyUpdated","method":"GET","path":"/pages/recently-updated","path_status":"EXACT","join":"http:GET:/pages/recently-updated"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#110","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":266,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::showInterface","method":"GET","path":"/my-account/interface","path_status":"EXACT","join":"http:GET:/my-account/interface"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#111","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":268,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::showAuth","method":"GET","path":"/my-account/auth","path_status":"EXACT","join":"http:GET:/my-account/auth"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#112","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":270,"target":"app/Users/Controllers/UserAccountController.php#BookStack\\Users\\Controllers\\UserAccountController::delete","method":"GET","path":"/my-account/delete","path_status":"EXACT","join":"http:GET:/my-account/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#113","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":281,"target":"app/View/LayoutController.php#BookStack\\View\\LayoutController::edit","method":"GET","path":"/layouts/{location}","path_status":"EXACT","join":"http:GET:/layouts/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#114","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":286,"target":"app/Api/UserApiTokenController.php#BookStack\\Api\\UserApiTokenController::create","method":"GET","path":"/api-tokens/{userId}/create","path_status":"EXACT","join":"http:GET:/api-tokens/:id/create"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#115","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":288,"target":"app/Api/UserApiTokenController.php#BookStack\\Api\\UserApiTokenController::edit","method":"GET","path":"/api-tokens/{userId}/{tokenId}","path_status":"EXACT","join":"http:GET:/api-tokens/:id/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#116","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":290,"target":"app/Api/UserApiTokenController.php#BookStack\\Api\\UserApiTokenController::delete","method":"GET","path":"/api-tokens/{userId}/{tokenId}/delete","path_status":"EXACT","join":"http:GET:/api-tokens/:id/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#117","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":294,"target":"app/Users/Controllers/RoleController.php#BookStack\\Users\\Controllers\\RoleController::index","method":"GET","path":"/settings/roles","path_status":"EXACT","join":"http:GET:/settings/roles"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#118","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":295,"target":"app/Users/Controllers/RoleController.php#BookStack\\Users\\Controllers\\RoleController::create","method":"GET","path":"/settings/roles/new","path_status":"EXACT","join":"http:GET:/settings/roles/new"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#119","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":297,"target":"app/Users/Controllers/RoleController.php#BookStack\\Users\\Controllers\\RoleController::showDelete","method":"GET","path":"/settings/roles/delete/{id}","path_status":"EXACT","join":"http:GET:/settings/roles/delete/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#12","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":48,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::create","method":"GET","path":"/create-shelf","path_status":"EXACT","join":"http:GET:/create-shelf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#120","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":299,"target":"app/Users/Controllers/RoleController.php#BookStack\\Users\\Controllers\\RoleController::edit","method":"GET","path":"/settings/roles/{id}","path_status":"EXACT","join":"http:GET:/settings/roles/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#121","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":303,"target":"app/Activity/Controllers/WebhookController.php#BookStack\\Activity\\Controllers\\WebhookController::index","method":"GET","path":"/settings/webhooks","path_status":"EXACT","join":"http:GET:/settings/webhooks"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#122","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":304,"target":"app/Activity/Controllers/WebhookController.php#BookStack\\Activity\\Controllers\\WebhookController::create","method":"GET","path":"/settings/webhooks/create","path_status":"EXACT","join":"http:GET:/settings/webhooks/create"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#123","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":306,"target":"app/Activity/Controllers/WebhookController.php#BookStack\\Activity\\Controllers\\WebhookController::edit","method":"GET","path":"/settings/webhooks/{id}","path_status":"EXACT","join":"http:GET:/settings/webhooks/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#124","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":308,"target":"app/Activity/Controllers/WebhookController.php#BookStack\\Activity\\Controllers\\WebhookController::delete","method":"GET","path":"/settings/webhooks/{id}/delete","path_status":"EXACT","join":"http:GET:/settings/webhooks/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#125","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":312,"target":"app/Sorting/SortRuleController.php#BookStack\\Sorting\\SortRuleController::create","method":"GET","path":"/settings/sorting/rules/new","path_status":"EXACT","join":"http:GET:/settings/sorting/rules/new"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#126","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":314,"target":"app/Sorting/SortRuleController.php#BookStack\\Sorting\\SortRuleController::edit","method":"GET","path":"/settings/sorting/rules/{id}","path_status":"EXACT","join":"http:GET:/settings/sorting/rules/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#127","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":319,"target":"app/Settings/SettingController.php#BookStack\\Settings\\SettingController::index","method":"GET","path":"/settings","path_status":"EXACT","join":"http:GET:/settings"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#128","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":320,"target":"app/Settings/SettingController.php#BookStack\\Settings\\SettingController::category","method":"GET","path":"/settings/{category}","path_status":"EXACT","join":"http:GET:/settings/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#129","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":326,"target":"app/Access/Controllers/MfaController.php#BookStack\\Access\\Controllers\\MfaController::setup","method":"GET","path":"/mfa/setup","path_status":"EXACT","join":"http:GET:/mfa/setup"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#13","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":49,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::index","method":"GET","path":"/shelves","path_status":"EXACT","join":"http:GET:/shelves"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#130","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":327,"target":"app/Access/Controllers/MfaTotpController.php#BookStack\\Access\\Controllers\\MfaTotpController::generate","method":"GET","path":"/mfa/totp/generate","path_status":"EXACT","join":"http:GET:/mfa/totp/generate"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#131","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":329,"target":"app/Access/Controllers/MfaBackupCodesController.php#BookStack\\Access\\Controllers\\MfaBackupCodesController::generate","method":"GET","path":"/mfa/backup_codes/generate","path_status":"EXACT","join":"http:GET:/mfa/backup_codes/generate"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#132","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":333,"target":"app/Access/Controllers/MfaController.php#BookStack\\Access\\Controllers\\MfaController::verify","method":"GET","path":"/mfa/verify","path_status":"EXACT","join":"http:GET:/mfa/verify"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#133","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":340,"target":"app/Access/Controllers/SocialController.php#BookStack\\Access\\Controllers\\SocialController::login","method":"GET","path":"/login/service/{socialDriver}","path_status":"EXACT","join":"http:GET:/login/service/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#134","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":341,"target":"app/Access/Controllers/SocialController.php#BookStack\\Access\\Controllers\\SocialController::callback","method":"GET","path":"/login/service/{socialDriver}/callback","path_status":"EXACT","join":"http:GET:/login/service/:id/callback"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#135","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":343,"target":"app/Access/Controllers/SocialController.php#BookStack\\Access\\Controllers\\SocialController::register","method":"GET","path":"/register/service/{socialDriver}","path_status":"EXACT","join":"http:GET:/register/service/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#136","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":346,"target":"app/Access/Controllers/LoginController.php#BookStack\\Access\\Controllers\\LoginController::getLogin","method":"GET","path":"/login","path_status":"EXACT","join":"http:GET:/login"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#137","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":349,"target":"app/Access/Controllers/RegisterController.php#BookStack\\Access\\Controllers\\RegisterController::getRegister","method":"GET","path":"/register","path_status":"EXACT","join":"http:GET:/register"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#138","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":350,"target":"app/Access/Controllers/ConfirmEmailController.php#BookStack\\Access\\Controllers\\ConfirmEmailController::show","method":"GET","path":"/register/confirm","path_status":"EXACT","join":"http:GET:/register/confirm"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#139","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":351,"target":"app/Access/Controllers/ConfirmEmailController.php#BookStack\\Access\\Controllers\\ConfirmEmailController::showAwaiting","method":"GET","path":"/register/confirm/awaiting","path_status":"EXACT","join":"http:GET:/register/confirm/awaiting"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#14","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":51,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::edit","method":"GET","path":"/shelves/{slug}/edit","path_status":"EXACT","join":"http:GET:/shelves/:id/edit"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#140","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":353,"target":"app/Access/Controllers/ConfirmEmailController.php#BookStack\\Access\\Controllers\\ConfirmEmailController::showAcceptForm","method":"GET","path":"/register/confirm/{token}","path_status":"EXACT","join":"http:GET:/register/confirm/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#141","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":360,"target":"app/Access/Controllers/Saml2Controller.php#BookStack\\Access\\Controllers\\Saml2Controller::metadata","method":"GET","path":"/saml2/metadata","path_status":"EXACT","join":"http:GET:/saml2/metadata"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#142","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":361,"target":"app/Access/Controllers/Saml2Controller.php#BookStack\\Access\\Controllers\\Saml2Controller::sls","method":"GET","path":"/saml2/sls","path_status":"EXACT","join":"http:GET:/saml2/sls"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#143","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":367,"target":"app/Access/Controllers/Saml2Controller.php#BookStack\\Access\\Controllers\\Saml2Controller::processAcs","method":"GET","path":"/saml2/acs","path_status":"EXACT","join":"http:GET:/saml2/acs"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#144","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":371,"target":"app/Access/Controllers/OidcController.php#BookStack\\Access\\Controllers\\OidcController::callback","method":"GET","path":"/oidc/callback","path_status":"EXACT","join":"http:GET:/oidc/callback"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#145","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":375,"target":"app/Access/Controllers/UserInviteController.php#BookStack\\Access\\Controllers\\UserInviteController::showSetPassword","method":"GET","path":"/register/invite/{token}","path_status":"EXACT","join":"http:GET:/register/invite/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#146","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":379,"target":"app/Access/Controllers/ForgotPasswordController.php#BookStack\\Access\\Controllers\\ForgotPasswordController::showLinkRequestForm","method":"GET","path":"/password/email","path_status":"EXACT","join":"http:GET:/password/email"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#147","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":383,"target":"app/Access/Controllers/ResetPasswordController.php#BookStack\\Access\\Controllers\\ResetPasswordController::showResetForm","method":"GET","path":"/password/reset/{token}","path_status":"EXACT","join":"http:GET:/password/reset/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#148","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":391,"target":"app/Theming/ThemeController.php#BookStack\\Theming\\ThemeController::publicFile","method":"GET","path":"/theme/{theme}/{path}","path_status":"EXACT","join":"http:GET:/theme/:id/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#15","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":52,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::showDelete","method":"GET","path":"/shelves/{slug}/delete","path_status":"EXACT","join":"http:GET:/shelves/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#16","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":53,"target":"app/Entities/Controllers/BookshelfController.php#BookStack\\Entities\\Controllers\\BookshelfController::show","method":"GET","path":"/shelves/{slug}","path_status":"EXACT","join":"http:GET:/shelves/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#17","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":56,"target":"app/Permissions/PermissionsController.php#BookStack\\Permissions\\PermissionsController::showForShelf","method":"GET","path":"/shelves/{slug}/permissions","path_status":"EXACT","join":"http:GET:/shelves/:id/permissions"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#18","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":59,"target":"app/References/ReferenceController.php#BookStack\\References\\ReferenceController::shelf","method":"GET","path":"/shelves/{slug}/references","path_status":"EXACT","join":"http:GET:/shelves/:id/references"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#19","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":62,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::create","method":"GET","path":"/shelves/{shelfSlug}/create-book","path_status":"EXACT","join":"http:GET:/shelves/:id/create-book"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#2","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":27,"target":"app/App/MetaController.php#BookStack\\App\\MetaController::robots","method":"GET","path":"/robots.txt","path_status":"EXACT","join":"http:GET:/robots.txt"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#20","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":64,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::create","method":"GET","path":"/create-book","path_status":"EXACT","join":"http:GET:/create-book"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#21","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":67,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::index","method":"GET","path":"/books","path_status":"EXACT","join":"http:GET:/books"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#22","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":69,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::edit","method":"GET","path":"/books/{slug}/edit","path_status":"EXACT","join":"http:GET:/books/:id/edit"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#23","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":72,"target":"app/Sorting/BookSortController.php#BookStack\\Sorting\\BookSortController::showItem","method":"GET","path":"/books/{slug}/sort-item","path_status":"EXACT","join":"http:GET:/books/:id/sort-item"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#24","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":73,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::show","method":"GET","path":"/books/{slug}","path_status":"EXACT","join":"http:GET:/books/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#25","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":74,"target":"app/Permissions/PermissionsController.php#BookStack\\Permissions\\PermissionsController::showForBook","method":"GET","path":"/books/{bookSlug}/permissions","path_status":"EXACT","join":"http:GET:/books/:id/permissions"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#26","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":76,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::showDelete","method":"GET","path":"/books/{slug}/delete","path_status":"EXACT","join":"http:GET:/books/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#27","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":77,"target":"app/Entities/Controllers/BookController.php#BookStack\\Entities\\Controllers\\BookController::showCopy","method":"GET","path":"/books/{bookSlug}/copy","path_status":"EXACT","join":"http:GET:/books/:id/copy"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#28","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":80,"target":"app/Sorting/BookSortController.php#BookStack\\Sorting\\BookSortController::show","method":"GET","path":"/books/{bookSlug}/sort","path_status":"EXACT","join":"http:GET:/books/:id/sort"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#29","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":82,"target":"app/References/ReferenceController.php#BookStack\\References\\ReferenceController::book","method":"GET","path":"/books/{slug}/references","path_status":"EXACT","join":"http:GET:/books/:id/references"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#3","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":28,"target":"app/App/MetaController.php#BookStack\\App\\MetaController::favicon","method":"GET","path":"/favicon.ico","path_status":"EXACT","join":"http:GET:/favicon.ico"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#30","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":83,"target":"app/Exports/Controllers/BookExportController.php#BookStack\\Exports\\Controllers\\BookExportController::html","method":"GET","path":"/books/{bookSlug}/export/html","path_status":"EXACT","join":"http:GET:/books/:id/export/html"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#31","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":84,"target":"app/Exports/Controllers/BookExportController.php#BookStack\\Exports\\Controllers\\BookExportController::pdf","method":"GET","path":"/books/{bookSlug}/export/pdf","path_status":"EXACT","join":"http:GET:/books/:id/export/pdf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#32","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":85,"target":"app/Exports/Controllers/BookExportController.php#BookStack\\Exports\\Controllers\\BookExportController::markdown","method":"GET","path":"/books/{bookSlug}/export/markdown","path_status":"EXACT","join":"http:GET:/books/:id/export/markdown"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#33","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":86,"target":"app/Exports/Controllers/BookExportController.php#BookStack\\Exports\\Controllers\\BookExportController::zip","method":"GET","path":"/books/{bookSlug}/export/zip","path_status":"EXACT","join":"http:GET:/books/:id/export/zip"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#34","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":87,"target":"app/Exports/Controllers/BookExportController.php#BookStack\\Exports\\Controllers\\BookExportController::plainText","method":"GET","path":"/books/{bookSlug}/export/plaintext","path_status":"EXACT","join":"http:GET:/books/:id/export/plaintext"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#35","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":90,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::create","method":"GET","path":"/books/{bookSlug}/create-page","path_status":"EXACT","join":"http:GET:/books/:id/create-page"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#36","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":92,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::editDraft","method":"GET","path":"/books/{bookSlug}/draft/{pageId}","path_status":"EXACT","join":"http:GET:/books/:id/draft/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#37","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":94,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::show","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}","path_status":"EXACT","join":"http:GET:/books/:id/page/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#38","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":95,"target":"app/Exports/Controllers/PageExportController.php#BookStack\\Exports\\Controllers\\PageExportController::pdf","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/export/pdf","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/export/pdf"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#39","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":96,"target":"app/Exports/Controllers/PageExportController.php#BookStack\\Exports\\Controllers\\PageExportController::html","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/export/html","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/export/html"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#4","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":29,"target":"app/App/MetaController.php#BookStack\\App\\MetaController::pwaManifest","method":"GET","path":"/manifest.json","path_status":"EXACT","join":"http:GET:/manifest.json"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#40","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":97,"target":"app/Exports/Controllers/PageExportController.php#BookStack\\Exports\\Controllers\\PageExportController::markdown","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/export/markdown","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/export/markdown"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#41","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":98,"target":"app/Exports/Controllers/PageExportController.php#BookStack\\Exports\\Controllers\\PageExportController::plainText","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/export/plaintext","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/export/plaintext"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#42","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":99,"target":"app/Exports/Controllers/PageExportController.php#BookStack\\Exports\\Controllers\\PageExportController::zip","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/export/zip","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/export/zip"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#43","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":100,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::edit","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/edit","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/edit"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#44","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":101,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::showMove","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/move","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/move"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#45","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":103,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::showCopy","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/copy","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/copy"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#46","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":105,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::showDelete","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/delete","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#47","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":106,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::showDeleteDraft","method":"GET","path":"/books/{bookSlug}/draft/{pageId}/delete","path_status":"EXACT","join":"http:GET:/books/:id/draft/:id/delete"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#48","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":107,"target":"app/Permissions/PermissionsController.php#BookStack\\Permissions\\PermissionsController::showForPage","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/permissions","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/permissions"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#49","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":109,"target":"app/References/ReferenceController.php#BookStack\\References\\ReferenceController::page","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/references","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/references"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#5","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":30,"target":"app/App/MetaController.php#BookStack\\App\\MetaController::licenses","method":"GET","path":"/licenses","path_status":"EXACT","join":"http:GET:/licenses"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#50","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":115,"target":"app/Entities/Controllers/PageRevisionController.php#BookStack\\Entities\\Controllers\\PageRevisionController::index","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/revisions","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/revisions"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#51","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":116,"target":"app/Entities/Controllers/PageRevisionController.php#BookStack\\Entities\\Controllers\\PageRevisionController::show","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/revisions/{revId}","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/revisions/:id"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#52","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":117,"target":"app/Entities/Controllers/PageRevisionController.php#BookStack\\Entities\\Controllers\\PageRevisionController::changes","method":"GET","path":"/books/{bookSlug}/page/{pageSlug}/revisions/{revId}/changes","path_status":"EXACT","join":"http:GET:/books/:id/page/:id/revisions/:id/changes"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#53","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":123,"target":"app/Entities/Controllers/PageController.php#BookStack\\Entities\\Controllers\\PageController::create","method":"GET","path":"/books/{bookSlug}/chapter/{chapterSlug}/create-page","path_status":"EXACT","join":"http:GET:/books/:id/chapter/:id/create-page"},{"id":"fw:laravel:ROUTE_HANDLER:routes/web.php#<file>:Route::get#54","framework":"laravel","language":"php","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"dsl_call","site_file":"routes/web.php","site_line":125,"target":"app/Entities/Controllers/ChapterController.php#BookStack\\Entities\\Controllers\\ChapterController::create","method":"GET","path":"/books/{bookSlug}/create-chapter","path_status":"EXACT","join":"http:GET:/books/:id/create-chapter"}],"rows_total":340,"rows_truncated":true,"notes":["Framework registrations are not calls: a handler reached by a router has no call_graph caller.","Only EXACT rows bind `target` (the call-graph id); AMBIGUOUS rows list `candidates`; UNRESOLVED/EXTERNAL rows carry `raw` + `reason`."]}}