[{"data":1,"prerenderedAt":2999},["ShallowReactive",2],{"navigation_docs":3,"-sdks-meta-nextjs":99,"-sdks-meta-nextjs-surround":1807,"sdks\u002Fnextjs\u002Finstall":1812,"sdks\u002Fnextjs\u002Fconfigure":1895,"sdks\u002Fnextjs\u002Fconfigure-provider":2018,"sdks\u002Fnextjs\u002Fsimple-usage":2228,"sdks\u002Fnextjs\u002Fuser-context":2523},[4,30],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F1.quickstart","i-lucide-fast-forward",{"title":16,"path":17,"stem":18,"icon":19},"Core Concepts","\u002Fgetting-started\u002Fcore-concepts","1.getting-started\u002F2.core-concepts","i-lucide-workflow",{"title":21,"path":22,"stem":23,"icon":24},"Configs Anatomy","\u002Fgetting-started\u002Fconfigs","1.getting-started\u002F3.configs","i-lucide-file-cog",{"title":26,"path":27,"stem":28,"icon":29},"Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F4.architecture","i-lucide-layers",{"title":31,"defaultOpen":32,"path":33,"stem":34,"children":35,"page":6},"SDKs",true,"\u002Fsdks","2.sdks",[36,41,62,72,88],{"title":37,"path":38,"stem":39,"icon":40},"Available SDKs","\u002Fsdks\u002Favailable-sdks","2.sdks\u002F1.available-sdks","i-lucide-list",{"title":42,"icon":43,"defaultOpen":32,"path":44,"stem":45,"children":46,"page":6},"Browser SDKs","i-lucide-monitor","\u002Fsdks\u002Fbrowser","2.sdks\u002F2.browser",[47,52,57],{"title":48,"path":49,"stem":50,"icon":51},"Javascript","\u002Fsdks\u002Fbrowser\u002Fjavascript","2.sdks\u002F2.browser\u002F1.javascript","cd-logos-javascript",{"title":53,"path":54,"stem":55,"icon":56},"React","\u002Fsdks\u002Fbrowser\u002Freact","2.sdks\u002F2.browser\u002F2.react","cd-logos-react-light",{"title":58,"path":59,"stem":60,"icon":61},"Vue","\u002Fsdks\u002Fbrowser\u002Fvue","2.sdks\u002F2.browser\u002F3.vue","cd-logos-vue",{"title":63,"icon":64,"defaultOpen":32,"path":65,"stem":66,"children":67,"page":6},"Mobile SDKs","i-lucide-smartphone","\u002Fsdks\u002Fmobile","2.sdks\u002F3.mobile",[68],{"title":69,"path":70,"stem":71,"icon":56},"React Native","\u002Fsdks\u002Fmobile\u002Freact-native","2.sdks\u002F3.mobile\u002F1.react-native",{"title":73,"icon":74,"defaultOpen":32,"path":75,"stem":76,"children":77,"page":6},"Meta-framework SDKs","i-lucide-monitor-smartphone","\u002Fsdks\u002Fmeta","2.sdks\u002F4.meta",[78,83],{"title":79,"path":80,"stem":81,"icon":82},"Next.js","\u002Fsdks\u002Fmeta\u002Fnextjs","2.sdks\u002F4.meta\u002F1.nextjs","cd-logos-nextjs",{"title":84,"path":85,"stem":86,"icon":87},"Nuxt","\u002Fsdks\u002Fmeta\u002Fnuxt","2.sdks\u002F4.meta\u002F2.nuxt","cd-logos-nuxt",{"title":89,"icon":90,"defaultOpen":32,"path":91,"stem":92,"children":93,"page":6},"Server SDKs","i-lucide-server","\u002Fsdks\u002Fserver","2.sdks\u002F5.server",[94],{"title":95,"path":96,"stem":97,"icon":98},"Node.js","\u002Fsdks\u002Fserver\u002Fnode-js","2.sdks\u002F5.server\u002F1.node-js","cd-logos-nodejs",{"id":100,"title":79,"body":101,"description":107,"extension":1801,"links":1802,"meta":1803,"navigation":1804,"path":80,"seo":1805,"stem":81,"__hash__":1806},"docs\u002F2.sdks\u002F4.meta\u002F1.nextjs.md",{"type":102,"value":103,"toc":1788},"minimark",[104,108,113,117,125,128,131,135,144,148,152,157,164,167,175,246,250,260,263,266,624,628,639,646,799,810,1036,1043,1053,1056,1172,1175,1492,1499,1509,1719,1723,1734,1738,1753,1756,1760,1767,1774,1778,1781,1784],[105,106,107],"sdk-badge",{"icon":82},"Next.js SDK",[109,110,112],"h2",{"id":111},"introduction","Introduction",[114,115,116],"p",{},"The Next.js SDK combines a client and a server SDK to provide configs to the browser, to server routes, and to SSR. It is intended to be used by Next.js web applications running on modern web browsers. All modern web browsers on popular platforms should be supported.",[114,118,119,120,124],{},"The minimum supported version of Next.js is ",[121,122,123],"code",{},"14.0",".",[114,126,127],{},"Browser SDKs are tested on the latest versions of Chrome, Firefox, Safari, and Edge.",[114,129,130],{},"Telemetry collection within the browser uses Web Workers to aggregate and send telemetry data. If the SDK runs on older browsers without Web Workers support, config evaluation will continue to work but no telemetry data will be collected for that session.",[109,132,134],{"id":133},"installation","Installation",[114,136,137,138],{},"The SDK can be installed from NPM: ",[139,140,141],"a",{"href":141,"rel":142},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@configdirector\u002Fnextjs-sdk",[143],"nofollow",[145,146],"content-partial",{"name":147},"sdks\u002Fnextjs\u002Finstall",[109,149,151],{"id":150},"configure-the-sdk","Configure the SDK",[153,154,156],"h3",{"id":155},"set-up-the-server-instance-to-initialize-at-startup","Set up the server instance to initialize at startup",[114,158,159,160,163],{},"The Next.js SDK maintains a singleton server SDK instance used in server routes and server side rendering (SSR). In order to register this instance at startup, you can make use of the Next.js ",[121,161,162],{},"instrumentation.ts"," file:",[145,165],{"name":166},"sdks\u002Fnextjs\u002Fconfigure",[114,168,169,170,174],{},"If you are using a version of Next.js older than ",[171,172,173],"em",{},"15",", instrumentation is an experimental feature that must be enabled explicitly:",[176,177,183],"pre",{"className":178,"code":179,"filename":180,"language":181,"meta":182,"style":182},"language-js shiki shiki-themes material-theme-lighter github-light github-dark","module.exports = {\n  experimental: {\n    instrumentationHook: true,\n  },\n};\n","next.config.js","js","",[121,184,185,207,219,234,240],{"__ignoreMap":182},[186,187,190,194,197,200,204],"span",{"class":188,"line":189},"line",1,[186,191,193],{"class":192},"s39Yj","module",[186,195,124],{"class":196},"sP7_E",[186,198,199],{"class":192},"exports",[186,201,203],{"class":202},"smGrS"," =",[186,205,206],{"class":196}," {\n",[186,208,210,214,217],{"class":188,"line":209},2,[186,211,213],{"class":212},"skxfh","  experimental",[186,215,216],{"class":196},":",[186,218,206],{"class":196},[186,220,222,225,227,231],{"class":188,"line":221},3,[186,223,224],{"class":212},"    instrumentationHook",[186,226,216],{"class":196},[186,228,230],{"class":229},"syTEX"," true",[186,232,233],{"class":196},",\n",[186,235,237],{"class":188,"line":236},4,[186,238,239],{"class":196},"  },\n",[186,241,243],{"class":188,"line":242},5,[186,244,245],{"class":196},"};\n",[153,247,249],{"id":248},"configure-the-client-provider","Configure the client provider",[114,251,252,253,256,257,259],{},"The ConfigDirector hooks are only available within a ",[121,254,255],{},"ConfigDirectorProvider",". The simplest approach is to wrap your application in a ",[121,258,255],{}," in your layout:",[145,261],{"name":262},"sdks\u002Fnextjs\u002Fconfigure-provider",[114,264,265],{},"Additionally, you can configure the provider with a user context. In this example, we retrieve the userId from a cookie:",[176,267,272],{"className":268,"code":269,"filename":270,"language":271,"meta":182,"style":182},"language-tsx shiki shiki-themes material-theme-lighter github-light github-dark","import { ConfigDirectorProvider } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\nimport type { ReactNode } from \"react\";\nimport { cookies } from \"next\u002Fheaders\";\n\nexport default async function RootLayout({ children }: { children: ReactNode }) {\n  const userId = (await cookies()).get(\"userId\")?.value;\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>\n        \u003CConfigDirectorProvider\n          sdkKey={process.env[\"NEXT_PUBLIC_CONFIGDIRECTOR_CLIENT_SDK_KEY\"]}\n          context={{ userId }}>\n          \u003Cmain>{children}\u003C\u002Fmain>\n        \u003C\u002FConfigDirectorProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  );\n}\n","app\u002Flayout.tsx","tsx",[121,273,274,307,332,354,359,404,453,462,489,500,510,542,559,581,591,601,611,619],{"__ignoreMap":182},[186,275,276,280,283,287,290,293,297,301,304],{"class":188,"line":189},[186,277,279],{"class":278},"sVHd0","import",[186,281,282],{"class":196}," {",[186,284,286],{"class":285},"su5hD"," ConfigDirectorProvider",[186,288,289],{"class":196}," }",[186,291,292],{"class":278}," from",[186,294,296],{"class":295},"sjJ54"," \"",[186,298,300],{"class":299},"s_sjI","@configdirector\u002Fnextjs-sdk\u002Fserver",[186,302,303],{"class":295},"\"",[186,305,306],{"class":196},";\n",[186,308,309,311,314,316,319,321,323,325,328,330],{"class":188,"line":209},[186,310,279],{"class":278},[186,312,313],{"class":278}," type",[186,315,282],{"class":196},[186,317,318],{"class":285}," ReactNode",[186,320,289],{"class":196},[186,322,292],{"class":278},[186,324,296],{"class":295},[186,326,327],{"class":299},"react",[186,329,303],{"class":295},[186,331,306],{"class":196},[186,333,334,336,338,341,343,345,347,350,352],{"class":188,"line":221},[186,335,279],{"class":278},[186,337,282],{"class":196},[186,339,340],{"class":285}," cookies",[186,342,289],{"class":196},[186,344,292],{"class":278},[186,346,296],{"class":295},[186,348,349],{"class":299},"next\u002Fheaders",[186,351,303],{"class":295},[186,353,306],{"class":196},[186,355,356],{"class":188,"line":236},[186,357,358],{"emptyLinePlaceholder":32},"\n",[186,360,361,364,367,371,374,378,381,385,387,389,391,394,396,399,402],{"class":188,"line":242},[186,362,363],{"class":278},"export",[186,365,366],{"class":278}," default",[186,368,370],{"class":369},"sbsja"," async",[186,372,373],{"class":369}," function",[186,375,377],{"class":376},"sGLFI"," RootLayout",[186,379,380],{"class":196},"({",[186,382,384],{"class":383},"s99_P"," children",[186,386,289],{"class":196},[186,388,216],{"class":202},[186,390,282],{"class":196},[186,392,384],{"class":393},"sucvu",[186,395,216],{"class":202},[186,397,318],{"class":398},"sbgvK",[186,400,401],{"class":196}," })",[186,403,206],{"class":196},[186,405,407,410,414,416,419,422,424,427,429,432,435,437,440,442,445,448,451],{"class":188,"line":406},6,[186,408,409],{"class":369},"  const",[186,411,413],{"class":412},"s_hVV"," userId",[186,415,203],{"class":202},[186,417,418],{"class":212}," (",[186,420,421],{"class":278},"await",[186,423,340],{"class":376},[186,425,426],{"class":212},"())",[186,428,124],{"class":196},[186,430,431],{"class":376},"get",[186,433,434],{"class":212},"(",[186,436,303],{"class":295},[186,438,439],{"class":299},"userId",[186,441,303],{"class":295},[186,443,444],{"class":212},")",[186,446,447],{"class":196},"?.",[186,449,450],{"class":285},"value",[186,452,306],{"class":196},[186,454,456,459],{"class":188,"line":455},7,[186,457,458],{"class":278},"  return",[186,460,461],{"class":212}," (\n",[186,463,465,468,472,476,479,481,484,486],{"class":188,"line":464},8,[186,466,467],{"class":196},"    \u003C",[186,469,471],{"class":470},"sQzsp","html",[186,473,475],{"class":474},"s9AJx"," lang",[186,477,478],{"class":202},"=",[186,480,303],{"class":295},[186,482,483],{"class":299},"en",[186,485,303],{"class":295},[186,487,488],{"class":196},">\n",[186,490,492,495,498],{"class":188,"line":491},9,[186,493,494],{"class":196},"      \u003C",[186,496,497],{"class":470},"body",[186,499,488],{"class":196},[186,501,503,506],{"class":188,"line":502},10,[186,504,505],{"class":196},"        \u003C",[186,507,509],{"class":508},"sZMiF","ConfigDirectorProvider\n",[186,511,513,516,518,521,524,526,529,531,534,536,539],{"class":188,"line":512},11,[186,514,515],{"class":474},"          sdkKey",[186,517,478],{"class":202},[186,519,520],{"class":196},"{",[186,522,523],{"class":285},"process",[186,525,124],{"class":196},[186,527,528],{"class":285},"env[",[186,530,303],{"class":295},[186,532,533],{"class":299},"NEXT_PUBLIC_CONFIGDIRECTOR_CLIENT_SDK_KEY",[186,535,303],{"class":295},[186,537,538],{"class":285},"]",[186,540,541],{"class":196},"}\n",[186,543,545,548,550,553,556],{"class":188,"line":544},12,[186,546,547],{"class":474},"          context",[186,549,478],{"class":202},[186,551,552],{"class":196},"{{",[186,554,555],{"class":285}," userId ",[186,557,558],{"class":196},"}}>\n",[186,560,562,565,568,571,574,577,579],{"class":188,"line":561},13,[186,563,564],{"class":196},"          \u003C",[186,566,567],{"class":470},"main",[186,569,570],{"class":196},">{",[186,572,573],{"class":285},"children",[186,575,576],{"class":196},"}\u003C\u002F",[186,578,567],{"class":470},[186,580,488],{"class":196},[186,582,584,587,589],{"class":188,"line":583},14,[186,585,586],{"class":196},"        \u003C\u002F",[186,588,255],{"class":508},[186,590,488],{"class":196},[186,592,594,597,599],{"class":188,"line":593},15,[186,595,596],{"class":196},"      \u003C\u002F",[186,598,497],{"class":470},[186,600,488],{"class":196},[186,602,604,607,609],{"class":188,"line":603},16,[186,605,606],{"class":196},"    \u003C\u002F",[186,608,471],{"class":470},[186,610,488],{"class":196},[186,612,614,617],{"class":188,"line":613},17,[186,615,616],{"class":212},"  )",[186,618,306],{"class":196},[186,620,622],{"class":188,"line":621},18,[186,623,541],{"class":196},[153,625,627],{"id":626},"additional-configuration-options","Additional configuration options",[629,630,632,635,636],"h4",{"id":631},"appname-and-appversion",[121,633,634],{},"appName"," and ",[121,637,638],{},"appVersion",[114,640,641,642,645],{},"These ",[121,643,644],{},"metadata"," options allow you to provide your application's name and version. These values can be used in targeting rules conditionals. For example, if a certain feature should only be enabled starting with a certain version of your application.",[176,647,651],{"className":648,"code":649,"filename":162,"language":650,"meta":182,"style":182},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","export async function register() {\n  const { register } = await import(\"@configdirector\u002Fnextjs-sdk\u002Fserver\");\n  await register({\n    serverSdkKey: process.env[\"CONFIGDIRECTOR_SERVER_SDK_KEY\"],\n    metadata: {\n      appName: \"YOUR-APP-NAME\",\n      appVersion: \"1.0.2\",\n    },\n  });\n}\n","ts",[121,652,653,669,699,711,740,749,765,781,786,795],{"__ignoreMap":182},[186,654,655,657,659,661,664,667],{"class":188,"line":189},[186,656,363],{"class":278},[186,658,370],{"class":369},[186,660,373],{"class":369},[186,662,663],{"class":376}," register",[186,665,666],{"class":196},"()",[186,668,206],{"class":196},[186,670,671,673,675,677,679,681,684,687,689,691,693,695,697],{"class":188,"line":209},[186,672,409],{"class":369},[186,674,282],{"class":196},[186,676,663],{"class":412},[186,678,289],{"class":196},[186,680,203],{"class":202},[186,682,683],{"class":278}," await",[186,685,686],{"class":202}," import",[186,688,434],{"class":212},[186,690,303],{"class":295},[186,692,300],{"class":299},[186,694,303],{"class":295},[186,696,444],{"class":212},[186,698,306],{"class":196},[186,700,701,704,706,708],{"class":188,"line":221},[186,702,703],{"class":278},"  await",[186,705,663],{"class":376},[186,707,434],{"class":212},[186,709,710],{"class":196},"{\n",[186,712,713,716,718,721,723,726,729,731,734,736,738],{"class":188,"line":236},[186,714,715],{"class":212},"    serverSdkKey",[186,717,216],{"class":196},[186,719,720],{"class":285}," process",[186,722,124],{"class":196},[186,724,725],{"class":285},"env",[186,727,728],{"class":212},"[",[186,730,303],{"class":295},[186,732,733],{"class":299},"CONFIGDIRECTOR_SERVER_SDK_KEY",[186,735,303],{"class":295},[186,737,538],{"class":212},[186,739,233],{"class":196},[186,741,742,745,747],{"class":188,"line":242},[186,743,744],{"class":212},"    metadata",[186,746,216],{"class":196},[186,748,206],{"class":196},[186,750,751,754,756,758,761,763],{"class":188,"line":406},[186,752,753],{"class":212},"      appName",[186,755,216],{"class":196},[186,757,296],{"class":295},[186,759,760],{"class":299},"YOUR-APP-NAME",[186,762,303],{"class":295},[186,764,233],{"class":196},[186,766,767,770,772,774,777,779],{"class":188,"line":455},[186,768,769],{"class":212},"      appVersion",[186,771,216],{"class":196},[186,773,296],{"class":295},[186,775,776],{"class":299},"1.0.2",[186,778,303],{"class":295},[186,780,233],{"class":196},[186,782,783],{"class":188,"line":464},[186,784,785],{"class":196},"    },\n",[186,787,788,791,793],{"class":188,"line":491},[186,789,790],{"class":196},"  }",[186,792,444],{"class":212},[186,794,306],{"class":196},[186,796,797],{"class":188,"line":502},[186,798,541],{"class":196},[114,800,801,802,635,804,806,807,809],{},"The ",[121,803,634],{},[121,805,638],{}," are automatically propagated to the client SDK instance via the ",[121,808,255],{}," RSC. However, if needed they can be overridden to a different value when configuring the provider as well:",[176,811,813],{"className":268,"code":812,"filename":270,"language":271,"meta":182,"style":182},"import { ConfigDirectorProvider } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\nimport type { ReactNode } from \"react\";\n\nexport default async function RootLayout({ children }: { children: ReactNode }) {\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>\n        \u003CConfigDirectorProvider\n          sdkKey={process.env[\"NEXT_PUBLIC_CONFIGDIRECTOR_CLIENT_SDK_KEY\"]}\n          appName=\"A-DIFFERENT-APP-NAME\"\n          appVersion=\"1.0.3\">\n          \u003Cmain>{children}\u003C\u002Fmain>\n        \u003C\u002FConfigDirectorProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  );\n}\n",[121,814,815,835,857,861,893,899,917,925,931,955,970,986,1002,1010,1018,1026,1032],{"__ignoreMap":182},[186,816,817,819,821,823,825,827,829,831,833],{"class":188,"line":189},[186,818,279],{"class":278},[186,820,282],{"class":196},[186,822,286],{"class":285},[186,824,289],{"class":196},[186,826,292],{"class":278},[186,828,296],{"class":295},[186,830,300],{"class":299},[186,832,303],{"class":295},[186,834,306],{"class":196},[186,836,837,839,841,843,845,847,849,851,853,855],{"class":188,"line":209},[186,838,279],{"class":278},[186,840,313],{"class":278},[186,842,282],{"class":196},[186,844,318],{"class":285},[186,846,289],{"class":196},[186,848,292],{"class":278},[186,850,296],{"class":295},[186,852,327],{"class":299},[186,854,303],{"class":295},[186,856,306],{"class":196},[186,858,859],{"class":188,"line":221},[186,860,358],{"emptyLinePlaceholder":32},[186,862,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891],{"class":188,"line":236},[186,864,363],{"class":278},[186,866,366],{"class":278},[186,868,370],{"class":369},[186,870,373],{"class":369},[186,872,377],{"class":376},[186,874,380],{"class":196},[186,876,384],{"class":383},[186,878,289],{"class":196},[186,880,216],{"class":202},[186,882,282],{"class":196},[186,884,384],{"class":393},[186,886,216],{"class":202},[186,888,318],{"class":398},[186,890,401],{"class":196},[186,892,206],{"class":196},[186,894,895,897],{"class":188,"line":242},[186,896,458],{"class":278},[186,898,461],{"class":212},[186,900,901,903,905,907,909,911,913,915],{"class":188,"line":406},[186,902,467],{"class":196},[186,904,471],{"class":470},[186,906,475],{"class":474},[186,908,478],{"class":202},[186,910,303],{"class":295},[186,912,483],{"class":299},[186,914,303],{"class":295},[186,916,488],{"class":196},[186,918,919,921,923],{"class":188,"line":455},[186,920,494],{"class":196},[186,922,497],{"class":470},[186,924,488],{"class":196},[186,926,927,929],{"class":188,"line":464},[186,928,505],{"class":196},[186,930,509],{"class":508},[186,932,933,935,937,939,941,943,945,947,949,951,953],{"class":188,"line":491},[186,934,515],{"class":474},[186,936,478],{"class":202},[186,938,520],{"class":196},[186,940,523],{"class":285},[186,942,124],{"class":196},[186,944,528],{"class":285},[186,946,303],{"class":295},[186,948,533],{"class":299},[186,950,303],{"class":295},[186,952,538],{"class":285},[186,954,541],{"class":196},[186,956,957,960,962,964,967],{"class":188,"line":502},[186,958,959],{"class":474},"          appName",[186,961,478],{"class":202},[186,963,303],{"class":295},[186,965,966],{"class":299},"A-DIFFERENT-APP-NAME",[186,968,969],{"class":295},"\"\n",[186,971,972,975,977,979,982,984],{"class":188,"line":512},[186,973,974],{"class":474},"          appVersion",[186,976,478],{"class":202},[186,978,303],{"class":295},[186,980,981],{"class":299},"1.0.3",[186,983,303],{"class":295},[186,985,488],{"class":196},[186,987,988,990,992,994,996,998,1000],{"class":188,"line":544},[186,989,564],{"class":196},[186,991,567],{"class":470},[186,993,570],{"class":196},[186,995,573],{"class":285},[186,997,576],{"class":196},[186,999,567],{"class":470},[186,1001,488],{"class":196},[186,1003,1004,1006,1008],{"class":188,"line":561},[186,1005,586],{"class":196},[186,1007,255],{"class":508},[186,1009,488],{"class":196},[186,1011,1012,1014,1016],{"class":188,"line":583},[186,1013,596],{"class":196},[186,1015,497],{"class":470},[186,1017,488],{"class":196},[186,1019,1020,1022,1024],{"class":188,"line":593},[186,1021,606],{"class":196},[186,1023,471],{"class":470},[186,1025,488],{"class":196},[186,1027,1028,1030],{"class":188,"line":603},[186,1029,616],{"class":212},[186,1031,306],{"class":196},[186,1033,1034],{"class":188,"line":613},[186,1035,541],{"class":196},[629,1037,1039,1042],{"id":1038},"logger-server-only",[121,1040,1041],{},"logger"," (server only)",[114,1044,1045,1046,1048,1049,1052],{},"By default, the SDK on the server side logs to the console and it is set to log warnings and errors only. You can configure a ",[121,1047,1041],{}," by either creating a ConfigDirector console logger with a different log level, or by implementing the ",[121,1050,1051],{},"ConfigDirectorLogger"," interface to provide your own logger. The interface can be used to create an adapter to another logging library.",[114,1054,1055],{},"Configure the ConfigDirector console logger to a different level:",[176,1057,1059],{"className":648,"code":1058,"filename":162,"language":650,"meta":182,"style":182},"export async function register() {\n  const { register } = await import(\"@configdirector\u002Fnextjs-sdk\u002Fserver\");\n  await register({\n    serverSdkKey: process.env[\"CONFIGDIRECTOR_SERVER_SDK_KEY\"],\n    logger: createConsoleLogger(\"info\"),\n  });\n}\n",[121,1060,1061,1075,1103,1113,1137,1160,1168],{"__ignoreMap":182},[186,1062,1063,1065,1067,1069,1071,1073],{"class":188,"line":189},[186,1064,363],{"class":278},[186,1066,370],{"class":369},[186,1068,373],{"class":369},[186,1070,663],{"class":376},[186,1072,666],{"class":196},[186,1074,206],{"class":196},[186,1076,1077,1079,1081,1083,1085,1087,1089,1091,1093,1095,1097,1099,1101],{"class":188,"line":209},[186,1078,409],{"class":369},[186,1080,282],{"class":196},[186,1082,663],{"class":412},[186,1084,289],{"class":196},[186,1086,203],{"class":202},[186,1088,683],{"class":278},[186,1090,686],{"class":202},[186,1092,434],{"class":212},[186,1094,303],{"class":295},[186,1096,300],{"class":299},[186,1098,303],{"class":295},[186,1100,444],{"class":212},[186,1102,306],{"class":196},[186,1104,1105,1107,1109,1111],{"class":188,"line":221},[186,1106,703],{"class":278},[186,1108,663],{"class":376},[186,1110,434],{"class":212},[186,1112,710],{"class":196},[186,1114,1115,1117,1119,1121,1123,1125,1127,1129,1131,1133,1135],{"class":188,"line":236},[186,1116,715],{"class":212},[186,1118,216],{"class":196},[186,1120,720],{"class":285},[186,1122,124],{"class":196},[186,1124,725],{"class":285},[186,1126,728],{"class":212},[186,1128,303],{"class":295},[186,1130,733],{"class":299},[186,1132,303],{"class":295},[186,1134,538],{"class":212},[186,1136,233],{"class":196},[186,1138,1139,1142,1144,1147,1149,1151,1154,1156,1158],{"class":188,"line":242},[186,1140,1141],{"class":212},"    logger",[186,1143,216],{"class":196},[186,1145,1146],{"class":376}," createConsoleLogger",[186,1148,434],{"class":212},[186,1150,303],{"class":295},[186,1152,1153],{"class":299},"info",[186,1155,303],{"class":295},[186,1157,444],{"class":212},[186,1159,233],{"class":196},[186,1161,1162,1164,1166],{"class":188,"line":406},[186,1163,790],{"class":196},[186,1165,444],{"class":212},[186,1167,306],{"class":196},[186,1169,1170],{"class":188,"line":455},[186,1171,541],{"class":196},[114,1173,1174],{},"Implement your own logger adapter:",[176,1176,1178],{"className":648,"code":1177,"filename":162,"language":650,"meta":182,"style":182},"export async function register() {\n  const { register, ConfigDirectorLogger } = await import(\"@configdirector\u002Fnextjs-sdk\u002Fserver\");\n  const myLogger: ConfigDirectorLogger = {\n    debug: function (message: string, ...args: any): void {\n      \u002F\u002F your specific logging library implementation here\n    },\n    info: function (message: string, ...args: any): void {\n      \u002F\u002F your specific logging library implementation here\n    },\n    warn: function (message: string, ...args: any): void {\n      \u002F\u002F your specific logging library implementation here\n    },\n    error: function (message: string, ...args: any): void {\n      \u002F\u002F your specific logging library implementation here\n    },\n  };\n\n  await register({\n    serverSdkKey: process.env[\"CONFIGDIRECTOR_SERVER_SDK_KEY\"],\n    logger: myLogger,\n  });\n}\n",[121,1179,1180,1194,1228,1243,1284,1290,1294,1329,1333,1337,1372,1376,1380,1415,1419,1423,1428,1432,1442,1467,1478,1487],{"__ignoreMap":182},[186,1181,1182,1184,1186,1188,1190,1192],{"class":188,"line":189},[186,1183,363],{"class":278},[186,1185,370],{"class":369},[186,1187,373],{"class":369},[186,1189,663],{"class":376},[186,1191,666],{"class":196},[186,1193,206],{"class":196},[186,1195,1196,1198,1200,1202,1205,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226],{"class":188,"line":209},[186,1197,409],{"class":369},[186,1199,282],{"class":196},[186,1201,663],{"class":412},[186,1203,1204],{"class":196},",",[186,1206,1207],{"class":412}," ConfigDirectorLogger",[186,1209,289],{"class":196},[186,1211,203],{"class":202},[186,1213,683],{"class":278},[186,1215,686],{"class":202},[186,1217,434],{"class":212},[186,1219,303],{"class":295},[186,1221,300],{"class":299},[186,1223,303],{"class":295},[186,1225,444],{"class":212},[186,1227,306],{"class":196},[186,1229,1230,1232,1235,1237,1239,1241],{"class":188,"line":221},[186,1231,409],{"class":369},[186,1233,1234],{"class":412}," myLogger",[186,1236,216],{"class":202},[186,1238,1207],{"class":398},[186,1240,203],{"class":202},[186,1242,206],{"class":196},[186,1244,1245,1248,1250,1252,1254,1257,1259,1262,1264,1267,1270,1272,1275,1277,1279,1282],{"class":188,"line":236},[186,1246,1247],{"class":376},"    debug",[186,1249,216],{"class":196},[186,1251,373],{"class":369},[186,1253,418],{"class":196},[186,1255,1256],{"class":383},"message",[186,1258,216],{"class":202},[186,1260,1261],{"class":508}," string",[186,1263,1204],{"class":196},[186,1265,1266],{"class":202}," ...",[186,1268,1269],{"class":383},"args",[186,1271,216],{"class":202},[186,1273,1274],{"class":508}," any",[186,1276,444],{"class":196},[186,1278,216],{"class":202},[186,1280,1281],{"class":508}," void",[186,1283,206],{"class":196},[186,1285,1286],{"class":188,"line":242},[186,1287,1289],{"class":1288},"sutJx","      \u002F\u002F your specific logging library implementation here\n",[186,1291,1292],{"class":188,"line":406},[186,1293,785],{"class":196},[186,1295,1296,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327],{"class":188,"line":455},[186,1297,1298],{"class":376},"    info",[186,1300,216],{"class":196},[186,1302,373],{"class":369},[186,1304,418],{"class":196},[186,1306,1256],{"class":383},[186,1308,216],{"class":202},[186,1310,1261],{"class":508},[186,1312,1204],{"class":196},[186,1314,1266],{"class":202},[186,1316,1269],{"class":383},[186,1318,216],{"class":202},[186,1320,1274],{"class":508},[186,1322,444],{"class":196},[186,1324,216],{"class":202},[186,1326,1281],{"class":508},[186,1328,206],{"class":196},[186,1330,1331],{"class":188,"line":464},[186,1332,1289],{"class":1288},[186,1334,1335],{"class":188,"line":491},[186,1336,785],{"class":196},[186,1338,1339,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370],{"class":188,"line":502},[186,1340,1341],{"class":376},"    warn",[186,1343,216],{"class":196},[186,1345,373],{"class":369},[186,1347,418],{"class":196},[186,1349,1256],{"class":383},[186,1351,216],{"class":202},[186,1353,1261],{"class":508},[186,1355,1204],{"class":196},[186,1357,1266],{"class":202},[186,1359,1269],{"class":383},[186,1361,216],{"class":202},[186,1363,1274],{"class":508},[186,1365,444],{"class":196},[186,1367,216],{"class":202},[186,1369,1281],{"class":508},[186,1371,206],{"class":196},[186,1373,1374],{"class":188,"line":512},[186,1375,1289],{"class":1288},[186,1377,1378],{"class":188,"line":544},[186,1379,785],{"class":196},[186,1381,1382,1385,1387,1389,1391,1393,1395,1397,1399,1401,1403,1405,1407,1409,1411,1413],{"class":188,"line":561},[186,1383,1384],{"class":376},"    error",[186,1386,216],{"class":196},[186,1388,373],{"class":369},[186,1390,418],{"class":196},[186,1392,1256],{"class":383},[186,1394,216],{"class":202},[186,1396,1261],{"class":508},[186,1398,1204],{"class":196},[186,1400,1266],{"class":202},[186,1402,1269],{"class":383},[186,1404,216],{"class":202},[186,1406,1274],{"class":508},[186,1408,444],{"class":196},[186,1410,216],{"class":202},[186,1412,1281],{"class":508},[186,1414,206],{"class":196},[186,1416,1417],{"class":188,"line":583},[186,1418,1289],{"class":1288},[186,1420,1421],{"class":188,"line":593},[186,1422,785],{"class":196},[186,1424,1425],{"class":188,"line":603},[186,1426,1427],{"class":196},"  };\n",[186,1429,1430],{"class":188,"line":613},[186,1431,358],{"emptyLinePlaceholder":32},[186,1433,1434,1436,1438,1440],{"class":188,"line":621},[186,1435,703],{"class":278},[186,1437,663],{"class":376},[186,1439,434],{"class":212},[186,1441,710],{"class":196},[186,1443,1445,1447,1449,1451,1453,1455,1457,1459,1461,1463,1465],{"class":188,"line":1444},19,[186,1446,715],{"class":212},[186,1448,216],{"class":196},[186,1450,720],{"class":285},[186,1452,124],{"class":196},[186,1454,725],{"class":285},[186,1456,728],{"class":212},[186,1458,303],{"class":295},[186,1460,733],{"class":299},[186,1462,303],{"class":295},[186,1464,538],{"class":212},[186,1466,233],{"class":196},[186,1468,1470,1472,1474,1476],{"class":188,"line":1469},20,[186,1471,1141],{"class":212},[186,1473,216],{"class":196},[186,1475,1234],{"class":285},[186,1477,233],{"class":196},[186,1479,1481,1483,1485],{"class":188,"line":1480},21,[186,1482,790],{"class":196},[186,1484,444],{"class":212},[186,1486,306],{"class":196},[186,1488,1490],{"class":188,"line":1489},22,[186,1491,541],{"class":196},[629,1493,1495,1498],{"id":1494},"loglevel-client-only",[121,1496,1497],{},"logLevel"," (client only)",[114,1500,1501,1502,1504,1505,1508],{},"The SDK on the client side logs to the browser console. You can adjust the ConfigDirector's SDK logging level for the client side via the ",[121,1503,1497],{}," option (defaults to ",[121,1506,1507],{},"warn","):",[176,1510,1512],{"className":268,"code":1511,"filename":270,"language":271,"meta":182,"style":182},"import { ConfigDirectorProvider } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\nimport type { ReactNode } from \"react\";\n\nexport default async function RootLayout({ children }: { children: ReactNode }) {\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>\n        \u003CConfigDirectorProvider\n          sdkKey={process.env[\"NEXT_PUBLIC_CONFIGDIRECTOR_CLIENT_SDK_KEY\"]}\n          logLevel=\"info\">\n          \u003Cmain>{children}\u003C\u002Fmain>\n        \u003C\u002FConfigDirectorProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  );\n}\n",[121,1513,1514,1534,1556,1560,1592,1598,1616,1624,1630,1654,1669,1685,1693,1701,1709,1715],{"__ignoreMap":182},[186,1515,1516,1518,1520,1522,1524,1526,1528,1530,1532],{"class":188,"line":189},[186,1517,279],{"class":278},[186,1519,282],{"class":196},[186,1521,286],{"class":285},[186,1523,289],{"class":196},[186,1525,292],{"class":278},[186,1527,296],{"class":295},[186,1529,300],{"class":299},[186,1531,303],{"class":295},[186,1533,306],{"class":196},[186,1535,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554],{"class":188,"line":209},[186,1537,279],{"class":278},[186,1539,313],{"class":278},[186,1541,282],{"class":196},[186,1543,318],{"class":285},[186,1545,289],{"class":196},[186,1547,292],{"class":278},[186,1549,296],{"class":295},[186,1551,327],{"class":299},[186,1553,303],{"class":295},[186,1555,306],{"class":196},[186,1557,1558],{"class":188,"line":221},[186,1559,358],{"emptyLinePlaceholder":32},[186,1561,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590],{"class":188,"line":236},[186,1563,363],{"class":278},[186,1565,366],{"class":278},[186,1567,370],{"class":369},[186,1569,373],{"class":369},[186,1571,377],{"class":376},[186,1573,380],{"class":196},[186,1575,384],{"class":383},[186,1577,289],{"class":196},[186,1579,216],{"class":202},[186,1581,282],{"class":196},[186,1583,384],{"class":393},[186,1585,216],{"class":202},[186,1587,318],{"class":398},[186,1589,401],{"class":196},[186,1591,206],{"class":196},[186,1593,1594,1596],{"class":188,"line":242},[186,1595,458],{"class":278},[186,1597,461],{"class":212},[186,1599,1600,1602,1604,1606,1608,1610,1612,1614],{"class":188,"line":406},[186,1601,467],{"class":196},[186,1603,471],{"class":470},[186,1605,475],{"class":474},[186,1607,478],{"class":202},[186,1609,303],{"class":295},[186,1611,483],{"class":299},[186,1613,303],{"class":295},[186,1615,488],{"class":196},[186,1617,1618,1620,1622],{"class":188,"line":455},[186,1619,494],{"class":196},[186,1621,497],{"class":470},[186,1623,488],{"class":196},[186,1625,1626,1628],{"class":188,"line":464},[186,1627,505],{"class":196},[186,1629,509],{"class":508},[186,1631,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652],{"class":188,"line":491},[186,1633,515],{"class":474},[186,1635,478],{"class":202},[186,1637,520],{"class":196},[186,1639,523],{"class":285},[186,1641,124],{"class":196},[186,1643,528],{"class":285},[186,1645,303],{"class":295},[186,1647,533],{"class":299},[186,1649,303],{"class":295},[186,1651,538],{"class":285},[186,1653,541],{"class":196},[186,1655,1656,1659,1661,1663,1665,1667],{"class":188,"line":502},[186,1657,1658],{"class":474},"          logLevel",[186,1660,478],{"class":202},[186,1662,303],{"class":295},[186,1664,1153],{"class":299},[186,1666,303],{"class":295},[186,1668,488],{"class":196},[186,1670,1671,1673,1675,1677,1679,1681,1683],{"class":188,"line":512},[186,1672,564],{"class":196},[186,1674,567],{"class":470},[186,1676,570],{"class":196},[186,1678,573],{"class":285},[186,1680,576],{"class":196},[186,1682,567],{"class":470},[186,1684,488],{"class":196},[186,1686,1687,1689,1691],{"class":188,"line":544},[186,1688,586],{"class":196},[186,1690,255],{"class":508},[186,1692,488],{"class":196},[186,1694,1695,1697,1699],{"class":188,"line":561},[186,1696,596],{"class":196},[186,1698,497],{"class":470},[186,1700,488],{"class":196},[186,1702,1703,1705,1707],{"class":188,"line":583},[186,1704,606],{"class":196},[186,1706,471],{"class":470},[186,1708,488],{"class":196},[186,1710,1711,1713],{"class":188,"line":593},[186,1712,616],{"class":212},[186,1714,306],{"class":196},[186,1716,1717],{"class":188,"line":603},[186,1718,541],{"class":196},[629,1720,1722],{"id":1721},"additional-server-configuration","Additional server configuration",[114,1724,801,1725,1728,1729,1733],{},[121,1726,1727],{},"register"," function accepts the same configuration values as the Node.js server SDK. You can ",[139,1730,1732],{"href":1731},"\u002Fsdks\u002Fserver\u002Fnode-js#additional-configuration-options","refer to the Node.js SDK"," for a full list of those configuration options.",[109,1735,1737],{"id":1736},"retrieve-config-values","Retrieve config values",[114,1739,1740,1741,1744,1745,1748,1749,1752],{},"In your client components, retrieve a config value with the ",[121,1742,1743],{},"useConfigValue"," hook. On the server side, ",[121,1746,1747],{},"getConfigClient"," returns the global server instance of the client (an instance of the ",[139,1750,1751],{"href":96},"Node.js SDK",").",[145,1754],{"name":1755},"sdks\u002Fnextjs\u002Fsimple-usage",[153,1757,1759],{"id":1758},"ssr-config-evaluation","SSR config evaluation",[114,1761,1762,1763,1766],{},"Evaluation of config values during server side rendering (SSR) utilizes the global ",[171,1764,1765],{},"server"," instance of the ConfigDirector Node.js client. That means there are no additional network requests that take place since the server SDK evaluates targeting rules locally for any given user context.",[1768,1769,1770],"note",{},[1771,1772,1773],"strong",{},"For SSR to work correctly, configs need to be made available to both, the client and the server, in the ConfigDirector dashboard.",[109,1775,1777],{"id":1776},"update-the-user-context","Update the user context",[145,1779],{"name":1780},"sdks\u002Fnextjs\u002Fuser-context",[1768,1782,1783],{},"Updating the context on the client side re-establishes a new connection to ConfigDirector servers with the new context. While the new connection is in flight, config values will continue to evaluate to the currently cached values from the prior user context.",[1785,1786,1787],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sucvu, html code.shiki .sucvu{--shiki-light:#E53935;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":182,"searchDepth":209,"depth":209,"links":1789},[1790,1791,1792,1797,1800],{"id":111,"depth":209,"text":112},{"id":133,"depth":209,"text":134},{"id":150,"depth":209,"text":151,"children":1793},[1794,1795,1796],{"id":155,"depth":221,"text":156},{"id":248,"depth":221,"text":249},{"id":626,"depth":221,"text":627},{"id":1736,"depth":209,"text":1737,"children":1798},[1799],{"id":1758,"depth":221,"text":1759},{"id":1776,"depth":209,"text":1777},"md",null,{},{"icon":82},{"title":79,"description":107},"r6L1wBBZiC0W15vWPhWOFfd4EqrBzF3vf8S7npXdqc8",[1808,1810],{"title":69,"path":70,"stem":71,"description":1809,"icon":56,"children":-1},"React Native SDK",{"title":84,"path":85,"stem":86,"description":1811,"icon":87,"children":-1},"Nuxt SDK",{"id":1813,"title":1814,"body":1815,"description":182,"extension":1801,"links":1802,"meta":1890,"navigation":6,"path":1891,"seo":1892,"stem":1893,"__hash__":1894},"docs\u002F_partials\u002Fsdks\u002Fnextjs\u002Finstall.md","Install",{"type":102,"value":1816,"toc":1888},[1817,1885],[1818,1819,1820,1842,1857,1871],"code-group",{},[176,1821,1826],{"className":1822,"code":1823,"filename":1824,"language":1825,"meta":182,"style":182},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","npm install --save @configdirector\u002Fnextjs-sdk\n","npm","bash",[121,1827,1828],{"__ignoreMap":182},[186,1829,1830,1832,1835,1839],{"class":188,"line":189},[186,1831,1824],{"class":398},[186,1833,1834],{"class":299}," install",[186,1836,1838],{"class":1837},"stzsN"," --save",[186,1840,1841],{"class":299}," @configdirector\u002Fnextjs-sdk\n",[176,1843,1846],{"className":1822,"code":1844,"filename":1845,"language":1825,"meta":182,"style":182},"yarn add @configdirector\u002Fnextjs-sdk\n","yarn",[121,1847,1848],{"__ignoreMap":182},[186,1849,1850,1852,1855],{"class":188,"line":189},[186,1851,1845],{"class":398},[186,1853,1854],{"class":299}," add",[186,1856,1841],{"class":299},[176,1858,1861],{"className":1822,"code":1859,"filename":1860,"language":1825,"meta":48,"style":182},"pnpm add @configdirector\u002Fnextjs-sdk\n","pnpm",[121,1862,1863],{"__ignoreMap":182},[186,1864,1865,1867,1869],{"class":188,"line":189},[186,1866,1860],{"class":398},[186,1868,1854],{"class":299},[186,1870,1841],{"class":299},[176,1872,1875],{"className":1822,"code":1873,"filename":1874,"language":1825,"meta":182,"style":182},"bun add @configdirector\u002Fnextjs-sdk\n","bun",[121,1876,1877],{"__ignoreMap":182},[186,1878,1879,1881,1883],{"class":188,"line":189},[186,1880,1874],{"class":398},[186,1882,1854],{"class":299},[186,1884,1841],{"class":299},[1785,1886,1887],{},"html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":182,"searchDepth":209,"depth":209,"links":1889},[],{},"\u002F_partials\u002Fsdks\u002Fnextjs\u002Finstall",{"description":182},"_partials\u002Fsdks\u002Fnextjs\u002Finstall","-EQZDrRRKO5hI89iTBLFQ7PfHkx-FggYWcN8mhyZ10k",{"id":1896,"title":1897,"body":1898,"description":182,"extension":1801,"links":1802,"meta":2013,"navigation":6,"path":2014,"seo":2015,"stem":2016,"__hash__":2017},"docs\u002F_partials\u002Fsdks\u002Fnextjs\u002Fconfigure.md","Configure",{"type":102,"value":1899,"toc":2011},[1900,2008],[176,1901,1903],{"className":648,"code":1902,"filename":162,"language":650,"meta":182,"style":182},"export async function register() {\n  const { register } = await import(\"@configdirector\u002Fnextjs-sdk\u002Fserver\");\n  await register({\n    \u002F\u002F The server SDK key is a secret value, do not commit it to your source code repository.\n    \u002F\u002F In this example, we are assuming the environment variable CONFIGDIRECTOR_SERVER_SDK_KEY\n    \u002F\u002F will be populated at runtime with your server SDK key in the server environment\n    serverSdkKey: process.env[\"CONFIGDIRECTOR_SERVER_SDK_KEY\"],\n  });\n}\n",[121,1904,1905,1919,1947,1957,1962,1967,1972,1996,2004],{"__ignoreMap":182},[186,1906,1907,1909,1911,1913,1915,1917],{"class":188,"line":189},[186,1908,363],{"class":278},[186,1910,370],{"class":369},[186,1912,373],{"class":369},[186,1914,663],{"class":376},[186,1916,666],{"class":196},[186,1918,206],{"class":196},[186,1920,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945],{"class":188,"line":209},[186,1922,409],{"class":369},[186,1924,282],{"class":196},[186,1926,663],{"class":412},[186,1928,289],{"class":196},[186,1930,203],{"class":202},[186,1932,683],{"class":278},[186,1934,686],{"class":202},[186,1936,434],{"class":212},[186,1938,303],{"class":295},[186,1940,300],{"class":299},[186,1942,303],{"class":295},[186,1944,444],{"class":212},[186,1946,306],{"class":196},[186,1948,1949,1951,1953,1955],{"class":188,"line":221},[186,1950,703],{"class":278},[186,1952,663],{"class":376},[186,1954,434],{"class":212},[186,1956,710],{"class":196},[186,1958,1959],{"class":188,"line":236},[186,1960,1961],{"class":1288},"    \u002F\u002F The server SDK key is a secret value, do not commit it to your source code repository.\n",[186,1963,1964],{"class":188,"line":242},[186,1965,1966],{"class":1288},"    \u002F\u002F In this example, we are assuming the environment variable CONFIGDIRECTOR_SERVER_SDK_KEY\n",[186,1968,1969],{"class":188,"line":406},[186,1970,1971],{"class":1288},"    \u002F\u002F will be populated at runtime with your server SDK key in the server environment\n",[186,1973,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994],{"class":188,"line":455},[186,1975,715],{"class":212},[186,1977,216],{"class":196},[186,1979,720],{"class":285},[186,1981,124],{"class":196},[186,1983,725],{"class":285},[186,1985,728],{"class":212},[186,1987,303],{"class":295},[186,1989,733],{"class":299},[186,1991,303],{"class":295},[186,1993,538],{"class":212},[186,1995,233],{"class":196},[186,1997,1998,2000,2002],{"class":188,"line":464},[186,1999,790],{"class":196},[186,2001,444],{"class":212},[186,2003,306],{"class":196},[186,2005,2006],{"class":188,"line":491},[186,2007,541],{"class":196},[1785,2009,2010],{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}",{"title":182,"searchDepth":209,"depth":209,"links":2012},[],{},"\u002F_partials\u002Fsdks\u002Fnextjs\u002Fconfigure",{"description":182},"_partials\u002Fsdks\u002Fnextjs\u002Fconfigure","BbeQ6LiFh-k9kBaaRMwctMG3fe7BoqUvgtW7Mbg9b84",{"id":2019,"title":2020,"body":2021,"description":182,"extension":1801,"links":1802,"meta":2223,"navigation":6,"path":2224,"seo":2225,"stem":2226,"__hash__":2227},"docs\u002F_partials\u002Fsdks\u002Fnextjs\u002Fconfigure-provider.md","Configure Provider",{"type":102,"value":2022,"toc":2221},[2023,2218],[176,2024,2026],{"className":268,"code":2025,"filename":270,"language":271,"meta":182,"style":182},"import { ConfigDirectorProvider } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\nimport type { ReactNode } from \"react\";\n\nexport default async function RootLayout({ children }: { children: ReactNode }) {\n  return (\n    \u003Chtml lang=\"en\">\n      \u003Cbody>\n        \u003CConfigDirectorProvider sdkKey={process.env[\"NEXT_PUBLIC_CONFIGDIRECTOR_CLIENT_SDK_KEY\"]}>\n          \u003Cmain>{children}\u003C\u002Fmain>\n        \u003C\u002FConfigDirectorProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  );\n}\n",[121,2027,2028,2048,2070,2074,2106,2112,2130,2138,2168,2184,2192,2200,2208,2214],{"__ignoreMap":182},[186,2029,2030,2032,2034,2036,2038,2040,2042,2044,2046],{"class":188,"line":189},[186,2031,279],{"class":278},[186,2033,282],{"class":196},[186,2035,286],{"class":285},[186,2037,289],{"class":196},[186,2039,292],{"class":278},[186,2041,296],{"class":295},[186,2043,300],{"class":299},[186,2045,303],{"class":295},[186,2047,306],{"class":196},[186,2049,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068],{"class":188,"line":209},[186,2051,279],{"class":278},[186,2053,313],{"class":278},[186,2055,282],{"class":196},[186,2057,318],{"class":285},[186,2059,289],{"class":196},[186,2061,292],{"class":278},[186,2063,296],{"class":295},[186,2065,327],{"class":299},[186,2067,303],{"class":295},[186,2069,306],{"class":196},[186,2071,2072],{"class":188,"line":221},[186,2073,358],{"emptyLinePlaceholder":32},[186,2075,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104],{"class":188,"line":236},[186,2077,363],{"class":278},[186,2079,366],{"class":278},[186,2081,370],{"class":369},[186,2083,373],{"class":369},[186,2085,377],{"class":376},[186,2087,380],{"class":196},[186,2089,384],{"class":383},[186,2091,289],{"class":196},[186,2093,216],{"class":202},[186,2095,282],{"class":196},[186,2097,384],{"class":393},[186,2099,216],{"class":202},[186,2101,318],{"class":398},[186,2103,401],{"class":196},[186,2105,206],{"class":196},[186,2107,2108,2110],{"class":188,"line":242},[186,2109,458],{"class":278},[186,2111,461],{"class":212},[186,2113,2114,2116,2118,2120,2122,2124,2126,2128],{"class":188,"line":406},[186,2115,467],{"class":196},[186,2117,471],{"class":470},[186,2119,475],{"class":474},[186,2121,478],{"class":202},[186,2123,303],{"class":295},[186,2125,483],{"class":299},[186,2127,303],{"class":295},[186,2129,488],{"class":196},[186,2131,2132,2134,2136],{"class":188,"line":455},[186,2133,494],{"class":196},[186,2135,497],{"class":470},[186,2137,488],{"class":196},[186,2139,2140,2142,2144,2147,2149,2151,2153,2155,2157,2159,2161,2163,2165],{"class":188,"line":464},[186,2141,505],{"class":196},[186,2143,255],{"class":508},[186,2145,2146],{"class":474}," sdkKey",[186,2148,478],{"class":202},[186,2150,520],{"class":196},[186,2152,523],{"class":285},[186,2154,124],{"class":196},[186,2156,528],{"class":285},[186,2158,303],{"class":295},[186,2160,533],{"class":299},[186,2162,303],{"class":295},[186,2164,538],{"class":285},[186,2166,2167],{"class":196},"}>\n",[186,2169,2170,2172,2174,2176,2178,2180,2182],{"class":188,"line":491},[186,2171,564],{"class":196},[186,2173,567],{"class":470},[186,2175,570],{"class":196},[186,2177,573],{"class":285},[186,2179,576],{"class":196},[186,2181,567],{"class":470},[186,2183,488],{"class":196},[186,2185,2186,2188,2190],{"class":188,"line":502},[186,2187,586],{"class":196},[186,2189,255],{"class":508},[186,2191,488],{"class":196},[186,2193,2194,2196,2198],{"class":188,"line":512},[186,2195,596],{"class":196},[186,2197,497],{"class":470},[186,2199,488],{"class":196},[186,2201,2202,2204,2206],{"class":188,"line":544},[186,2203,606],{"class":196},[186,2205,471],{"class":470},[186,2207,488],{"class":196},[186,2209,2210,2212],{"class":188,"line":561},[186,2211,616],{"class":212},[186,2213,306],{"class":196},[186,2215,2216],{"class":188,"line":583},[186,2217,541],{"class":196},[1785,2219,2220],{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sucvu, html code.shiki .sucvu{--shiki-light:#E53935;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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);}",{"title":182,"searchDepth":209,"depth":209,"links":2222},[],{},"\u002F_partials\u002Fsdks\u002Fnextjs\u002Fconfigure-provider",{"description":182},"_partials\u002Fsdks\u002Fnextjs\u002Fconfigure-provider","CbEumDL0UEBMv17Phn0AG7iVrRUOubsdzfSaWZu0HGs",{"id":2229,"title":2230,"body":2231,"description":2235,"extension":1801,"links":1802,"meta":2518,"navigation":6,"path":2519,"seo":2520,"stem":2521,"__hash__":2522},"docs\u002F_partials\u002Fsdks\u002Fnextjs\u002Fsimple-usage.md","Simple Usage",{"type":102,"value":2232,"toc":2516},[2233,2236,2381,2384,2513],[114,2234,2235],{},"Retrieving config values in client components:",[176,2237,2240],{"className":268,"code":2238,"filename":2239,"language":271,"meta":182,"style":182},"\"use client\";\n\nimport { useConfigValue } from \"@configdirector\u002Fnextjs-sdk\u002Fclient\";\n\nfunction YourComponent() {\n  const { value } = useConfigValue(\"my-config-key\", false);\n\n  return (\u003Cp>my-config-key: {value}\u003C\u002Fp>);\n}\n\nexport default YourComponent;\n","YourComponent.tsx",[121,2241,2242,2253,2257,2279,2283,2295,2328,2332,2363,2367,2371],{"__ignoreMap":182},[186,2243,2244,2246,2249,2251],{"class":188,"line":189},[186,2245,303],{"class":295},[186,2247,2248],{"class":299},"use client",[186,2250,303],{"class":295},[186,2252,306],{"class":196},[186,2254,2255],{"class":188,"line":209},[186,2256,358],{"emptyLinePlaceholder":32},[186,2258,2259,2261,2263,2266,2268,2270,2272,2275,2277],{"class":188,"line":221},[186,2260,279],{"class":278},[186,2262,282],{"class":196},[186,2264,2265],{"class":285}," useConfigValue",[186,2267,289],{"class":196},[186,2269,292],{"class":278},[186,2271,296],{"class":295},[186,2273,2274],{"class":299},"@configdirector\u002Fnextjs-sdk\u002Fclient",[186,2276,303],{"class":295},[186,2278,306],{"class":196},[186,2280,2281],{"class":188,"line":236},[186,2282,358],{"emptyLinePlaceholder":32},[186,2284,2285,2288,2291,2293],{"class":188,"line":242},[186,2286,2287],{"class":369},"function",[186,2289,2290],{"class":376}," YourComponent",[186,2292,666],{"class":196},[186,2294,206],{"class":196},[186,2296,2297,2299,2301,2304,2306,2308,2310,2312,2314,2317,2319,2321,2324,2326],{"class":188,"line":406},[186,2298,409],{"class":369},[186,2300,282],{"class":196},[186,2302,2303],{"class":412}," value",[186,2305,289],{"class":196},[186,2307,203],{"class":202},[186,2309,2265],{"class":376},[186,2311,434],{"class":212},[186,2313,303],{"class":295},[186,2315,2316],{"class":299},"my-config-key",[186,2318,303],{"class":295},[186,2320,1204],{"class":196},[186,2322,2323],{"class":229}," false",[186,2325,444],{"class":212},[186,2327,306],{"class":196},[186,2329,2330],{"class":188,"line":455},[186,2331,358],{"emptyLinePlaceholder":32},[186,2333,2334,2336,2338,2341,2343,2346,2349,2351,2353,2355,2357,2359,2361],{"class":188,"line":464},[186,2335,458],{"class":278},[186,2337,418],{"class":212},[186,2339,2340],{"class":196},"\u003C",[186,2342,114],{"class":470},[186,2344,2345],{"class":196},">",[186,2347,2348],{"class":285},"my-config-key: ",[186,2350,520],{"class":196},[186,2352,450],{"class":285},[186,2354,576],{"class":196},[186,2356,114],{"class":470},[186,2358,2345],{"class":196},[186,2360,444],{"class":212},[186,2362,306],{"class":196},[186,2364,2365],{"class":188,"line":491},[186,2366,541],{"class":196},[186,2368,2369],{"class":188,"line":502},[186,2370,358],{"emptyLinePlaceholder":32},[186,2372,2373,2375,2377,2379],{"class":188,"line":512},[186,2374,363],{"class":278},[186,2376,366],{"class":278},[186,2378,2290],{"class":285},[186,2380,306],{"class":196},[114,2382,2383],{},"Retrieving config values in server routes:",[176,2385,2388],{"className":648,"code":2386,"filename":2387,"language":650,"meta":182,"style":182},"import { getConfigClient } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\n\nexport async function GET() {\n  const client = getConfigClient();\n  const value = client.getValue(\"my-config-key\", false);\n  return Response.json({ \"my-config-key\": value });\n}\n","route.ts",[121,2389,2390,2411,2415,2430,2445,2476,2509],{"__ignoreMap":182},[186,2391,2392,2394,2396,2399,2401,2403,2405,2407,2409],{"class":188,"line":189},[186,2393,279],{"class":278},[186,2395,282],{"class":196},[186,2397,2398],{"class":285}," getConfigClient",[186,2400,289],{"class":196},[186,2402,292],{"class":278},[186,2404,296],{"class":295},[186,2406,300],{"class":299},[186,2408,303],{"class":295},[186,2410,306],{"class":196},[186,2412,2413],{"class":188,"line":209},[186,2414,358],{"emptyLinePlaceholder":32},[186,2416,2417,2419,2421,2423,2426,2428],{"class":188,"line":221},[186,2418,363],{"class":278},[186,2420,370],{"class":369},[186,2422,373],{"class":369},[186,2424,2425],{"class":376}," GET",[186,2427,666],{"class":196},[186,2429,206],{"class":196},[186,2431,2432,2434,2437,2439,2441,2443],{"class":188,"line":236},[186,2433,409],{"class":369},[186,2435,2436],{"class":412}," client",[186,2438,203],{"class":202},[186,2440,2398],{"class":376},[186,2442,666],{"class":212},[186,2444,306],{"class":196},[186,2446,2447,2449,2451,2453,2455,2457,2460,2462,2464,2466,2468,2470,2472,2474],{"class":188,"line":242},[186,2448,409],{"class":369},[186,2450,2303],{"class":412},[186,2452,203],{"class":202},[186,2454,2436],{"class":285},[186,2456,124],{"class":196},[186,2458,2459],{"class":376},"getValue",[186,2461,434],{"class":212},[186,2463,303],{"class":295},[186,2465,2316],{"class":299},[186,2467,303],{"class":295},[186,2469,1204],{"class":196},[186,2471,2323],{"class":229},[186,2473,444],{"class":212},[186,2475,306],{"class":196},[186,2477,2478,2480,2483,2485,2488,2490,2492,2494,2497,2499,2501,2503,2505,2507],{"class":188,"line":406},[186,2479,458],{"class":278},[186,2481,2482],{"class":285}," Response",[186,2484,124],{"class":196},[186,2486,2487],{"class":376},"json",[186,2489,434],{"class":212},[186,2491,520],{"class":196},[186,2493,296],{"class":295},[186,2495,2316],{"class":2496},"sZUrc",[186,2498,303],{"class":295},[186,2500,216],{"class":196},[186,2502,2303],{"class":285},[186,2504,289],{"class":196},[186,2506,444],{"class":212},[186,2508,306],{"class":196},[186,2510,2511],{"class":188,"line":455},[186,2512,541],{"class":196},[1785,2514,2515],{},"html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}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 pre.shiki code .sZUrc, html code.shiki .sZUrc{--shiki-light:#E53935;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":182,"searchDepth":209,"depth":209,"links":2517},[],{},"\u002F_partials\u002Fsdks\u002Fnextjs\u002Fsimple-usage",{"description":2235},"_partials\u002Fsdks\u002Fnextjs\u002Fsimple-usage","JCCdQJ3FfVpwWqOCcbedVMZLA02u0YiLwPj7BNUW06o",{"id":2524,"title":2525,"body":2526,"description":2993,"extension":1801,"links":1802,"meta":2994,"navigation":6,"path":2995,"seo":2996,"stem":2997,"__hash__":2998},"docs\u002F_partials\u002Fsdks\u002Fnextjs\u002Fuser-context.md","User Context",{"type":102,"value":2527,"toc":2991},[2528,2535,2796,2802,2989],[114,2529,2530,2531,2534],{},"The user context can be updated with the ",[121,2532,2533],{},"useContext"," hook:",[176,2536,2538],{"className":268,"code":2537,"filename":2239,"language":271,"meta":182,"style":182},"\"use client\";\n\nimport { useConfigValue, useContext } from \"@configdirector\u002Fnextjs-sdk\u002Fclient\";\n\nfunction YourComponent() {\n  const { value } = useConfigValue(\"my-config-key\", false);\n  const { updateContext } = useContext();\n\n  useEffect(() => {\n    updateContext({\n      id: \"654321\",\n      name: \"Another User\",\n      traits: {\n        region: \"Australia\",\n      },\n    });\n  }, []);\n\n  return \u003Cp>my-config-key: {value}\u003C\u002Fp>;\n}\n\nexport default YourComponent;\n",[121,2539,2540,2550,2554,2579,2583,2593,2623,2642,2646,2660,2669,2685,2701,2710,2726,2731,2740,2750,2754,2778,2782,2786],{"__ignoreMap":182},[186,2541,2542,2544,2546,2548],{"class":188,"line":189},[186,2543,303],{"class":295},[186,2545,2248],{"class":299},[186,2547,303],{"class":295},[186,2549,306],{"class":196},[186,2551,2552],{"class":188,"line":209},[186,2553,358],{"emptyLinePlaceholder":32},[186,2555,2556,2558,2560,2562,2564,2567,2569,2571,2573,2575,2577],{"class":188,"line":221},[186,2557,279],{"class":278},[186,2559,282],{"class":196},[186,2561,2265],{"class":285},[186,2563,1204],{"class":196},[186,2565,2566],{"class":285}," useContext",[186,2568,289],{"class":196},[186,2570,292],{"class":278},[186,2572,296],{"class":295},[186,2574,2274],{"class":299},[186,2576,303],{"class":295},[186,2578,306],{"class":196},[186,2580,2581],{"class":188,"line":236},[186,2582,358],{"emptyLinePlaceholder":32},[186,2584,2585,2587,2589,2591],{"class":188,"line":242},[186,2586,2287],{"class":369},[186,2588,2290],{"class":376},[186,2590,666],{"class":196},[186,2592,206],{"class":196},[186,2594,2595,2597,2599,2601,2603,2605,2607,2609,2611,2613,2615,2617,2619,2621],{"class":188,"line":406},[186,2596,409],{"class":369},[186,2598,282],{"class":196},[186,2600,2303],{"class":412},[186,2602,289],{"class":196},[186,2604,203],{"class":202},[186,2606,2265],{"class":376},[186,2608,434],{"class":212},[186,2610,303],{"class":295},[186,2612,2316],{"class":299},[186,2614,303],{"class":295},[186,2616,1204],{"class":196},[186,2618,2323],{"class":229},[186,2620,444],{"class":212},[186,2622,306],{"class":196},[186,2624,2625,2627,2629,2632,2634,2636,2638,2640],{"class":188,"line":455},[186,2626,409],{"class":369},[186,2628,282],{"class":196},[186,2630,2631],{"class":412}," updateContext",[186,2633,289],{"class":196},[186,2635,203],{"class":202},[186,2637,2566],{"class":376},[186,2639,666],{"class":212},[186,2641,306],{"class":196},[186,2643,2644],{"class":188,"line":464},[186,2645,358],{"emptyLinePlaceholder":32},[186,2647,2648,2651,2653,2655,2658],{"class":188,"line":491},[186,2649,2650],{"class":376},"  useEffect",[186,2652,434],{"class":212},[186,2654,666],{"class":196},[186,2656,2657],{"class":369}," =>",[186,2659,206],{"class":196},[186,2661,2662,2665,2667],{"class":188,"line":502},[186,2663,2664],{"class":376},"    updateContext",[186,2666,434],{"class":212},[186,2668,710],{"class":196},[186,2670,2671,2674,2676,2678,2681,2683],{"class":188,"line":512},[186,2672,2673],{"class":212},"      id",[186,2675,216],{"class":196},[186,2677,296],{"class":295},[186,2679,2680],{"class":299},"654321",[186,2682,303],{"class":295},[186,2684,233],{"class":196},[186,2686,2687,2690,2692,2694,2697,2699],{"class":188,"line":544},[186,2688,2689],{"class":212},"      name",[186,2691,216],{"class":196},[186,2693,296],{"class":295},[186,2695,2696],{"class":299},"Another User",[186,2698,303],{"class":295},[186,2700,233],{"class":196},[186,2702,2703,2706,2708],{"class":188,"line":561},[186,2704,2705],{"class":212},"      traits",[186,2707,216],{"class":196},[186,2709,206],{"class":196},[186,2711,2712,2715,2717,2719,2722,2724],{"class":188,"line":583},[186,2713,2714],{"class":212},"        region",[186,2716,216],{"class":196},[186,2718,296],{"class":295},[186,2720,2721],{"class":299},"Australia",[186,2723,303],{"class":295},[186,2725,233],{"class":196},[186,2727,2728],{"class":188,"line":593},[186,2729,2730],{"class":196},"      },\n",[186,2732,2733,2736,2738],{"class":188,"line":603},[186,2734,2735],{"class":196},"    }",[186,2737,444],{"class":212},[186,2739,306],{"class":196},[186,2741,2742,2745,2748],{"class":188,"line":613},[186,2743,2744],{"class":196},"  },",[186,2746,2747],{"class":212}," [])",[186,2749,306],{"class":196},[186,2751,2752],{"class":188,"line":621},[186,2753,358],{"emptyLinePlaceholder":32},[186,2755,2756,2758,2761,2763,2765,2767,2769,2771,2773,2775],{"class":188,"line":1444},[186,2757,458],{"class":278},[186,2759,2760],{"class":196}," \u003C",[186,2762,114],{"class":470},[186,2764,2345],{"class":196},[186,2766,2348],{"class":285},[186,2768,520],{"class":196},[186,2770,450],{"class":285},[186,2772,576],{"class":196},[186,2774,114],{"class":470},[186,2776,2777],{"class":196},">;\n",[186,2779,2780],{"class":188,"line":1469},[186,2781,541],{"class":196},[186,2783,2784],{"class":188,"line":1480},[186,2785,358],{"emptyLinePlaceholder":32},[186,2787,2788,2790,2792,2794],{"class":188,"line":1489},[186,2789,363],{"class":278},[186,2791,366],{"class":278},[186,2793,2290],{"class":285},[186,2795,306],{"class":196},[114,2797,2798,2799,2801],{},"On server routes, the user context is provided at evaluation time as the third argument to ",[121,2800,2459],{},". Unlike client SDKs, the server SDKs are able to evaluate targeting rules for the given user context locally without additional network calls.",[176,2803,2805],{"className":648,"code":2804,"filename":2387,"language":650,"meta":182,"style":182},"import { getConfigClient } from \"@configdirector\u002Fnextjs-sdk\u002Fserver\";\n\nexport async function GET() {\n  const client = getConfigClient();\n  const value = client.getValue(\"my-config-key\", false, {\n    id: \"654321\",\n    name: \"Another User\",\n    traits: {\n      region: \"Australia\",\n    },\n  });\n  return Response.json({ \"my-config-key\": value });\n}\n",[121,2806,2807,2827,2831,2845,2859,2889,2904,2919,2928,2943,2947,2955,2985],{"__ignoreMap":182},[186,2808,2809,2811,2813,2815,2817,2819,2821,2823,2825],{"class":188,"line":189},[186,2810,279],{"class":278},[186,2812,282],{"class":196},[186,2814,2398],{"class":285},[186,2816,289],{"class":196},[186,2818,292],{"class":278},[186,2820,296],{"class":295},[186,2822,300],{"class":299},[186,2824,303],{"class":295},[186,2826,306],{"class":196},[186,2828,2829],{"class":188,"line":209},[186,2830,358],{"emptyLinePlaceholder":32},[186,2832,2833,2835,2837,2839,2841,2843],{"class":188,"line":221},[186,2834,363],{"class":278},[186,2836,370],{"class":369},[186,2838,373],{"class":369},[186,2840,2425],{"class":376},[186,2842,666],{"class":196},[186,2844,206],{"class":196},[186,2846,2847,2849,2851,2853,2855,2857],{"class":188,"line":236},[186,2848,409],{"class":369},[186,2850,2436],{"class":412},[186,2852,203],{"class":202},[186,2854,2398],{"class":376},[186,2856,666],{"class":212},[186,2858,306],{"class":196},[186,2860,2861,2863,2865,2867,2869,2871,2873,2875,2877,2879,2881,2883,2885,2887],{"class":188,"line":242},[186,2862,409],{"class":369},[186,2864,2303],{"class":412},[186,2866,203],{"class":202},[186,2868,2436],{"class":285},[186,2870,124],{"class":196},[186,2872,2459],{"class":376},[186,2874,434],{"class":212},[186,2876,303],{"class":295},[186,2878,2316],{"class":299},[186,2880,303],{"class":295},[186,2882,1204],{"class":196},[186,2884,2323],{"class":229},[186,2886,1204],{"class":196},[186,2888,206],{"class":196},[186,2890,2891,2894,2896,2898,2900,2902],{"class":188,"line":406},[186,2892,2893],{"class":212},"    id",[186,2895,216],{"class":196},[186,2897,296],{"class":295},[186,2899,2680],{"class":299},[186,2901,303],{"class":295},[186,2903,233],{"class":196},[186,2905,2906,2909,2911,2913,2915,2917],{"class":188,"line":455},[186,2907,2908],{"class":212},"    name",[186,2910,216],{"class":196},[186,2912,296],{"class":295},[186,2914,2696],{"class":299},[186,2916,303],{"class":295},[186,2918,233],{"class":196},[186,2920,2921,2924,2926],{"class":188,"line":464},[186,2922,2923],{"class":212},"    traits",[186,2925,216],{"class":196},[186,2927,206],{"class":196},[186,2929,2930,2933,2935,2937,2939,2941],{"class":188,"line":491},[186,2931,2932],{"class":212},"      region",[186,2934,216],{"class":196},[186,2936,296],{"class":295},[186,2938,2721],{"class":299},[186,2940,303],{"class":295},[186,2942,233],{"class":196},[186,2944,2945],{"class":188,"line":502},[186,2946,785],{"class":196},[186,2948,2949,2951,2953],{"class":188,"line":512},[186,2950,790],{"class":196},[186,2952,444],{"class":212},[186,2954,306],{"class":196},[186,2956,2957,2959,2961,2963,2965,2967,2969,2971,2973,2975,2977,2979,2981,2983],{"class":188,"line":544},[186,2958,458],{"class":278},[186,2960,2482],{"class":285},[186,2962,124],{"class":196},[186,2964,2487],{"class":376},[186,2966,434],{"class":212},[186,2968,520],{"class":196},[186,2970,296],{"class":295},[186,2972,2316],{"class":2496},[186,2974,303],{"class":295},[186,2976,216],{"class":196},[186,2978,2303],{"class":285},[186,2980,289],{"class":196},[186,2982,444],{"class":212},[186,2984,306],{"class":196},[186,2986,2987],{"class":188,"line":561},[186,2988,541],{"class":196},[1785,2990,2515],{},{"title":182,"searchDepth":209,"depth":209,"links":2992},[],"The user context can be updated with the useContext hook:",{},"\u002F_partials\u002Fsdks\u002Fnextjs\u002Fuser-context",{"description":2993},"_partials\u002Fsdks\u002Fnextjs\u002Fuser-context","Eg4KsbwN7P_kmnw3yj7Ox23pQ8790QkHQ8lTpSTO0VE",1781641012803]