[{"id":"36909861459","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":729177626,"name":"gregberge/twc","url":"https://api.github.com/repos/gregberge/twc"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-26T22:13:05Z"},{"id":"36554294910","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":576281997,"name":"WendellAdriel/laravel-validated-dto","url":"https://api.github.com/repos/WendellAdriel/laravel-validated-dto"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-14T14:43:45Z"},{"id":"36383914987","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":743937870,"name":"gregorojstersek/resources-to-become-a-great-engineering-leader","url":"https://api.github.com/repos/gregorojstersek/resources-to-become-a-great-engineering-leader"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-08T19:19:31Z"},{"id":"36368185317","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":693187866,"name":"rolldown-rs/rolldown","url":"https://api.github.com/repos/rolldown-rs/rolldown"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-08T10:09:22Z","org":{"id":94954945,"login":"rolldown-rs","gravatar_id":"","url":"https://api.github.com/orgs/rolldown-rs","avatar_url":"https://avatars.githubusercontent.com/u/94954945?"}},{"id":"36308553243","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":753490180,"name":"daytonaio/daytona","url":"https://api.github.com/repos/daytonaio/daytona"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-06T17:56:16Z","org":{"id":130513197,"login":"daytonaio","gravatar_id":"","url":"https://api.github.com/orgs/daytonaio","avatar_url":"https://avatars.githubusercontent.com/u/130513197?"}},{"id":"36168930842","type":"IssuesEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":213547444,"name":"trivago/prettier-plugin-twig-melody","url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43","repository_url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody","labels_url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43/labels{/name}","comments_url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43/comments","events_url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43/events","html_url":"https://github.com/trivago/prettier-plugin-twig-melody/issues/43","id":601351029,"node_id":"MDU6SXNzdWU2MDEzNTEwMjk=","number":43,"title":"melody-parser error stack trace","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-04-16T19:04:44Z","updated_at":"2024-03-01T16:59:02Z","closed_at":"2024-03-01T16:59:02Z","author_association":"NONE","active_lock_reason":null,"body":"Hi! First of all, thanks for this prettier plugin š \r\n\r\nThe only thing that bothers me is the `melody-parser` error throw on invalid html. It throws unnecessary error stack and pollutes console hiding useful information. For example: \r\n``` html\r\n
{{title}}\r\n
\r\n```\r\nYou'll get this\r\n```\r\n[error] templates/search.twig: Error: ERROR: Expected element start\r\n[error] 1 | {{title}}\r\n[error] > 2 |
\r\n[error] | ^\r\n[error] \r\n[error] Unexpected closing \"h1\" tag. Seems like your DOM is out of control.\r\n[error] at TokenStream.error (/node_modules/melody-parser/lib/index.js:1359:22)\r\n[error] at Parser.error (/node_modules/melody-parser/lib/index.js:830:21)\r\n[error] at Parser.matchElement (/node_modules/melody-parser/lib/index.js:717:18)\r\n[error] at Parser.parse (/node_modules/melody-parser/lib/index.js:627:32)\r\n[error] at Object.parse (/node_modules/prettier-plugin-twig-melody/src/parser.js:91:26)\r\n[error] at Object.parse (/node_modules/prettier/bin-prettier.js:9743:19)\r\n[error] at coreFormat (/node_modules/prettier/bin-prettier.js:13258:23)\r\n[error] at format (/node_modules/prettier/bin-prettier.js:13516:73)\r\n[error] at formatWithCursor (/node_modules/prettier/bin-prettier.js:13532:12)\r\n[error] at Object.formatWithCursor (/node_modules/prettier/bin-prettier.js:44213:15)\r\n```\r\n\r\nIt would be nice if this error was present as prettier error or warning or something other than `throw error`.\r\n\r\nThanks \r\n","reactions":{"url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43/reactions","total_count":2,"+1":2,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/trivago/prettier-plugin-twig-melody/issues/43/timeline","performed_via_github_app":null,"state_reason":"not_planned"}},"public":true,"created_at":"2024-03-01T16:59:03Z","org":{"id":1481788,"login":"trivago","gravatar_id":"","url":"https://api.github.com/orgs/trivago","avatar_url":"https://avatars.githubusercontent.com/u/1481788?"}},{"id":"36168919672","type":"IssuesEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":69718016,"name":"kentor/eslint-plugin-sort-requires","url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1","repository_url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires","labels_url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1/comments","events_url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1/events","html_url":"https://github.com/kentor/eslint-plugin-sort-requires/issues/1","id":555460926,"node_id":"MDU6SXNzdWU1NTU0NjA5MjY=","number":1,"title":"New plugin ","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2020-01-27T09:47:41Z","updated_at":"2024-03-01T16:58:38Z","closed_at":"2024-03-01T16:58:38Z","author_association":"NONE","active_lock_reason":null,"body":"Hi!\r\n\r\nFirst of all, thanks for this plugin! \r\nI wanted to contribute but I ended up rewriting everything so I decided to make a totally new plugin with basically the same functionality as `sort-imports` plugin from `eslint` package. \r\n\r\nIn next release, I'll add fix option for fixing sorting automatically like your plugin does. My handles more cases, for example, it ignores `require` inside statements, etc..\r\n\r\nHere is the link: https://github.com/zcuric/eslint-plugin-require-sort\r\n\r\nš ","reactions":{"url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/kentor/eslint-plugin-sort-requires/issues/1/timeline","performed_via_github_app":null,"state_reason":"not_planned"}},"public":true,"created_at":"2024-03-01T16:58:39Z"},{"id":"36168908132","type":"IssuesEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":790359,"name":"sequelize/sequelize","url":"https://api.github.com/repos/sequelize/sequelize"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/sequelize/sequelize/issues/11710","repository_url":"https://api.github.com/repos/sequelize/sequelize","labels_url":"https://api.github.com/repos/sequelize/sequelize/issues/11710/labels{/name}","comments_url":"https://api.github.com/repos/sequelize/sequelize/issues/11710/comments","events_url":"https://api.github.com/repos/sequelize/sequelize/issues/11710/events","html_url":"https://github.com/sequelize/sequelize/issues/11710","id":528339252,"node_id":"MDU6SXNzdWU1MjgzMzkyNTI=","number":11710,"title":"Virtual dependency fields are being ignored if virtual field is set as attribute","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[{"id":28979678,"node_id":"MDU6TGFiZWwyODk3OTY3OA==","url":"https://api.github.com/repos/sequelize/sequelize/labels/type:%20bug","name":"type: bug","color":"ee0000","default":false,"description":""},{"id":1655159841,"node_id":"MDU6TGFiZWwxNjU1MTU5ODQx","url":"https://api.github.com/repos/sequelize/sequelize/labels/topic:%20virtual%20fields","name":"topic: virtual fields","color":"c7def8","default":false,"description":"For issues and PRs. Things that involve virtual fields."}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2019-11-25T21:12:07Z","updated_at":"2024-03-01T16:58:14Z","closed_at":"2024-03-01T16:58:14Z","author_association":"NONE","active_lock_reason":null,"body":"\r\n\r\n## Issue Description\r\n\r\nVirtual dependency fields are being ignore if virtual field is set as attribute in included association, \r\n\r\n### What are you doing?\r\n\r\n\r\n\r\n\r\n\r\n```js\r\n// Pseudo representation of the issue\r\nconst pick = require('lodash/pick');\r\n\r\nclass User extends Model {\r\n static fields(DataTypes) {\r\n return {\r\n email: {\r\n type: DataTypes.STRING,\r\n allowNull: false,\r\n validate: { isEmail: true, notEmpty: true },\r\n unique: { msg: 'This email address is already in use.' }\r\n },\r\n firstName: {\r\n type: DataTypes.STRING,\r\n field: 'first_name'\r\n },\r\n lastName: {\r\n type: DataTypes.STRING,\r\n field: 'last_name'\r\n },\r\n createdAt: {\r\n type: DataTypes.DATE,\r\n field: 'created_at'\r\n },\r\n updatedAt: {\r\n type: DataTypes.DATE,\r\n field: 'updated_at'\r\n },\r\n deletedAt: {\r\n type: DataTypes.DATE,\r\n field: 'deleted_at'\r\n },\r\n profile: {\r\n type: new DataTypes.VIRTUAL(DataTypes.ABSTRACT, ['id', 'firstName', 'lastName', 'email']),\r\n get() {\r\n return pick(this,\r\n ['id', 'firstName', 'lastName', 'email']);\r\n }\r\n }\r\n };\r\n }\r\n// ... Somehere in controller\r\n\r\nconst getPost = (req, params, next) => {\r\n const include = {\r\n model: User,\r\n as: 'author',\r\n attributes: ['profile']\r\n };\r\n return Post.findByPk(req.params.id, { include })\r\n .then(post => res.json({ post }));\r\n};\r\n```\r\n\r\n### What do you expect to happen?\r\n\r\n\r\n\r\nPost output should be:\r\n```js\r\n{\r\n\tid: 5, \r\n\ttitle: \"Foo\",\r\n\tbody: \"Bar\",\r\n\tauthor: { profile: { \r\n\t\tid: 1,\r\n\t\tfirstName: \"John\",\r\n\t\tlastName: \"Doe\",\r\n\t\temail: \"john.doe@sequelize.com\"\r\n\t} }\r\n}\r\n```\r\n### What is actually happening?\r\n\r\n\r\n\r\nPost output was:\r\n```js\r\n{\r\n\tid: 5, \r\n\ttitle: \"Foo\",\r\n\tbody: \"Bar\",\r\n\tauthor: { profile: {} }\r\n}\r\n```\r\n\r\nIf I explicitly set wanted attributes and virtual one, for example:\r\n```\r\n...\r\nattributes: ['id', 'firstName', 'lastName', 'email', 'profile']\r\n...\r\n```\r\n\r\nOutput will be\r\n```js\r\n{\r\n\tid: 5, \r\n\ttitle: \"Foo\",\r\n\tbody: \"Bar\",\r\n\tauthor: { \r\n\t\tid: 1,\r\n\t\tfirstName: \"John\",\r\n\t\tlastName: \"Doe\",\r\n\t\temail: \"john.doe@sequelize.com\", \r\n\t\tprofile: { \r\n\t\tid: 1,\r\n\t\tfirstName: \"John\",\r\n\t\tlastName: \"Doe\",\r\n\t\temail: \"john.doe@sequelize.com\"\r\n\t} }\r\n}\r\n```\r\n\r\n### Additional context\r\n\r\nIt looks like virtual field dependencies are being ignored here: \r\nhttps://github.com/sequelize/sequelize/blob/master/lib/model.js#L3799\r\n\r\n### Environment\r\n\r\n- Sequelize version: latest \r\n- Node.js version: 10 \r\n- Operating System: MacOS Catalina\r\n- If TypeScript related: TypeScript version: false\r\n\r\n## Issue Template Checklist\r\n\r\n\r\n\r\n### How does this problem relate to dialects?\r\n\r\n\r\n\r\n- [x] I think this problem happens regardless of the dialect.\r\n- [ ] I think this problem happens only for the following dialect(s): \r\n- [ ] I don't know, I was using PUT-YOUR-DIALECT-HERE, with connector library version XXX and database version XXX\r\n\r\n### Would you be willing to resolve this issue by submitting a Pull Request?\r\n\r\n\r\n\r\n- [ ] Yes, I have the time and I know how to start.\r\n- [x] Yes, I have the time but I don't know how to start, I would need guidance.\r\n- [ ] No, I don't have the time, although I believe I could do it if I had the time...\r\n- [ ] No, I don't have the time and I wouldn't even know how to start.\r\n","reactions":{"url":"https://api.github.com/repos/sequelize/sequelize/issues/11710/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/sequelize/sequelize/issues/11710/timeline","performed_via_github_app":null,"state_reason":"completed"}},"public":true,"created_at":"2024-03-01T16:58:15Z","org":{"id":3591786,"login":"sequelize","gravatar_id":"","url":"https://api.github.com/orgs/sequelize","avatar_url":"https://avatars.githubusercontent.com/u/3591786?"}},{"id":"36168899985","type":"IssuesEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":64843649,"name":"egoist/bili","url":"https://api.github.com/repos/egoist/bili"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/egoist/bili/issues/177","repository_url":"https://api.github.com/repos/egoist/bili","labels_url":"https://api.github.com/repos/egoist/bili/issues/177/labels{/name}","comments_url":"https://api.github.com/repos/egoist/bili/issues/177/comments","events_url":"https://api.github.com/repos/egoist/bili/issues/177/events","html_url":"https://github.com/egoist/bili/issues/177","id":421082302,"node_id":"MDU6SXNzdWU0MjEwODIzMDI=","number":177,"title":"Plugin order causes issues","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2019-03-14T15:20:04Z","updated_at":"2024-03-01T16:57:57Z","closed_at":"2024-03-01T16:57:57Z","author_association":"NONE","active_lock_reason":null,"body":"Hi, \r\nwhen trying to fix the build for `vue-plyr` (https://github.com/redxtech/vue-plyr/issues/60) by updating to `bili@4` (see here: https://github.com/zcuric/vue-plyr/pull/1) I encountered an issue when using specific babel config with vue files (I was trying to solve this actually: https://github.com/rollup/rollup-plugin-babel/issues/260). \r\n\r\nError I got was this:\r\n```\r\nerror Failed to bundle src/index.js in cjs format\r\n\r\nStack Trace:\r\nSyntaxError: /Users/zdravko/Code/vue-plyr/src/VuePlyr.vue: Unexpected token (1:0)\r\n\r\n> 1 | \r\n | ^\r\n 2 | \r\n 3 | \r\n 4 |
\r\n at Parser.raise (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:3831:17)\r\n at Parser.unexpected (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5143:16)\r\n at Parser.parseExprAtom (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:6283:20)\r\n at Parser.parseExprSubscripts (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5862:23)\r\n at Parser.parseMaybeUnary (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5842:21)\r\n at Parser.parseExprOps (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5729:23)\r\n at Parser.parseMaybeConditional (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5702:23)\r\n at Parser.parseMaybeAssign (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5647:21)\r\n at Parser.parseExpression (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:5595:23)\r\n at Parser.parseStatementContent (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:7378:23)\r\n at Parser.parseStatement (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:7243:17)\r\n at Parser.parseBlockOrModuleBlockBody (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:7810:25)\r\n at Parser.parseBlockBody (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:7797:10)\r\n at Parser.parseTopLevel (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:7181:10)\r\n at Parser.parse (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:8660:17)\r\n at parse (/Users/zdravko/Code/vue-plyr/node_modules/@babel/parser/lib/index.js:10660:38)\r\n```\r\n\r\nAfter debugging, we concluded that was probably because of order of plugins, which we test by moving https://github.com/egoist/bili/blob/28b1a197eb41dac2582814253f6b2b9226310d21/src/index.ts#L290-L301\r\n\r\nto here: https://github.com/egoist/bili/blob/28b1a197eb41dac2582814253f6b2b9226310d21/src/index.ts#L216\r\n\r\nIn `bili@3` this wasn't an issue, probably because of the way the plugins were defined, array was used in that config. \r\n\r\nSo, there should be a way to define the plugin priority or order of execution to fix these kind of errors.\r\n\r\ncc @vladimyr \r\n\r\n ","reactions":{"url":"https://api.github.com/repos/egoist/bili/issues/177/reactions","total_count":6,"+1":6,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/egoist/bili/issues/177/timeline","performed_via_github_app":null,"state_reason":"not_planned"}},"public":true,"created_at":"2024-03-01T16:57:58Z"},{"id":"36168887243","type":"IssuesEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":124099324,"name":"ExtensionEngine/tailor","url":"https://api.github.com/repos/ExtensionEngine/tailor"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894","repository_url":"https://api.github.com/repos/ExtensionEngine/tailor","labels_url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894/labels{/name}","comments_url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894/comments","events_url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894/events","html_url":"https://github.com/ExtensionEngine/tailor/issues/894","id":923739688,"node_id":"MDU6SXNzdWU5MjM3Mzk2ODg=","number":894,"title":"Cannot delete outline activity without content when using s3 as storage provider","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"assignees":[{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2021-06-17T10:07:35Z","updated_at":"2024-03-01T16:57:31Z","closed_at":"2024-03-01T16:57:31Z","author_association":"CONTRIBUTOR","active_lock_reason":null,"body":"## I'm submitting a...\r\n\r\n- [x] Bug report \r\n- [ ] Regression (a behavior that used to work and stopped working in a new release)\r\n- [ ] Feature request\r\n- [ ] Documentation issue or request\r\n\r\n## Expected Behavior\r\n\r\n- When creating a root level, outline activity that has no content, I should be able to delete it in all cases regardless of storage providers\r\n\r\n## Current Behavior\r\n\r\n- When creating a root level, outline activity that has no content, I can only delete it if the storage provider is filesystem. If amazon is used as storage provider, because of there is no content on outline activity, It cannot find fullpath. \r\n\r\n\r\n## Steps to Reproduce\r\n\r\n1. Make sure that you have scheme with rootLevel activity that servers as outline (folder0\r\n2. Add one and published it\r\n3. Try to delete it\r\n\r\n\r\n## Failure Logs\r\n```\r\n* Server log:\r\n1|TAILOR | {\"name\":\"tailor\",\"hostname\":\"ip-172-31-34-161\",\"pid\":24351,\"level\":50,\"err\":{\"message\":\"The XML you provided was not well-formed or did not validate against our published schema\",\"name\":\"MalformedXML\",\"stack\":\"MalformedXML: The XML you provided was not well-formed or did not validate against our published schema\\n at Request.extractError (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/services/s3.js:700:35)\\n at Request.callListeners (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/sequential_executor.js:106:20)\\n at Request.emit (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\\n at Request.emit (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:688:14)\\n at Request.transition (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:22:10)\\n at AcceptorStateMachine.runTo (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/state_machine.js:14:12)\\n at /home/ubuntu/tailor/source/node_modules/aws-sdk/lib/state_machine.js:26:10\\n at Request. (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:38:9)\\n at Request. (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:690:12)\\n at Request.callListeners (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/sequential_executor.js:116:18)\\n at Request.emit (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/sequential_executor.js:78:10)\\n at Request.emit (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:688:14)\\n at Request.transition (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:22:10)\\n at AcceptorStateMachine.runTo (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/state_machine.js:14:12)\\n at /home/ubuntu/tailor/source/node_modules/aws-sdk/lib/state_machine.js:26:10\\n at Request. (/home/ubuntu/tailor/source/node_modules/aws-sdk/lib/request.js:38:9)\",\"code\":\"MalformedXML\"},\"msg\":\"The XML you provided was not well-formed or did not validate against our published schema\",\"time\":\"2021-06-15T10:19:15.979Z\",\"v\":0}```\r\n","reactions":{"url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/ExtensionEngine/tailor/issues/894/timeline","performed_via_github_app":null,"state_reason":"not_planned"}},"public":true,"created_at":"2024-03-01T16:57:32Z","org":{"id":2768813,"login":"ExtensionEngine","gravatar_id":"","url":"https://api.github.com/orgs/ExtensionEngine","avatar_url":"https://avatars.githubusercontent.com/u/2768813?"}},{"id":"36168872154","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":746606940,"name":"Lunakepio/Mario-Kart-3.js","url":"https://api.github.com/repos/Lunakepio/Mario-Kart-3.js"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-01T16:56:59Z"},{"id":"36168671602","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":530861050,"name":"yoavbls/pretty-ts-errors","url":"https://api.github.com/repos/yoavbls/pretty-ts-errors"},"payload":{"action":"started"},"public":true,"created_at":"2024-03-01T16:50:12Z"},{"id":"36064223962","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":46624643,"name":"zplug/zplug","url":"https://api.github.com/repos/zplug/zplug"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-27T20:17:52Z","org":{"id":16539964,"login":"zplug","gravatar_id":"","url":"https://api.github.com/orgs/zplug","avatar_url":"https://avatars.githubusercontent.com/u/16539964?"}},{"id":"35984735781","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":526497574,"name":"unfoldadmin/django-unfold","url":"https://api.github.com/repos/unfoldadmin/django-unfold"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-25T13:41:09Z","org":{"id":131294636,"login":"unfoldadmin","gravatar_id":"","url":"https://api.github.com/orgs/unfoldadmin","avatar_url":"https://avatars.githubusercontent.com/u/131294636?"}},{"id":"35974136839","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":714464495,"name":"hirethunk/verbs","url":"https://api.github.com/repos/hirethunk/verbs"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-24T18:22:51Z","org":{"id":149911170,"login":"hirethunk","gravatar_id":"","url":"https://api.github.com/orgs/hirethunk","avatar_url":"https://avatars.githubusercontent.com/u/149911170?"}},{"id":"35971713199","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":7548986,"name":"laravel/framework","url":"https://api.github.com/repos/laravel/framework"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-24T14:36:41Z","org":{"id":958072,"login":"laravel","gravatar_id":"","url":"https://api.github.com/orgs/laravel","avatar_url":"https://avatars.githubusercontent.com/u/958072?"}},{"id":"35968468229","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":453642201,"name":"ObuchiYuki/DevToysMac","url":"https://api.github.com/repos/ObuchiYuki/DevToysMac"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-24T09:32:05Z"},{"id":"35908235905","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":209257922,"name":"sweepline/eslint-plugin-unused-imports","url":"https://api.github.com/repos/sweepline/eslint-plugin-unused-imports"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-22T12:08:05Z"},{"id":"35864322949","type":"IssueCommentEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":174200859,"name":"inertiajs/inertia","url":"https://api.github.com/repos/inertiajs/inertia"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","repository_url":"https://api.github.com/repos/inertiajs/inertia","labels_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/labels{/name}","comments_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/comments","events_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/events","html_url":"https://github.com/inertiajs/inertia/pull/1784","id":2113222073,"node_id":"PR_kwDOCmIYG85lvUzz","number":1784,"title":"Address history back button security issue (full page loads)","user":{"login":"nicholaspufal","id":680151,"node_id":"MDQ6VXNlcjY4MDE1MQ==","avatar_url":"https://avatars.githubusercontent.com/u/680151?v=4","gravatar_id":"","url":"https://api.github.com/users/nicholaspufal","html_url":"https://github.com/nicholaspufal","followers_url":"https://api.github.com/users/nicholaspufal/followers","following_url":"https://api.github.com/users/nicholaspufal/following{/other_user}","gists_url":"https://api.github.com/users/nicholaspufal/gists{/gist_id}","starred_url":"https://api.github.com/users/nicholaspufal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicholaspufal/subscriptions","organizations_url":"https://api.github.com/users/nicholaspufal/orgs","repos_url":"https://api.github.com/users/nicholaspufal/repos","events_url":"https://api.github.com/users/nicholaspufal/events{/privacy}","received_events_url":"https://api.github.com/users/nicholaspufal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2024-02-01T18:48:20Z","updated_at":"2024-02-21T09:33:40Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/inertiajs/inertia/pulls/1784","html_url":"https://github.com/inertiajs/inertia/pull/1784","diff_url":"https://github.com/inertiajs/inertia/pull/1784.diff","patch_url":"https://github.com/inertiajs/inertia/pull/1784.patch","merged_at":null},"body":"_**Disclaimer:** I'm open to ideas on how to address this in a better way here. This isn't the same as the `popstate` custom handler people have proposed in other issues/PRs._ \r\n\r\n### Summary of the problem\r\n\r\nFrom a security standpoint, there are two situations where Inertia restores `props` from its cache (i.e. `window.history.state`) that are concerning at the moment:\r\n\r\n1. **During client-side navigation (e.g. after clicking on an `InertiaLink` component) a user goes back in the browser's history**\r\n - This relies on the `popstate` API to restore the app's state, has been discussed in a few issues in this project, and it's not what this PR is about. Still warrants attention though.\r\n\r\n2. **After full page loads a user goes back in the browser's history**\r\n\r\n - This is what this PR is about\r\n\r\nšØāš» This is the code affecting behavior related to number 2 from above: https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L157-L163\r\n- `page` here represents fresh Inertia props. When a backend request is performed, and Inertia props are provided via the rendered HTML, this is what `page` here includes\r\n- `window.history.state` on the other hand represents stale props. This is the state of the Inertia props prior to what `page` contains. \r\n\r\nThe issue is that the code is always giving preference to those stale props. Because Inertia props are the bread and butter of Inertia, they often contain sensitive information from the users, information which is cleared when they log out, but because Inertia pulls those from its cache (without any sort of configuration around this behaviour, or without checking if `page`'s props may be fresher) sensitive information may be leaked to third-parties in Inertia apps. \r\n\r\n### Reproducing this problem\r\n\r\n_from an Inertia app_\r\n1. User A is logged in and at the path `/foobar`\r\n4. User A signs out and this causes a full `/foobar` page load \r\n5. User A leaves the shared computer\r\n6. User B goes back in the browser's history\r\n7. User B can see all sensitive information from User A \r\n","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/reactions","total_count":7,"+1":5,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1956238774","html_url":"https://github.com/inertiajs/inertia/pull/1784#issuecomment-1956238774","issue_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","id":1956238774,"node_id":"IC_kwDOCmIYG850mdW2","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"created_at":"2024-02-21T09:33:39Z","updated_at":"2024-02-21T09:33:39Z","author_association":"NONE","body":"Just so you know, we used https://github.com/ds300/patch-package to apply patches to @inertiajs/core to fix these two issues. We applied, this PR and #1786. ","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1956238774/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-02-21T09:33:40Z","org":{"id":47703742,"login":"inertiajs","gravatar_id":"","url":"https://api.github.com/orgs/inertiajs","avatar_url":"https://avatars.githubusercontent.com/u/47703742?"}},{"id":"35860322739","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":247825643,"name":"imanghafoori1/laravel-microscope","url":"https://api.github.com/repos/imanghafoori1/laravel-microscope"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-21T07:17:47Z"},{"id":"35770889660","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":723187026,"name":"jordan-cutler/path-to-senior-engineer-handbook","url":"https://api.github.com/repos/jordan-cutler/path-to-senior-engineer-handbook"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-18T07:24:46Z"},{"id":"35613338975","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":266109168,"name":"spatie/typescript-transformer","url":"https://api.github.com/repos/spatie/typescript-transformer"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-12T19:56:13Z","org":{"id":7535935,"login":"spatie","gravatar_id":"","url":"https://api.github.com/orgs/spatie","avatar_url":"https://avatars.githubusercontent.com/u/7535935?"}},{"id":"35520560813","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":732203523,"name":"apple/ml-mgie","url":"https://api.github.com/repos/apple/ml-mgie"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-08T15:38:28Z","org":{"id":10639145,"login":"apple","gravatar_id":"","url":"https://api.github.com/orgs/apple","avatar_url":"https://avatars.githubusercontent.com/u/10639145?"}},{"id":"35516957789","type":"IssueCommentEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":174200859,"name":"inertiajs/inertia","url":"https://api.github.com/repos/inertiajs/inertia"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1786","repository_url":"https://api.github.com/repos/inertiajs/inertia","labels_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/labels{/name}","comments_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/comments","events_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/events","html_url":"https://github.com/inertiajs/inertia/pull/1786","id":2118503137,"node_id":"PR_kwDOCmIYG85mBV0g","number":1786,"title":"Fix: in setPage if no component return empty promise","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2024-02-05T13:06:03Z","updated_at":"2024-02-08T13:56:54Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/inertiajs/inertia/pulls/1786","html_url":"https://github.com/inertiajs/inertia/pull/1786","diff_url":"https://github.com/inertiajs/inertia/pull/1786.diff","patch_url":"https://github.com/inertiajs/inertia/pull/1786.patch","merged_at":null},"body":"### This PR:\r\n- [x] Resolves #1766\r\n\r\nIn certain scenarios when the [user is moving back and forth with the browser page data is lost](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L159) and [`setPage`](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L453) tries to resolve an empty component, resulting in an undefined error being seen. Multiple Interia users have reported this issue and we are experiencing it in our project also (see attached image). [Error is thrown from `laravel-vite-plugin` Intertia helper `resolvePageComponent`](https://github.com/laravel/vite-plugin/blob/1.x/src/inertia-helpers/index.ts#L12), but in general, this shouldn't happen if there is no page. \r\n\r\n`page` object should be typed more strictly, but that is larger effort. \r\n\r\nAlso, when debugging I've also noticed that `visitId` is always an empty object, so the [if statement in `then`](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L453) always gets executed because `{} === {}`. I've never seen that `visitId` had any meaningful value. \r\n\r\n![image](https://github.com/inertiajs/inertia/assets/1560102/c3e47ab6-bbf8-4096-846c-370090141bb9)\r\n","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/reactions","total_count":4,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1934175936","html_url":"https://github.com/inertiajs/inertia/pull/1786#issuecomment-1934175936","issue_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786","id":1934175936,"node_id":"IC_kwDOCmIYG85zSS7A","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"created_at":"2024-02-08T13:56:52Z","updated_at":"2024-02-08T13:56:52Z","author_association":"NONE","body":"#1784 already fixes this issue and also fixes a security issue. @Hasan-Mir can you check if the mentioned PR fixes your issue as well? Thanks. \r\n\r\nI'll close this one once #1784 is merged. ","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1934175936/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-02-08T13:56:54Z","org":{"id":47703742,"login":"inertiajs","gravatar_id":"","url":"https://api.github.com/orgs/inertiajs","avatar_url":"https://avatars.githubusercontent.com/u/47703742?"}},{"id":"35516910295","type":"IssueCommentEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":174200859,"name":"inertiajs/inertia","url":"https://api.github.com/repos/inertiajs/inertia"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","repository_url":"https://api.github.com/repos/inertiajs/inertia","labels_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/labels{/name}","comments_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/comments","events_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/events","html_url":"https://github.com/inertiajs/inertia/pull/1784","id":2113222073,"node_id":"PR_kwDOCmIYG85lvUzz","number":1784,"title":"Address history back button security issue (full page loads)","user":{"login":"nicholaspufal","id":680151,"node_id":"MDQ6VXNlcjY4MDE1MQ==","avatar_url":"https://avatars.githubusercontent.com/u/680151?v=4","gravatar_id":"","url":"https://api.github.com/users/nicholaspufal","html_url":"https://github.com/nicholaspufal","followers_url":"https://api.github.com/users/nicholaspufal/followers","following_url":"https://api.github.com/users/nicholaspufal/following{/other_user}","gists_url":"https://api.github.com/users/nicholaspufal/gists{/gist_id}","starred_url":"https://api.github.com/users/nicholaspufal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicholaspufal/subscriptions","organizations_url":"https://api.github.com/users/nicholaspufal/orgs","repos_url":"https://api.github.com/users/nicholaspufal/repos","events_url":"https://api.github.com/users/nicholaspufal/events{/privacy}","received_events_url":"https://api.github.com/users/nicholaspufal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2024-02-01T18:48:20Z","updated_at":"2024-02-08T13:55:29Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/inertiajs/inertia/pulls/1784","html_url":"https://github.com/inertiajs/inertia/pull/1784","diff_url":"https://github.com/inertiajs/inertia/pull/1784.diff","patch_url":"https://github.com/inertiajs/inertia/pull/1784.patch","merged_at":null},"body":"_**Disclaimer:** I'm open to ideas on how to address this in a better way here. This isn't the same as the `popstate` custom handler people have proposed in other issues/PRs._ \r\n\r\n### Summary of the problem\r\n\r\nFrom a security standpoint, there are two situations where Inertia restores `props` from its cache (i.e. `window.history.state`) that are concerning at the moment:\r\n\r\n1. **During client-side navigation (e.g. after clicking on an `InertiaLink` component) a user goes back in the browser's history**\r\n - This relies on the `popstate` API to restore the app's state, has been discussed in a few issues in this project, and it's not what this PR is about. Still warrants attention though.\r\n\r\n2. **After full page loads a user goes back in the browser's history**\r\n\r\n - This is what this PR is about\r\n\r\nšØāš» This is the code affecting behavior related to number 2 from above: https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L157-L163\r\n- `page` here represents fresh Inertia props. When a backend request is performed, and Inertia props are provided via the rendered HTML, this is what `page` here includes\r\n- `window.history.state` on the other hand represents stale props. This is the state of the Inertia props prior to what `page` contains. \r\n\r\nThe issue is that the code is always giving preference to those stale props. Because Inertia props are the bread and butter of Inertia, they often contain sensitive information from the users, information which is cleared when they log out, but because Inertia pulls those from its cache (without any sort of configuration around this behaviour, or without checking if `page`'s props may be fresher) sensitive information may be leaked to third-parties in Inertia apps. \r\n\r\n### Reproducing this problem\r\n\r\n_from an Inertia app_\r\n1. User A is logged in and at the path `/foobar`\r\n4. User A signs out and this causes a full `/foobar` page load \r\n5. User A leaves the shared computer\r\n6. User B goes back in the browser's history\r\n7. User B can see all sensitive information from User A \r\n","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/reactions","total_count":6,"+1":4,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1934173445","html_url":"https://github.com/inertiajs/inertia/pull/1784#issuecomment-1934173445","issue_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","id":1934173445,"node_id":"IC_kwDOCmIYG85zSSUF","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"created_at":"2024-02-08T13:55:28Z","updated_at":"2024-02-08T13:55:28Z","author_association":"NONE","body":"@nicholaspufal It is fixed, I just tested it in my project! \r\n\r\nSo to reproduce it, on the master branch: \r\n1. Go to a homepage, for example\r\n2. Go to another page \r\n3. Click back and you should see something like this: \r\n![image](https://github.com/inertiajs/inertia/assets/1560102/812bb84a-f702-4514-a83e-beda80291b02)\r\n\r\nThis is caused by the same issue you fixed. My PR #1786 addresses just above mentioned issue. Your PR needs to be merged, especially if it's a security issue. I hope someone will look at this. šš» ","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1934173445/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-02-08T13:55:29Z","org":{"id":47703742,"login":"inertiajs","gravatar_id":"","url":"https://api.github.com/orgs/inertiajs","avatar_url":"https://avatars.githubusercontent.com/u/47703742?"}},{"id":"35483355535","type":"IssueCommentEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":174200859,"name":"inertiajs/inertia","url":"https://api.github.com/repos/inertiajs/inertia"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","repository_url":"https://api.github.com/repos/inertiajs/inertia","labels_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/labels{/name}","comments_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/comments","events_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/events","html_url":"https://github.com/inertiajs/inertia/pull/1784","id":2113222073,"node_id":"PR_kwDOCmIYG85lvUzz","number":1784,"title":"Address history back button security issue (full page loads)","user":{"login":"nicholaspufal","id":680151,"node_id":"MDQ6VXNlcjY4MDE1MQ==","avatar_url":"https://avatars.githubusercontent.com/u/680151?v=4","gravatar_id":"","url":"https://api.github.com/users/nicholaspufal","html_url":"https://github.com/nicholaspufal","followers_url":"https://api.github.com/users/nicholaspufal/followers","following_url":"https://api.github.com/users/nicholaspufal/following{/other_user}","gists_url":"https://api.github.com/users/nicholaspufal/gists{/gist_id}","starred_url":"https://api.github.com/users/nicholaspufal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicholaspufal/subscriptions","organizations_url":"https://api.github.com/users/nicholaspufal/orgs","repos_url":"https://api.github.com/users/nicholaspufal/repos","events_url":"https://api.github.com/users/nicholaspufal/events{/privacy}","received_events_url":"https://api.github.com/users/nicholaspufal/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2024-02-01T18:48:20Z","updated_at":"2024-02-07T14:34:27Z","closed_at":null,"author_association":"NONE","active_lock_reason":null,"draft":false,"pull_request":{"url":"https://api.github.com/repos/inertiajs/inertia/pulls/1784","html_url":"https://github.com/inertiajs/inertia/pull/1784","diff_url":"https://github.com/inertiajs/inertia/pull/1784.diff","patch_url":"https://github.com/inertiajs/inertia/pull/1784.patch","merged_at":null},"body":"_**Disclaimer:** I'm open to ideas on how to address this in a better way here. This isn't the same as the `popstate` custom handler people have proposed in other issues/PRs._ \r\n\r\n### Summary of the problem\r\n\r\nFrom a security standpoint, there are two situations where Inertia restores `props` from its cache (i.e. `window.history.state`) that are concerning at the moment:\r\n\r\n1. **During client-side navigation (e.g. after clicking on an `InertiaLink` component) a user goes back in the browser's history**\r\n - This relies on the `popstate` API to restore the app's state, has been discussed in a few issues in this project, and it's not what this PR is about. Still warrants attention though.\r\n\r\n2. **After full page loads a user goes back in the browser's history**\r\n\r\n - This is what this PR is about\r\n\r\nšØāš» This is the code affecting behavior related to number 2 from above: https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L157-L163\r\n- `page` here represents fresh Inertia props. When a backend request is performed, and Inertia props are provided via the rendered HTML, this is what `page` here includes\r\n- `window.history.state` on the other hand represents stale props. This is the state of the Inertia props prior to what `page` contains. \r\n\r\nThe issue is that the code is always giving preference to those stale props. Because Inertia props are the bread and butter of Inertia, they often contain sensitive information from the users, information which is cleared when they log out, but because Inertia pulls those from its cache (without any sort of configuration around this behaviour, or without checking if `page`'s props may be fresher) sensitive information may be leaked to third-parties in Inertia apps. \r\n\r\n### Reproducing this problem\r\n\r\n_from an Inertia app_\r\n1. User A is logged in and at the path `/foobar`\r\n4. User A signs out and this causes a full `/foobar` page load \r\n5. User A leaves the shared computer\r\n6. User B goes back in the browser's history\r\n7. User B can see all sensitive information from User A \r\n","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/reactions","total_count":5,"+1":3,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":2,"rocket":0,"eyes":0},"timeline_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784/timeline","performed_via_github_app":null,"state_reason":null},"comment":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1932177537","html_url":"https://github.com/inertiajs/inertia/pull/1784#issuecomment-1932177537","issue_url":"https://api.github.com/repos/inertiajs/inertia/issues/1784","id":1932177537,"node_id":"IC_kwDOCmIYG85zKrCB","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"created_at":"2024-02-07T14:34:26Z","updated_at":"2024-02-07T14:34:26Z","author_association":"NONE","body":"@nicholaspufal Hi, does this also fixes the `undefined` issue that I've address here #1786?","reactions":{"url":"https://api.github.com/repos/inertiajs/inertia/issues/comments/1932177537/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"performed_via_github_app":null}},"public":true,"created_at":"2024-02-07T14:34:27Z","org":{"id":47703742,"login":"inertiajs","gravatar_id":"","url":"https://api.github.com/orgs/inertiajs","avatar_url":"https://avatars.githubusercontent.com/u/47703742?"}},{"id":"35483209820","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":340547520,"name":"zed-industries/zed","url":"https://api.github.com/repos/zed-industries/zed"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-07T14:30:20Z","org":{"id":79345384,"login":"zed-industries","gravatar_id":"","url":"https://api.github.com/orgs/zed-industries","avatar_url":"https://avatars.githubusercontent.com/u/79345384?"}},{"id":"35483170958","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":247844867,"name":"kirschbaum-development/eloquent-power-joins","url":"https://api.github.com/repos/kirschbaum-development/eloquent-power-joins"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-07T14:29:17Z","org":{"id":35586907,"login":"kirschbaum-development","gravatar_id":"","url":"https://api.github.com/orgs/kirschbaum-development","avatar_url":"https://avatars.githubusercontent.com/u/35586907?"}},{"id":"35419251385","type":"WatchEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":572624741,"name":"laravel/pulse","url":"https://api.github.com/repos/laravel/pulse"},"payload":{"action":"started"},"public":true,"created_at":"2024-02-05T18:55:21Z","org":{"id":958072,"login":"laravel","gravatar_id":"","url":"https://api.github.com/orgs/laravel","avatar_url":"https://avatars.githubusercontent.com/u/958072?"}},{"id":"35407599638","type":"PullRequestEvent","actor":{"id":1560102,"login":"zcuric","display_login":"zcuric","gravatar_id":"","url":"https://api.github.com/users/zcuric","avatar_url":"https://avatars.githubusercontent.com/u/1560102?"},"repo":{"id":174200859,"name":"inertiajs/inertia","url":"https://api.github.com/repos/inertiajs/inertia"},"payload":{"action":"opened","number":1786,"pull_request":{"url":"https://api.github.com/repos/inertiajs/inertia/pulls/1786","id":1711627552,"node_id":"PR_kwDOCmIYG85mBV0g","html_url":"https://github.com/inertiajs/inertia/pull/1786","diff_url":"https://github.com/inertiajs/inertia/pull/1786.diff","patch_url":"https://github.com/inertiajs/inertia/pull/1786.patch","issue_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786","number":1786,"state":"open","locked":false,"title":"Fix: in setPage if no component return empty promise","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"body":"### This PR:\r\n- [x] Resolves #1766\r\n\r\nIn certain scenarios when the [user is moving back and forth with the browser page data is lost](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L159) and [`setPage`](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L453) tries to resolve an empty component, resulting in an undefined error being seen. Multiple Interia users have reported this issue and we are experiencing it in our project also (see attached image). [Error is thrown from `laravel-vite-plugin` Intertia helper `resolvePageComponent`](https://github.com/laravel/vite-plugin/blob/1.x/src/inertia-helpers/index.ts#L12), but in general, this shouldn't happen if there is no page. \r\n\r\n`page` object should be typed more strictly, but that is larger effort. \r\n\r\nAlso, when debugging I've also noticed that `visitId` is always an empty object, so the [if statement in `then`](https://github.com/inertiajs/inertia/blob/master/packages/core/src/router.ts#L453) always gets executed because `{} === {}`. I've never seen that `visitId` had any meaningful value. \r\n\r\n![image](https://github.com/inertiajs/inertia/assets/1560102/c3e47ab6-bbf8-4096-846c-370090141bb9)\r\n","created_at":"2024-02-05T13:06:03Z","updated_at":"2024-02-05T13:06:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/inertiajs/inertia/pulls/1786/commits","review_comments_url":"https://api.github.com/repos/inertiajs/inertia/pulls/1786/comments","review_comment_url":"https://api.github.com/repos/inertiajs/inertia/pulls/comments{/number}","comments_url":"https://api.github.com/repos/inertiajs/inertia/issues/1786/comments","statuses_url":"https://api.github.com/repos/inertiajs/inertia/statuses/4358336ea24402ff8348134958507b092d3a904a","head":{"label":"zcuric:fix-undefined-component","ref":"fix-undefined-component","sha":"4358336ea24402ff8348134958507b092d3a904a","user":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"repo":{"id":597046880,"node_id":"R_kgDOI5Y2YA","name":"inertia","full_name":"zcuric/inertia","private":false,"owner":{"login":"zcuric","id":1560102,"node_id":"MDQ6VXNlcjE1NjAxMDI=","avatar_url":"https://avatars.githubusercontent.com/u/1560102?v=4","gravatar_id":"","url":"https://api.github.com/users/zcuric","html_url":"https://github.com/zcuric","followers_url":"https://api.github.com/users/zcuric/followers","following_url":"https://api.github.com/users/zcuric/following{/other_user}","gists_url":"https://api.github.com/users/zcuric/gists{/gist_id}","starred_url":"https://api.github.com/users/zcuric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zcuric/subscriptions","organizations_url":"https://api.github.com/users/zcuric/orgs","repos_url":"https://api.github.com/users/zcuric/repos","events_url":"https://api.github.com/users/zcuric/events{/privacy}","received_events_url":"https://api.github.com/users/zcuric/received_events","type":"User","site_admin":false},"html_url":"https://github.com/zcuric/inertia","description":"Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.","fork":true,"url":"https://api.github.com/repos/zcuric/inertia","forks_url":"https://api.github.com/repos/zcuric/inertia/forks","keys_url":"https://api.github.com/repos/zcuric/inertia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zcuric/inertia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zcuric/inertia/teams","hooks_url":"https://api.github.com/repos/zcuric/inertia/hooks","issue_events_url":"https://api.github.com/repos/zcuric/inertia/issues/events{/number}","events_url":"https://api.github.com/repos/zcuric/inertia/events","assignees_url":"https://api.github.com/repos/zcuric/inertia/assignees{/user}","branches_url":"https://api.github.com/repos/zcuric/inertia/branches{/branch}","tags_url":"https://api.github.com/repos/zcuric/inertia/tags","blobs_url":"https://api.github.com/repos/zcuric/inertia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zcuric/inertia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zcuric/inertia/git/refs{/sha}","trees_url":"https://api.github.com/repos/zcuric/inertia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zcuric/inertia/statuses/{sha}","languages_url":"https://api.github.com/repos/zcuric/inertia/languages","stargazers_url":"https://api.github.com/repos/zcuric/inertia/stargazers","contributors_url":"https://api.github.com/repos/zcuric/inertia/contributors","subscribers_url":"https://api.github.com/repos/zcuric/inertia/subscribers","subscription_url":"https://api.github.com/repos/zcuric/inertia/subscription","commits_url":"https://api.github.com/repos/zcuric/inertia/commits{/sha}","git_commits_url":"https://api.github.com/repos/zcuric/inertia/git/commits{/sha}","comments_url":"https://api.github.com/repos/zcuric/inertia/comments{/number}","issue_comment_url":"https://api.github.com/repos/zcuric/inertia/issues/comments{/number}","contents_url":"https://api.github.com/repos/zcuric/inertia/contents/{+path}","compare_url":"https://api.github.com/repos/zcuric/inertia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zcuric/inertia/merges","archive_url":"https://api.github.com/repos/zcuric/inertia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zcuric/inertia/downloads","issues_url":"https://api.github.com/repos/zcuric/inertia/issues{/number}","pulls_url":"https://api.github.com/repos/zcuric/inertia/pulls{/number}","milestones_url":"https://api.github.com/repos/zcuric/inertia/milestones{/number}","notifications_url":"https://api.github.com/repos/zcuric/inertia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zcuric/inertia/labels{/name}","releases_url":"https://api.github.com/repos/zcuric/inertia/releases{/id}","deployments_url":"https://api.github.com/repos/zcuric/inertia/deployments","created_at":"2023-02-03T14:08:28Z","updated_at":"2023-02-09T16:20:21Z","pushed_at":"2024-02-05T12:53:15Z","git_url":"git://github.com/zcuric/inertia.git","ssh_url":"git@github.com:zcuric/inertia.git","clone_url":"https://github.com/zcuric/inertia.git","svn_url":"https://github.com/zcuric/inertia","homepage":"https://inertiajs.com","size":1573,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"inertiajs:master","ref":"master","sha":"0fc4b1c8b91639ed58b44fafe8833f2108496de6","user":{"login":"inertiajs","id":47703742,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3NzAzNzQy","avatar_url":"https://avatars.githubusercontent.com/u/47703742?v=4","gravatar_id":"","url":"https://api.github.com/users/inertiajs","html_url":"https://github.com/inertiajs","followers_url":"https://api.github.com/users/inertiajs/followers","following_url":"https://api.github.com/users/inertiajs/following{/other_user}","gists_url":"https://api.github.com/users/inertiajs/gists{/gist_id}","starred_url":"https://api.github.com/users/inertiajs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inertiajs/subscriptions","organizations_url":"https://api.github.com/users/inertiajs/orgs","repos_url":"https://api.github.com/users/inertiajs/repos","events_url":"https://api.github.com/users/inertiajs/events{/privacy}","received_events_url":"https://api.github.com/users/inertiajs/received_events","type":"Organization","site_admin":false},"repo":{"id":174200859,"node_id":"MDEwOlJlcG9zaXRvcnkxNzQyMDA4NTk=","name":"inertia","full_name":"inertiajs/inertia","private":false,"owner":{"login":"inertiajs","id":47703742,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3NzAzNzQy","avatar_url":"https://avatars.githubusercontent.com/u/47703742?v=4","gravatar_id":"","url":"https://api.github.com/users/inertiajs","html_url":"https://github.com/inertiajs","followers_url":"https://api.github.com/users/inertiajs/followers","following_url":"https://api.github.com/users/inertiajs/following{/other_user}","gists_url":"https://api.github.com/users/inertiajs/gists{/gist_id}","starred_url":"https://api.github.com/users/inertiajs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inertiajs/subscriptions","organizations_url":"https://api.github.com/users/inertiajs/orgs","repos_url":"https://api.github.com/users/inertiajs/repos","events_url":"https://api.github.com/users/inertiajs/events{/privacy}","received_events_url":"https://api.github.com/users/inertiajs/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/inertiajs/inertia","description":"Inertia.js lets you quickly build modern single-page React, Vue and Svelte apps using classic server-side routing and controllers.","fork":false,"url":"https://api.github.com/repos/inertiajs/inertia","forks_url":"https://api.github.com/repos/inertiajs/inertia/forks","keys_url":"https://api.github.com/repos/inertiajs/inertia/keys{/key_id}","collaborators_url":"https://api.github.com/repos/inertiajs/inertia/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/inertiajs/inertia/teams","hooks_url":"https://api.github.com/repos/inertiajs/inertia/hooks","issue_events_url":"https://api.github.com/repos/inertiajs/inertia/issues/events{/number}","events_url":"https://api.github.com/repos/inertiajs/inertia/events","assignees_url":"https://api.github.com/repos/inertiajs/inertia/assignees{/user}","branches_url":"https://api.github.com/repos/inertiajs/inertia/branches{/branch}","tags_url":"https://api.github.com/repos/inertiajs/inertia/tags","blobs_url":"https://api.github.com/repos/inertiajs/inertia/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/inertiajs/inertia/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/inertiajs/inertia/git/refs{/sha}","trees_url":"https://api.github.com/repos/inertiajs/inertia/git/trees{/sha}","statuses_url":"https://api.github.com/repos/inertiajs/inertia/statuses/{sha}","languages_url":"https://api.github.com/repos/inertiajs/inertia/languages","stargazers_url":"https://api.github.com/repos/inertiajs/inertia/stargazers","contributors_url":"https://api.github.com/repos/inertiajs/inertia/contributors","subscribers_url":"https://api.github.com/repos/inertiajs/inertia/subscribers","subscription_url":"https://api.github.com/repos/inertiajs/inertia/subscription","commits_url":"https://api.github.com/repos/inertiajs/inertia/commits{/sha}","git_commits_url":"https://api.github.com/repos/inertiajs/inertia/git/commits{/sha}","comments_url":"https://api.github.com/repos/inertiajs/inertia/comments{/number}","issue_comment_url":"https://api.github.com/repos/inertiajs/inertia/issues/comments{/number}","contents_url":"https://api.github.com/repos/inertiajs/inertia/contents/{+path}","compare_url":"https://api.github.com/repos/inertiajs/inertia/compare/{base}...{head}","merges_url":"https://api.github.com/repos/inertiajs/inertia/merges","archive_url":"https://api.github.com/repos/inertiajs/inertia/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/inertiajs/inertia/downloads","issues_url":"https://api.github.com/repos/inertiajs/inertia/issues{/number}","pulls_url":"https://api.github.com/repos/inertiajs/inertia/pulls{/number}","milestones_url":"https://api.github.com/repos/inertiajs/inertia/milestones{/number}","notifications_url":"https://api.github.com/repos/inertiajs/inertia/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/inertiajs/inertia/labels{/name}","releases_url":"https://api.github.com/repos/inertiajs/inertia/releases{/id}","deployments_url":"https://api.github.com/repos/inertiajs/inertia/deployments","created_at":"2019-03-06T18:43:43Z","updated_at":"2024-02-05T04:17:15Z","pushed_at":"2024-02-05T13:06:04Z","git_url":"git://github.com/inertiajs/inertia.git","ssh_url":"git@github.com:inertiajs/inertia.git","clone_url":"https://github.com/inertiajs/inertia.git","svn_url":"https://github.com/inertiajs/inertia","homepage":"https://inertiajs.com","size":1777,"stargazers_count":5580,"watchers_count":5580,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":true,"forks_count":382,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":84,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":382,"open_issues":84,"watchers":5580,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/inertiajs/inertia/pulls/1786"},"html":{"href":"https://github.com/inertiajs/inertia/pull/1786"},"issue":{"href":"https://api.github.com/repos/inertiajs/inertia/issues/1786"},"comments":{"href":"https://api.github.com/repos/inertiajs/inertia/issues/1786/comments"},"review_comments":{"href":"https://api.github.com/repos/inertiajs/inertia/pulls/1786/comments"},"review_comment":{"href":"https://api.github.com/repos/inertiajs/inertia/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/inertiajs/inertia/pulls/1786/commits"},"statuses":{"href":"https://api.github.com/repos/inertiajs/inertia/statuses/4358336ea24402ff8348134958507b092d3a904a"}},"author_association":"NONE","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":4,"deletions":0,"changed_files":1}},"public":true,"created_at":"2024-02-05T13:06:05Z","org":{"id":47703742,"login":"inertiajs","gravatar_id":"","url":"https://api.github.com/orgs/inertiajs","avatar_url":"https://avatars.githubusercontent.com/u/47703742?"}}]