[{"data":1,"prerenderedAt":671},["ShallowReactive",2],{"navigation_docs_ru":3,"-ru-sdk-nodejs":110,"-ru-sdk-nodejs-surround":666},[4,20,55,70,90,100],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Начало работы",false,"\u002Fru\u002Fgetting-started","ru\u002F1.getting-started",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Введение","\u002Fru\u002Fgetting-started\u002Fintroduction","ru\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Быстрый старт","\u002Fru\u002Fgetting-started\u002Fquickstart","ru\u002F1.getting-started\u002F2.quickstart","i-lucide-rocket",{"title":21,"icon":6,"path":22,"stem":23,"children":24,"page":6},"Концепции","\u002Fru\u002Fconcepts","ru\u002F2.concepts",[25,30,35,40,45,50],{"title":26,"path":27,"stem":28,"icon":29},"Проекты и версии","\u002Fru\u002Fconcepts\u002Fprojects-and-versions","ru\u002F2.concepts\u002F1.projects-and-versions","i-lucide-boxes",{"title":31,"path":32,"stem":33,"icon":34},"Файлы конфигурации","\u002Fru\u002Fconcepts\u002Ffiles","ru\u002F2.concepts\u002F2.files","i-lucide-file-json",{"title":36,"path":37,"stem":38,"icon":39},"Публикация","\u002Fru\u002Fconcepts\u002Fpublishing","ru\u002F2.concepts\u002F3.publishing","i-lucide-send",{"title":41,"path":42,"stem":43,"icon":44},"Доступ и роли","\u002Fru\u002Fconcepts\u002Faccess","ru\u002F2.concepts\u002F4.access","i-lucide-users",{"title":46,"path":47,"stem":48,"icon":49},"Шифрование","\u002Fru\u002Fconcepts\u002Fencryption","ru\u002F2.concepts\u002F5.encryption","i-lucide-lock",{"title":51,"path":52,"stem":53,"icon":54},"Git-интеграция","\u002Fru\u002Fconcepts\u002Fgit","ru\u002F2.concepts\u002F6.git","i-lucide-git-branch",{"title":56,"icon":6,"path":57,"stem":58,"children":59,"page":6},"SDK","\u002Fru\u002Fsdk","ru\u002F3.sdk",[60,65],{"title":61,"path":62,"stem":63,"icon":64},"Node.js","\u002Fru\u002Fsdk\u002Fnodejs","ru\u002F3.sdk\u002F1.nodejs","i-simple-icons-nodedotjs",{"title":66,"path":67,"stem":68,"icon":69},"Unity","\u002Fru\u002Fsdk\u002Funity","ru\u002F3.sdk\u002F2.unity","i-simple-icons-unity",{"title":71,"icon":6,"path":72,"stem":73,"children":74,"page":6},"API и MCP","\u002Fru\u002Fapi","ru\u002F4.api",[75,80,85],{"title":76,"path":77,"stem":78,"icon":79},"API-токены","\u002Fru\u002Fapi\u002Fauthentication","ru\u002F4.api\u002F1.authentication","i-lucide-key-round",{"title":81,"path":82,"stem":83,"icon":84},"REST API","\u002Fru\u002Fapi\u002Frest-api","ru\u002F4.api\u002F2.rest-api","i-lucide-plug",{"title":86,"path":87,"stem":88,"icon":89},"MCP для ИИ-агентов","\u002Fru\u002Fapi\u002Fmcp","ru\u002F4.api\u002F3.mcp","i-lucide-bot",{"title":91,"icon":6,"path":92,"stem":93,"children":94,"page":6},"Поддержка","\u002Fru\u002Fsupport","ru\u002F5.support",[95],{"title":96,"path":97,"stem":98,"icon":99},"Обратная связь","\u002Fru\u002Fsupport\u002Ffeedback","ru\u002F5.support\u002F1.feedback","i-lucide-message-circle",{"title":101,"icon":6,"path":102,"stem":103,"children":104,"page":6},"Правовая информация","\u002Fru\u002Flegal","ru\u002F6.legal",[105],{"title":106,"path":107,"stem":108,"icon":109},"Политика конфиденциальности","\u002Fru\u002Flegal\u002Fprivacy","ru\u002F6.legal\u002F1.privacy","i-lucide-shield",{"id":111,"title":61,"body":112,"description":657,"extension":658,"links":659,"meta":660,"navigation":661,"path":62,"seo":662,"stem":63,"__hash__":665},"docs_ru\u002Fru\u002F3.sdk\u002F1.nodejs.md",{"type":113,"value":114,"toc":651},"minimark",[115,130,135,160,164,172,424,494,498,501,630,634,647],[116,117,118,119,129],"p",{},"Пакет: ",[120,121,125],"a",{"href":122,"rel":123},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@veresk-tool\u002Fnodejs",[124],"nofollow",[126,127,128],"code",{},"@veresk-tool\u002Fnodejs",". Нужен Node.js 18 или новее.",[131,132,134],"h2",{"id":133},"установка","Установка",[136,137,142],"pre",{"className":138,"code":139,"language":140,"meta":141,"style":141},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm install @veresk-tool\u002Fnodejs\n","bash","",[126,143,144],{"__ignoreMap":141},[145,146,149,153,157],"span",{"class":147,"line":148},"line",1,[145,150,152],{"class":151},"sBMFI","npm",[145,154,156],{"class":155},"sfazB"," install",[145,158,159],{"class":155}," @veresk-tool\u002Fnodejs\n",[131,161,163],{"id":162},"подключение","Подключение",[116,165,166,167,171],{},"Страница ",[168,169,170],"strong",{},"Integration"," вашего проекта генерирует этот код с подставленными CDN URL, версией и потребителем.",[136,173,177],{"className":174,"code":175,"language":176,"meta":141,"style":141},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { Veresk, VereskEventName } from '@veresk-tool\u002Fnodejs';\n\nconst veresk = new Veresk({\n  cdnUrls: ['\u003CCDN URL>'],\n  version: 'default',\n  consumer: 'backend',\n  encryptSecret: process.env.VERESK_SECRET,\n});\n\nveresk.on(VereskEventName.Error, (error) => console.error(error));\n\n\u002F\u002F Загружает манифест и файлы, затем опрашивает обновления.\nawait veresk.init();\n","ts",[126,178,179,216,223,248,274,291,308,332,343,348,393,398,405],{"__ignoreMap":141},[145,180,181,185,189,193,196,199,202,205,208,210,213],{"class":147,"line":148},[145,182,184],{"class":183},"s7zQu","import",[145,186,188],{"class":187},"sMK4o"," {",[145,190,192],{"class":191},"sTEyZ"," Veresk",[145,194,195],{"class":187},",",[145,197,198],{"class":191}," VereskEventName",[145,200,201],{"class":187}," }",[145,203,204],{"class":183}," from",[145,206,207],{"class":187}," '",[145,209,128],{"class":155},[145,211,212],{"class":187},"'",[145,214,215],{"class":187},";\n",[145,217,219],{"class":147,"line":218},2,[145,220,222],{"emptyLinePlaceholder":221},true,"\n",[145,224,226,230,233,236,239,242,245],{"class":147,"line":225},3,[145,227,229],{"class":228},"spNyl","const",[145,231,232],{"class":191}," veresk ",[145,234,235],{"class":187},"=",[145,237,238],{"class":187}," new",[145,240,192],{"class":241},"s2Zo4",[145,243,244],{"class":191},"(",[145,246,247],{"class":187},"{\n",[145,249,251,255,258,261,263,266,268,271],{"class":147,"line":250},4,[145,252,254],{"class":253},"swJcz","  cdnUrls",[145,256,257],{"class":187},":",[145,259,260],{"class":191}," [",[145,262,212],{"class":187},[145,264,265],{"class":155},"\u003CCDN URL>",[145,267,212],{"class":187},[145,269,270],{"class":191},"]",[145,272,273],{"class":187},",\n",[145,275,277,280,282,284,287,289],{"class":147,"line":276},5,[145,278,279],{"class":253},"  version",[145,281,257],{"class":187},[145,283,207],{"class":187},[145,285,286],{"class":155},"default",[145,288,212],{"class":187},[145,290,273],{"class":187},[145,292,294,297,299,301,304,306],{"class":147,"line":293},6,[145,295,296],{"class":253},"  consumer",[145,298,257],{"class":187},[145,300,207],{"class":187},[145,302,303],{"class":155},"backend",[145,305,212],{"class":187},[145,307,273],{"class":187},[145,309,311,314,316,319,322,325,327,330],{"class":147,"line":310},7,[145,312,313],{"class":253},"  encryptSecret",[145,315,257],{"class":187},[145,317,318],{"class":191}," process",[145,320,321],{"class":187},".",[145,323,324],{"class":191},"env",[145,326,321],{"class":187},[145,328,329],{"class":191},"VERESK_SECRET",[145,331,273],{"class":187},[145,333,335,338,341],{"class":147,"line":334},8,[145,336,337],{"class":187},"}",[145,339,340],{"class":191},")",[145,342,215],{"class":187},[145,344,346],{"class":147,"line":345},9,[145,347,222],{"emptyLinePlaceholder":221},[145,349,351,354,356,359,362,364,367,369,372,376,378,381,384,386,388,391],{"class":147,"line":350},10,[145,352,353],{"class":191},"veresk",[145,355,321],{"class":187},[145,357,358],{"class":241},"on",[145,360,361],{"class":191},"(VereskEventName",[145,363,321],{"class":187},[145,365,366],{"class":191},"Error",[145,368,195],{"class":187},[145,370,371],{"class":187}," (",[145,373,375],{"class":374},"sHdIc","error",[145,377,340],{"class":187},[145,379,380],{"class":228}," =>",[145,382,383],{"class":191}," console",[145,385,321],{"class":187},[145,387,375],{"class":241},[145,389,390],{"class":191},"(error))",[145,392,215],{"class":187},[145,394,396],{"class":147,"line":395},11,[145,397,222],{"emptyLinePlaceholder":221},[145,399,401],{"class":147,"line":400},12,[145,402,404],{"class":403},"sHwdD","\u002F\u002F Загружает манифест и файлы, затем опрашивает обновления.\n",[145,406,408,411,414,416,419,422],{"class":147,"line":407},13,[145,409,410],{"class":183},"await",[145,412,413],{"class":191}," veresk",[145,415,321],{"class":187},[145,417,418],{"class":241},"init",[145,420,421],{"class":191},"()",[145,423,215],{"class":187},[425,426,427,440],"table",{},[428,429,430],"thead",{},[431,432,433,437],"tr",{},[434,435,436],"th",{},"Параметр",[434,438,439],{},"Значение",[441,442,443,454,469,481],"tbody",{},[431,444,445,451],{},[446,447,448],"td",{},[126,449,450],{},"cdnUrls",[446,452,453],{},"CDN URL проекта (со страницы Integration).",[431,455,456,461],{},[446,457,458],{},[126,459,460],{},"version",[446,462,463,466,467,321],{},[168,464,465],{},"Имя"," версии, например ",[126,468,286],{},[431,470,471,476],{},[446,472,473],{},[126,474,475],{},"consumer",[446,477,478,480],{},[168,479,465],{}," потребителя.",[431,482,483,488],{},[446,484,485],{},[126,486,487],{},"encryptSecret",[446,489,490,491,321],{},"Ключ проекта. Нужен, только если часть файлов ",[120,492,493],{"href":47},"зашифрована",[131,495,497],{"id":496},"чтение-конфига","Чтение конфига",[116,499,500],{},"Конфиги отдаются из памяти по имени файла.",[136,502,504],{"className":174,"code":503,"language":176,"meta":141,"style":141},"\u002F\u002F Конфиг по имени файла.\nconst settings = veresk.getContent\u003CSettings>('settings.json');\n\n\u002F\u002F Один элемент конфига-массива.\nconst item = veresk.getAsListOrThrow\u003CItem[]>('items.json', {\n  find: { id: 'item-1' },\n});\n",[126,505,506,511,549,553,558,598,622],{"__ignoreMap":141},[145,507,508],{"class":147,"line":148},[145,509,510],{"class":403},"\u002F\u002F Конфиг по имени файла.\n",[145,512,513,515,518,520,522,524,527,530,533,536,538,540,543,545,547],{"class":147,"line":218},[145,514,229],{"class":228},[145,516,517],{"class":191}," settings ",[145,519,235],{"class":187},[145,521,413],{"class":191},[145,523,321],{"class":187},[145,525,526],{"class":241},"getContent",[145,528,529],{"class":187},"\u003C",[145,531,532],{"class":151},"Settings",[145,534,535],{"class":187},">",[145,537,244],{"class":191},[145,539,212],{"class":187},[145,541,542],{"class":155},"settings.json",[145,544,212],{"class":187},[145,546,340],{"class":191},[145,548,215],{"class":187},[145,550,551],{"class":147,"line":225},[145,552,222],{"emptyLinePlaceholder":221},[145,554,555],{"class":147,"line":250},[145,556,557],{"class":403},"\u002F\u002F Один элемент конфига-массива.\n",[145,559,560,562,565,567,569,571,574,576,579,582,584,586,588,591,593,595],{"class":147,"line":276},[145,561,229],{"class":228},[145,563,564],{"class":191}," item ",[145,566,235],{"class":187},[145,568,413],{"class":191},[145,570,321],{"class":187},[145,572,573],{"class":241},"getAsListOrThrow",[145,575,529],{"class":187},[145,577,578],{"class":151},"Item",[145,580,581],{"class":191},"[]",[145,583,535],{"class":187},[145,585,244],{"class":191},[145,587,212],{"class":187},[145,589,590],{"class":155},"items.json",[145,592,212],{"class":187},[145,594,195],{"class":187},[145,596,597],{"class":187}," {\n",[145,599,600,603,605,607,610,612,614,617,619],{"class":147,"line":293},[145,601,602],{"class":253},"  find",[145,604,257],{"class":187},[145,606,188],{"class":187},[145,608,609],{"class":253}," id",[145,611,257],{"class":187},[145,613,207],{"class":187},[145,615,616],{"class":155},"item-1",[145,618,212],{"class":187},[145,620,621],{"class":187}," },\n",[145,623,624,626,628],{"class":147,"line":310},[145,625,337],{"class":187},[145,627,340],{"class":191},[145,629,215],{"class":187},[131,631,633],{"id":632},"замечания","Замечания",[635,636,637,644],"ul",{},[638,639,640,641,643],"li",{},"Храните ",[126,642,329],{}," в окружении, не в коде.",[638,645,646],{},"У версии, которую ни разу не публиковали, нет файлов для клиентов. Сначала опубликуйте её.",[648,649,650],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":141,"searchDepth":218,"depth":218,"links":652},[653,654,655,656],{"id":133,"depth":218,"text":134},{"id":162,"depth":218,"text":163},{"id":496,"depth":218,"text":497},{"id":632,"depth":218,"text":633},"Загрузка и чтение конфигов Veresk из Node.js-сервиса.","md",null,{},{"icon":64},{"title":663,"description":664},"Node.js SDK для Veresk","Установите @veresk-tool\u002Fnodejs, подключитесь к CDN проекта, читайте конфиги из памяти и расшифровывайте зашифрованные файлы.","0C-TIUhRaYa5jLEU7QA6l-9YWMFYOxsegv6yGmhg7Kc",[667,669],{"title":51,"path":52,"stem":53,"description":668,"icon":54,"children":-1},"Храните файлы проекта в Git-репозитории параллельно с публикацией.",{"title":66,"path":67,"stem":68,"description":670,"icon":69,"children":-1},"Загрузка конфигов Veresk в игре на Unity с кешем на устройстве.",1793977351615]