[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"github-stars":3,"marketplace-site-banners":110,"@significa\u002Fdirectus-extension-raw-body":115},{"id":4,"node_id":5,"name":6,"full_name":7,"private":8,"owner":9,"html_url":27,"description":28,"fork":8,"url":29,"forks_url":30,"keys_url":31,"collaborators_url":32,"teams_url":33,"hooks_url":34,"issue_events_url":35,"events_url":36,"assignees_url":37,"branches_url":38,"tags_url":39,"blobs_url":40,"git_tags_url":41,"git_refs_url":42,"trees_url":43,"statuses_url":44,"languages_url":45,"stargazers_url":46,"contributors_url":47,"subscribers_url":48,"subscription_url":49,"commits_url":50,"git_commits_url":51,"comments_url":52,"issue_comment_url":53,"contents_url":54,"compare_url":55,"merges_url":56,"archive_url":57,"downloads_url":58,"issues_url":59,"pulls_url":60,"milestones_url":61,"notifications_url":62,"labels_url":63,"releases_url":64,"deployments_url":65,"created_at":66,"updated_at":67,"pushed_at":68,"git_url":69,"ssh_url":70,"clone_url":71,"svn_url":27,"homepage":72,"size":73,"stargazers_count":74,"watchers_count":74,"language":75,"has_issues":76,"has_projects":76,"has_downloads":76,"has_wiki":8,"has_pages":8,"has_discussions":76,"forks_count":77,"mirror_url":78,"archived":8,"disabled":8,"open_issues_count":79,"license":80,"allow_forking":76,"is_template":8,"web_commit_signoff_required":8,"has_pull_requests":76,"pull_request_creation_policy":85,"topics":86,"visibility":26,"forks":77,"open_issues":79,"watchers":74,"default_branch":106,"temp_clone_token":78,"custom_properties":107,"organization":108,"network_count":77,"subscribers_count":109},7122594,"MDEwOlJlcG9zaXRvcnk3MTIyNTk0","directus","directus\u002Fdirectus",false,{"login":6,"id":10,"node_id":11,"avatar_url":12,"gravatar_id":13,"url":14,"html_url":15,"followers_url":16,"following_url":17,"gists_url":18,"starred_url":19,"subscriptions_url":20,"organizations_url":21,"repos_url":22,"events_url":23,"received_events_url":24,"type":25,"user_view_type":26,"site_admin":8},15967950,"MDEyOk9yZ2FuaXphdGlvbjE1OTY3OTUw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F15967950?v=4","","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus","https:\u002F\u002Fgithub.com\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fdirectus\u002Freceived_events","Organization","public","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus","The flexible backend for all your projects 🐰 Turn your DB into a headless CMS, admin panels, or apps with a custom UI, instant APIs, auth & more.","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fdirectus\u002Fdirectus\u002Fdeployments","2012-12-12T01:35:36Z","2026-07-12T17:19:36Z","2026-07-11T00:07:00Z","git:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","git@github.com:directus\u002Fdirectus.git","https:\u002F\u002Fgithub.com\u002Fdirectus\u002Fdirectus.git","https:\u002F\u002Fdirectus.com",445838,36463,"TypeScript",true,4837,null,405,{"key":81,"name":82,"spdx_id":83,"url":78,"node_id":84},"other","Other","NOASSERTION","MDc6TGljZW5zZTA=","all",[87,88,89,90,91,92,6,93,94,95,96,97,98,99,100,101,102,103,104,105],"api","app","cms","composable","data-visualization","database","graphql","headless-cms","javascript","mariadb","mssql","mysql","no-code","node","postgresql","sql","sqlite","typescript","vue","main",{},{"login":6,"id":10,"node_id":11,"avatar_url":12,"gravatar_id":13,"url":14,"html_url":15,"followers_url":16,"following_url":17,"gists_url":18,"starred_url":19,"subscriptions_url":20,"organizations_url":21,"repos_url":22,"events_url":23,"received_events_url":24,"type":25,"user_view_type":26,"site_admin":8},327,[111],{"id":112,"icon":78,"content":113,"link":114,"include_paths":78,"exclude_paths":78},"5cf2f5f6-aecf-4395-8c23-69de326fdf02","Directus V12 is here","https:\u002F\u002Fdirectus.com\u002Fresources\u002Fv12-built-for-the-whole-team",{"name":116,"description":117,"verified":8,"id":118,"readme":119,"type":120,"last_updated":121,"host_version":122,"downloads":123,"total_downloads":124,"sandbox":8,"license":78,"publisher":125,"versions":128,"formatted_name":171,"formatted_readme":172,"formatted_description":117,"images":173,"repository_url":132,"recent_downloads_7_days":124,"recent_downloads_30_days":124},"@significa\u002Fdirectus-extension-raw-body","Simple Directus extension that sets the serialized request body in the express request object.","4fb10da5-c262-40ae-9db0-41d46f75b556","# Directus raw body extension\n\nSimple Directus extension that sets the serialized request body in the express request object.\n\n\n## Installation \u002F Configuration guide\n\nIn your Directus project directory run:\n\n```sh\nnpm install @significa\u002Fdirectus-extension-raw-body\n```\n\nCreate an environment variable `RAW_BODY_ENDPOINT_PATTERN` with a Regex Expression matching the\nendpoints\u002Froutes where `rawBody` will be added to the request object.\n\nExamples:\n\n```env\n# Matches all endpoints for a specific extension\nRAW_BODY_ENDPOINT_PATTERN='^\\\u002Fsample-extension\\\u002F.*$'\n\n# Matches all endpoints (avoid: you should only set rawBody for custom endpoints)\nRAW_BODY_ENDPOINT_PATTERN='^.*$'\n\n# Matches two routes \u002Fhello-world and \u002Fsample\u002Fpath\nRAW_BODY_ENDPOINT_PATTERN='^(\\\u002Fhello-world|\\\u002Fsample\\\u002Fpath)$'\n\n# Matches routes with variable input in path. Ex:\n#  - \u002Fsample\u002Fcats\u002Ffifi\n#  - \u002Fsample\u002Fcats\u002Fbob1\n#  - \u002Fsample\u002Faaaa\u002Finfo\n#  - \u002Fsample\u002Fbbbb\u002Finfo\nRAW_BODY_ENDPOINT_PATTERN='^(\\\u002Fsample\\\u002Fcats\\\u002F\\D+|\\\u002Fsample\\\u002F[a-z]+\\\u002Finfo)$'\n```\n\nRestart Directus for the changes to take effect.\n\n\n## Usage\n\nCreate a directus endpoint extension:\n\n - JS\n    ```js\n    export default (router, _) => {\n      router.post(\n        '\u002Fsample',\n        async (req, res, _next) => {\n        console.log('Raw body:', req.rawBody)\n\n         return res.json({\n           status: 'OK',\n           rawBody: req.rawBody,\n         })\n      }\n    )\n    ```\n\n - TS\n    ```ts\n    import { NextFunction, Request, Response, Router, } from 'express'\n    import { ApiExtensionContext } from '@directus\u002Fshared\u002Ftypes'\n    import { RequestWithRawBody } from \"@significa\u002Fdirectus-extension-raw-body\";\n  \n    export default (router, extensionContext: ApiExtensionContext) => {\n      router.post(\n        '\u002Fsample',\n        async (req: RequestWithRawBody, res: Response, _next: NextFunction) => {\n          console.log('Raw body:', req.rawBody)\n\n          return res.json({\n            status: 'OK',\n            rawBody: req.rawBody,\n          })\n        }\n      )\n    })\n    ```\n\n\n","hook","2023-01-17T19:14:44.674Z","^9.22.4",[],0,{"username":126,"verified":8,"id":127,"github_username":78,"github_name":78,"github_blog":78,"github_bio":78,"github_location":78,"github_company":78,"github_avatar_url":78},"francisco-significa","d126af3b-4565-4581-8ab0-659edbe2b583",[129,141,153,162],{"version":130,"package":118,"publisher":127,"type":120,"host_version":122,"publish_date":121,"verified":8,"id":131,"url_repository":132,"url_homepage":133,"url_bugs":134,"file_count":135,"unpacked_size":136,"sandbox":8,"sandbox_requested_scopes":78,"license":78,"bundled":137,"maintainers":138},"0.0.3","523ff3ce-124a-4ca7-b8ec-166b8a4cdb41","https:\u002F\u002Fgithub.com\u002Fsignifica\u002Fdirectus-extension-raw-body.git","https:\u002F\u002Fgithub.com\u002Fsignifica\u002Fdirectus-extension-raw-body","https:\u002F\u002Fgithub.com\u002Fsignifica\u002Fdirectus-extension-raw-body\u002Fissues",5,597936,[],[139,140],10064,10065,{"version":142,"package":118,"publisher":127,"type":120,"host_version":143,"publish_date":144,"verified":8,"id":145,"url_repository":132,"url_homepage":146,"url_bugs":134,"file_count":147,"unpacked_size":148,"sandbox":8,"sandbox_requested_scopes":78,"license":78,"bundled":149,"maintainers":150},"0.0.1-ci-test-3","^9.21.2","2022-12-20T17:53:44.227Z","6b103f46-f750-4fcc-94b1-6f36d8a19ef8","https:\u002F\u002Fgithub.com\u002Fsignifica\u002Fdirectus-extension-raw-body#readme",8,8576,[],[151,152],10058,10059,{"version":154,"package":118,"publisher":127,"type":120,"host_version":143,"publish_date":155,"verified":8,"id":156,"url_repository":132,"url_homepage":146,"url_bugs":134,"file_count":147,"unpacked_size":157,"sandbox":8,"sandbox_requested_scopes":78,"license":78,"bundled":158,"maintainers":159},"0.0.1","2022-12-20T18:01:25.346Z","d07ca14d-08e2-46d0-9cad-263b50068525",8566,[],[160,161],10060,10061,{"version":163,"package":118,"publisher":127,"type":120,"host_version":122,"publish_date":164,"verified":8,"id":165,"url_repository":132,"url_homepage":133,"url_bugs":134,"file_count":135,"unpacked_size":166,"sandbox":8,"sandbox_requested_scopes":78,"license":78,"bundled":167,"maintainers":168},"0.0.2","2023-01-17T17:04:34.289Z","f89e6e60-25a6-4597-aa9b-505e0201669b",597915,[],[169,170],10062,10063,"Raw Body","\u003Ch1>Directus raw body extension\u003C\u002Fh1>\n\u003Cp>Simple Directus extension that sets the serialized request body in the express request object.\u003C\u002Fp>\n\u003Ch2>Installation \u002F Configuration guide\u003C\u002Fh2>\n\u003Cp>In your Directus project directory run:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-sh\">npm install @significa\u002Fdirectus-extension-raw-body\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Create an environment variable \u003Ccode>RAW_BODY_ENDPOINT_PATTERN\u003C\u002Fcode> with a Regex Expression matching the\nendpoints\u002Froutes where \u003Ccode>rawBody\u003C\u002Fcode> will be added to the request object.\u003C\u002Fp>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-env\"># Matches all endpoints for a specific extension\nRAW_BODY_ENDPOINT_PATTERN='^\\\u002Fsample-extension\\\u002F.*$'\n\n# Matches all endpoints (avoid: you should only set rawBody for custom endpoints)\nRAW_BODY_ENDPOINT_PATTERN='^.*$'\n\n# Matches two routes \u002Fhello-world and \u002Fsample\u002Fpath\nRAW_BODY_ENDPOINT_PATTERN='^(\\\u002Fhello-world|\\\u002Fsample\\\u002Fpath)$'\n\n# Matches routes with variable input in path. Ex:\n#  - \u002Fsample\u002Fcats\u002Ffifi\n#  - \u002Fsample\u002Fcats\u002Fbob1\n#  - \u002Fsample\u002Faaaa\u002Finfo\n#  - \u002Fsample\u002Fbbbb\u002Finfo\nRAW_BODY_ENDPOINT_PATTERN='^(\\\u002Fsample\\\u002Fcats\\\u002F\\D+|\\\u002Fsample\\\u002F[a-z]+\\\u002Finfo)$'\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Restart Directus for the changes to take effect.\u003C\u002Fp>\n\u003Ch2>Usage\u003C\u002Fh2>\n\u003Cp>Create a directus endpoint extension:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>JS\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-js\">export default (router, _) =&gt; {\n  router.post(\n    '\u002Fsample',\n    async (req, res, _next) =&gt; {\n    console.log('Raw body:', req.rawBody)\n\n     return res.json({\n       status: 'OK',\n       rawBody: req.rawBody,\n     })\n  }\n)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>TS\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-ts\">import { NextFunction, Request, Response, Router, } from 'express'\nimport { ApiExtensionContext } from '@directus\u002Fshared\u002Ftypes'\nimport { RequestWithRawBody } from \"@significa\u002Fdirectus-extension-raw-body\";\n\nexport default (router, extensionContext: ApiExtensionContext) =&gt; {\n  router.post(\n    '\u002Fsample',\n    async (req: RequestWithRawBody, res: Response, _next: NextFunction) =&gt; {\n      console.log('Raw body:', req.rawBody)\n\n      return res.json({\n        status: 'OK',\n        rawBody: req.rawBody,\n      })\n    }\n  )\n})\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003C\u002Fli>\n\u003C\u002Ful>\n",[]]