[{"data":1,"prerenderedAt":2000},["ShallowReactive",2],{"navigation_docs":3,"-sdks-browser-javascript":99,"-sdks-browser-javascript-surround":1313,"sdks\u002Fjavascript\u002Finstall":1318,"sdks\u002Fjavascript\u002Fconfigure":1401,"sdks\u002Fjavascript\u002Fsimple-usage":1484,"sdks\u002Fjavascript\u002Fuser-context":1707},[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":48,"body":101,"description":1306,"extension":1307,"links":1308,"meta":1309,"navigation":1310,"path":49,"seo":1311,"stem":50,"__hash__":1312},"docs\u002F2.sdks\u002F2.browser\u002F1.javascript.md",{"type":102,"value":103,"toc":1291},"minimark",[104,108,113,117,120,123,127,136,140,144,159,162,166,171,177,183,361,366,376,379,485,488,804,809,812,885,1008,1012,1019,1033,1036,1045,1185,1189,1192,1203,1207,1210,1215,1227,1233,1259,1265,1270,1275,1281,1287],[105,106,107],"sdk-badge",{"icon":51},"Javascript SDK",[109,110,112],"h2",{"id":111},"introduction","Introduction",[114,115,116],"p",{},"The Javascript browser SDK is intended to be used by web applications running on modern web browsers. All modern web browsers on popular platforms should be supported.",[114,118,119],{},"Browser SDKs are tested on the latest versions of Chrome, Firefox, Safari, and Edge.",[114,121,122],{},"Telemetry collection within browser SDKs 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,124,126],{"id":125},"installation","Installation",[114,128,129,130],{},"The SDK can be installed from NPM: ",[131,132,133],"a",{"href":133,"rel":134},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@configdirector\u002Fclient-sdk",[135],"nofollow",[137,138],"content-partial",{"name":139},"sdks\u002Fjavascript\u002Finstall",[109,141,143],{"id":142},"configure-and-initialize-the-client","Configure and initialize the client",[145,146,147,156],"ol",{},[148,149,150,151,155],"li",{},"Create an instance of the client providing your client SDK key. You can retrieve a client SDK key under your project settings in the ",[152,153,154],"code",{},"Environments & SDK Keys"," tab.",[148,157,158],{},"Initialize the client to initiate its connection lifecycle.",[137,160],{"name":161},"sdks\u002Fjavascript\u002Fconfigure",[163,164,165],"note",{},"Before the client is initialized, config values will evaluate to the default value provided in code.",[167,168,170],"h3",{"id":169},"additional-configuration-options","Additional configuration options",[172,173,175],"h4",{"id":174},"metadata",[152,176,174],{},[114,178,179,180,182],{},"The ",[152,181,174],{}," option allows 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.",[184,185,191],"pre",{"className":186,"code":187,"filename":188,"language":189,"meta":190,"style":190},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","import { createClient } from \"@configdirector\u002Fclient-sdk\";\n\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\", {\n  metadata: {\n    appName: \"YOUR-APP-NAME\",\n    appVersion: \"1.0.2\",\n  },\n});\n\nawait client.initialize();\n","config-director-setup.ts","ts","",[152,192,193,230,236,273,285,303,320,326,337,342],{"__ignoreMap":190},[194,195,198,202,206,210,213,216,220,224,227],"span",{"class":196,"line":197},"line",1,[194,199,201],{"class":200},"sVHd0","import",[194,203,205],{"class":204},"sP7_E"," {",[194,207,209],{"class":208},"su5hD"," createClient",[194,211,212],{"class":204}," }",[194,214,215],{"class":200}," from",[194,217,219],{"class":218},"sjJ54"," \"",[194,221,223],{"class":222},"s_sjI","@configdirector\u002Fclient-sdk",[194,225,226],{"class":218},"\"",[194,228,229],{"class":204},";\n",[194,231,233],{"class":196,"line":232},2,[194,234,235],{"emptyLinePlaceholder":32},"\n",[194,237,239,242,246,250,254,257,260,262,265,267,270],{"class":196,"line":238},3,[194,240,241],{"class":200},"export",[194,243,245],{"class":244},"sbsja"," const",[194,247,249],{"class":248},"s_hVV"," client",[194,251,253],{"class":252},"smGrS"," =",[194,255,209],{"class":256},"sGLFI",[194,258,259],{"class":208},"(",[194,261,226],{"class":218},[194,263,264],{"class":222},"YOUR-CLIENT-SDK-KEY",[194,266,226],{"class":218},[194,268,269],{"class":204},",",[194,271,272],{"class":204}," {\n",[194,274,276,280,283],{"class":196,"line":275},4,[194,277,279],{"class":278},"skxfh","  metadata",[194,281,282],{"class":204},":",[194,284,272],{"class":204},[194,286,288,291,293,295,298,300],{"class":196,"line":287},5,[194,289,290],{"class":278},"    appName",[194,292,282],{"class":204},[194,294,219],{"class":218},[194,296,297],{"class":222},"YOUR-APP-NAME",[194,299,226],{"class":218},[194,301,302],{"class":204},",\n",[194,304,306,309,311,313,316,318],{"class":196,"line":305},6,[194,307,308],{"class":278},"    appVersion",[194,310,282],{"class":204},[194,312,219],{"class":218},[194,314,315],{"class":222},"1.0.2",[194,317,226],{"class":218},[194,319,302],{"class":204},[194,321,323],{"class":196,"line":322},7,[194,324,325],{"class":204},"  },\n",[194,327,329,332,335],{"class":196,"line":328},8,[194,330,331],{"class":204},"}",[194,333,334],{"class":208},")",[194,336,229],{"class":204},[194,338,340],{"class":196,"line":339},9,[194,341,235],{"emptyLinePlaceholder":32},[194,343,345,348,350,353,356,359],{"class":196,"line":344},10,[194,346,347],{"class":200},"await",[194,349,249],{"class":208},[194,351,352],{"class":204},".",[194,354,355],{"class":256},"initialize",[194,357,358],{"class":208},"()",[194,360,229],{"class":204},[172,362,364],{"id":363},"logger",[152,365,363],{},[114,367,368,369,371,372,375],{},"By default, the SDK logs to the console and it is set to log warnings and errors only. You can configure a ",[152,370,363],{}," by either creating a ConfigDirector console logger with a different log level, or by implementing the ",[152,373,374],{},"ConfigDirectorLogger"," interface to provide your own logger. The interface can be used to create an adapter to another logging library.",[114,377,378],{},"Configure the ConfigDirector console logger to a different level:",[184,380,382],{"className":186,"code":381,"filename":188,"language":189,"meta":190,"style":190},"import { createClient, createConsoleLogger } from \"@configdirector\u002Fclient-sdk\";\n\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\", {\n  logger: createConsoleLogger(\"debug\"),\n});\n\nawait client.initialize();\n",[152,383,384,409,413,437,459,467,471],{"__ignoreMap":190},[194,385,386,388,390,392,394,397,399,401,403,405,407],{"class":196,"line":197},[194,387,201],{"class":200},[194,389,205],{"class":204},[194,391,209],{"class":208},[194,393,269],{"class":204},[194,395,396],{"class":208}," createConsoleLogger",[194,398,212],{"class":204},[194,400,215],{"class":200},[194,402,219],{"class":218},[194,404,223],{"class":222},[194,406,226],{"class":218},[194,408,229],{"class":204},[194,410,411],{"class":196,"line":232},[194,412,235],{"emptyLinePlaceholder":32},[194,414,415,417,419,421,423,425,427,429,431,433,435],{"class":196,"line":238},[194,416,241],{"class":200},[194,418,245],{"class":244},[194,420,249],{"class":248},[194,422,253],{"class":252},[194,424,209],{"class":256},[194,426,259],{"class":208},[194,428,226],{"class":218},[194,430,264],{"class":222},[194,432,226],{"class":218},[194,434,269],{"class":204},[194,436,272],{"class":204},[194,438,439,442,444,446,448,450,453,455,457],{"class":196,"line":275},[194,440,441],{"class":278},"  logger",[194,443,282],{"class":204},[194,445,396],{"class":256},[194,447,259],{"class":208},[194,449,226],{"class":218},[194,451,452],{"class":222},"debug",[194,454,226],{"class":218},[194,456,334],{"class":208},[194,458,302],{"class":204},[194,460,461,463,465],{"class":196,"line":287},[194,462,331],{"class":204},[194,464,334],{"class":208},[194,466,229],{"class":204},[194,468,469],{"class":196,"line":305},[194,470,235],{"emptyLinePlaceholder":32},[194,472,473,475,477,479,481,483],{"class":196,"line":322},[194,474,347],{"class":200},[194,476,249],{"class":208},[194,478,352],{"class":204},[194,480,355],{"class":256},[194,482,358],{"class":208},[194,484,229],{"class":204},[114,486,487],{},"Implement your own logger adapter:",[184,489,491],{"className":186,"code":490,"filename":188,"language":189,"meta":190,"style":190},"import { createClient, ConfigDirectorLogger } from \"@configdirector\u002Fclient-sdk\";\n\nconst 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\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\", {\n  logger: myLogger,\n});\n\nawait client.initialize();\n",[152,492,493,518,522,539,584,590,594,629,633,637,672,677,682,718,723,728,734,739,764,775,784,789],{"__ignoreMap":190},[194,494,495,497,499,501,503,506,508,510,512,514,516],{"class":196,"line":197},[194,496,201],{"class":200},[194,498,205],{"class":204},[194,500,209],{"class":208},[194,502,269],{"class":204},[194,504,505],{"class":208}," ConfigDirectorLogger",[194,507,212],{"class":204},[194,509,215],{"class":200},[194,511,219],{"class":218},[194,513,223],{"class":222},[194,515,226],{"class":218},[194,517,229],{"class":204},[194,519,520],{"class":196,"line":232},[194,521,235],{"emptyLinePlaceholder":32},[194,523,524,527,530,532,535,537],{"class":196,"line":238},[194,525,526],{"class":244},"const",[194,528,529],{"class":248}," myLogger",[194,531,282],{"class":252},[194,533,505],{"class":534},"sbgvK",[194,536,253],{"class":252},[194,538,272],{"class":204},[194,540,541,544,546,549,552,556,558,562,564,567,570,572,575,577,579,582],{"class":196,"line":275},[194,542,543],{"class":256},"  debug",[194,545,282],{"class":204},[194,547,548],{"class":244}," function",[194,550,551],{"class":204}," (",[194,553,555],{"class":554},"s99_P","message",[194,557,282],{"class":252},[194,559,561],{"class":560},"sZMiF"," string",[194,563,269],{"class":204},[194,565,566],{"class":252}," ...",[194,568,569],{"class":554},"args",[194,571,282],{"class":252},[194,573,574],{"class":560}," any",[194,576,334],{"class":204},[194,578,282],{"class":252},[194,580,581],{"class":560}," void",[194,583,272],{"class":204},[194,585,586],{"class":196,"line":287},[194,587,589],{"class":588},"sutJx","    \u002F\u002F your specific logging library implementation here\n",[194,591,592],{"class":196,"line":305},[194,593,325],{"class":204},[194,595,596,599,601,603,605,607,609,611,613,615,617,619,621,623,625,627],{"class":196,"line":322},[194,597,598],{"class":256},"  info",[194,600,282],{"class":204},[194,602,548],{"class":244},[194,604,551],{"class":204},[194,606,555],{"class":554},[194,608,282],{"class":252},[194,610,561],{"class":560},[194,612,269],{"class":204},[194,614,566],{"class":252},[194,616,569],{"class":554},[194,618,282],{"class":252},[194,620,574],{"class":560},[194,622,334],{"class":204},[194,624,282],{"class":252},[194,626,581],{"class":560},[194,628,272],{"class":204},[194,630,631],{"class":196,"line":328},[194,632,589],{"class":588},[194,634,635],{"class":196,"line":339},[194,636,325],{"class":204},[194,638,639,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670],{"class":196,"line":344},[194,640,641],{"class":256},"  warn",[194,643,282],{"class":204},[194,645,548],{"class":244},[194,647,551],{"class":204},[194,649,555],{"class":554},[194,651,282],{"class":252},[194,653,561],{"class":560},[194,655,269],{"class":204},[194,657,566],{"class":252},[194,659,569],{"class":554},[194,661,282],{"class":252},[194,663,574],{"class":560},[194,665,334],{"class":204},[194,667,282],{"class":252},[194,669,581],{"class":560},[194,671,272],{"class":204},[194,673,675],{"class":196,"line":674},11,[194,676,589],{"class":588},[194,678,680],{"class":196,"line":679},12,[194,681,325],{"class":204},[194,683,685,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716],{"class":196,"line":684},13,[194,686,687],{"class":256},"  error",[194,689,282],{"class":204},[194,691,548],{"class":244},[194,693,551],{"class":204},[194,695,555],{"class":554},[194,697,282],{"class":252},[194,699,561],{"class":560},[194,701,269],{"class":204},[194,703,566],{"class":252},[194,705,569],{"class":554},[194,707,282],{"class":252},[194,709,574],{"class":560},[194,711,334],{"class":204},[194,713,282],{"class":252},[194,715,581],{"class":560},[194,717,272],{"class":204},[194,719,721],{"class":196,"line":720},14,[194,722,589],{"class":588},[194,724,726],{"class":196,"line":725},15,[194,727,325],{"class":204},[194,729,731],{"class":196,"line":730},16,[194,732,733],{"class":204},"};\n",[194,735,737],{"class":196,"line":736},17,[194,738,235],{"emptyLinePlaceholder":32},[194,740,742,744,746,748,750,752,754,756,758,760,762],{"class":196,"line":741},18,[194,743,241],{"class":200},[194,745,245],{"class":244},[194,747,249],{"class":248},[194,749,253],{"class":252},[194,751,209],{"class":256},[194,753,259],{"class":208},[194,755,226],{"class":218},[194,757,264],{"class":222},[194,759,226],{"class":218},[194,761,269],{"class":204},[194,763,272],{"class":204},[194,765,767,769,771,773],{"class":196,"line":766},19,[194,768,441],{"class":278},[194,770,282],{"class":204},[194,772,529],{"class":208},[194,774,302],{"class":204},[194,776,778,780,782],{"class":196,"line":777},20,[194,779,331],{"class":204},[194,781,334],{"class":208},[194,783,229],{"class":204},[194,785,787],{"class":196,"line":786},21,[194,788,235],{"emptyLinePlaceholder":32},[194,790,792,794,796,798,800,802],{"class":196,"line":791},22,[194,793,347],{"class":200},[194,795,249],{"class":208},[194,797,352],{"class":204},[194,799,355],{"class":256},[194,801,358],{"class":208},[194,803,229],{"class":204},[172,805,807],{"id":806},"connection",[152,808,806],{},[114,810,811],{},"The connection object accepts three optional values:",[813,814,815,844,872],"ul",{},[148,816,817,820],{},[152,818,819],{},"mode",[813,821,822,839],{},[148,823,824,825,828,829,832,833,835,836,838],{},"The connection mode, which can be either ",[152,826,827],{},"streaming"," or ",[152,830,831],{},"polling",". It is recommended to use the default of ",[152,834,827],{}," unless you have a specific need to use ",[152,837,831],{}," instead.",[148,840,841,842],{},"Defaults to ",[152,843,827],{},[148,845,846,849],{},[152,847,848],{},"timeout",[813,850,851,860,866],{},[148,852,853,854,856,857,859],{},"The timeout, in milliseconds, to be used in initialization and when updating the context. This is how long the ",[152,855,355],{}," method will wait for data from ConfigDirector services before resolving its Promise. If the timeout is reached, ",[152,858,355],{}," will return but the client will still be in an unready status and returning default values. The client will continue to attempt to connect and retrieve config values in the background.",[148,861,862,863,865],{},"If your application is used in environments where the users frequently have poor or no connection, you may want to use a lower timeout, or simply don't await the ",[152,864,355],{}," method call",[148,867,841,868,871],{},[152,869,870],{},"3000"," milliseconds",[148,873,874,877],{},[152,875,876],{},"url",[813,878,879,882],{},[148,880,881],{},"The base URL used to connect to ConfigDirector services",[148,883,884],{},"This should only be provided if your environment requires you to configure a proxy server in order to connect to ConfigDirector services",[184,886,888],{"className":186,"code":887,"filename":188,"language":189,"meta":190,"style":190},"import { createClient } from \"@configdirector\u002Fclient-sdk\";\n\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\", {\n  connection: {\n    mode: \"streaming\",\n    timeout: 2_000, \u002F\u002F 2,000 milliseconds initialization timeout\n  },\n});\n\nawait client.initialize();\n",[152,889,890,910,914,938,947,962,978,982,990,994],{"__ignoreMap":190},[194,891,892,894,896,898,900,902,904,906,908],{"class":196,"line":197},[194,893,201],{"class":200},[194,895,205],{"class":204},[194,897,209],{"class":208},[194,899,212],{"class":204},[194,901,215],{"class":200},[194,903,219],{"class":218},[194,905,223],{"class":222},[194,907,226],{"class":218},[194,909,229],{"class":204},[194,911,912],{"class":196,"line":232},[194,913,235],{"emptyLinePlaceholder":32},[194,915,916,918,920,922,924,926,928,930,932,934,936],{"class":196,"line":238},[194,917,241],{"class":200},[194,919,245],{"class":244},[194,921,249],{"class":248},[194,923,253],{"class":252},[194,925,209],{"class":256},[194,927,259],{"class":208},[194,929,226],{"class":218},[194,931,264],{"class":222},[194,933,226],{"class":218},[194,935,269],{"class":204},[194,937,272],{"class":204},[194,939,940,943,945],{"class":196,"line":275},[194,941,942],{"class":278},"  connection",[194,944,282],{"class":204},[194,946,272],{"class":204},[194,948,949,952,954,956,958,960],{"class":196,"line":287},[194,950,951],{"class":278},"    mode",[194,953,282],{"class":204},[194,955,219],{"class":218},[194,957,827],{"class":222},[194,959,226],{"class":218},[194,961,302],{"class":204},[194,963,964,967,969,973,975],{"class":196,"line":305},[194,965,966],{"class":278},"    timeout",[194,968,282],{"class":204},[194,970,972],{"class":971},"srdBf"," 2_000",[194,974,269],{"class":204},[194,976,977],{"class":588}," \u002F\u002F 2,000 milliseconds initialization timeout\n",[194,979,980],{"class":196,"line":322},[194,981,325],{"class":204},[194,983,984,986,988],{"class":196,"line":328},[194,985,331],{"class":204},[194,987,334],{"class":208},[194,989,229],{"class":204},[194,991,992],{"class":196,"line":339},[194,993,235],{"emptyLinePlaceholder":32},[194,995,996,998,1000,1002,1004,1006],{"class":196,"line":344},[194,997,347],{"class":200},[194,999,249],{"class":208},[194,1001,352],{"class":204},[194,1003,355],{"class":256},[194,1005,358],{"class":208},[194,1007,229],{"class":204},[109,1009,1011],{"id":1010},"retrieve-config-values","Retrieve config values",[114,1013,1014,1015,1018],{},"To synchronously retrieve config values, use the client's ",[152,1016,1017],{},"getValue"," method. It requires two arguments. The first argument is the config key, and the second is the default value to be returned if the client has not yet received config values from ConfigDirector services.",[114,1020,1021,1022,1025,1026,1028,1029,1032],{},"You can also subscribe to config value changes via the ",[152,1023,1024],{},"watch"," method. It requires three arguments, the config key, the default value, and a callback function to be called when the config value is updated. The ",[152,1027,1024],{}," method itself returns a function to remove that specific listener. Alternatively, you may also call the ",[152,1030,1031],{},"unwatch"," method to remove all listeners for a specific config key.",[137,1034],{"name":1035},"sdks\u002Fjavascript\u002Fsimple-usage",[114,1037,1038,1039,1041,1042,1044],{},"Both, ",[152,1040,1017],{}," and ",[152,1043,1024],{}," accept default values for any type supported by that specific config (boolean, string, number, enums). If there is a type mismatch at runtime, the SDK will attempt to cast to the return value. If the cast fails, it will return the value as a string. Mismatched types at runtime are captured by the telemetry collector and will surface as warnings in the ConfigDirector dashboard.",[184,1046,1049],{"className":186,"code":1047,"filename":1048,"language":189,"meta":190,"style":190},"client.getValue(\"my-string-config-key\", \"Default\");\n\nclient.getValue(\"my-integer-config-key\", 100);\n\nclient.getValue(\"my-boolean-config-key\", false);\n\nclient.getValue\u003CMyEnum>(\"my-enum-config-key\", MyEnum.SomeDefaultValue);\n","main.ts",[152,1050,1051,1082,1086,1112,1116,1143,1147],{"__ignoreMap":190},[194,1052,1053,1056,1058,1060,1062,1064,1067,1069,1071,1073,1076,1078,1080],{"class":196,"line":197},[194,1054,1055],{"class":208},"client",[194,1057,352],{"class":204},[194,1059,1017],{"class":256},[194,1061,259],{"class":208},[194,1063,226],{"class":218},[194,1065,1066],{"class":222},"my-string-config-key",[194,1068,226],{"class":218},[194,1070,269],{"class":204},[194,1072,219],{"class":218},[194,1074,1075],{"class":222},"Default",[194,1077,226],{"class":218},[194,1079,334],{"class":208},[194,1081,229],{"class":204},[194,1083,1084],{"class":196,"line":232},[194,1085,235],{"emptyLinePlaceholder":32},[194,1087,1088,1090,1092,1094,1096,1098,1101,1103,1105,1108,1110],{"class":196,"line":238},[194,1089,1055],{"class":208},[194,1091,352],{"class":204},[194,1093,1017],{"class":256},[194,1095,259],{"class":208},[194,1097,226],{"class":218},[194,1099,1100],{"class":222},"my-integer-config-key",[194,1102,226],{"class":218},[194,1104,269],{"class":204},[194,1106,1107],{"class":971}," 100",[194,1109,334],{"class":208},[194,1111,229],{"class":204},[194,1113,1114],{"class":196,"line":275},[194,1115,235],{"emptyLinePlaceholder":32},[194,1117,1118,1120,1122,1124,1126,1128,1131,1133,1135,1139,1141],{"class":196,"line":287},[194,1119,1055],{"class":208},[194,1121,352],{"class":204},[194,1123,1017],{"class":256},[194,1125,259],{"class":208},[194,1127,226],{"class":218},[194,1129,1130],{"class":222},"my-boolean-config-key",[194,1132,226],{"class":218},[194,1134,269],{"class":204},[194,1136,1138],{"class":1137},"syTEX"," false",[194,1140,334],{"class":208},[194,1142,229],{"class":204},[194,1144,1145],{"class":196,"line":305},[194,1146,235],{"emptyLinePlaceholder":32},[194,1148,1149,1151,1153,1155,1158,1161,1164,1166,1168,1171,1173,1175,1178,1180,1183],{"class":196,"line":322},[194,1150,1055],{"class":208},[194,1152,352],{"class":204},[194,1154,1017],{"class":256},[194,1156,1157],{"class":204},"\u003C",[194,1159,1160],{"class":534},"MyEnum",[194,1162,1163],{"class":204},">",[194,1165,259],{"class":208},[194,1167,226],{"class":218},[194,1169,1170],{"class":222},"my-enum-config-key",[194,1172,226],{"class":218},[194,1174,269],{"class":204},[194,1176,1177],{"class":208}," MyEnum",[194,1179,352],{"class":204},[194,1181,1182],{"class":208},"SomeDefaultValue)",[194,1184,229],{"class":204},[109,1186,1188],{"id":1187},"update-the-user-context","Update the user context",[137,1190],{"name":1191},"sdks\u002Fjavascript\u002Fuser-context",[163,1193,1194,1195,1198,1199,1202],{},"In client SDKs (browser and mobile), updating the user context 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.",[1196,1197],"br",{},"\nAwaiting ",[152,1200,1201],{},"updateContext"," will wait until the new config values are downloaded or the connection times out. In the case of a timeout, the client will continue to attempt to connect with the new context in the background.",[109,1204,1206],{"id":1205},"other-useful-client-features","Other useful client features",[114,1208,1209],{},"The client provides additional properties and methods.",[167,1211,1213],{"id":1212},"context",[152,1214,1212],{},[114,1216,1217,1218,1220,1221,1223,1224,1226],{},"Returns the current user context (which may be undefined). When calling ",[152,1219,1201],{},", the ",[152,1222,1212],{}," is not immediately updated. The ",[152,1225,1212],{}," is updated after the new connection for the new context succeeds (or times out and goes on retry).",[167,1228,1230],{"id":1229},"isready",[152,1231,1232],{},"isReady",[114,1234,1235,1236,1239,1240,1243,1244,1246,1247,1249,1250,1252,1253,1255,1256,1258],{},"Returns a boolean indicating if the client has been successfully initialized and is ready to evaluate configs for the given user context. It is initially ",[152,1237,1238],{},"false"," and becomes ",[152,1241,1242],{},"true"," after ",[152,1245,355],{}," succeeds.\nUpon calling ",[152,1248,1201],{}," it becomes ",[152,1251,1238],{}," again and it is set to ",[152,1254,1242],{}," once ",[152,1257,1201],{}," succeeds.",[167,1260,1262],{"id":1261},"unwatchall",[152,1263,1264],{},"unwatchAll",[114,1266,1267,1268,352],{},"Removes all listeners for all config keys that were previously created via ",[152,1269,1024],{},[167,1271,1273],{"id":1272},"dispose",[152,1274,1272],{},[114,1276,1277,1278,1280],{},"Removes all listeners and observers, and closes all connections to ConfigDirector services. Only call ",[152,1279,1272],{}," when your application shuts down and it will no longer make use of the client instance.",[114,1282,1283,1284,1286],{},"It is generally not needed for applications to call ",[152,1285,1272],{}," explicitly.",[1288,1289,1290],"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 .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 .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--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 .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 .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--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 .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--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":190,"searchDepth":232,"depth":232,"links":1292},[1293,1294,1295,1298,1299,1300],{"id":111,"depth":232,"text":112},{"id":125,"depth":232,"text":126},{"id":142,"depth":232,"text":143,"children":1296},[1297],{"id":169,"depth":238,"text":170},{"id":1010,"depth":232,"text":1011},{"id":1187,"depth":232,"text":1188},{"id":1205,"depth":232,"text":1206,"children":1301},[1302,1303,1304,1305],{"id":1212,"depth":238,"text":1212},{"id":1229,"depth":238,"text":1232},{"id":1261,"depth":238,"text":1264},{"id":1272,"depth":238,"text":1272},"Javascript browser SDK","md",null,{},{"icon":51},{"title":48,"description":1306},"O4dGOHQxo5phP3gnRzJrqqoLVGUIhn7p-3On1-cvYeI",[1314,1316],{"title":37,"path":38,"stem":39,"description":1315,"icon":40,"children":-1},"All of ConfigDirector's SDKs",{"title":53,"path":54,"stem":55,"description":1317,"icon":56,"children":-1},"React SDK",{"id":1319,"title":1320,"body":1321,"description":190,"extension":1307,"links":1308,"meta":1396,"navigation":6,"path":1397,"seo":1398,"stem":1399,"__hash__":1400},"docs\u002F_partials\u002Fsdks\u002Fjavascript\u002Finstall.md","Install",{"type":102,"value":1322,"toc":1394},[1323,1391],[1324,1325,1326,1348,1363,1377],"code-group",{},[184,1327,1332],{"className":1328,"code":1329,"filename":1330,"language":1331,"meta":190,"style":190},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","npm install --save @configdirector\u002Fclient-sdk\n","npm","bash",[152,1333,1334],{"__ignoreMap":190},[194,1335,1336,1338,1341,1345],{"class":196,"line":197},[194,1337,1330],{"class":534},[194,1339,1340],{"class":222}," install",[194,1342,1344],{"class":1343},"stzsN"," --save",[194,1346,1347],{"class":222}," @configdirector\u002Fclient-sdk\n",[184,1349,1352],{"className":1328,"code":1350,"filename":1351,"language":1331,"meta":190,"style":190},"yarn add @configdirector\u002Fclient-sdk\n","yarn",[152,1353,1354],{"__ignoreMap":190},[194,1355,1356,1358,1361],{"class":196,"line":197},[194,1357,1351],{"class":534},[194,1359,1360],{"class":222}," add",[194,1362,1347],{"class":222},[184,1364,1367],{"className":1328,"code":1365,"filename":1366,"language":1331,"meta":48,"style":190},"pnpm add @configdirector\u002Fclient-sdk\n","pnpm",[152,1368,1369],{"__ignoreMap":190},[194,1370,1371,1373,1375],{"class":196,"line":197},[194,1372,1366],{"class":534},[194,1374,1360],{"class":222},[194,1376,1347],{"class":222},[184,1378,1381],{"className":1328,"code":1379,"filename":1380,"language":1331,"meta":190,"style":190},"bun add @configdirector\u002Fclient-sdk\n","bun",[152,1382,1383],{"__ignoreMap":190},[194,1384,1385,1387,1389],{"class":196,"line":197},[194,1386,1380],{"class":534},[194,1388,1360],{"class":222},[194,1390,1347],{"class":222},[1288,1392,1393],{},"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":190,"searchDepth":232,"depth":232,"links":1395},[],{},"\u002F_partials\u002Fsdks\u002Fjavascript\u002Finstall",{"description":190},"_partials\u002Fsdks\u002Fjavascript\u002Finstall","bkXAKVVE555EtxuIPa9NS-Yvo2sVTvTrsHwX62BS5VM",{"id":1402,"title":1403,"body":1404,"description":190,"extension":1307,"links":1308,"meta":1479,"navigation":6,"path":1480,"seo":1481,"stem":1482,"__hash__":1483},"docs\u002F_partials\u002Fsdks\u002Fjavascript\u002Fconfigure.md","Configure",{"type":102,"value":1405,"toc":1477},[1406,1474],[184,1407,1410],{"className":186,"code":1408,"filename":1409,"language":189,"meta":190,"style":190},"import { createClient } from \"@configdirector\u002Fclient-sdk\";\n\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\");\nawait client.initialize();\n","config-director-setup.ts (Initialize the client)",[152,1411,1412,1432,1436,1460],{"__ignoreMap":190},[194,1413,1414,1416,1418,1420,1422,1424,1426,1428,1430],{"class":196,"line":197},[194,1415,201],{"class":200},[194,1417,205],{"class":204},[194,1419,209],{"class":208},[194,1421,212],{"class":204},[194,1423,215],{"class":200},[194,1425,219],{"class":218},[194,1427,223],{"class":222},[194,1429,226],{"class":218},[194,1431,229],{"class":204},[194,1433,1434],{"class":196,"line":232},[194,1435,235],{"emptyLinePlaceholder":32},[194,1437,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458],{"class":196,"line":238},[194,1439,241],{"class":200},[194,1441,245],{"class":244},[194,1443,249],{"class":248},[194,1445,253],{"class":252},[194,1447,209],{"class":256},[194,1449,259],{"class":208},[194,1451,226],{"class":218},[194,1453,264],{"class":222},[194,1455,226],{"class":218},[194,1457,334],{"class":208},[194,1459,229],{"class":204},[194,1461,1462,1464,1466,1468,1470,1472],{"class":196,"line":275},[194,1463,347],{"class":200},[194,1465,249],{"class":208},[194,1467,352],{"class":204},[194,1469,355],{"class":256},[194,1471,358],{"class":208},[194,1473,229],{"class":204},[1288,1475,1476],{},"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 .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 .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":190,"searchDepth":232,"depth":232,"links":1478},[],{},"\u002F_partials\u002Fsdks\u002Fjavascript\u002Fconfigure",{"description":190},"_partials\u002Fsdks\u002Fjavascript\u002Fconfigure","XeEGSCJ36sidpf4_CtvFyim53wCnhm31Eko0iA3jYBw",{"id":1485,"title":1486,"body":1487,"description":190,"extension":1307,"links":1308,"meta":1702,"navigation":6,"path":1703,"seo":1704,"stem":1705,"__hash__":1706},"docs\u002F_partials\u002Fsdks\u002Fjavascript\u002Fsimple-usage.md","Simple Usage",{"type":102,"value":1488,"toc":1700},[1489,1697],[184,1490,1493],{"className":186,"code":1491,"filename":1492,"language":189,"meta":190,"style":190},"import { client } from \".\u002Fconfig-director-setup\"\n\n\u002F\u002F Retrieve the current value\nconst value = client.getValue(\"my-config-key\", false);\n\n\u002F\u002F Subscribe to value updates\nconst unwatchMyKey = client.watch(\n  \"my-config-key\",\n  false,\n  (newValue) => {\n    console.log(\"Value updated:\", newValue)\n  },\n);\n\nunwatchMyKey(); \u002F\u002F Call the unwatch function returned to remove the listener\n\nclient.unwatch(\"my-config-key\"); \u002F\u002F Removes all listeners for that key\n","main.ts (Use the client)",[152,1494,1495,1515,1519,1524,1556,1560,1565,1583,1594,1601,1616,1643,1647,1653,1657,1670,1674],{"__ignoreMap":190},[194,1496,1497,1499,1501,1503,1505,1507,1509,1512],{"class":196,"line":197},[194,1498,201],{"class":200},[194,1500,205],{"class":204},[194,1502,249],{"class":208},[194,1504,212],{"class":204},[194,1506,215],{"class":200},[194,1508,219],{"class":218},[194,1510,1511],{"class":222},".\u002Fconfig-director-setup",[194,1513,1514],{"class":218},"\"\n",[194,1516,1517],{"class":196,"line":232},[194,1518,235],{"emptyLinePlaceholder":32},[194,1520,1521],{"class":196,"line":238},[194,1522,1523],{"class":588},"\u002F\u002F Retrieve the current value\n",[194,1525,1526,1528,1531,1533,1535,1537,1539,1541,1543,1546,1548,1550,1552,1554],{"class":196,"line":275},[194,1527,526],{"class":244},[194,1529,1530],{"class":248}," value",[194,1532,253],{"class":252},[194,1534,249],{"class":208},[194,1536,352],{"class":204},[194,1538,1017],{"class":256},[194,1540,259],{"class":208},[194,1542,226],{"class":218},[194,1544,1545],{"class":222},"my-config-key",[194,1547,226],{"class":218},[194,1549,269],{"class":204},[194,1551,1138],{"class":1137},[194,1553,334],{"class":208},[194,1555,229],{"class":204},[194,1557,1558],{"class":196,"line":287},[194,1559,235],{"emptyLinePlaceholder":32},[194,1561,1562],{"class":196,"line":305},[194,1563,1564],{"class":588},"\u002F\u002F Subscribe to value updates\n",[194,1566,1567,1569,1572,1574,1576,1578,1580],{"class":196,"line":322},[194,1568,526],{"class":244},[194,1570,1571],{"class":248}," unwatchMyKey",[194,1573,253],{"class":252},[194,1575,249],{"class":208},[194,1577,352],{"class":204},[194,1579,1024],{"class":256},[194,1581,1582],{"class":208},"(\n",[194,1584,1585,1588,1590,1592],{"class":196,"line":328},[194,1586,1587],{"class":218},"  \"",[194,1589,1545],{"class":222},[194,1591,226],{"class":218},[194,1593,302],{"class":204},[194,1595,1596,1599],{"class":196,"line":339},[194,1597,1598],{"class":1137},"  false",[194,1600,302],{"class":204},[194,1602,1603,1606,1609,1611,1614],{"class":196,"line":344},[194,1604,1605],{"class":204},"  (",[194,1607,1608],{"class":554},"newValue",[194,1610,334],{"class":204},[194,1612,1613],{"class":244}," =>",[194,1615,272],{"class":204},[194,1617,1618,1621,1623,1626,1628,1630,1633,1635,1637,1640],{"class":196,"line":674},[194,1619,1620],{"class":208},"    console",[194,1622,352],{"class":204},[194,1624,1625],{"class":256},"log",[194,1627,259],{"class":278},[194,1629,226],{"class":218},[194,1631,1632],{"class":222},"Value updated:",[194,1634,226],{"class":218},[194,1636,269],{"class":204},[194,1638,1639],{"class":208}," newValue",[194,1641,1642],{"class":278},")\n",[194,1644,1645],{"class":196,"line":679},[194,1646,325],{"class":204},[194,1648,1649,1651],{"class":196,"line":684},[194,1650,334],{"class":208},[194,1652,229],{"class":204},[194,1654,1655],{"class":196,"line":720},[194,1656,235],{"emptyLinePlaceholder":32},[194,1658,1659,1662,1664,1667],{"class":196,"line":725},[194,1660,1661],{"class":256},"unwatchMyKey",[194,1663,358],{"class":208},[194,1665,1666],{"class":204},";",[194,1668,1669],{"class":588}," \u002F\u002F Call the unwatch function returned to remove the listener\n",[194,1671,1672],{"class":196,"line":730},[194,1673,235],{"emptyLinePlaceholder":32},[194,1675,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694],{"class":196,"line":736},[194,1677,1055],{"class":208},[194,1679,352],{"class":204},[194,1681,1031],{"class":256},[194,1683,259],{"class":208},[194,1685,226],{"class":218},[194,1687,1545],{"class":222},[194,1689,226],{"class":218},[194,1691,334],{"class":208},[194,1693,1666],{"class":204},[194,1695,1696],{"class":588}," \u002F\u002F Removes all listeners for that key\n",[1288,1698,1699],{},"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 .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 .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .syTEX, html code.shiki .syTEX{--shiki-light:#FF5370;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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 .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--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":190,"searchDepth":232,"depth":232,"links":1701},[],{},"\u002F_partials\u002Fsdks\u002Fjavascript\u002Fsimple-usage",{"description":190},"_partials\u002Fsdks\u002Fjavascript\u002Fsimple-usage","kj4k8CNjcGcjUHqtcAh7-zXP-1zmooa8je5b_77_AD0",{"id":1708,"title":1709,"body":1710,"description":1714,"extension":1307,"links":1308,"meta":1995,"navigation":6,"path":1996,"seo":1997,"stem":1998,"__hash__":1999},"docs\u002F_partials\u002Fsdks\u002Fjavascript\u002Fuser-context.md","User Context",{"type":102,"value":1711,"toc":1993},[1712,1715,1856,1861,1990],[114,1713,1714],{},"A user context can be provided when initializing the client:",[184,1716,1718],{"className":186,"code":1717,"filename":188,"language":189,"meta":190,"style":190},"import { createClient } from \"@configdirector\u002Fclient-sdk\";\n\nexport const client = createClient(\"YOUR-CLIENT-SDK-KEY\");\nawait client.initialize({\n  id: \"12345\",\n  name: \"Example User\",\n  traits: {\n    region: \"North America\", \u002F\u002F Any arbitrary traits which can be referenced in targeting rules\n  }\n});\n",[152,1719,1720,1740,1744,1768,1783,1799,1815,1824,1843,1848],{"__ignoreMap":190},[194,1721,1722,1724,1726,1728,1730,1732,1734,1736,1738],{"class":196,"line":197},[194,1723,201],{"class":200},[194,1725,205],{"class":204},[194,1727,209],{"class":208},[194,1729,212],{"class":204},[194,1731,215],{"class":200},[194,1733,219],{"class":218},[194,1735,223],{"class":222},[194,1737,226],{"class":218},[194,1739,229],{"class":204},[194,1741,1742],{"class":196,"line":232},[194,1743,235],{"emptyLinePlaceholder":32},[194,1745,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766],{"class":196,"line":238},[194,1747,241],{"class":200},[194,1749,245],{"class":244},[194,1751,249],{"class":248},[194,1753,253],{"class":252},[194,1755,209],{"class":256},[194,1757,259],{"class":208},[194,1759,226],{"class":218},[194,1761,264],{"class":222},[194,1763,226],{"class":218},[194,1765,334],{"class":208},[194,1767,229],{"class":204},[194,1769,1770,1772,1774,1776,1778,1780],{"class":196,"line":275},[194,1771,347],{"class":200},[194,1773,249],{"class":208},[194,1775,352],{"class":204},[194,1777,355],{"class":256},[194,1779,259],{"class":208},[194,1781,1782],{"class":204},"{\n",[194,1784,1785,1788,1790,1792,1795,1797],{"class":196,"line":287},[194,1786,1787],{"class":278},"  id",[194,1789,282],{"class":204},[194,1791,219],{"class":218},[194,1793,1794],{"class":222},"12345",[194,1796,226],{"class":218},[194,1798,302],{"class":204},[194,1800,1801,1804,1806,1808,1811,1813],{"class":196,"line":305},[194,1802,1803],{"class":278},"  name",[194,1805,282],{"class":204},[194,1807,219],{"class":218},[194,1809,1810],{"class":222},"Example User",[194,1812,226],{"class":218},[194,1814,302],{"class":204},[194,1816,1817,1820,1822],{"class":196,"line":322},[194,1818,1819],{"class":278},"  traits",[194,1821,282],{"class":204},[194,1823,272],{"class":204},[194,1825,1826,1829,1831,1833,1836,1838,1840],{"class":196,"line":328},[194,1827,1828],{"class":278},"    region",[194,1830,282],{"class":204},[194,1832,219],{"class":218},[194,1834,1835],{"class":222},"North America",[194,1837,226],{"class":218},[194,1839,269],{"class":204},[194,1841,1842],{"class":588}," \u002F\u002F Any arbitrary traits which can be referenced in targeting rules\n",[194,1844,1845],{"class":196,"line":339},[194,1846,1847],{"class":204},"  }\n",[194,1849,1850,1852,1854],{"class":196,"line":344},[194,1851,331],{"class":204},[194,1853,334],{"class":208},[194,1855,229],{"class":204},[114,1857,1858,1859,282],{},"The user context can also be updated via ",[152,1860,1201],{},[184,1862,1864],{"className":186,"code":1863,"filename":1048,"language":189,"meta":190,"style":190},"import { client } from \".\u002Fconfig-director-setup\"\n\nawait client.updateContext({\n  id: \"654321\",\n  name: \"Another User\",\n  traits: {\n    region: \"Australia\",\n  },\n});\n\n\u002F\u002F Update it to `undefined` (anonymous user context) when a user signs out\nawait client.updateContext();\n",[152,1865,1866,1884,1888,1902,1917,1932,1940,1955,1959,1967,1971,1976],{"__ignoreMap":190},[194,1867,1868,1870,1872,1874,1876,1878,1880,1882],{"class":196,"line":197},[194,1869,201],{"class":200},[194,1871,205],{"class":204},[194,1873,249],{"class":208},[194,1875,212],{"class":204},[194,1877,215],{"class":200},[194,1879,219],{"class":218},[194,1881,1511],{"class":222},[194,1883,1514],{"class":218},[194,1885,1886],{"class":196,"line":232},[194,1887,235],{"emptyLinePlaceholder":32},[194,1889,1890,1892,1894,1896,1898,1900],{"class":196,"line":238},[194,1891,347],{"class":200},[194,1893,249],{"class":208},[194,1895,352],{"class":204},[194,1897,1201],{"class":256},[194,1899,259],{"class":208},[194,1901,1782],{"class":204},[194,1903,1904,1906,1908,1910,1913,1915],{"class":196,"line":275},[194,1905,1787],{"class":278},[194,1907,282],{"class":204},[194,1909,219],{"class":218},[194,1911,1912],{"class":222},"654321",[194,1914,226],{"class":218},[194,1916,302],{"class":204},[194,1918,1919,1921,1923,1925,1928,1930],{"class":196,"line":287},[194,1920,1803],{"class":278},[194,1922,282],{"class":204},[194,1924,219],{"class":218},[194,1926,1927],{"class":222},"Another User",[194,1929,226],{"class":218},[194,1931,302],{"class":204},[194,1933,1934,1936,1938],{"class":196,"line":305},[194,1935,1819],{"class":278},[194,1937,282],{"class":204},[194,1939,272],{"class":204},[194,1941,1942,1944,1946,1948,1951,1953],{"class":196,"line":322},[194,1943,1828],{"class":278},[194,1945,282],{"class":204},[194,1947,219],{"class":218},[194,1949,1950],{"class":222},"Australia",[194,1952,226],{"class":218},[194,1954,302],{"class":204},[194,1956,1957],{"class":196,"line":328},[194,1958,325],{"class":204},[194,1960,1961,1963,1965],{"class":196,"line":339},[194,1962,331],{"class":204},[194,1964,334],{"class":208},[194,1966,229],{"class":204},[194,1968,1969],{"class":196,"line":344},[194,1970,235],{"emptyLinePlaceholder":32},[194,1972,1973],{"class":196,"line":674},[194,1974,1975],{"class":588},"\u002F\u002F Update it to `undefined` (anonymous user context) when a user signs out\n",[194,1977,1978,1980,1982,1984,1986,1988],{"class":196,"line":679},[194,1979,347],{"class":200},[194,1981,249],{"class":208},[194,1983,352],{"class":204},[194,1985,1201],{"class":256},[194,1987,358],{"class":208},[194,1989,229],{"class":204},[1288,1991,1992],{},"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 .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 .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--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 .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 .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":190,"searchDepth":232,"depth":232,"links":1994},[],{},"\u002F_partials\u002Fsdks\u002Fjavascript\u002Fuser-context",{"description":1714},"_partials\u002Fsdks\u002Fjavascript\u002Fuser-context","0Ocw5S_BQ9UZJrXte58ZKYaI8lxrqC3m80WzvJaODLc",1781641012156]