|
54797
|
1184
|
36
|
2026-04-20T09:20:08.684166+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676808684_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54912
|
1185
|
12
|
2026-04-20T09:23:22.608289+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677002608_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54913
|
1186
|
16
|
2026-04-20T09:23:22.938689+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776677002938_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001\nSending activity for ES update...\nDone.\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-728622984809440735
|
1054577040768094137
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
Sending activity for ES update...
Done.
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54911
|
|
54786
|
1183
|
27
|
2026-04-20T09:19:22.899961+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676762899_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-3668880663774446083
|
-8168799604335030488
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es 356001
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54779
|
1183
|
24
|
2026-04-20T09:19:13.179285+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676753179_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54777
|
|
54780
|
1184
|
25
|
2026-04-20T09:19:13.096195+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676753096_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54778
|
|
54784
|
1183
|
26
|
2026-04-20T09:19:21.509992+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676761509_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54782
|
|
54785
|
1184
|
28
|
2026-04-20T09:19:21.646556+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676761646_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# php artisan activity:update:es","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
7539577882853048331
|
-8168795206823260255
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# php artisan acti root@docker_lamp_1:/home/jiminny# php artisan activity:update:es
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53823
|
1162
|
49
|
2026-04-20T08:29:33.340039+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673773340_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-1183751968977138305
|
-8790863632852278128
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53824
|
1163
|
57
|
2026-04-20T08:29:33.730254+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673773730_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-1183751968977138305
|
-8790863632852278128
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53902
|
1164
|
27
|
2026-04-20T08:32:37.095232+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673957095_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53901
|
|
53905
|
1164
|
29
|
2026-04-20T08:32:50.496137+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673970496_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53903
|
|
53906
|
1165
|
30
|
2026-04-20T08:32:50.602253+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673970602_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# clear","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
3698791239421736962
|
-8536076548135771620
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# clear
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53874
|
1165
|
13
|
2026-04-20T08:31:56.339695+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673916339_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53875
|
1164
|
15
|
2026-04-20T08:31:56.412021+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673916412_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53873
|
|
53899
|
1164
|
25
|
2026-04-20T08:32:33.403736+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673953403_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53900
|
1165
|
28
|
2026-04-20T08:32:33.860069+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673953860_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53901
|
1164
|
26
|
2026-04-20T08:32:34.738636+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673954738_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-5799305003809379240
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53873
|
1164
|
14
|
2026-04-20T08:31:51.223921+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673911223_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny# grep -rn \"use Jiminny\\\\\\\\Traits\\\\\\\\HasApiTokens\" app/","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-8311287133871979049
|
-6230233538922077668
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny# grep -rn "use Jiminny\\\\Traits\\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53871
|
1164
|
13
|
2026-04-20T08:31:50.584477+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910584_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53870
|
|
53872
|
1165
|
12
|
2026-04-20T08:31:50.529501+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673910529_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6402554628795599335
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53869
|
|
53865
|
1164
|
9
|
2026-04-20T08:31:42.185831+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673902185_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# grep -rn \"Jiminny\\\\\\Traits\\\\\\HasApiTokens\" app/","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2059175863667528991
|
-6230233538922077668
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# grep -rn "Jiminny\\\Traits\\\HasApiTokens" app/
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53863
|
|
53851
|
1164
|
3
|
2026-04-20T08:30:46.672945+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673846672_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53849
|
|
53852
|
1165
|
2
|
2026-04-20T08:30:51.143392+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673851143_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53850
|
|
53863
|
1164
|
8
|
2026-04-20T08:31:40.689339+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900689_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53864
|
1165
|
9
|
2026-04-20T08:31:40.527549+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673900527_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?\ngrep -rn \"HasApiTokens\" app/Models/User.php\n43:use Laravel\\Passport\\HasApiTokens;\n243: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-6771186432168714093
|
-8531572948508401124
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny# # Does User use Jiminny's or Passport's?
grep -rn "HasApiTokens" app/Models/User.php
43:use Laravel\Passport\HasApiTokens;
243: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53845
|
NULL
|
0
|
2026-04-20T08:30:40.306467+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673840306_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53844
|
|
53849
|
1164
|
2
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53850
|
1165
|
1
|
2026-04-20T08:30:44.441144+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673844441_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny# grep -n \"use HasApiTokens\" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php\napp/Models/User.php:243: use HasApiTokens;\napp/Models/Partner.php:78: use HasApiTokens;\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-4919487151736841628
|
-8608134124993797604
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny# grep -n "use HasApiTokens" app/Models/User.php app/Models/Partner.php app/Traits/HasApiTokens.php
app/Models/User.php:243: use HasApiTokens;
app/Models/Partner.php:78: use HasApiTokens;
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53835
|
1162
|
55
|
2026-04-20T08:29:57.621362+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673797621_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53836
|
1163
|
63
|
2026-04-20T08:30:00.478018+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673800478_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53844
|
1162
|
59
|
2026-04-20T08:30:36.830132+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673836830_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php\n<?php\n\nnamespace Laravel\\Passport\\Contracts;\n\nuse Illuminate\\Contracts\\Auth\\Authenticatable;\nuse Illuminate\\Database\\Eloquent\\Relations\\HasMany;\nuse Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\nuse Laravel\\Passport\\PersonalAccessTokenResult;\n\ninterface OAuthenticatable extends Authenticatable\n{\n /**\n * Get all the user's registered OAuth applications.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function oauthApps(): MorphMany;\n\n /**\n * Get all the access tokens for the user.\n *\n * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, \\Illuminate\\Foundation\\Auth\\User>\n */\n public function tokens(): HasMany;\n\n /**\n * Determine if the current API token has a given scope.\n */\n public function tokenCan(string $scope): bool;\n\n /**\n * Determine if the current API token is missing a given scope.\n */\n public function tokenCant(string $scope): bool;\n\n /**\n * Create a new personal access token for the user.\n *\n * @param string[] $scopes\n */\n public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;\n\n /**\n * Get the access token currently associated with the user.\n */\n public function currentAccessToken(): ?ScopeAuthorizable;\n\n /**\n * Set the current access token for the user.\n */\n public function withAccessToken(?ScopeAuthorizable $accessToken): static;\n\n /**\n * Get the user provider name.\n */\n public function getProviderName(): string;\n}\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
214677970165296243
|
-6014060602187374052
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny# cat vendor/laravel/passport/src/Contracts/OAuthenticatable.php
<?php
namespace Laravel\Passport\Contracts;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Laravel\Passport\PersonalAccessTokenResult;
interface OAuthenticatable extends Authenticatable
{
/**
* Get all the user's registered OAuth applications.
*
* @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, \Illuminate\Foundation\Auth\User>
*/
public function oauthApps(): MorphMany;
/**
* Get all the access tokens for the user.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, \Illuminate\Foundation\Auth\User>
*/
public function tokens(): HasMany;
/**
* Determine if the current API token has a given scope.
*/
public function tokenCan(string $scope): bool;
/**
* Determine if the current API token is missing a given scope.
*/
public function tokenCant(string $scope): bool;
/**
* Create a new personal access token for the user.
*
* @param string[] $scopes
*/
public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult;
/**
* Get the access token currently associated with the user.
*/
public function currentAccessToken(): ?ScopeAuthorizable;
/**
* Set the current access token for the user.
*/
public function withAccessToken(?ScopeAuthorizable $accessToken): static;
/**
* Get the user provider name.
*/
public function getProviderName(): string;
}
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53825
|
1162
|
50
|
2026-04-20T08:29:39.355688+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673779355_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53823
|
|
53826
|
1163
|
58
|
2026-04-20T08:29:44.215740+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673784215_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53824
|
|
53833
|
1162
|
54
|
2026-04-20T08:29:54.216495+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673794216_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53832
|
|
53834
|
1163
|
62
|
2026-04-20T08:29:54.146724+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673794146_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","depth":4,"value":"root@docker_lamp_1:/home/jiminny# diff \\\n vendor/laravel/passport/src/HasApiTokens.php \\\n app/Traits/HasApiTokens.php\n3c3\n< namespace Laravel\\Passport;\n---\n> namespace Jiminny\\Traits;\n5,9c5\n< use Illuminate\\Database\\Eloquent\\Builder;\n< use Illuminate\\Database\\Eloquent\\Relations\\HasMany;\n< use Illuminate\\Database\\Eloquent\\Relations\\MorphMany;\n< use Laravel\\Passport\\Contracts\\ScopeAuthorizable;\n< use LogicException;\n---\n> use Laravel\\Passport\\TransientToken;\n11,13d6\n< /**\n< * @phpstan-require-implements \\Laravel\\Passport\\Contracts\\OAuthenticatable\n< */\n18,44d10\n< */\n< protected ?ScopeAuthorizable $accessToken = null;\n< \n< /**\n< * Get all of the user's registered OAuth clients.\n< *\n< * @deprecated Use oauthApps()\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function clients(): HasMany\n< {\n< return $this->hasMany(Passport::clientModel(), 'user_id');\n< }\n< \n< /**\n< * Get all of the user's registered OAuth applications.\n< *\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\MorphMany<\\Laravel\\Passport\\Client, $this>\n< */\n< public function oauthApps(): MorphMany\n< {\n< return $this->morphMany(Passport::clientModel(), 'owner');\n< }\n< \n< /**\n< * Get all of the access tokens for the user.\n46c12\n< * @return \\Illuminate\\Database\\Eloquent\\Relations\\HasMany<\\Laravel\\Passport\\Token, $this>\n---\n> * @var Laravel\\Passport\\TransientToken\n48,62c14\n< public function tokens(): HasMany\n< {\n< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())\n< ->where(function (Builder $query): void {\n< $query->whereHas('client', function (Builder $query): void {\n< $query->where(function (Builder $query): void {\n< $provider = $this->getProviderName();\n< \n< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {\n< $query->orWhereNull('provider');\n< })->orWhere('provider', $provider);\n< });\n< });\n< });\n< }\n---\n> protected $accessToken;\n65c17\n< * Get the access token currently associated with the user.\n---\n> * Get the current access token being used by the user.\n67,75c19\n< public function token(): ?ScopeAuthorizable\n< {\n< return $this->currentAccessToken();\n< }\n< \n< /**\n< * Get the access token currently associated with the user.\n< */\n< public function currentAccessToken(): ?ScopeAuthorizable\n---\n> public function token(): ?TransientToken\n85,123c29\n< return $this->accessToken && $this->accessToken->can($scope);\n< }\n< \n< /**\n< * Determine if the current API token is missing a given scope.\n< */\n< public function tokenCant(string $scope): bool\n< {\n< return ! $this->tokenCan($scope);\n< }\n< \n< /**\n< * Create a new personal access token for the user.\n< *\n< * @param string[] $scopes\n< */\n< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult\n< {\n< return app(PersonalAccessTokenFactory::class)->make(\n< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()\n< );\n< }\n< \n< /**\n< * Get the user provider name.\n< *\n< * @throws \\LogicException\n< */\n< public function getProviderName(): string\n< {\n< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();\n< \n< foreach (config('auth.providers') as $provider => $config) {\n< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {\n< return $provider;\n< }\n< }\n< \n< throw new LogicException('Unable to determine authentication provider for this model from configuration.');\n---\n> return $this->accessToken ? $this->accessToken->can($scope) : false;\n129c35\n< public function withAccessToken(?ScopeAuthorizable $accessToken): static\n---\n> public function withAccessToken(TransientToken $accessToken): static\nroot@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
1744865349186139800
|
-6014043018306018788
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny# diff \
vendor/ root@docker_lamp_1:/home/jiminny# diff \
vendor/laravel/passport/src/HasApiTokens.php \
app/Traits/HasApiTokens.php
3c3
< namespace Laravel\Passport;
---
> namespace Jiminny\Traits;
5,9c5
< use Illuminate\Database\Eloquent\Builder;
< use Illuminate\Database\Eloquent\Relations\HasMany;
< use Illuminate\Database\Eloquent\Relations\MorphMany;
< use Laravel\Passport\Contracts\ScopeAuthorizable;
< use LogicException;
---
> use Laravel\Passport\TransientToken;
11,13d6
< /**
< * @phpstan-require-implements \Laravel\Passport\Contracts\OAuthenticatable
< */
18,44d10
< */
< protected ?ScopeAuthorizable $accessToken = null;
<
< /**
< * Get all of the user's registered OAuth clients.
< *
< * @deprecated Use oauthApps()
< *
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Client, $this>
< */
< public function clients(): HasMany
< {
< return $this->hasMany(Passport::clientModel(), 'user_id');
< }
<
< /**
< * Get all of the user's registered OAuth applications.
< *
< * @return \Illuminate\Database\Eloquent\Relations\MorphMany<\Laravel\Passport\Client, $this>
< */
< public function oauthApps(): MorphMany
< {
< return $this->morphMany(Passport::clientModel(), 'owner');
< }
<
< /**
< * Get all of the access tokens for the user.
46c12
< * @return \Illuminate\Database\Eloquent\Relations\HasMany<\Laravel\Passport\Token, $this>
---
> * @var Laravel\Passport\TransientToken
48,62c14
< public function tokens(): HasMany
< {
< return $this->hasMany(Passport::tokenModel(), 'user_id', $this->getAuthIdentifierName())
< ->where(function (Builder $query): void {
< $query->whereHas('client', function (Builder $query): void {
< $query->where(function (Builder $query): void {
< $provider = $this->getProviderName();
<
< $query->when($provider === config('auth.guards.api.provider'), function (Builder $query): void {
< $query->orWhereNull('provider');
< })->orWhere('provider', $provider);
< });
< });
< });
< }
---
> protected $accessToken;
65c17
< * Get the access token currently associated with the user.
---
> * Get the current access token being used by the user.
67,75c19
< public function token(): ?ScopeAuthorizable
< {
< return $this->currentAccessToken();
< }
<
< /**
< * Get the access token currently associated with the user.
< */
< public function currentAccessToken(): ?ScopeAuthorizable
---
> public function token(): ?TransientToken
85,123c29
< return $this->accessToken && $this->accessToken->can($scope);
< }
<
< /**
< * Determine if the current API token is missing a given scope.
< */
< public function tokenCant(string $scope): bool
< {
< return ! $this->tokenCan($scope);
< }
<
< /**
< * Create a new personal access token for the user.
< *
< * @param string[] $scopes
< */
< public function createToken(string $name, array $scopes = []): PersonalAccessTokenResult
< {
< return app(PersonalAccessTokenFactory::class)->make(
< $this->getAuthIdentifier(), $name, $scopes, $this->getProviderName()
< );
< }
<
< /**
< * Get the user provider name.
< *
< * @throws \LogicException
< */
< public function getProviderName(): string
< {
< $providers = collect(config('auth.guards'))->where('driver', 'passport')->pluck('provider')->all();
<
< foreach (config('auth.providers') as $provider => $config) {
< if (in_array($provider, $providers) && $config['driver'] === 'eloquent' && is_a($this, $config['model'])) {
< return $provider;
< }
< }
<
< throw new LogicException('Unable to determine authentication provider for this model from configuration.');
---
> return $this->accessToken ? $this->accessToken->can($scope) : false;
129c35
< public function withAccessToken(?ScopeAuthorizable $accessToken): static
---
> public function withAccessToken(TransientToken $accessToken): static
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53831
|
|
71739
|
1719
|
15
|
2026-04-22T13:25:02.788215+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864302788_m2.jpg...
|
iTerm2
|
docker
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4787234,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.32912233,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33111703,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.3879654,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3899601,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.44680852,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.4488032,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5056516,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.50764626,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.56449467,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.56648934,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.62333775,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6253325,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.6821808,"top":1.0,"width":0.058843084,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.68417555,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7273936,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.5013298,"top":1.0,"width":0.016289894,"height":-0.02394259},"role_description":"text"}]...
|
5818497231914715808
|
-8781227306468149983
|
click
|
hybrid
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker
PhostormFV faVsco.js~code%9 JY-20157-AJ-report-not-send-notificaProledey© IterateUsersCommand.phpC) Jiminnycacheclearcommana.JiminnyDeougcommana.onpC) Jiminnysetencrypted lokenma©) Jiminnylokenintocommand.oc)MakeslackLivecoachinachatn© ManageScimForTeam.phpc) MarkBranchrorEnvironmentPirc) MuteOrganizerchannel.phpc) PhoApm.php(C) PropagateCoachingFeedbackoC) Purgeconterences.ohpAutomatedkeporsservice.ong© SendReportNotGeneratedMailJob.php(@)AutomatedReoortsRepository.ong) Automatedkeportkesult.png* Class JiminnyDebugCommandc)PurcesvncBatchescommand.r(C) RemoveDeleteMarkersComma© RemoveExpiredNudgesComma(C) RemoveUnusedParticioantSoe© ResetElasticSearch.php(c) RoctoreActivitvermProviderldl© RestoreActivityTypeCommand© SeedActivities.php© SyncActivity.php© Tracklmported.php© UpdateActivitiesAverageScore© WhichWorkerisWorkingOnWhic> D Scheduling© Kernel.php› D Contracts• Domain> DDTODEmails› D Enums~ D EventsV D Activities> ActivitvProviden> D AiAutomationDAudio> BotsCoaching• M ConterencesConnectionsv MCrm©ActivityCancelled.phpC) ActivitvCancelledAsNoShol© ActivityLeadConverted.php© ActivityLinkedToCrm.php©ActivityLogged.php©ActivityScheduled.php© AutoLogActivity.php© EmailWithCRMObjectsProc* @package Jiminny\ConsoLe\CommandsLass JiminnyDebugCommand extends Commandpublic const string FREQUENCY_DAILY = 'daily';public const string FREQUENCY_WEEKLY = 'weekly';public const string FREQUENCY_MONTHLY = 'monthly';public const string FREQUENCY_ OUARTERLY = 'quarterly':public const string FREQUENCY_ONE_OFF = 'one_off';protected ssignature = "niminny: debua':public function handle(JobDispatcherInterface $jobDispatcher, AutomatedReportsService $automatedReportsService): voiSnow = Carbon: :now()->subDay(1);Sfrom = Snow->copy()->previousWeekday()->start0fDay();Sto = Snow->conv@->oreviousWeekdavO->end0fDavO •Sthis->info( string: "Now: {$now->toDateTimeString()}");$this->info( string: "From: ($from->toDateTimeString()}");$this-›info( string: "To: {$to->toDateTimeString()}");exit (1);Sreport = AutomatedReport::find(71);$job = new RequestGenerateAskJiminnyReportJob($report->getUuid());snoou1spaucher->alspacchlsooexitu)"$this->formatbate($jobbispatcher);Sthis->sendMail(SiobDisnatcher. SautomatedRenortsService):Sthis->crmServiceosSthis->getPavload(SautomatedRenortsService):exit(n:wea ZL Aor 10-20:05+0 ..=custom.logA console [EU]E laravel.log x A SF [jiminny@localhost]A console [STAGING]A HS_local [jiminny@localhost]A console [PROD]2026-04-22 12:57:1111Jiminny Jobs Mallbox Createbatches process…-[2026-04-22 12:58:03] Local. INFO:X1570Jiminny\ConsoLe\Commands \Command: : run Memory usage before sta12:58:051ScheduLeßotcommand Mumber of activitles to de captured: 012:58:03]Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman2026-04-22 12:58:051 LocoL, INF0: Jiminny Console Commands Command::run Memory usage before sta(2026-04-22 12:58:05] Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman2026-04-2212:58:07LocaL NoTICE: Monitoring start"correlation_1d":"c45f0584-bcf3-44c9-09:[2026-04-22 12:58:07]Local.NOTICE: Monitoring end {"correlation_id":"c45f0584-bcf3-44c9-b9a2-2026-04-22 12•58-137Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage before sta[2026-04-22 12:58:13]Local. INFO: Jiminny\Console\Commands\Command: :run Memory usage for comman12026-04-22 12•58•211|Local.INFO: Jiminny\Console\Commands\Command::run Memory usage before sta[2026-04-22 12:58:21][EmailSchedule] STARTING batch process ("host": "docker_Lamp_1[2026-04-22 12:58:21]local. INFO: Processing email batch 98408 for inbox 212 {"correlation_id"[2026-04-22 12:58:21]Local.INFO:[SocialAccountService] Fetching token {"socialAccountId" : 150€[2026-04-22 12:58:21]Local. INFO: [SocialAccountService] Token retrieved {"socialAccountId" : 156[2026-04-22 12:58:21]Local.INFO:[EncryptedTokenManager] Generating access token. {"mode": "Zeg[2026-04-22 12:58:21]Local. INFO: [CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:21]Local.INFO:[SocialAccountService] Fetching token {"socialAccountId":1354[2026-04-22 12:58:21][SocialAccountService] Token retrieved {"socialAccountId":135[2026-04-22 12:58:21]encryptedlokenManager benerating access token. ""mode":"Lec[2026-04-22 12:58:24]Local. INFO: Processing an email from inbox batch {"batch":98408, "inbox_ic[2026-04-22 12:58:24][SocialAccountServicel Fetching token {"socialAccountId":150€[2026-04-22 12:58:24][SocialAccountService] Token retrieved {"socialAccountId" :15€[2026-04-22 12:58:24]encrvoted okenranader benerarino access token.• "mode":"Leo[2026-04-22 12:58:24][CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:24]Emaruimoort ParticivantsResolver The sender email is blacki[2026-04-22 12:58:24][EmailImport\ParticipantsVaLidator] Email participants are le[2026-04-22 12:58:24]Processing an email from inbox batch ""batch":98408."inbox 10[2026-04-22 12:58:24][SocialAccountService] Fetching token {"socialAccountId" :15062026-04-22 12.58:241[SocialAccountServicel Token retrieved {"socialAccountId"•15%[2026-04-22 12:58:24]Local.INFO:[EncryptedTokenManager] Generating access token. {"mode" :"Leg2026-04-2212•58.241CrmOwnerResolver] Intearation ownen matched as CRM Owner "12:58:24]Local. INFO:[EmailImport\ParticipantsResolver] The sender email is blackl12•58•2411EmarlImnort ParticinantsValidator Email narticinants are 1e[2026-04-2212:58:241Local.INFO:2026-04-2212:58:24]Processing an email from inbox batch {"batch":98408, "inbox_ic[2026-04-22 12:58:24]Local.INFO:[SocialAccountService] Token retrieved {"socialAccountId" :15€2024-04-2212•58.2/11[EncryptedTokenManager] Generating access token. {"mode": "Leg[2026-04-22 12:58:24]Local. INFO:[CrmOwnerResolver] Integration owner matched as CRM Owner {"c[2026-04-22 12:58:24]Local.INFO:[EmailImport\ParticipantsResolver] The sender email is blackl(2026-04-22 12:58:24] Local. INFO: [EmailImport\ParticipantsVaLidator] Email participants are leг2004-04-29 12.59.241Jocal TNSh• Prococcina an email fnom inboy batch Suhatchil.09400 ljnhoyic{2026-04-22 12:58:24][SocialAccountService] Fetching token {"socialAccountId":150€гaAn404 99 19.99.9/1Joonl TACO. (Coaiol Aannun+Conuddol Tolon notnjoнod Лlслаід1ЛАлопп+тан,15.[2026-04-22 12:58:241[EncryptedTokenManager] Generating access token. {"mode": "LegToллi TNC0. Гoлm0wnorDocdluonl Totoanotjon Aunon motahodl de CDM Ounon fu.12026-04-22 12:58:241[EmailImport\ParticipantsResolver] The sender email is blacklLocaz. INFO: [EmailImport\ParticipantsValidator] Email participants are le[2026-04-22 12:58:241Local. INFO: Processing an email from inbox batch f"batch":98408, "inbox_ic[2026-04-22 12:58:24] Local. INFO: [SocialAccountServicel Fetchina token {"socialAccountId" : 150€Report Activity CountRead AutomatedReportsServiceTest.php #L2469-2493Test only checks structure, still passes.SummaryChanges1. Skip weekend dispatchAutomatedReoortscommand.oho:86-86 - when scheduler runs on Sat/Sun, dailv reoorts are not dispatched, =-reporto1dmanual trigger still bypasses the skip.. "Yesterday" = previous weekdav for dailvBoth date-range calculators now use previousweekday() for daily:• AskJiminnyReportActivityService.php: 115-118 (Elastic query filter)• AutomatedReportsService.php:1785-1788 (displayed report period name)Errect oer dav-or-week when the scheduler runs at 01:00)Run dayDaily report coversFri (skips Sat + Sun)WedWedThu- skippedSun— skiopedSince both services use the same previousWeekday() logic, the Elastic date window and the displayed report_period (e.g. "Fri17 Apr 2026" ) stay in sync3. Tests updatedAskJiminnyReportActivityServiceTest.php:• Data provider daily row now expects previousWeekday() bounds.•testGetact1v1tyidsFrequencyDateRange0verridesSavedSearchDateFilters asserts 2025-06-13 (Fri) instead of 2025-06-15 (Sun), since test now ( 2025-06-16 ) is a Monday.Per your rules I did not add tests for the console command. Existing command tests use weekday dates (Mar 13 2024, Dec 112023, Dec 12 2023, Mar 1 2024, Oct 1 2024, Jul 1 2024) so the new weekend guard doesn't affect them.rtc/M.Ack.liminnvPonortActivitvSorvicoToct nhn tdapp/Services/Kiosk/AutomatedReports/ AutomatedReportsService.php +2 ~2enorts/m Ask.liminnvRenortActivitvService.ohv +2Ask anvthing (*4L)+ « CodeClaude Qnus 4.7 MediumView all#Reject allAccent alliW Windsurf Teams 36:39 UTF-8f. 4 spa...
|
NULL
|
|
71740
|
1718
|
16
|
2026-04-22T13:25:05.644523+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-22/1776 /Users/lukas/.screenpipe/data/data/2026-04-22/1776864305644_m1.jpg...
|
iTerm2
|
docker
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"docker","depth":2,"bounds":{"left":0.12291667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.12708333,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.24583334,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.25,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"✳ Build full day activity summary from Screenpipe (claude)","depth":2,"bounds":{"left":0.36875,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.37291667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.49166667,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49583334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.6145833,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.61875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.7375,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7416667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"ec2-user@ip-10-30-159-186:~ (-zsh)","depth":2,"bounds":{"left":0.86041665,"top":0.05888889,"width":0.12291667,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.8645833,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9548611,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"docker","depth":1,"bounds":{"left":0.4826389,"top":0.033333335,"width":0.034027778,"height":0.017777778},"role_description":"text"}]...
|
5818497231914715808
|
-8781227306468149983
|
click
|
hybrid
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
docker
Close Tab
-zsh
Close Tab
✳ Build full day activity summary from Screenpipe (claude)
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
APP (-zsh)
Close Tab
ec2-user@ip-10-30-159-186:~ (-zsh)
Close Tab
⌥⌘1
docker
iTerm2ShellEditViewSessionDOCKER** 981dockerroot@docker_lamp_1:/home/jiminny#ScriptsProfiles-zshWindowHelpdocker* Build full day ac... • *4screenpipe"• 885§ Al chapter • in 35 m-zsh86APP (-zsh)100% (<47*87Wed 22 Apr 16:25:06T81ec2-user@ip-10-..• *8...
|
NULL
|
|
53822
|
1162
|
48
|
2026-04-20T08:29:30.304001+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673770304_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53820
|
|
53911
|
1164
|
32
|
2026-04-20T08:32:56.595406+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673976595_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
53910
|
|
53917
|
1164
|
35
|
2026-04-20T08:33:00.005571+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673980005_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19722222,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.2013889,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39444444,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.59166664,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.59583336,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.7888889,"top":0.05888889,"width":0.19722222,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.79305553,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53918
|
1165
|
36
|
2026-04-20T08:32:59.937990+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673979937_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
53923
|
1165
|
40
|
2026-04-20T08:33:14.713662+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776673994713_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36469415,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.36668882,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.45910904,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46110374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.55352396,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5555186,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.64793885,"top":1.0,"width":0.0944149,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6499335,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-2331312136567929026
|
-8177802336888754767
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54747
|
1183
|
9
|
2026-04-20T09:17:56.562651+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676676562_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54748
|
1184
|
8
|
2026-04-20T09:17:56.483033+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676676483_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54750
|
1183
|
11
|
2026-04-20T09:18:09.379234+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676689379_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
visual_change
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54760
|
1183
|
15
|
2026-04-20T09:18:33.523483+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676713523_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54761
|
1184
|
15
|
2026-04-20T09:18:33.523733+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676713523_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54759
|
|
54764
|
1183
|
17
|
2026-04-20T09:18:41.990733+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676721990_m1.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.0,"top":0.08777778,"width":1.0,"height":0.9122222},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.16458334,"top":0.05888889,"width":0.16458334,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.16875,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.32916668,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.33333334,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.49340278,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.49756944,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.6576389,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66180557,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.821875,"top":0.05888889,"width":0.16423611,"height":0.026666667},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.82604164,"top":0.06333333,"width":0.011111111,"height":0.017777778},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.95763886,"top":0.032222223,"width":0.03888889,"height":0.018888889},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.47013888,"top":0.033333335,"width":0.0625,"height":0.017777778},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
NULL
|
|
54765
|
1184
|
17
|
2026-04-20T09:18:41.990723+00:00
|
/Users/lukas/.screenpipe/data/data/2026-04-20/1776 /Users/lukas/.screenpipe/data/data/2026-04-20/1776676721990_m2.jpg...
|
iTerm2
|
DEV (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"root@docker_lamp_1:/home/jiminny#","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.4800532,"height":-0.06304872},"value":"root@docker_lamp_1:/home/jiminny#","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.34906915,"top":1.0,"width":0.0787899,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.35106382,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.42785904,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.42985374,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.5064827,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5084774,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.5851064,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.58710104,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.66373,"top":1.0,"width":0.07862367,"height":-0.042298436},"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.66572475,"top":1.0,"width":0.005319149,"height":-0.04549086},"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7287234,"top":1.0,"width":0.01861702,"height":-0.023144484},"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"DEV (docker)","depth":1,"bounds":{"left":0.49534574,"top":1.0,"width":0.029920213,"height":-0.02394259},"role_description":"text"}]...
|
-1957785561364874040
|
-8177806735405060687
|
click
|
accessibility
|
NULL
|
root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab root@docker_lamp_1:/home/jiminny#
DOCKER
Close Tab
DEV (docker)
Close Tab
APP (-zsh)
Close Tab
-zsh
Close Tab
screenpipe"
Close Tab
-zsh
Close Tab
⌥⌘1
DEV (docker)...
|
54763
|