{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":191051391,"defaultBranch":"main","name":"redwood","ownerLogin":"redwoodjs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-06-09T20:17:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/45050444?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716305342.0","currentOid":""},"activityList":{"items":[{"before":"a2ac9fc404856946dabaa3223d56c0a8b1304c77","after":null,"ref":"refs/heads/dt-refactor-server-entries-from-routes","pushedAt":"2024-05-21T15:29:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"}},{"before":"999bc1e786b18e0c16f0ffa81d1c126da2b2ef89","after":"d80d01016b95c824ef0cc8a199d41c5be1858f2f","ref":"refs/heads/main","pushedAt":"2024-05-21T15:29:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"feat: Reworks RSC server entries and route manifest building to derive from routes and include if route info related to authentication (#10572)\n\nIn furtherance if\r\nhttps://github.com/orgs/redwoodjs/projects/18/views/3?pane=issue&itemId=59049687\r\n\r\nCurrently @dac09 and I are thinking that to enforce authenticate during\r\nRSC rendering, we need to know if the entry request that renders the RSC\r\ncomponent requires auth. This is not online how a graphQL operation is\r\nmarked as requiring auth so that then the headers/cookie/credentials can\r\nbe verified.\r\n\r\nThis PR refactors \r\n\r\n1. How server entries are built -- not from \"processing the pages dir\"\r\n(which is a deprecated function) but rather the routes ... and the page\r\ninfo for that route. Note here that a page can be used in multiple\r\nroutes, so the auth info cannot really be determined here.\r\n\r\n2. The route manifest building to include an isPrivate attribute. Now if\r\nsome page, route request is being handler we might be able to check if\r\nit \"isPrivate\" and enforce auth.\r\n\r\n3. Add `unauthenticated` property to the route manifest to show where\r\nthe user would expect to be redirected to if not permitted.\r\n\r\n4. Add `roles` to the route manifest\r\n\r\nBoth of these efforts are just a little speculation, but need the\r\nability to check to see if our approach is reasonable.\r\n\r\nFYI. The change in the RWRoute appears to have been an oversight from\r\nwhen the set was renamed from `Private` to `PrivateSet`. Now a route\r\nproperly knows if it's private based on its parents.\r\n\r\n## Tests\r\n\r\nAdded to test to confirm that router can determine which routes are\r\nprivate. Note that fixtures are updated to favor `PrivateSet` over\r\n`Private` ... but the detection code still allows Private or PrivateSet.\r\n\r\nTests added to check the name, path, unauthenticated and roles\r\nattributers of a RWRoute.\r\n\r\n## Examples\r\n\r\n### Entries\r\n\r\nThe `web/dist/rsc/entries.mjs` builds correctly after refactor and app\r\nruns.\r\n\r\n```js file=\"web/dist/rsc/entries.mjs\"\r\n// client component mapping (dist/rsc -> dist/client)\r\nexport const clientEntries = {\r\n \"assets/rsc-AboutCounter.tsx-3.mjs\": \"assets/rsc-AboutCounter.tsx-3-CQh4fLws.mjs\",\r\n \"assets/rsc-UserExamplesCell.tsx-7.mjs\": \"assets/rsc-UserExamplesCell.tsx-7-BLKpK17-.mjs\",\r\n \"assets/rsc-Counter.tsx-1.mjs\": \"assets/rsc-Counter.tsx-1-BAFuKeO7.mjs\",\r\n \"assets/rsc-rsc-test.es.js-0.mjs\": \"assets/rsc-rsc-test.es.js-0-Bkk2qwSq.mjs\",\r\n \"assets/rsc-NewUserExample.tsx-4.mjs\": \"assets/rsc-NewUserExample.tsx-4-j-hB-OZ1.mjs\",\r\n \"assets/rsc-UserExample.tsx-8.mjs\": \"assets/rsc-UserExample.tsx-8-Dzll3QYc.mjs\",\r\n \"assets/rsc-UpdateRandomButton.tsx-2.mjs\": \"assets/rsc-UpdateRandomButton.tsx-2-BicEZIWn.mjs\",\r\n \"assets/rsc-EmptyUsersCell.tsx-5.mjs\": \"assets/rsc-EmptyUsersCell.tsx-5-BItXvbaj.mjs\",\r\n \"assets/rsc-NewEmptyUser.tsx-6.mjs\": \"assets/rsc-NewEmptyUser.tsx-6-DFmv_Yef.mjs\",\r\n \"assets/rsc-UserExamples.tsx-11.mjs\": \"assets/rsc-UserExamples.tsx-11-BrzStkU7.mjs\",\r\n \"assets/rsc-link.js-10.mjs\": \"assets/rsc-link.js-10-D1gHLB5z.mjs\",\r\n \"assets/rsc-CellErrorBoundary.js-13.mjs\": \"assets/rsc-CellErrorBoundary.js-13-C9r2jdob.mjs\",\r\n \"assets/rsc-index.js-12.mjs\": \"assets/rsc-index.js-12-BlDxo_As.mjs\",\r\n \"assets/rsc-navLink.js-9.mjs\": \"assets/rsc-navLink.js-9-BsKFwPvg.mjs\"\r\n};\r\n\r\n// server component mapping (src -> dist/rsc)\r\nexport const serverEntries = {\r\n \"HomePage\": \"assets/HomePage-BkyFywXn.mjs\",\r\n \"AboutPage\": \"assets/AboutPage-qKLtmepV.mjs\",\r\n \"MultiCellPage\": \"assets/MultiCellPage-Bb1xy2-X.mjs\",\r\n \"EmptyUserNewEmptyUserPage\": \"assets/EmptyUserNewEmptyUserPage-CRWGWYlQ.mjs\",\r\n \"EmptyUserEditEmptyUserPage\": \"assets/EmptyUserEditEmptyUserPage-DK14w5wt.mjs\",\r\n \"EmptyUserEmptyUserPage\": \"assets/EmptyUserEmptyUserPage-BDEfXSJo.mjs\",\r\n \"EmptyUserEmptyUsersPage\": \"assets/EmptyUserEmptyUsersPage-BZjgUE33.mjs\",\r\n \"UserExampleNewUserExamplePage\": \"assets/UserExampleNewUserExamplePage-CPG6dVwh.mjs\",\r\n \"UserExampleEditUserExamplePage\": \"assets/UserExampleEditUserExamplePage-BfvIJHxv.mjs\",\r\n \"UserExampleUserExamplePage\": \"assets/UserExampleUserExamplePage-Bwqi8NaS.mjs\",\r\n \"UserExampleUserExamplesPage\": \"assets/UserExampleUserExamplesPage-MQMjbAP0.mjs\",\r\n \"NotFoundPage\": \"assets/NotFoundPage-CstA1diQ.mjs\",\r\n \"__rwjs__ServerEntry\": \"entry.server.mjs\"\r\n};\r\n```\r\n\r\n\r\n### Route Manifest\r\n```tsx\r\n...\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n...\r\n\r\n```\r\n\r\nbuilds .. notice the about routes are private.\r\n\r\n```json\r\n{\r\n \"/\": {\r\n \"name\": \"home\",\r\n \"bundle\": null,\r\n \"matchRegexString\": \"^/$\",\r\n \"pathDefinition\": \"/\",\r\n \"hasParams\": false,\r\n \"routeHooks\": null,\r\n \"redirect\": null,\r\n \"relativeFilePath\": \"pages/HomePage/HomePage.tsx\",\r\n \"isPrivate\": false\r\n },\r\n \"/about\": {\r\n \"name\": \"about\",\r\n \"bundle\": null,\r\n \"matchRegexString\": \"^/about$\",\r\n \"pathDefinition\": \"/about\",\r\n \"hasParams\": false,\r\n \"routeHooks\": null,\r\n \"redirect\": null,\r\n \"relativeFilePath\": \"pages/AboutPage/AboutPage.tsx\",\r\n \"isPrivate\": true,\r\n \"unauthenticated\": \"home\"\r\n },\r\n \"/about-secret\": {\r\n \"name\": \"aboutSecret\",\r\n \"bundle\": null,\r\n \"matchRegexString\": \"^/about-secret$\",\r\n \"pathDefinition\": \"/about-secret\",\r\n \"hasParams\": false,\r\n \"routeHooks\": null,\r\n \"redirect\": null,\r\n \"relativeFilePath\": \"pages/AboutPage/AboutPage.tsx\",\r\n \"isPrivate\": true,\r\n \"unauthenticated\": \"home\",\r\n \"roles\": \"owner\"\r\n },\r\n \"/about-secret-admin\": {\r\n \"name\": \"aboutSecretAdmin\",\r\n \"bundle\": null,\r\n \"matchRegexString\": \"^/about-secret-admin$\",\r\n \"pathDefinition\": \"/about-secret-admin\",\r\n \"hasParams\": false,\r\n \"routeHooks\": null,\r\n \"redirect\": null,\r\n \"relativeFilePath\": \"pages/AboutPage/AboutPage.tsx\",\r\n \"isPrivate\": true,\r\n \"unauthenticated\": \"home\",\r\n \"roles\": [\r\n \"publisher\",\r\n \"admin\"\r\n ]\r\n },\r\n \"/multi-cell\": {\r\n \"name\": \"multiCell\",\r\n \"bundle\": null,\r\n \"matchRegexString\": \"^/multi-cell$\",\r\n \"pathDefinition\": \"/multi-cell\",\r\n \"hasParams\": false,\r\n \"routeHooks\": null,\r\n \"redirect\": null,\r\n \"relativeFilePath\": \"pages/MultiCellPage/MultiCellPage.tsx\",\r\n \"isPrivate\": false\r\n },\r\n```","shortMessageHtmlLink":"feat: Reworks RSC server entries and route manifest building to deriv…"}},{"before":"b9e509d14e580fc2ad0168e85515d2567f514d58","after":"999bc1e786b18e0c16f0ffa81d1c126da2b2ef89","ref":"refs/heads/main","pushedAt":"2024-05-21T14:44:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Tobbe","name":"Tobbe Lundberg","path":"/Tobbe","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/30793?s=80&v=4"},"commit":{"message":"chore(__fixtures__): Make test projects match newer CRWA template (#10655)","shortMessageHtmlLink":"chore(__fixtures__): Make test projects match newer CRWA template (#1…"}},{"before":"e64733e5934f9bf26d15f94566425dde94b402fa","after":"00fa8cfe2a2266aefcaba5c9ddc1eb4cd1964314","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-21T14:33:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Pass routes into rsc handler from fe servers","shortMessageHtmlLink":"Pass routes into rsc handler from fe servers"}},{"before":"718436226c6db8c2f0f95671ccc0397fcd9c2b9e","after":"a2ac9fc404856946dabaa3223d56c0a8b1304c77","ref":"refs/heads/dt-refactor-server-entries-from-routes","pushedAt":"2024-05-21T13:14:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dt-refactor-server-entries-from-routes","shortMessageHtmlLink":"Merge branch 'main' into dt-refactor-server-entries-from-routes"}},{"before":"f07b9324baa67286ba1435e0f56c2477c0e30ffc","after":"e64733e5934f9bf26d15f94566425dde94b402fa","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-21T13:10:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"cache the route manifest","shortMessageHtmlLink":"cache the route manifest"}},{"before":"207ef31f2f763b380753c3ccf95cd0e35653cf48","after":"f07b9324baa67286ba1435e0f56c2477c0e30ffc","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-21T12:54:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"rework fom feedback","shortMessageHtmlLink":"rework fom feedback"}},{"before":"d0acee01e7b34ea969cf702555779f93fff98ee7","after":"207ef31f2f763b380753c3ccf95cd0e35653cf48","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-21T12:36:51.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dt-build-rsc-routes-from-routes","shortMessageHtmlLink":"Merge branch 'main' into dt-build-rsc-routes-from-routes"}},{"before":"76151f1f0fca09eede5a73370410936a77ebe4af","after":"b9e509d14e580fc2ad0168e85515d2567f514d58","ref":"refs/heads/main","pushedAt":"2024-05-21T12:31:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"feat(auth-middleware): Return a Tuple with Route pattern configuration when creating dbAuth middleware (#10642)\n\n- This PR renames createDbAuthMiddleware -> initDbAuthMiddleware\r\n- Returns a tuple of `[dbAuthMw, '*']` from the init function to make it\r\nharder to accidentally misconfigure the auth middleware","shortMessageHtmlLink":"feat(auth-middleware): Return a Tuple with Route pattern configuratio…"}},{"before":"6418794ded8e3511560a15bfe4a9a55cc8a74f1f","after":"718436226c6db8c2f0f95671ccc0397fcd9c2b9e","ref":"refs/heads/dt-refactor-server-entries-from-routes","pushedAt":"2024-05-21T12:25:43.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dt-refactor-server-entries-from-routes","shortMessageHtmlLink":"Merge branch 'main' into dt-refactor-server-entries-from-routes"}},{"before":"458416453982b16b73a194097f475cb7319ca853","after":"6418794ded8e3511560a15bfe4a9a55cc8a74f1f","ref":"refs/heads/dt-refactor-server-entries-from-routes","pushedAt":"2024-05-21T12:24:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Rename RWPage's const to constName","shortMessageHtmlLink":"Rename RWPage's const to constName"}},{"before":"7a809d3154bd1b9478927d410d983d028ffcd3fb","after":"2ad85a865f29f775b937bc14de39d73ec3ab80e1","ref":"refs/heads/next","pushedAt":"2024-05-20T23:42:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"dedupe","shortMessageHtmlLink":"dedupe"}},{"before":"88d9c9c93dd8c5cf239222083fb9a5cde974b0ca","after":"7a809d3154bd1b9478927d410d983d028ffcd3fb","ref":"refs/heads/next","pushedAt":"2024-05-20T23:38:31.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"chore(deps): update dependency vscode-languageserver-protocol to v3.17.5 (#10351)\n\n[![Mend\nRenovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence |\n|---|---|---|---|---|---|\n|\n[vscode-languageserver-protocol](https://togithub.com/Microsoft/vscode-languageserver-node)\n([source](https://togithub.com/Microsoft/vscode-languageserver-node/tree/HEAD/protocol))\n| [`3.15.3` ->\n`3.17.5`](https://renovatebot.com/diffs/npm/vscode-languageserver-protocol/3.15.3/3.17.5)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vscode-languageserver-protocol/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vscode-languageserver-protocol/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vscode-languageserver-protocol/3.15.3/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vscode-languageserver-protocol/3.15.3/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n\n---\n\n
\nMicrosoft/vscode-languageserver-node\n(vscode-languageserver-protocol)\n\n[`v3.17.1`](https://togithub.com/Microsoft/vscode-languageserver-node/compare/95058620ac3c4af4ec7dd904e7e884068efa273a...3438ae1f70c6ec3272df797bb58fd92189c423c5)\n\n[Compare\nSource](https://togithub.com/Microsoft/vscode-languageserver-node/compare/95058620ac3c4af4ec7dd904e7e884068efa273a...3438ae1f70c6ec3272df797bb58fd92189c423c5)\n\n
\n\n---\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined),\nAutomerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update\nagain.\n\n---\n\n- [ ] If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR has been generated by [Mend\nRenovate](https://www.mend.io/free-developer-tools/renovate/). View\nrepository job log\n[here](https://developer.mend.io/github/redwoodjs/redwood).\n\n\n\n---------\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Josh GM Walker <56300765+Josh-Walker-GM@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update dependency vscode-languageserver-protocol to v3.1…"}},{"before":"01da3b38e034625d671eefd2dcd36f0a415f7948","after":null,"ref":"refs/heads/renovate/isbot-5.x","pushedAt":"2024-05-20T23:21:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"}},{"before":"4951bc6d24c5c379a95cc14c4a774f8cd4a5539f","after":"76151f1f0fca09eede5a73370410936a77ebe4af","ref":"refs/heads/main","pushedAt":"2024-05-20T23:21:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"fix(deps): update dependency isbot to v5 (#10340)\n\n[![Mend\r\nRenovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)\r\n\r\nThis PR contains the following updates:\r\n\r\n| Package | Change | Age | Adoption | Passing | Confidence |\r\n|---|---|---|---|---|---|\r\n| [isbot](https://isbot.js.org)\r\n([source](https://togithub.com/omrilotan/isbot)) | [`3.8.0` ->\r\n`5.1.6`](https://renovatebot.com/diffs/npm/isbot/3.8.0/5.1.6) |\r\n[![age](https://developer.mend.io/api/mc/badges/age/npm/isbot/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\r\n|\r\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/isbot/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\r\n|\r\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/isbot/3.8.0/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\r\n|\r\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/isbot/3.8.0/5.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)\r\n|\r\n\r\n---\r\n\r\n### Release Notes\r\n\r\n
\r\nomrilotan/isbot (isbot)\r\n\r\n###\r\n[`v5.1.6`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#516)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.5...v5.1.6)\r\n\r\n- \\[FIX] Browser files (jsdeliver): UMD is global and ESM is named\r\n\r\n###\r\n[`v5.1.5`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#515)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.4...v5.1.5)\r\n\r\n- Add substring \"watch\" to pattern\r\n\r\n###\r\n[`v5.1.4`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#514)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.3...v5.1.4)\r\n\r\n- Recognise search providers inapp browsers\r\n- Ignore Crosswalk project: An old project that is no longer maintained\r\nand has insignificant usage\r\n- PDRL Analyzer\r\n\r\n###\r\n[`v5.1.3`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#513)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.2...v5.1.3)\r\n\r\n- Recognise browsers: Ecosia ios in-app browser, Phantom in-app browser\r\n\r\n###\r\n[`v5.1.2`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#512)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.1...v5.1.2)\r\n\r\n- Add bots: Cypress, Detectify, InternetMeasurement, BuiltWith\r\n- Recognise browser: Zip Recruiter job search app, Ecosia android in-app\r\nbrowser\r\n\r\n###\r\n[`v5.1.1`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#511)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.1.0...v5.1.1)\r\n\r\n- Reduce pattern size by introducing the substring \".com\" and improve\r\ngeneric pattern\r\n\r\n###\r\n[`v5.1.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#510)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v5.0.0...v5.1.0)\r\n\r\n- Build now compatibile with older Javascript version: es2016\r\n\r\n###\r\n[`v5.0.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#500)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.4.0...v5.0.0)\r\n\r\n- Remove named export \"pattern\" from the interface, instead use\r\n\"getPattern\" method\r\n- Add a couple of bot patterns\r\n\r\n###\r\n[`v4.4.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#440)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.3.0...v4.4.0)\r\n\r\n- Add a naive fallback pattern for engines that do not support\r\nlookbehind in regular expressions\r\n- Add isbotNaive function to identify bots using a naive approach\r\n(simpler and faster)\r\n\r\n###\r\n[`v4.3.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#430)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.2.0...v4.3.0)\r\n\r\n- Accept `undefined` in place of user agent string to allow headers\r\nproperty to be used \"as is\" (`request.headers[\"user-agent\"]`)\r\n\r\n###\r\n[`v4.2.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#420)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.1.2...v4.2.0)\r\n\r\n- Accept `null` in place of user agent string to allow header value to\r\nbe used \"as is\" (`request.headers.get(\"user-agent\")`)\r\n\r\n###\r\n[`v4.1.2`](https://togithub.com/omrilotan/isbot/compare/v4.1.1...v4.1.2)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.1.1...v4.1.2)\r\n\r\n###\r\n[`v4.1.1`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#411)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.1.0...v4.1.1)\r\n\r\n- Recognise browsers with GMS Core ([Google's Play\r\nServices](https://togithub.com/microg/GmsCore/wiki)) as natural non-bot\r\nbrowsers\r\n- A slightly neater typescript decleration file\r\n- Adjust \"bot\" pattern to recognise bot as a standalone word or word\r\nsuffix (excluding \"Cubot\")\r\n- Recognise \"rest-client\" as a bot\r\n\r\n###\r\n[`v4.1.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#410)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v4.0.0...v4.1.0)\r\n\r\n- Add createIsbotFromList: Create a custom isbot function from a list of\r\nstring representation patterns\r\n- Recognise browsers with HMS Core (Huawei Mobile Services) as natural\r\nnon-bot browsers\r\n\r\n###\r\n[`v4.0.0`](https://togithub.com/omrilotan/isbot/blob/HEAD/CHANGELOG.md#400)\r\n\r\n[Compare\r\nSource](https://togithub.com/omrilotan/isbot/compare/v3.8.0...v4.0.0)\r\n\r\n##### Breaking changes\r\n\r\nThis change is meant to reduce the size of the package and improve\r\nperformance by building the regular expression in build time instead of\r\nruntime.\r\n\r\n- Change interface\r\n\r\n- Remove default import. Use named import instead: `import { isbot }\r\nfrom \"isbot\";`\r\n- Drop `isbot` attached functions from the interface.\r\n`isbot.` is no longer supported\r\n\r\n- Drop support for EOL node versions\r\n\r\n##### New features\r\n\r\n```ts\r\nimport { } from \"isbot\";\r\n```\r\n\r\n| import | Type | Description |\r\n| ------------- | --------------------------------------------------- |\r\n-------------------------------------------------------------------------\r\n|\r\n| pattern | *{RegExp}* | The regular expression used to identify bots |\r\n| list | *{string\\[]}* | List of all individual pattern parts |\r\n| isbotMatch | *{(userAgent: string): string | null}* | The substring\r\nmatched by the regular expression |\r\n| isbotMatches | *{(userAgent: string): string\\[]}* | All substrings\r\nmatched by the regular expression |\r\n| isbotPattern | *{(userAgent: string): string | null}* | The regular\r\nexpression used to identify bot substring in the user agent |\r\n| isbotPatterns | *{(userAgent: string): string\\[]}* | All regular\r\nexpressions used to identify bot substrings in the user agent |\r\n| createIsbot | *{(pattern: RegExp): (userAgent: string): boolean}* |\r\nCreate a custom isbot function |\r\n\r\n
\r\n\r\n---\r\n\r\n### Configuration\r\n\r\n📅 **Schedule**: Branch creation - At any time (no schedule defined),\r\nAutomerge - At any time (no schedule defined).\r\n\r\n🚦 **Automerge**: Disabled by config. Please merge this manually once you\r\nare satisfied.\r\n\r\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\r\nrebase/retry checkbox.\r\n\r\n🔕 **Ignore**: Close this PR and you won't be reminded about this update\r\nagain.\r\n\r\n---\r\n\r\n- [ ] If you want to rebase/retry this PR, check\r\nthis box\r\n\r\n---\r\n\r\nThis PR has been generated by [Mend\r\nRenovate](https://www.mend.io/free-developer-tools/renovate/). View\r\nrepository job log\r\n[here](https://developer.mend.io/github/redwoodjs/redwood).\r\n\r\n\r\n\r\n---------\r\n\r\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\r\nCo-authored-by: Josh GM Walker <56300765+Josh-Walker-GM@users.noreply.github.com>","shortMessageHtmlLink":"fix(deps): update dependency isbot to v5 (#10340)"}},{"before":"07b062c8d7f7c9ba40e4444fc99003d349a55bfb","after":null,"ref":"refs/heads/renovate/vscode-languageserver-protocol-3.x","pushedAt":"2024-05-20T23:20:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"ec08c19e5d4c0b6120b073df49398ffb26d17b42","after":"4951bc6d24c5c379a95cc14c4a774f8cd4a5539f","ref":"refs/heads/main","pushedAt":"2024-05-20T23:20:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency vscode-languageserver-protocol to v3.17.5 (#10351)\n\n[![Mend\nRenovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)\n\nThis PR contains the following updates:\n\n| Package | Change | Age | Adoption | Passing | Confidence |\n|---|---|---|---|---|---|\n|\n[vscode-languageserver-protocol](https://togithub.com/Microsoft/vscode-languageserver-node)\n([source](https://togithub.com/Microsoft/vscode-languageserver-node/tree/HEAD/protocol))\n| [`3.15.3` ->\n`3.17.5`](https://renovatebot.com/diffs/npm/vscode-languageserver-protocol/3.15.3/3.17.5)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/vscode-languageserver-protocol/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vscode-languageserver-protocol/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vscode-languageserver-protocol/3.15.3/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vscode-languageserver-protocol/3.15.3/3.17.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n\n---\n\n### Release Notes\n\n
\nMicrosoft/vscode-languageserver-node\n(vscode-languageserver-protocol)\n\n###\n[`v3.17.1`](https://togithub.com/Microsoft/vscode-languageserver-node/compare/95058620ac3c4af4ec7dd904e7e884068efa273a...3438ae1f70c6ec3272df797bb58fd92189c423c5)\n\n[Compare\nSource](https://togithub.com/Microsoft/vscode-languageserver-node/compare/95058620ac3c4af4ec7dd904e7e884068efa273a...3438ae1f70c6ec3272df797bb58fd92189c423c5)\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined),\nAutomerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about this update\nagain.\n\n---\n\n- [ ] If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR has been generated by [Mend\nRenovate](https://www.mend.io/free-developer-tools/renovate/). View\nrepository job log\n[here](https://developer.mend.io/github/redwoodjs/redwood).\n\n\n\n---------\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>\nCo-authored-by: Josh GM Walker <56300765+Josh-Walker-GM@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update dependency vscode-languageserver-protocol to v3.1…"}},{"before":"0dd5fb127a82d41350d48476990ebd0a69abceeb","after":"d0acee01e7b34ea969cf702555779f93fff98ee7","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-20T23:11:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"add some optimization ideas","shortMessageHtmlLink":"add some optimization ideas"}},{"before":"1863dec1ee129a5471404de38a66ae30a8df624e","after":"01da3b38e034625d671eefd2dcd36f0a415f7948","ref":"refs/heads/renovate/isbot-5.x","pushedAt":"2024-05-20T23:10:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"flip conditional - oops","shortMessageHtmlLink":"flip conditional - oops"}},{"before":"431118a708535f38201caa66e57e025f8a6a584e","after":"07b062c8d7f7c9ba40e4444fc99003d349a55bfb","ref":"refs/heads/renovate/vscode-languageserver-protocol-3.x","pushedAt":"2024-05-20T22:52:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"add type annotation","shortMessageHtmlLink":"add type annotation"}},{"before":"bc9fc1a7a4e38e20add11aef1adafa9f8e2e4870","after":"1863dec1ee129a5471404de38a66ae30a8df624e","ref":"refs/heads/renovate/isbot-5.x","pushedAt":"2024-05-20T22:37:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Josh-Walker-GM","name":"Josh GM Walker","path":"/Josh-Walker-GM","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56300765?s=80&v=4"},"commit":{"message":"update isbot usage for v5","shortMessageHtmlLink":"update isbot usage for v5"}},{"before":"f0e2898abf90f1b04aac04648ca58f72615caa3f","after":"a90ca690d70754e01f4964b78b9b7eb120999b95","ref":"refs/heads/jgmw/serverfile-api-config","pushedAt":"2024-05-20T20:44:45.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Merge branch 'main' into jgmw/serverfile-api-config","shortMessageHtmlLink":"Merge branch 'main' into jgmw/serverfile-api-config"}},{"before":"6d32d0766e23b9356fcf82b8afc0c505428089a6","after":null,"ref":"refs/heads/renovate/node-20.x","pushedAt":"2024-05-20T20:40:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"}},{"before":"3b5be5407821b9f895b9c55824a8cbb827497603","after":"ec08c19e5d4c0b6120b073df49398ffb26d17b42","ref":"refs/heads/main","pushedAt":"2024-05-20T20:40:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update node.js to >=14.17 <=20.13 (#10368)\n\n[![Mend\nRenovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)\n\nThis PR contains the following updates:\n\n| Package | Type | Update | Change | Age | Adoption | Passing |\nConfidence |\n|---|---|---|---|---|---|---|---|\n| [node](https://nodejs.org)\n([source](https://togithub.com/nodejs/node)) | engines | minor |\n[`>=14.17 <=20.12` -> `>=14.17\n<=20.13`](https://renovatebot.com/diffs/npm/node/v20.12.2/v20.13.1) |\n[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v20.12.2/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v20.12.2/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n| [node](https://nodejs.org)\n([source](https://togithub.com/nodejs/node)) | | minor | `20.11.1` ->\n`20.13.1` |\n[![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v20.11.1/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v20.11.1/v20.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n|\n[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)\n([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))\n| dependencies | minor | [`20.11.25` ->\n`20.12.12`](https://renovatebot.com/diffs/npm/@types%2fnode/20.11.25/20.12.12)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.11.25/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.11.25/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n|\n[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)\n([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))\n| devDependencies | minor | [`20.11.25` ->\n`20.12.12`](https://renovatebot.com/diffs/npm/@types%2fnode/20.11.25/20.12.12)\n|\n[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.11.25/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.11.25/20.12.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)\n|\n\n---\n\n### Release Notes\n\n
\nnodejs/node (node)\n\n###\n[`v20.13.1`](https://togithub.com/nodejs/node/releases/tag/v20.13.1):\n2024-05-09, Version 20.13.1 'Iron' (LTS),\n@​marco-ippolito\n\n[Compare\nSource](https://togithub.com/nodejs/node/compare/v20.13.0...v20.13.1)\n\n#### 2024-05-09, Version 20.13.1 'Iron' (LTS),\n[@​marco-ippolito](https://togithub.com/marco-ippolito)\n\n##### Revert \"tools: install npm PowerShell scripts on Windows\"\n\nDue to a regression in the npm installation on Windows, this commit\nreverts the change that installed npm PowerShell scripts on Windows.\n\n##### Commits\n\n- \\[[`b7d80802cc`](https://togithub.com/nodejs/node/commit/b7d80802cc)]\n- ***Revert*** \"**tools**: install npm PowerShell scripts on Windows\"\n(marco-ippolito)\n[#​52897](https://togithub.com/nodejs/node/pull/52897)\n\n###\n[`v20.13.0`](https://togithub.com/nodejs/node/compare/v20.12.2...v20.13.0)\n\n[Compare\nSource](https://togithub.com/nodejs/node/compare/v20.12.2...v20.13.0)\n\n
\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined),\nAutomerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Enabled.\n\n♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the\nrebase/retry checkbox.\n\n🔕 **Ignore**: Close this PR and you won't be reminded about these\nupdates again.\n\n---\n\n- [ ] If you want to rebase/retry this PR, check\nthis box\n\n---\n\nThis PR has been generated by [Mend\nRenovate](https://www.mend.io/free-developer-tools/renovate/). View\nrepository job log\n[here](https://developer.mend.io/github/redwoodjs/redwood).\n\n\n\nCo-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>","shortMessageHtmlLink":"chore(deps): update node.js to >=14.17 <=20.13 (#10368)"}},{"before":"4f1859cd4d3fe93006b88a5dbaa14d99ff1d0417","after":"0dd5fb127a82d41350d48476990ebd0a69abceeb","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-20T20:38:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"update changeset","shortMessageHtmlLink":"update changeset"}},{"before":"859fb33823e7187d0791e30302605456d00b04bf","after":"4f1859cd4d3fe93006b88a5dbaa14d99ff1d0417","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-20T20:37:34.000Z","pushType":"push","commitsCount":12,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Merge branch 'main' into dt-build-rsc-routes-from-routes","shortMessageHtmlLink":"Merge branch 'main' into dt-build-rsc-routes-from-routes"}},{"before":"f802823edf53df25da61a99810ba4f7154432d2d","after":"859fb33823e7187d0791e30302605456d00b04bf","ref":"refs/heads/dt-build-rsc-routes-from-routes","pushedAt":"2024-05-20T20:29:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"dthyresson","name":"David Thyresson","path":"/dthyresson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1051633?s=80&v=4"},"commit":{"message":"Refactor to check route when rendering rsc","shortMessageHtmlLink":"Refactor to check route when rendering rsc"}},{"before":"d94306408ccfd96df529653f31bc4d3cabd82801","after":"bc9fc1a7a4e38e20add11aef1adafa9f8e2e4870","ref":"refs/heads/renovate/isbot-5.x","pushedAt":"2024-05-20T19:05:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"fix(deps): update dependency isbot to v5","shortMessageHtmlLink":"fix(deps): update dependency isbot to v5"}},{"before":"4c321bb3c714ae72193f6690518d262559262db7","after":"431118a708535f38201caa66e57e025f8a6a584e","ref":"refs/heads/renovate/vscode-languageserver-protocol-3.x","pushedAt":"2024-05-20T19:02:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update dependency vscode-languageserver-protocol to v3.17.5","shortMessageHtmlLink":"chore(deps): update dependency vscode-languageserver-protocol to v3.17.5"}},{"before":"8201553ec7f1b4e903c452fc1c8a828c7dba3652","after":"6d32d0766e23b9356fcf82b8afc0c505428089a6","ref":"refs/heads/renovate/node-20.x","pushedAt":"2024-05-20T18:58:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"renovate[bot]","name":null,"path":"/apps/renovate","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/2740?s=80&v=4"},"commit":{"message":"chore(deps): update node.js to >=14.17 <=20.13","shortMessageHtmlLink":"chore(deps): update node.js to >=14.17 <=20.13"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUAQxZQA","startCursor":null,"endCursor":null}},"title":"Activity · redwoodjs/redwood"}