{"id":482722,"date":"2026-06-07T18:44:51","date_gmt":"2026-06-07T18:44:51","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=482722"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=482722","title":{"rendered":"\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u043e\u043a-\u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u043c\u0438 \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432 \u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u043e\u0432"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0427\u0430\u0441\u0442\u043e \u0432 \u0434\u0435\u043c\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u043c\u0435\u043d\u0430 <code>John Doe<\/code>, <code>Jane Smith<\/code>, <code>Test User<\/code> \u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043f\u043e\u0447\u0442\u044b \u0432\u0440\u043e\u0434\u0435 <code>test@example.com<\/code>. \u0418 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u044f, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u0445.<\/p>\n<p>\u042f \u0441\u043e\u0437\u0434\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u043e\u043a-\u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438\u0437 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u0438\u043d\u043e\u0444\u0440\u0430\u043d\u0448\u0438\u0437. \u0412\u043e \u0432\u0441\u0435 \u0442\u044f\u0436\u043a\u0438\u0435, \u0438\u0433\u0440\u0430 \u043f\u0440\u0435\u0441\u0442\u043e\u043b\u043e\u0432, \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u044e\u0436\u043d\u044b\u0439 \u043f\u0430\u0440\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0434\u0435\u043c\u043e, \u043c\u043e\u043a\u0430\u043f\u043e\u0432, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0441\u0438\u0434\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u0435\u043c\u043e: <a href=\"https:\/\/loredata.orchidfiles.com\" rel=\"noopener noreferrer nofollow\">https:\/\/loredata.orchidfiles.com<\/a><\/p>\n<h2>\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b<\/h2>\n<ul>\n<li>\n<p>29 \u043a\u0438\u043d\u043e\u0432\u0441\u0435\u043b\u0435\u043d\u043d\u044b\u0445<\/p>\n<\/li>\n<li>\n<p>\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439<\/p>\n<\/li>\n<li>\n<p>\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u043c, \u0438\u043c\u0435\u043d\u0438, \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439, \u043b\u043e\u043a\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, node.js \u0438 CLI<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 NPM \u043f\u0430\u043a\u0435\u0442\u0435 \u0431\u0435\u0437 API \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432<\/p>\n<\/li>\n<\/ul>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<pre><code># librarynpm install loredata# CLInpm install -g loredata<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h2>\n<pre><code class=\"typescript\">import { person, group } from 'loredata';const p = person({ universe: 'breaking-bad' });\/\/ {\/\/   firstName: 'Walter',\/\/   lastName: 'White',\/\/   username: 'heisenberg',\/\/   email: 'blue_sky_cook@lospollos.com',\/\/   quote: \"I am the one who knocks.\",\/\/   profession: 'Chemistry teacher',\/\/   interests: ['chemistry', 'cooking', 'family'],\/\/   address: { street: '308 Negra Arroyo Lane', city: 'Albuquerque', state: 'NM' },\/\/   symbol: '\u2622\ufe0f',\/\/   universe: 'breaking-bad',\/\/   universeName: 'Breaking Bad'\/\/ }const team = group({ universe: 'game-of-thrones', size: 3 });\/\/ [\/\/   { firstName: 'Jon', lastName: 'Snow', username: 'lord_commander', ... },\/\/   { firstName: 'Daenerys', lastName: 'Targaryen', username: 'mother_of_dragons', ... },\/\/   { firstName: 'Tyrion', lastName: 'Lannister', username: 'halfman', ... },\/\/ ]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u0414\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>seed<\/code>:<\/p>\n<pre><code class=\"typescript\">const p = person({ universe: 'matrix', seed: 42 });const team = group({ universe: 'matrix', size: 3, seed: 42 });<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435<\/h2>\n<p>\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0443\u044e \u043e\u0442 <code>fs<\/code> \u0438\u043b\u0438 <code>path<\/code>:<\/p>\n<pre><code class=\"typescript\">import { loadUniverse, personFromData } from 'loredata\/browser';const universe = await loadUniverse('breaking-bad');const p = personFromData(universe);<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 Vite, webpack \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430\u043c\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.<\/p>\n<h2>CLI<\/h2>\n<pre><code>loredata person --universe breaking-badloredata person --universe breaking-bad --format jsonloredata person --interests chemistry,cookingloredata person --interests chemistry,cooking --interests-mode andloredata person --name walterloredata group --universe matrix --size 5loredata universes<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h2>\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442<\/h2>\n<p>TypeScript-\u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e \u0441 <code>pnpm<\/code>. \u0412\u043d\u0443\u0442\u0440\u0438 npm-\u043f\u0430\u043a\u0435\u0442 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, CLI \u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0434\u0435\u043c\u043e.<\/p>\n<p>\u0414\u0430\u043d\u043d\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 JSON-\u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u043c\u0438. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0443\u044e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <code>data\/{id}\/meta.json<\/code> \u0438 <code>data\/{id}\/characters.json<\/code>. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430: \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0446\u0438\u0442\u0430\u0442\u044b, \u043b\u043e\u0433\u0438\u043d\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<h2>\u0421\u0441\u044b\u043b\u043a\u0438<\/h2>\n<ul>\n<li>\n<p>demo: <a href=\"https:\/\/loredata.orchidfiles.com\" rel=\"noopener noreferrer nofollow\">https:\/\/loredata.orchidfiles.com<\/a><\/p>\n<\/li>\n<li>\n<p>github: <a href=\"https:\/\/github.com\/orchidfiles\/loredata\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/orchidfiles\/loredata<\/a><\/p>\n<\/li>\n<li>\n<p>npm: <a href=\"https:\/\/www.npmjs.com\/package\/loredata\" rel=\"noopener noreferrer nofollow\">https:\/\/www.npmjs.com\/package\/loredata<\/a><\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1044646\/\">https:\/\/habr.com\/ru\/articles\/1044646\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0427\u0430\u0441\u0442\u043e \u0432 \u0434\u0435\u043c\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0438\u043c\u0435\u043d\u0430 John Doe, Jane Smith, Test User \u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u043f\u043e\u0447\u0442\u044b \u0432\u0440\u043e\u0434\u0435 test@example.com. \u0418 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u044f, \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u0438 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u0445.\u042f \u0441\u043e\u0437\u0434\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043c\u043e\u043a-\u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438\u0437 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043a\u0438\u043d\u043e\u0444\u0440\u0430\u043d\u0448\u0438\u0437. \u0412\u043e \u0432\u0441\u0435 \u0442\u044f\u0436\u043a\u0438\u0435, \u0438\u0433\u0440\u0430 \u043f\u0440\u0435\u0441\u0442\u043e\u043b\u043e\u0432, \u043c\u0430\u0442\u0440\u0438\u0446\u0430, \u044e\u0436\u043d\u044b\u0439 \u043f\u0430\u0440\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435. \u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0434\u0435\u043c\u043e, \u043c\u043e\u043a\u0430\u043f\u043e\u0432, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0441\u0438\u0434\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\u0414\u0435\u043c\u043e: https:\/\/loredata.orchidfiles.com\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b29 \u043a\u0438\u043d\u043e\u0432\u0441\u0435\u043b\u0435\u043d\u043d\u044b\u0445\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430\u043c, \u0438\u043c\u0435\u043d\u0438, \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439, \u043b\u043e\u043a\u0430\u0446\u0438\u0438\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435, node.js \u0438 CLI\u0412\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 NPM \u043f\u0430\u043a\u0435\u0442\u0435 \u0431\u0435\u0437 API \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430# librarynpm install loredata# CLInpm install -g loredata\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044fimport { person, group } from &#8216;loredata&#8217;;const p = person({ universe: &#8216;breaking-bad&#8217; });\/\/ {\/\/   firstName: &#8216;Walter&#8217;,\/\/   lastName: &#8216;White&#8217;,\/\/   username: &#8216;heisenberg&#8217;,\/\/   email: &#8216;blue_sky_cook@lospollos.com&#8217;,\/\/   quote: &#171;I am the one who knocks.&#187;,\/\/   profession: &#8216;Chemistry teacher&#8217;,\/\/   interests: [&#8216;chemistry&#8217;, &#8216;cooking&#8217;, &#8216;family&#8217;],\/\/   address: { street: &#8216;308 Negra Arroyo Lane&#8217;, city: &#8216;Albuquerque&#8217;, state: &#8216;NM&#8217; },\/\/   symbol: &#8216;\u2622\ufe0f&#8217;,\/\/   universe: &#8216;breaking-bad&#8217;,\/\/   universeName: &#8216;Breaking Bad&#8217;\/\/ }const team = group({ universe: &#8216;game-of-thrones&#8217;, size: 3 });\/\/ [\/\/   { firstName: &#8216;Jon&#8217;, lastName: &#8216;Snow&#8217;, username: &#8216;lord_commander&#8217;, &#8230; },\/\/   { firstName: &#8216;Daenerys&#8217;, lastName: &#8216;Targaryen&#8217;, username: &#8216;mother_of_dragons&#8217;, &#8230; },\/\/   { firstName: &#8216;Tyrion&#8217;, lastName: &#8216;Lannister&#8217;, username: &#8216;halfman&#8217;, &#8230; },\/\/ ]\u0414\u0435\u0442\u0435\u0440\u043c\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 seed:const p = person({ universe: &#8216;matrix&#8217;, seed: 42 });const team = group({ universe: &#8216;matrix&#8217;, size: 3, seed: 42 });\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432\u0445\u043e\u0434\u0430, \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u044f\u0449\u0443\u044e \u043e\u0442 fs \u0438\u043b\u0438 path:import { loadUniverse, personFromData } from &#8216;loredata\/browser&#8217;;const universe = await loadUniverse(&#8216;breaking-bad&#8217;);const p = personFromData(universe);\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 Vite, webpack \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430\u043c\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.CLIloredata person &#8212;universe breaking-badloredata person &#8212;universe breaking-bad &#8212;format jsonloredata person &#8212;interests chemistry,cookingloredata person &#8212;interests chemistry,cooking &#8212;interests-mode andloredata person &#8212;name walterloredata group &#8212;universe matrix &#8212;size 5loredata universes\u041a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d \u043f\u0440\u043e\u0435\u043a\u0442TypeScript-\u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e \u0441 pnpm. \u0412\u043d\u0443\u0442\u0440\u0438 npm-\u043f\u0430\u043a\u0435\u0442 \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439, CLI \u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u0434\u0435\u043c\u043e.\u0414\u0430\u043d\u043d\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 JSON-\u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430\u0445: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043c\u0435\u0442\u0430-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u043c\u0438. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0432\u0441\u0435\u043b\u0435\u043d\u043d\u0443\u044e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c data\/{id}\/meta.json \u0438 data\/{id}\/characters.json. \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u043d\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u0442\u0430\u0441\u0435\u0442\u0430: \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u044f, \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441, \u0446\u0438\u0442\u0430\u0442\u044b, \u043b\u043e\u0433\u0438\u043d\u044b \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.\u0421\u0441\u044b\u043b\u043a\u0438demo: https:\/\/loredata.orchidfiles.comgithub: https:\/\/github.com\/orchidfiles\/loredatanpm: https:\/\/www.npmjs.com\/package\/loredata\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 https:\/\/habr.com\/ru\/articles\/1044646\/<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-482722","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=482722"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/482722\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=482722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=482722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=482722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}