[{"data":1,"prerenderedAt":972},["ShallowReactive",2],{"navigation":3,"/extensions":302,"/extensions-surround":967},[4,24,60,108,144,176,282,286,290,294,298],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","1.getting-started",[9,12,16,20],{"title":10,"path":6,"stem":11},"Introduction","1.getting-started/index",{"title":13,"path":14,"stem":15},"Installation","/getting-started/installation","1.getting-started/1.installation",{"title":17,"path":18,"stem":19},"Quickstart","/getting-started/quickstart","1.getting-started/2.quickstart",{"title":21,"path":22,"stem":23},"Build Your First API","/getting-started/first-api","1.getting-started/3.first-api",{"title":25,"path":26,"stem":27,"children":28},"Essentials","/essentials","2.essentials",[29,32,36,40,44,48,52,56],{"title":30,"path":26,"stem":31},"Core concepts","2.essentials/index",{"title":33,"path":34,"stem":35},"Routing","/essentials/routing","2.essentials/1.routing",{"title":37,"path":38,"stem":39},"Authentication","/essentials/authentication","2.essentials/2.authentication",{"title":41,"path":42,"stem":43},"Requests & Responses","/essentials/requests-responses","2.essentials/3.requests-responses",{"title":45,"path":46,"stem":47},"Controllers","/essentials/controllers","2.essentials/4.controllers",{"title":49,"path":50,"stem":51},"Database","/essentials/database","2.essentials/5.database",{"title":53,"path":54,"stem":55},"Validation","/essentials/validation","2.essentials/6.validation",{"title":57,"path":58,"stem":59},"Migrations","/essentials/migrations","2.essentials/7.migrations",{"title":61,"path":62,"stem":63,"children":64},"Features","/features","3.features",[65,68,72,76,80,84,88,92,96,100,104],{"title":66,"path":62,"stem":67},"Built‑in Capabilities","3.features/index",{"title":69,"path":70,"stem":71},"Caching","/features/caching","3.features/caching",{"title":73,"path":74,"stem":75},"CORS & CSRF","/features/cors-csrf","3.features/cors-csrf",{"title":77,"path":78,"stem":79},"Distributed Locks","/features/distributed-locks","3.features/distributed-locks",{"title":81,"path":82,"stem":83},"Events & Listeners","/features/events","3.features/events",{"title":85,"path":86,"stem":87},"Field Selection","/features/field-selection","3.features/field-selection",{"title":89,"path":90,"stem":91},"File Uploads","/features/file-uploads","3.features/file-uploads",{"title":93,"path":94,"stem":95},"Notifications","/features/notifications","3.features/notifications",{"title":97,"path":98,"stem":99},"Queues & Jobs","/features/queues-jobs","3.features/queues-jobs",{"title":101,"path":102,"stem":103},"Rate Limiting","/features/rate-limiting","3.features/rate-limiting",{"title":105,"path":106,"stem":107},"Task Scheduling","/features/scheduling","3.features/scheduling",{"title":109,"path":110,"stem":111,"children":112},"Advanced","/advanced","4.advanced",[113,116,120,124,128,132,136,140],{"title":114,"path":110,"stem":115},"Techniques and Patterns","4.advanced/index",{"title":117,"path":118,"stem":119},"Configuration","/advanced/configuration","4.advanced/configuration",{"title":121,"path":122,"stem":123},"Dependency Injection","/advanced/dependency-injection","4.advanced/dependency-injection",{"title":125,"path":126,"stem":127},"Middleware","/advanced/middleware","4.advanced/middleware",{"title":129,"path":130,"stem":131},"Performance","/advanced/performance","4.advanced/performance",{"title":133,"path":134,"stem":135},"Repositories","/advanced/repositories","4.advanced/repositories",{"title":137,"path":138,"stem":139},"Service Providers","/advanced/service-providers","4.advanced/service-providers",{"title":141,"path":142,"stem":143},"Testing","/advanced/testing","4.advanced/testing",{"title":145,"path":146,"stem":147,"children":148},"Deployment","/deployment","5.deployment",[149,152,156,160,164,168,172],{"title":150,"path":146,"stem":151},"Options for Deployment","5.deployment/index",{"title":153,"path":154,"stem":155},"Docker Deployment","/deployment/docker","5.deployment/docker",{"title":157,"path":158,"stem":159},"Logging","/deployment/logging","5.deployment/logging",{"title":161,"path":162,"stem":163},"Monitoring","/deployment/monitoring","5.deployment/monitoring",{"title":165,"path":166,"stem":167},"Production Setup","/deployment/production","5.deployment/production",{"title":169,"path":170,"stem":171},"Security Hardening","/deployment/security-hardening","5.deployment/security-hardening",{"title":173,"path":174,"stem":175},"Zero Downtime Deployment","/deployment/zero-downtime","5.deployment/zero-downtime",{"title":177,"path":178,"stem":179,"children":180},"Cookbook","/cookbook","6.cookbook",[181,184,188,191,194,198,202,206,210,214,218,222,226,230,233,237,241,245,249,253,256,260,264,268,272,275,279],{"title":182,"path":178,"stem":183},"Recipes & How‑Tos","6.cookbook/index",{"title":185,"path":186,"stem":187},"Setup and Installation","/cookbook/setup","6.cookbook/0.setup",{"title":33,"path":189,"stem":190},"/cookbook/routing","6.cookbook/1.routing",{"title":69,"path":192,"stem":193},"/cookbook/caching","6.cookbook/10.caching",{"title":195,"path":196,"stem":197},"Queues and Jobs","/cookbook/queues-and-jobs","6.cookbook/11.queues-and-jobs",{"title":199,"path":200,"stem":201},"Events","/cookbook/events","6.cookbook/12.events",{"title":203,"path":204,"stem":205},"Notification","/cookbook/notifications","6.cookbook/13.notifications",{"title":207,"path":208,"stem":209},"File Uploads (Local and S3)","/cookbook/file-uploads","6.cookbook/14.file-uploads",{"title":211,"path":212,"stem":213},"Storage","/cookbook/storage","6.cookbook/15.storage",{"title":215,"path":216,"stem":217},"Image Processing Examples","/cookbook/image-processing","6.cookbook/16.image-processing",{"title":219,"path":220,"stem":221},"Lock Integration - Usage Guide","/cookbook/distributed-locks","6.cookbook/17.distributed-locks",{"title":223,"path":224,"stem":225},"Permissions and Authorization","/cookbook/permissions-and-authorization","6.cookbook/18.permissions-and-authorization",{"title":227,"path":228,"stem":229},"Session Analytics","/cookbook/sessions-analytics","6.cookbook/19.sessions-analytics",{"title":125,"path":231,"stem":232},"/cookbook/middleware","6.cookbook/2.middleware",{"title":234,"path":235,"stem":236},"API Metrics","/cookbook/api-metrics","6.cookbook/20.api-metrics",{"title":238,"path":239,"stem":240},"Performance Optimization Guide","/cookbook/performance","6.cookbook/21.performance",{"title":242,"path":243,"stem":244},"Console Commands","/cookbook/console-commands","6.cookbook/22.console-commands",{"title":246,"path":247,"stem":248},"Deployment Guide","/cookbook/deployment","6.cookbook/23.deployment",{"title":250,"path":251,"stem":252},"Glueful Extensions","/cookbook/extensions","6.cookbook/24.extensions",{"title":141,"path":254,"stem":255},"/cookbook/testing","6.cookbook/25.testing",{"title":257,"path":258,"stem":259},"Dependency Injection and Services","/cookbook/di-and-services","6.cookbook/3.di-and-services",{"title":261,"path":262,"stem":263},"Error Handling Guide","/cookbook/error-handling","6.cookbook/4.error-handling",{"title":265,"path":266,"stem":267},"Security Guide","/cookbook/security","6.cookbook/5.security",{"title":269,"path":270,"stem":271},"Configuration Options","/cookbook/configuration","6.cookbook/6.configuration",{"title":157,"path":273,"stem":274},"/cookbook/logging","6.cookbook/7.logging",{"title":276,"path":277,"stem":278},"Database Advanced Features","/cookbook/database","6.cookbook/8.database",{"title":53,"path":280,"stem":281},"/cookbook/validation","6.cookbook/9.validation",{"title":283,"path":284,"stem":285},"API Reference","/api-reference","7.api-reference",{"title":287,"path":288,"stem":289},"CLI Reference","/cli-reference","8.cli-reference",{"title":291,"path":292,"stem":293},"Contributing","/contributing","9.contributing",{"title":295,"path":296,"stem":297},"Extensions","/extensions","extensions",{"title":299,"path":300,"stem":301},"Release Notes","/releases","releases",{"id":303,"title":295,"body":304,"description":960,"extension":961,"links":962,"meta":963,"navigation":964,"path":296,"seo":965,"stem":297,"__hash__":966},"docs/extensions.md",{"type":305,"value":306,"toc":958},"minimark",[307,404,798,829,954],[308,309,310,332,352],"u-page-section",{},[311,312,314],"template",{"v-slot:title":313},"",[315,316,325,326,331],"span",{"className":317},[318,319,320,321,322,323,324],"text-3xl","sm:text-4xl","lg:text-5xl","text-pretty","tracking-tight","font-bold","text-highlighted","\n  Extend ",[315,327,330],{"className":328},[329],"text-raspberry-600","Glueful"," without bloating the core\n",[311,333,334],{"v-slot:description":313},[335,336,342,343,347,348,351],"div",{"className":337},[338,339,340,341],"text-lg","text-gray-600","dark:text-gray-300","max-w-3xl","\n  Glueful keeps the framework lean and lets you add product-specific capabilities through extensions. Official packages are published as Composer packages of type ",[344,345,346],"code",{},"glueful-extension"," and can also be developed locally from the ",[344,349,350],{},"extensions/"," directory in your app.\n",[311,353,354,371,386],{"v-slot:features":313},[355,356,357,366],"u-page-feature",{},[311,358,359],{"v-slot:title":313},[360,361,362],"p",{},[315,363,365],{"className":364},[323,329],"Composer-Native",[311,367,368],{"v-slot:description":313},[335,369,370],{},"Install extensions with Composer, rebuild the extension cache, and keep your application modular as requirements grow.",[355,372,373,381],{},[311,374,375],{"v-slot:title":313},[360,376,377],{},[315,378,380],{"className":379},[323,329],"Auto-Discoverable",[311,382,383],{"v-slot:description":313},[335,384,385],{},"Glueful can discover extension packages and load their providers, routes, migrations, commands, and configuration through the extension system.",[355,387,388,396],{},[311,389,390],{"v-slot:title":313},[360,391,392],{},[315,393,395],{"className":394},[323,329],"Local Development Friendly",[311,397,398],{"v-slot:description":313},[335,399,400,401,403],{},"Develop and test local extensions from the repository or app-level ",[344,402,350],{}," directory before publishing packages.",[308,405,412,418],{"className":406},[407,408,409,410,411],"bg-gradient-to-b","from-gray-50/50","to-white","dark:from-gray-900/50","dark:to-gray-950",[311,413,414],{"v-slot:title":313},[315,415,417],{"className":416},[318,319,320,321,322,323,324],"\n  Official packages\n",[311,419,420,424],{"v-slot:description":313},[335,421,423],{"className":422},[338,339,340,341],"\n  These packages are part of the current Glueful ecosystem and cover common product needs that many API teams want to add without building them from scratch.\n",[335,425,432,433,530,531,530,575,530,619,530,664,530,708,530,753],{"className":426},[427,428,429,430,431],"mt-10","grid","gap-6","md:grid-cols-2","xl:grid-cols-3","\n  ",[335,434,451,452,451,472,451,482,451,489,451,517,432],{"className":435},[436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],"rounded-2xl","border","border-raspberry-100/80","bg-white/90","p-6","shadow-sm","ring-1","ring-black/5","transition-all","duration-300","hover:-translate-y-1","hover:shadow-xl","dark:border-white/10","dark:bg-white/5","dark:ring-white/10","\n    ",[335,453,464,465,451],{"className":454},[455,456,457,458,459,460,461,462,329,463],"mb-4","inline-flex","h-12","w-12","items-center","justify-center","rounded-xl","bg-raspberry-50","dark:bg-raspberry-500/10","\n      ",[315,466],{"className":467},[468,469,470,471],"i-lucide-box","h-6","w-6","block",[473,474,481],"h3",{"className":475,"id":480},[476,477,478,479],"text-xl","font-semibold","text-gray-900","dark:text-white","aegis","Aegis",[360,483,488],{"className":484},[485,486,487,339,340],"mt-3","text-sm","leading-6","Role-based access control for Glueful with roles, permissions, and authorization workflows without building your own RBAC layer.",[335,490,464,497,464,506,464,513,451],{"className":491},[492,493,494,495,496],"mt-4","flex","flex-wrap","gap-2","text-xs",[315,498,505],{"className":499},[500,462,501,502,503,463,504],"rounded-full","px-3","py-1","text-raspberry-700","dark:text-raspberry-300","RBAC",[315,507,512],{"className":508},[500,509,501,502,510,511,340],"bg-gray-100","text-gray-700","dark:bg-white/10","Permissions",[315,514,516],{"className":515},[500,509,501,502,510,511,340],"Access Control",[518,519,529],"a",{"className":520,"href":525,"target":526,"rel":527},[521,456,459,495,486,522,523,524],"mt-5","font-medium","text-azure-radiance-600","hover:text-azure-radiance-700","https://packagist.org/packages/glueful/aegis","_blank",[528],"noopener","glueful/aegis","  ",[335,532,451,535,451,543,451,548,451,552,451,569,432],{"className":533},[436,437,534,439,440,441,442,443,444,445,446,447,448,449,450],"border-azure-radiance-100/80",[335,536,464,540,451],{"className":537},[455,456,457,458,459,460,461,538,523,539],"bg-azure-radiance-50","dark:bg-azure-radiance-500/10",[315,541],{"className":542},[468,469,470,471],[473,544,547],{"className":545,"id":546},[476,477,478,479],"entrada","Entrada",[360,549,551],{"className":550},[485,486,487,339,340],"Social login and SSO integration for OAuth and OpenID Connect flows when your API needs identity federation and external providers.",[335,553,464,555,464,561,464,565,451],{"className":554},[492,493,494,495,496],[315,556,560],{"className":557},[500,538,501,502,558,539,559],"text-azure-radiance-700","dark:text-azure-radiance-300","OAuth",[315,562,564],{"className":563},[500,509,501,502,510,511,340],"OIDC",[315,566,568],{"className":567},[500,509,501,502,510,511,340],"SSO",[518,570,574],{"className":571,"href":572,"target":526,"rel":573},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/entrada",[528],"glueful/entrada",[335,576,451,579,451,588,451,593,451,597,451,613,432],{"className":577},[436,437,578,439,440,441,442,443,444,445,446,447,448,449,450],"border-amber-100/80",[335,580,464,585,451],{"className":581},[455,456,457,458,459,460,461,582,583,584],"bg-amber-50","text-amber-600","dark:bg-amber-500/10",[315,586],{"className":587},[468,469,470,471],[473,589,592],{"className":590,"id":591},[476,477,478,479],"email-notification","Email Notification",[360,594,596],{"className":595},[485,486,487,339,340],"Email delivery capabilities built on Symfony Mailer for transactional notifications, account flows, and outbound messaging.",[335,598,464,600,464,606,464,610,451],{"className":599},[492,493,494,495,496],[315,601,605],{"className":602},[500,582,501,502,603,584,604],"text-amber-700","dark:text-amber-300","Email",[315,607,609],{"className":608},[500,509,501,502,510,511,340],"Mailer",[315,611,93],{"className":612},[500,509,501,502,510,511,340],[518,614,618],{"className":615,"href":616,"target":526,"rel":617},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/email-notification",[528],"glueful/email-notification",[335,620,451,623,451,632,451,637,451,641,451,658,432],{"className":621},[436,437,622,439,440,441,442,443,444,445,446,447,448,449,450],"border-violet-100/80",[335,624,464,629,451],{"className":625},[455,456,457,458,459,460,461,626,627,628],"bg-violet-50","text-violet-600","dark:bg-violet-500/10",[315,630],{"className":631},[468,469,470,471],[473,633,636],{"className":634,"id":635},[476,477,478,479],"notiva","Notiva",[360,638,640],{"className":639},[485,486,487,339,340],"Push notifications for FCM, APNs, and Web Push when your platform needs multi-device delivery beyond email.",[335,642,464,644,464,650,464,654,451],{"className":643},[492,493,494,495,496],[315,645,649],{"className":646},[500,626,501,502,647,628,648],"text-violet-700","dark:text-violet-300","FCM",[315,651,653],{"className":652},[500,509,501,502,510,511,340],"APNs",[315,655,657],{"className":656},[500,509,501,502,510,511,340],"Web Push",[518,659,663],{"className":660,"href":661,"target":526,"rel":662},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/notiva",[528],"glueful/notiva",[335,665,451,668,451,677,451,682,451,686,451,702,432],{"className":666},[436,437,667,439,440,441,442,443,444,445,446,447,448,449,450],"border-emerald-100/80",[335,669,464,674,451],{"className":670},[455,456,457,458,459,460,461,671,672,673],"bg-emerald-50","text-emerald-600","dark:bg-emerald-500/10",[315,675],{"className":676},[468,469,470,471],[473,678,681],{"className":679,"id":680},[476,477,478,479],"meilisearch","Meilisearch",[360,683,685],{"className":684},[485,486,487,339,340],"Full-text search integration for applications that need fast external indexing, search endpoints, and richer query experiences.",[335,687,464,689,464,695,464,699,451],{"className":688},[492,493,494,495,496],[315,690,694],{"className":691},[500,671,501,502,692,673,693],"text-emerald-700","dark:text-emerald-300","Search",[315,696,698],{"className":697},[500,509,501,502,510,511,340],"Indexing",[315,700,681],{"className":701},[500,509,501,502,510,511,340],[518,703,707],{"className":704,"href":705,"target":526,"rel":706},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/meilisearch",[528],"glueful/meilisearch",[335,709,451,712,451,721,451,726,451,730,451,747,432],{"className":710},[436,437,711,439,440,441,442,443,444,445,446,447,448,449,450],"border-teal-100/80",[335,713,464,718,451],{"className":714},[455,456,457,458,459,460,461,715,716,717],"bg-teal-50","text-teal-600","dark:bg-teal-500/10",[315,719],{"className":720},[468,469,470,471],[473,722,725],{"className":723,"id":724},[476,477,478,479],"payvia","Payvia",[360,727,729],{"className":728},[485,486,487,339,340],"Unified payment gateway bridge for Stripe, Paystack, Flutterwave, and other payment flows so billing logic is easier to standardize.",[335,731,464,733,464,739,464,743,451],{"className":732},[492,493,494,495,496],[315,734,738],{"className":735},[500,715,501,502,736,717,737],"text-teal-700","dark:text-teal-300","Payments",[315,740,742],{"className":741},[500,509,501,502,510,511,340],"Gateways",[315,744,746],{"className":745},[500,509,501,502,510,511,340],"Billing",[518,748,752],{"className":749,"href":750,"target":526,"rel":751},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/payvia",[528],"glueful/payvia",[335,754,451,757,451,766,451,771,451,775,451,792,432],{"className":755},[436,437,756,439,440,441,442,443,444,445,446,447,448,449,450],"border-sky-100/80",[335,758,464,763,451],{"className":759},[455,456,457,458,459,460,461,760,761,762],"bg-sky-50","text-sky-600","dark:bg-sky-500/10",[315,764],{"className":765},[468,469,470,471],[473,767,770],{"className":768,"id":769},[476,477,478,479],"runiva","Runiva",[360,772,774],{"className":773},[485,486,487,339,340],"Server runtime integration for RoadRunner, Swoole, and FrankenPHP for teams running long-lived PHP application processes.",[335,776,464,778,464,784,464,788,451],{"className":777},[492,493,494,495,496],[315,779,783],{"className":780},[500,760,501,502,781,762,782],"text-sky-700","dark:text-sky-300","RoadRunner",[315,785,787],{"className":786},[500,509,501,502,510,511,340],"Swoole",[315,789,791],{"className":790},[500,509,501,502,510,511,340],"FrankenPHP",[518,793,797],{"className":794,"href":795,"target":526,"rel":796},[521,456,459,495,486,522,523,524],"https://packagist.org/packages/glueful/runiva",[528],"glueful/runiva",[308,799,800,806,812],{},[311,801,802],{"v-slot:title":313},[315,803,805],{"className":804},[318,319,320,321,322,323,324],"\n  Local and custom extensions\n",[311,807,808],{"v-slot:description":313},[335,809,811],{"className":810},[338,339,340,341],"\n  The local repository also includes extension packages used for active Glueful development and integration work.\n",[311,813,814],{"v-slot:features":313},[355,815,816,824],{},[311,817,818],{"v-slot:title":313},[360,819,820],{},[315,821,823],{"className":822},[323,329],"Build Your Own",[311,825,826],{"v-slot:description":313},[335,827,828],{},"Glueful’s extension system supports local packages with providers, routes, config, migrations, and commands. See the extension cookbook page for creation and packaging details.",[308,830,831,836,881,884,933,937],{},[832,833,835],"h2",{"id":834},"install-an-extension","Install an extension",[837,838,842],"pre",{"className":839,"code":840,"language":841,"meta":313,"style":313},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","composer require glueful/aegis\nphp glueful extensions:cache\nphp glueful extensions:list\n","bash",[344,843,844,859,871],{"__ignoreMap":313},[315,845,848,852,856],{"class":846,"line":847},"line",1,[315,849,851],{"class":850},"sR7ES","composer",[315,853,855],{"class":854},"sLACW"," require",[315,857,858],{"class":854}," glueful/aegis\n",[315,860,862,865,868],{"class":846,"line":861},2,[315,863,864],{"class":850},"php",[315,866,867],{"class":854}," glueful",[315,869,870],{"class":854}," extensions:cache\n",[315,872,874,876,878],{"class":846,"line":873},3,[315,875,864],{"class":850},[315,877,867],{"class":854},[315,879,880],{"class":854}," extensions:list\n",[360,882,883],{},"For local development or explicit enable/disable flows, you can also use:",[837,885,887],{"className":839,"code":886,"language":841,"meta":313,"style":313},"php glueful extensions:enable Aegis\nphp glueful extensions:disable Aegis\nphp glueful extensions:info Aegis\nphp glueful extensions:summary\n",[344,888,889,901,912,923],{"__ignoreMap":313},[315,890,891,893,895,898],{"class":846,"line":847},[315,892,864],{"class":850},[315,894,867],{"class":854},[315,896,897],{"class":854}," extensions:enable",[315,899,900],{"class":854}," Aegis\n",[315,902,903,905,907,910],{"class":846,"line":861},[315,904,864],{"class":850},[315,906,867],{"class":854},[315,908,909],{"class":854}," extensions:disable",[315,911,900],{"class":854},[315,913,914,916,918,921],{"class":846,"line":873},[315,915,864],{"class":850},[315,917,867],{"class":854},[315,919,920],{"class":854}," extensions:info",[315,922,900],{"class":854},[315,924,926,928,930],{"class":846,"line":925},4,[315,927,864],{"class":850},[315,929,867],{"class":854},[315,931,932],{"class":854}," extensions:summary\n",[832,934,936],{"id":935},"related-docs","Related docs",[938,939,940,946,950],"ul",{},[941,942,943],"li",{},[518,944,945],{"href":251},"Cookbook: Extensions",[941,947,948],{},[518,949,5],{"href":6},[941,951,952],{},[518,953,287],{"href":288},[955,956,957],"style",{},"html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":313,"searchDepth":847,"depth":861,"links":959},[],"Official Glueful extensions for RBAC, SSO, email, push, search, payments, and runtime integrations.","md",null,{},true,{"title":295,"description":960},"xD8HKyk_z27Bkslb8pYygICJEOdAkk0W1pyVHLNGVMw",[968,970],{"title":291,"path":292,"stem":293,"description":969,"children":-1},"Contribute to Glueful framework",{"title":299,"path":300,"stem":301,"description":971,"children":-1},"Curated highlights, migration guidance, and structured summaries of Glueful framework releases.",1776981555853]